在自定义编辑器中为域特定语言实现智能感知行为

问题描述:

我使用类似模板的编辑器创建了一个DSL,与Alice中的规则系统非常相似。用户将能够从列表中选择关系以及要应用关系的对象。这两个列表应根据可接受的类型进行过滤 - 例如,如果关系是“大于”,则可用对象必须是“大于”实现的类型。在自定义编辑器中为域特定语言实现智能感知行为

同样,如果一个对象被选中,即不是可比与大于,则该关系不应该在潜在关系列表中。我认为这个问题的核心是一个类型检查器,但我不确定将这种类型的逻辑合并到我的应用程序中的最佳方式。有没有人知道DSL的现有类型检查库?

我特别感兴趣的是开源和跨平台技术。 Java可能是我们最终使用的语言,但这并不是固定的。

+0

我想知道这是怎么回事?你找到一个好的解决方案吗?在我看来,从可用性的角度来看,Intellisense难以实施。在响应性和侵入性之间找到适当的平衡似乎是一项非常艰巨的任务。从我的经验来看,微软的实现远远超过其他任何东西。 Eclipse的实现感觉非常笨重。如果你发现了一些好东西,我会非常感兴趣。 – Alex 2009-10-26 05:42:20

您可能会考虑Scintilla。这是Notepad ++和其他工具使用的编辑组件。它有一些支持做自动完成,虽然我没有尝试自己使用它,所以我不知道它的工作效果如何。它是开源的,所以如果它不能满足你的需求,我想你可以扩展它,而不会有太多的麻烦。

这可能有助于intellisense方面 - CodeTextBox