Введение: Я написал простую грамматику в Xtext, которая работает отдельно от автозаполнения. Это не похоже на то, что он совсем не работает, но он не работает, как я хочу, поэтому я начал искать возможность настроить автозаполнение. Я узнал, что есть много возможностей, но я не мог найти никаких конкретных объяснений.
И вот что я прошу здесь. Я надеюсь, что вы можете мне помочь.Как настроить автозаполнение, созданное с помощью Xtext?
Мой Грамматика:
grammar sqf.Sqf with org.eclipse.xtext.common.Terminals generate sqf "http://www.Sqf.sqf" Model: elements += Element* ; Element: Declaration ";" | Command ";" ; Declaration: Variable | Array ; Variable: name=ID "=" content=VARCONTENT (("+"|"-"|"*"|"/") content2+=VARCONTENT)* ; Array: name=ID "=" contet=ArrayLiteral | name=ID "=" "+" content2+=[Array] ; ArrayLiteral: "[" (content += ArrayContent)* "]" (("+"|"-")content1+=Extension)* ; ArrayContent: content01=Acontent ("," content02+=Acontent)* ; Acontent: STRING | INT | Variable | ref=[Declaration] | ArrayLiteral ; Extension: STRING | INT | ref=[Declaration] ; Command: Interaction ; Interaction: hint ; hint: Normal | Format | Special ; Normal: name=HintTypes content=STRING ; Format: name=HintTypes "format" "[" content=STRING "," variable=[Declaration] "]" ; HintTypes: "hint" | "hintC" | "hintCadet" | "hintSilent" ; Special: hintCArray ; hintCArray: title=STRING "hintC" (content1=ArrayLiteral | content=STRING) ; VARCONTENT: STRING | INT | ref=[Declaration] | "true" | "false" | "nil" ;
Моя проблема: Проблема заключается в том, что, когда я ударяя Ctrl + пробел в затмении-редактор (с моей плагин загружен), я только получить предложение «title» -STRING (из правила hintCArray) и имя-идентификатор (из правила декларации).
То, что я ожидаю, это то, что он также предлагает мне возможность выбирать между моими подсказками. Я также попытался нажать ctrl + space после того, как начал набирать команду (hin), и в результате автокомпозиция поставила рядом с ней «=», поэтому это будет объявление Variable или Array.
То, что я узнал, что я должен изменить некоторые из proposalProvider.java -Files (я думаю, что это AbstractProposalProvider) в .ui -сече-.
У меня теперь есть проблема, что я не знаю, что мне там писать.
В этом AbstractProposalProvider.java есть такие вещи, как это:
public void completeModel_Elements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); }
Приветствия Raven
Большое спасибо! Это прекрасно работает. Я был бы рад, если бы вы могли сказать мне эти проблемы с моей грамматикой (я только начал с Xtext и благодарен за каждую помощь, которую я могу получить) – Raven
Не могли бы вы рассказать мне о проблемах с моей грамматикой? В противном случае я буду продолжать делать эти ошибки, и тогда их будет сложнее исправить. – Raven