vscode 代码高亮 + 配色主题,一直很正常,在新开窗口后发现,js、ts、tsx 的代码变成一片白色,切换主题无效果,某些主题能高亮函数名,但语法关键词全都没有着色,检查了 json、css、less 都是正常的。
在网上搜到一篇文章《vscode语法插件开发——如何用syntaxes去描述一门语言》,从中得知 vscode 有个语法审查的功能,打开命令面板(ctrl + shift + p),输入“inspect”,选择“Developer: Inspect Editor Tokens and Scopes”,可以查看光标所在位置的标记信息。
正常情况下可显示对应文件语法的信息:
尝试了一下,结果提示“No TM Grammar registered for this language.”,看来是语法识别文件有问题。在群友的指点下,使用 vscode 的菜单“帮助 --> 切换开发人员工具”打开控制台一看,确实是报错了:
这里提示读取新的ts语法文件时出错了,路径也给出了,找过去一看,有4个文件,对应js、jsx、ts、tsx,但文件大小居然是0KB,内容是空的!
很可能是升级 vscode 过程中遇到了问题。
根据上面搜到的文章的提示,前往 vscode git仓库,在./extensions/<languageName>/syntaxes/<languageName>.tmLanguage.json目录下分别找到对应文件,复制内容更新本地文件,重启 vscode 后,代码高亮效果恢复。