1.关键性文件
1.1 .tmLanguage文件
由textMate编辑器所采用的一种类XML语言。通过定义一个的键值对(Key Value pairs)的表来工作(syntax definitions are arrays of regular expressions paired with scope names),其中,键(Key)为正则表达式;而表达式所匹配的语句的归属类型即为值(value)。例如:
通过该文件,可以描述符合该正则表达式的语句可被分为哪一类(what scopes are described by what regexes).具体的语法参见[1]。这里仅需要记住一点:value是有固定的取值范围的,比如 comment, keyword, meta, storage等等,而这些类由可以划分为子类以提供尽可能详细的信息,例如:constant.numeric.integer.long.hexadecimal.python。
1.2 .tmTheme文件
该文件与tmLanguage文件类似,不过用来指明每个scopes的属性(文字样式)。例如:
2 语法高亮如何实现的?
通过上述两个文件作用的分析,我们了解到语法高亮实际上需要两个必备条件:1)对目标语法的关键字进行分类;2)设置每个分类的属性,包括字体、颜色等;
因此,通过修改上述两个文件,我们完全可以定制自己的编程语言高亮方案。
3 步骤
1.构建.tmlanguage文件和.tmTheme文件
采用拿来主义,采用install package搜索并下载verilog语法高亮插件;
下载一个与自己喜欢的配色相近的主题插件,下载地址:http://tmtheme-editor.herokuapp.com/#!/editor/local/undefined
2.个性化修改与定制
2.1 编辑语法分类:
使用openresource插件打开语法高亮插件:Verilog.tmLanguage,例如我们要对verilog中的关键字“input”进行颜色设置,则在Verilog.tmLanguage中搜索input的描述部分:
可以看到,input关键字归属到了support.type.verilog类中。
2.2 修改配色
使用任意文本编辑器打开刚下载好的xxx.tmTheme文件,在其中查找“support.type.verilog”所在位置,若搜不到,则删掉子类,搜索母类“support.type”,修改其字体属性,如下图:
修改后的效果如下:
同理,依次修改背景、前景、选择区等颜色即可。
3.保存主题文件
参考资料:
[1]:https://macromates.com/manual/en/language_grammars
[2]:http://sublimetext.info/docs/en/extensibility/syntaxdefs.html