OGH*_*OGH 5 syntax-highlighting sublimetext sublimetext2
所以我一直试图弄清楚如何typedef在sublime文本中为c ++文件中的's 名称添加语法高亮.
例如,如果我有typedef long long integer;我想integer加以强调(优选的颜色相同的其他类型:int,bool,等等).我查看了C.tmLanuage文件,并尝试将以下正则表达式代码添加^typedef.*?\s(\w+)\s*;到storage.type.c(第49行),但它不起作用.如果我添加单词string,它将突出显示单词字符串的所有实例.我尝试进入C++.tmLanguage文件,并添加正则表达式代码storage.type.c++,但它仍然无法正常工作.
有谁知道如何typedef在崇高文本中突出显示?
另外,有没有办法让类名称的语法高亮?假设我宣布一个string或者vector,我想要string或者vector要突出显示.
如果您有类似的内容,则该正则表达式将起作用(我相信)。typedef foo;要获得所需的行为,您必须在 tmLanguage 文件中创建稍微复杂的模式条目。由于语言文件基于 TextMates,因此您需要将此文件作为参考 ( http://manual.macromates.com/en/language_grammars#language_grammars )。我还建议使用PlistJsonConverter(对我来说,使用 JSON 比使用 XML 更容易)。您可能需要定义开始和结束模式(开始可能是typedef结束可能是;)。然后,您可以将任何您想要的模式应用于该组。
至于类名突出显示,我会看看是否应用了任何范围。如果没有,您将必须想出一个正则表达式来将范围应用于这些。然后,您可以添加颜色条目,或使用颜色方案中定义的颜色条目。
编辑:
实际上它们似乎不是 JSON。我看到()而不是[]。JSON 非常容易理解。您可以寻找更深入的内容,但维基百科是一个很好的起点。您可能感兴趣的是“规则键”部分下的内容。我做了一些搜索(因为我知道那里有一些更好的例子),并发现了http://docs.sublimetext.info/en/latest/extensibility/syntaxdefs.html。它从头开始讨论语法定义,但最相关的部分可能是http://docs.sublimetext.info/en/latest/extensibility/syntaxdefs.html#analyzing-patterns。我没有用于查找类名的正则表达式,因此您必须自己想出一个。如果您还没有,您可能需要四处搜索,看看其他人是否已经以适合您的方式实现了语言文件。
您将需要从内置的 tmLanguage 文件开始,并将其从 Plist 转换为 json。然后您可以编辑该文件并将其移回原处。