0
要使xtext语言变成缩进感知,使用合成令牌as described here。但是,在缩进的位置,除非输入第一个字母,否则内容协助不会提出任何建议。Xtext:缩进感知语言的内容帮助
例如,请考虑下面的语法:
Model:
\t lines += Line+;
\t
Line:
\t 'model' name=ID
\t BEGIN
\t \t type=(Type1 | Type2 | Type3)
\t END
;
Type1:
'type1:' attr=ID;
Type2:
'type2:' attr=ID;
Type3:
'type3:' attr=ID;
// The following synthetic tokens are used for the indentation-aware blocks
terminal BEGIN: 'synthetic:BEGIN'; // increase indentation
terminal END: 'synthetic:END'; // decrease indentation
现在,输入模式和新的生产线和一个标签,内容帮助不提示任何东西之后。但是,如果我输入t然后要求提供内容帮助,我会得到type1,type2和type3。
为什么内容只能在部分输入时才起作用?
在这种情况下,我试图实现一个白色空间敏感语言。我希望使用内容辅助提示在该位置可能的不同类型。现在,输入'model'后点击ctrl +空格,新行和标签不会返回任何内容。但是,如果在那之后输入字母't',解析器就会识别这些类型并用'type1,type2和type3'提示我。 如何修改合成令牌的行为? –
将其标记为可选项并没有帮助 –