RSyntaxtextarea,向 JavaScriptParser添加变量



我正在使用RSyntaxtextarea在我的swing应用程序中编写JavaScript代码,并通过JavaScriptLanguageSupport获得自动建议。

我被这个问题阻止了:

我想将此变量添加到解析器中:

var person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
};

所以在我的 textPane 上,我可以写:"person.",并获取 firstName、lasName 和 id 作为自动签名,就像这样:

我的文本窗格:

RSyntaxTextArea expTextArea = new RSyntaxTextArea(1, 20);
expTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
        RTextScrollPane sp1 = new RTextScrollPane(expTextArea);
JavaScriptLanguageSupport languageSupport = new JavaScriptLanguageSupport();
        JavaScriptParser javaParser = new JavaScriptParser(languageSupport, expTextArea);
languageSupport.install(expTextArea);

我试图调用javaParser.setVariablesAndFunctions但我无法理解这种方法是如何工作的:

JavaScriptVariableDeclaration subject = new JavaScriptVariableDeclaration("s",1,null new CodeBlock(1));
VariableResolver vr = new VariableResolver();
vr.addLocalVariable(subject);
javaParser.setVariablesAndFunctions(vr);

我认为您在这里要做的是实现自定义自动完成。

不幸的是,在CompletionProvider中有很多方法可以实现。方法可能是破解 DefaultCompletionProvider 以返回自定义补全(自己解析插入符号的左侧文本,该部分并不难)。

之后,可以直接从自定义完成提供程序创建自动完成对象。

我可能会自己尝试这些东西,但不确定什么时候有时间。

最新更新