我在Eclipse中有一个项目,我有一个自定义语言的编辑器。我正在使用ANTLR为它生成编译器。我需要的是向编辑器添加内容辅助。
输入是自定义语言中的源代码,以及用户请求内容辅助的字符位置。源代码大部分时间都不完整,因为用户可以随时请求内容辅助。我需要的是计算对给定位置有效的可能令牌列表。
可以编写自定义代码来进行计算,但该代码必须手动保持与语法同步。我认为解析器正在做类似的事情。它必须能够在给定的上下文中确定什么是可接受的令牌。有可能“重用”那个吗?无论如何,创建内容辅助的最佳做法是什么?
谢谢, 巴林特
答案 0 :(得分:1)
看看Xtext。 Xtext使用Antlr3并为基于Antlr的语言提供内容辅助。请特别关注包org.eclipse.xtext.ui.editor.contentassist。
您可以考虑使用Xtext重新定义语法,这将提供开箱即用的内容辅助。无法重用自定义语言的Antlr语法。