我的团队开发了一种DSL,被数百名喜欢各种编辑器的客户使用。我们希望在多个通用编辑器中支持语法高亮显示,这似乎是语言维护者的共同需求,但我没有找到任何标准实践的描述。
我们的DSL语法是在ANTLR中指定的,我们最感兴趣的是VSCode, Vim和IntelliJ,当然这个列表还在继续。似乎一旦指定了语法,可移植的语法高亮显示应该或多或少是免费的——只需指定一个从符号到语法标签的声明性映射。
- 是否有一种简单的方法可以从语法定义中生成多编辑器语法高亮显示?
- 如果没有,我认为我们需要从头开始手动集成每个编辑器。这听起来像是一个令人头痛的维护问题。现代语言是如何处理这个问题的?(还有,为什么需要这个?是什么使得高亮作为语法的一个功能很难以可重用的方式解决?)
- 是否有一种简单的方法可以从语法定义中生成多编辑器语法高亮显示?
就我所知,没有办法那样做。
- […这些人的最佳实践是什么?
我没有创建多个插件的经验,但这是一个主观的问题,因此不适合stackoverflow。从页面中"避免哪些问题":
为了防止你的问题被标记并可能被删除,请避免问主观问题[…]
——https://stackoverflow.com/help/dont-ask