Types 在域特定语言的自定义编辑器中实现类似IntelliSense的行为

Types 在域特定语言的自定义编辑器中实现类似IntelliSense的行为,types,intellisense,dsl,Types,Intellisense,Dsl,我正在使用类似于编辑器的模板创建DSL,非常类似于中的规则系统。用户将能够从列表中选择关系以及应用关系的对象。这两个列表应根据可接受的类型进行筛选-例如,如果关系大于,则可用对象的类型必须大于为其实现的类型 类似地,如果选择的对象与大于不可比,则该关系不应在潜在关系列表中。我认为这个问题的核心是类型检查器,但我不确定在我的应用程序中合并这种类型逻辑的最佳方法。有人知道DSL的现有类型检查库吗 我对开源和跨平台技术特别感兴趣。Java可能是我们最终将要使用的语言,但这并不是固定不变的。您可以研究一

我正在使用类似于编辑器的模板创建DSL,非常类似于中的规则系统。用户将能够从列表中选择关系以及应用关系的对象。这两个列表应根据可接受的类型进行筛选-例如,如果关系大于,则可用对象的类型必须大于为其实现的类型

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


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

您可以研究一下。它是Notepad++和其他工具使用的编辑组件。它对自动完成有一些支持,尽管我自己还没有尝试过使用它,所以我不确定它的工作情况如何。它是开源的,所以如果它不能满足您的需要,您可以扩展它,而不需要太多麻烦。

这可能对intellisense方面有所帮助-

我想知道这是怎么回事?你找到好的解决办法了吗?在我看来,从可用性的角度来看,Intellisense将难以实现。在响应性和侵入性之间找到正确的平衡似乎是一项极其复杂的任务。根据我的经验,微软的实施比其他任何东西都要领先很多。Eclipse实现感觉非常笨拙。我很想知道你是否发现了一些好的东西。这是一个工作项目,我被拉去做另一个项目,所以我在这方面的努力停止了。除此之外,我想你和亚历克斯对“智能感知”的不同方面都感兴趣。我更关心的是通用自动完成系统背后的设计,而不是实际的用户界面。用户界面稍后会出现。