如何创建这个崇高的文本语法?

时间:2014-02-01 12:11:55

标签: sublimetext

我正在尝试创建一个简单的升华语法,当一行的第一个单词为“DONE”时,整行变为不同的颜色。

例如:

- do this
DONE - do that      // this line turns green
- but also do this

我的两个问题是: - 如何创建ST语法 - 我将如何创建上述简单语法。

1 个答案:

答案 0 :(得分:0)

您可以突出显示的最多是包含文字的区域。我不知道这是不是你要找的东西。要做到这一点,需要定义一个tmLanguage文件并修改你的tmTheme文件。 tmLanguage文件描述了一组正则表达式,其范围应用于ST中的文本。 tmTheme文件采用应用的范围,并应用一些着色。我不是写这些文件的专家,所以你可能需要自己做一些实验。

有关编写语法文件的信息,请参阅herehere。在定义主题文件方面,主题文件要简单得多。这些指南建议使用AAAPackageDev,这是不必要的(并且我最后检查时与ST3不兼容)。语言文件都是XML,您可以使用它,但我发现在JSON或YAML中工作更容易。如果您有同样的感觉,可以从下面的代码段开始,并使用SerializedDataConverter在XML和PLIST / JSON之间进行转换。

{
    "name": "Syntax Name",
    "scopeName": "source.syntax_name",
    "fileTypes": [""],
    "patterns": [
    ],
    "uuid": "ca03e751-04ef-4330-9a6b-9b99aae1c418"
}

我不记得任何参考文献的位置,但我确信它们就在那里。但是,只需查看一些现有的主题文件就足够了。要查看这些内容,您可以使用PackageResourceViewer。如果你在ST2工作,不是真的有必要,但在ST3中让事情变得更容易。要开始处理您自己的自定义主题,我会将您当前的主题文件的内容复制到新文件中,并将其保存在Packages / User目录中。这样,你总会有一些东西可以恢复,万一你搞砸了。