RSyntaxtextarea, добавление переменной в JavaScriptParser - PullRequest
0 голосов
/ 20 декабря 2018

Я использую RSyntaxtextarea , чтобы написать код JavaScript в моем приложении Swing и получить автозапросы с помощью JavaScriptLanguageSupport .

. Я заблокирован этой проблемой:

Я хочу добавить эту переменную в синтаксический анализатор:

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

Так что на моем textPane я могу написать: "персона". иполучите 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);

1 Ответ

0 голосов
/ 25 января 2019

Я думаю, что вы хотите сделать здесь реализовать собственное автоматическое заполнение.

К сожалению, в CompletionProvider реализовано довольно много методов.Возможно, вы могли бы взломать DefaultCompletionProvider для возврата пользовательских завершений (анализ текста слева от каретки, эта часть не так сложна).

Вы можете напрямую создать объект автозаполнения из вашегопотом провайдер нестандартного завершения.

Я мог бы сам поэкспериментировать с этими вещами, но не уверен, когда у меня будет время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...