语法突出显示适用于多个编辑器的工具/语言

时间:2012-01-22 20:27:56

标签: language-agnostic syntax-highlighting dsl

是否有任何工具可以让我为给定的语言指定语法高亮,然后为一些更常见的编辑器生成语法高亮文件?

我问,因为我正在开发特定于域的语言,并且我想为所述语言提供语法突出显示支持。但是,我不想为每个编辑器(Vim,Notepad ++,Visual Studio等)编写单独的语法高亮文件。

这种类型的翻译似乎是可能的,因为语法高亮的核心概念通常独立于您正在使用的编辑器。我只是不知道这样的事情是否已经存在。

3 个答案:

答案 0 :(得分:2)

相当多的编辑使用scintilla(http://www.scintilla.org/)进行源代码编辑和语法高亮:例如Windows上的Notepad ++,gnome中的gedit,Code :: blocks。因此,您可以考虑向Scintilla添加语法定义。据我所知,这是为您的语言编写词法分析器的xml定义的问题(参见例如this page代码::块)

答案 1 :(得分:1)

我不知道这样的事情,但在我看来,制作起来会很容易。例如,可以创建基于XML的通用格式(以DTD / XSL方案的形式)并使用特定于编辑器的XSLT转换。然后,每个编辑器创建者(或其他人)将为其编辑器创建一个XSLT文件。对于每种新语言,都会创建一个XML。

最大的问题是指定至少满足这些标准的语言:

  • 完整性:它应包含语法高亮配置的所有可能功能。
  • 易于使用:简单语言不应过于复杂。
  • 开放性和标准化:它应该很受欢迎才有用。为了受欢迎,它应该是开放和标准化的。

答案 2 :(得分:0)

古老的问题/答案,但您可以继续使用)似乎值得一看的Iro,“一种旨在简化跨多个平台的语法突出显示工具的开发工具”-https://eeyo.io/iro/documentation/ 。我通过这篇中等职位找到了它:“介绍Iro-创建语法突出显示工具的简便方法”-https://medium.com/@model_train/creating-universal-syntax-highlighters-with-iro-549501698fd2