如何在Xtext中编写自定义自动完成功能?

Adr*_*ian 3 autocomplete editor xtext

我只是找不到任何有关此的东西,只能找到编写自定义自动完成建议的资源,这不是我想要的(或者是)?

句法

我们可以使用示例语法:

Model:
    greetings+=Greeting*;

Greeting:
    'Hello' name=ID '!';
Run Code Online (Sandbox Code Playgroud)

问题

现在,当用户创建语法的新实例时,他必须

  1. 写下“你好”(可以完成)
  2. 必须写一个空格
  3. 现在可以自动完成“名称= ID”

但这不是我想要的。

我想要的是

  1. 当用户完成“ Hello”时,我希望其余部分都填充一个默认示例,例如:“ Hello World”

这可能吗?是否有一些来源?对此进行研究的切入点在哪里?我可以在完成后仅打印一些文本来存档吗?还是需要在示例中填写示例(在哪里可以这样做)?

Chr*_*ich 5

看看文档中的“模板提案”部分。或者complete_Greeting在提案提供者中覆盖

class MyDslProposalProvider extends AbstractMyDslProposalProvider {

    override complete_Greeting(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
        acceptor.accept(createCompletionProposal("Hello World!",context))
        super.complete_Greeting(model, ruleCall, context, acceptor)
    }

}
Run Code Online (Sandbox Code Playgroud)