寻找使用intellisense构建基于ANTLR4语法的代码编辑器的示例。 SharpDevelop提供所有代码编辑器功能,但是如果我们需要提供intellisense和Code Completion详细信息,那么我们需要编写自己的解析器。
需要样本,其中ANTLR4,SharpDevelop用于构建自定义语言的代码编辑器。
感谢。
答案 0 :(得分:2)
我可以使用侦听器中的GetExpectedTokensWithinRule API从ANTLR4获取预期的标记,并将它们转换为标记。
伪代码看起来像这样
public class MyGrammarListener : MyGrammarBaseListener
{
public MyGrammarListener(MyGrammarParser parser)
{
this.Parser = parser;
}
public override void EnterXXXXX(XXXXX_Context context)
{
IntervalSet set = Parser.GetExpectedTokensWithinCurrentRule();
base.EnterXXXXX(context);
foreach (int token in set.ToIntegerList())
{
// Returns the expected tokens.
string data = Parser.Vocabulary.GetLiteralName(token);
}
}
}
答案 1 :(得分:0)
我已经将Jide CodeEditor与antlr4一起使用,它似乎工作正常但是花了一些时间才能将它组合在一起。我生成错误和关键字以从解析器突出显示。我使用侦听器进行解析等,并使用访问者来执行语言。不熟悉SharpDevelop