高亮失效主因是VS Code未加载语法解析器,右下角显示Plain Text即为铁证;需点击切换语言模式、检查files.associations配置、禁用扩展验证,并用Inspect Editor Tokens诊断token作用域。

高亮失效不是插件“坏了”,而是 VS Code 没拿到正确的 token 或渲染链路被截断——90% 的问题靠禁用扩展 + 切换语言模式就能当场解决。
右下角显示 Plain Text 就别往下看了
这是最硬的信号:VS Code 根本没加载语法解析器,所有高亮、括号匹配、跳转功能全失效。它不看文件名,只认状态栏语言标识。
- 点击右下角语言标识(哪怕它是空白或显示
Plain Text),输入javascript、typescript、vue等回车强制绑定 - 勾选
Configure xxx language based settings,否则下次打开又变回Plain Text - 检查
files.associations配置:比如"*.js": "json"会把 JS 当 JSON 解析,import立刻变灰
code --disable-extensions 是第一验证动作
别 reload window,那只是刷新 UI;code --disable-extensions 才是真·干净环境。终端执行后如果高亮恢复,100% 是插件问题。
- Windows 用户加隔离参数:
code --disable-extensions --user-data-dir="%TEMP%\vscode-test" - macOS/Linux 用:
code --disable-extensions --user-data-dir=/tmp/vscode-test - 重点盯近期更新过的插件:尤其是
rust-analyzer、pylsp、Volar、Vetur这类重型 LSP 客户端 - Vue 项目务必检查
Vetur和Volar是否共存——只要同时启用,defineProps必不跳转、setup语法全白
Developer: Inspect Editor Tokens and Scopes 看真实 token
这个命令暴露底层着色逻辑:你看到的每个词,VS Code 实际打上了什么 token 标签(如 support.type.object.js),以及当前主题对它的颜色定义是否生效。
- 鼠标悬停任意代码片段,面板显示
no color customizations→ 当前主题没覆盖该 scope,不是插件问题,是主题缺失规则 - scope 明显错误(如
function被标成string)→ 语言服务解析异常,大概率是扩展冲突或配置错误 - 对比
Default Dark+主题是否正常:如果它能高亮,基本锁定是你当前主题不兼容该语言 - 某些插件(如旧版
GitLens)会在启动阶段阻塞TextDocumentAPI 初始化,重启无效,必须关掉整个窗口再重开
TODO Highlight / Bracket Pair 等功能失效的特殊原因
这类插件依赖语义层或特定 token 类型,比基础高亮更脆弱。失效往往不是插件本身挂了,而是上游链路断了。
-
todoHighlights.keywords字段名拼错一个字母就彻底静默失效,且 VS Code 不报任何提示;必须是todoHighlights.keywords,不是todo.highlight.keywords -
todoHighlights.languages默认只扫描javascript、typescript、python,.vue和.md需手动加入白名单 -
editor.bracketPairColorization.enabled和editor.guides.bracketPairs必须都设为true,缺一不可 - Volar 启动失败时,VS Code 会退化为纯 TextMate 解析,所有基于语义层的高亮(包括 TODO Highlight)都会跳过
真正麻烦的从来不是“怎么修”,而是 token scope 错了却看不到报错、插件静默降级却不提示、配置写对了但被工作区设置覆盖——这些地方没有日志,也没有弹窗,只能靠 Developer: Inspect Editor Tokens and Scopes 一层一层点进去看。











