2012-01-22 70 views
8

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

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

这种类型的翻译似乎是可能的,因为语法突出显示的核心概念通常与您正在使用的编辑器无关。我只是不知道这样的事情是否已经存在。

回答

1

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

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

  • 完整性:它应该包含语法高亮配置的所有可能的功能。
  • 易用性:简单的语言不应该过于复杂。
  • 开放性和标准化:它应该是流行的有用的。要流行,它应该是开放和标准化的。
+0

我有类似的想法,关于创建语法高亮通用格式/语言(I也在考虑XML)。如果你可以进行双向翻译,那么如果有人已经知道现有的语法格式,他们可以将其翻译成'通用'格式,然后转换为所有其他格式,这将是非常酷的。 似乎是一个很酷的想法 - 也许我会更多的时候看看它:o) – simplyletgo

2

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