我已经为Java项目 1 添加了一个REPL(读取eval打印循环),它是用maven构建的。 REPL can be started with a script。hello.html。相关部分是
declare -r GRADLE_CLASSPATH="$(gradle :minidns-repl:printClasspath --quiet |tail -n1)"
java \
-Dscala.usejavacp=true \
-classpath "${GRADLE_CLASSPATH}" \
scala.tools.nsc.MainGenericRunner \
-i minidns-repl/scala.repl
到目前为止这是有效的。唯一缺少的将使REPL完美的是标签完成。我从Scala那里知道它支持这一点。
如何为MainGenericRunner
启用它?
1:随意测试REPL:
git clone https://github.com/rtreffer/minidns.git \
&& cd minidns \
&& ./repl`
然后执行DNS查询,例如c.query("wikipedia.org", TYPE.A)
答案 0 :(得分:1)
known issue处理//You need to make your own EventHandler class. Search online for that.
FCEventHandler handler = new FCEventHandler();
@EventHandler
public void preInit(FMLPreInitializationEvent event){
//Config Handling
//event handler registry
FMLCommonHandler.instance().bus().register(handler);
MinecraftForge.EVENT_BUS.register(handler);
//the same thing can be similarly done with this if you wish
itemCbIngot = new ItemCbIngot().setUnlocalizedName("ItemCbIngot").setTextureName("fc:itemCbIngot");
blockCbBlock = new BlockCbBlock();
GameRegistry.registerItem(itemCbIngot, itemCbIngot.getUnlocalizedName().substring(5));
}
的方式,打破了完成。
还有一个待定修复,但我不知道它是否会进入2.11.8,它也有一个完全new completion feature.
答案 1 :(得分:1)
虽然目前的scala repl现在具有自动完成功能,但效果不佳。 (除了som-snytt提到的issue之外)。
如果你需要repl中的工作完成,你最好的选择是Ammonite REPL,它还有一些比标准repl更多的功能。
注意:我还没有在2.11.8中测试过标签完成情况,但看起来它们已经从头开始重写并且看起来非常有前景。