有没有办法让Nashorn代码完成在任何IDE中工作?

时间:2017-09-22 18:54:47

标签: javascript java nashorn

我正在写一些Nashorn的javascript代码。它通过Java方法加载大致如下:

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine scriptEngine = manager.getEngineByName("nashorn");
CompiledScript compiledScript = ((Compilable) scriptEngine).compile(getConfiguration().getScript());
ScriptContext ctx = scriptEngine.getContext();
ctx.setAttribute("logger", LOG, ScriptContext.ENGINE_SCOPE);
ctx.setAttribute("customPojo", customPojo, ScriptContext.ENGINE_SCOPE);
Object evaluatedScript = compiledScript.eval(ctx);
Object ret = ((Invocable) scriptEngine).invokeMethod(evaluatedScript, "call", evaluatedScript, message.request, message.response.orNull(), context, anotherCustomPojo);

这很有效。现在,开发人员可以提供类似以下内容的JavaScript代码段:

function (request, response, ctx, customPojo, anotherCustomPojo) { 
   // use the objects
}

这个函数的每个参数现在都是通过nashorn实际输入的Java对象。但是,如果没有代码完成,开发人员将继续阅读javadoc并导致一种不太愉快的体验。

有没有人让Nashorn与IDE合作,谁可以与我分享如何做到这一点的过程?

我不关心IDE是什么......只是想要一些基本的代码完成。对某人来说,设置它似乎有点困难,但也许它以某种方式存在?

我看到了这个指南:http://romsteady.blogspot.com/2015/05/enabling-nashorn-autocompleteintellisen.html 但对我来说这是相当希望的。我不知道它会得到什么。是说我需要创建JavaDoc-for-javascript来告诉IDE哪些类是预期的,以便它可以自动完成?真的可以用一个更好的例子。

我更喜欢使用IntelliJ或Eclipse IDE来做这件事......但只要它有效,我就不在乎IDE是什么。有什么想法吗?

0 个答案:

没有答案