自定义visual studio code 语法高亮

最近在用visual studio code 编写sql语句时发现有很多sql语句关键字没有高亮显示

看着有点不爽, 刚开始想通过插件解决这个问题,试了很多次也没找到满意的,

然后就萌生了一个大胆的想法,修改系统文件自定义语法高亮!!!

结果误打误撞最终竟然实现,下面是实现方法

首先找到相关联的语法匹配文件:

在visual studio code 安装目录下的

Microsoft VS Code\resources\app\extensions\sql\syntaxes 目录下有个SQL.plist文件

这是一个xml格式的文件,包含大量的正则表达式 用于匹配关键字

一条匹配规则包含再一对<dict></dict>标签中

例如

<dict>
<key>match</key>
<string>(?i:\b(values|go|use|into|exec|execute|openquery)\b)</string>
<key>name</key>
<string>keyword.other.DML.II.sql</string>
</dict>

其中<key>标签里的内容不用管,

关键是<string>标签的内容:

第一个<string>标签是关键字匹配规则:

第二个<string>标签是显示模式

例如

上面这个表达式匹配的有

values , go , use , into , exec , execute , openquery

这些sql关键字

用  keyword.other.DML.II.sql  模式显示

显示模式是固定的 : 就是在visual studio code 中 这些关键字显示的颜色

知道了匹配原理 下面要做的就是自定义一条匹配规则

将示例中的<dict></dict>复制一份

把第一个<string>标签中的关键字 替换为自己想要的, 多个关键字之间用 或运算符号 ‘ | ‘隔开

再修改第二个<string>标签中的显示模式,

(显示模式是系统固定好的,具体的显示效需要自己去尝试了)

例如:

<dict>
<key>match</key>
<string>(?i:\b(unsigned|unique|exists|default|zerofill|auto_increment|comment)\b</string>
<key>name</key>
<string>constant.numeric.sql</string>
</dict>

下面是修改前与修改后的对比:

增加了unsigned , unique , exists , default , zerofill  , auto_increment , comment等关键字

修改前:

before

修改后:

after

修改文件前记得先备份一下,以免改错了导致VScode显示不正常

自定义visual studio code 语法高亮

转载请注明来源:幽幽过客_{自定义visual studio code 语法高亮}