vscode代码高亮突然消失,90%是插件抢占语言服务、覆盖token规则或语义层静默降级;首要检查右下角是否显示plain text,点击切换正确语言模式,禁用所有扩展并用code --disable-extensions验证,再二分启用定位冲突源。

VSCode代码高亮突然消失,90%不是语法解析器崩了,而是某个插件抢了语言服务控制权、覆盖了token规则,或静默降级了语义层——直接禁用所有扩展再二分启用,比猜快十倍。
右下角显示 Plain Text 就别往下看了
这是最硬的信号:VS Code 根本没加载任何语法解析器。高亮全白、括号不匹配、const和def全灰,全是它导致的。
- 点击右下角语言标识(哪怕它是空白或显示
Plain Text),输入javascript、python、vue回车强制绑定 - 勾选“Configure
xxxlanguage based settings”保存为默认,避免下次打开又变回Plain Text - 检查
files.associations配置:比如"*.js": "json"会把 JS 当 JSON 解析,import立刻变灰 - 刚克隆项目?确认根目录有
tsconfig.json或jsconfig.json(空文件也行),否则Volar/Pylance不启动语义层
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 - 同时打开任务管理器,观察
exthost进程是否在启用某插件后 CPU 突升或直接消失 - 重点盯近期更新过的插件:尤其是
augment、SFTP、AI 补全类、rust-analyzer、pylsp这类重型 LSP 客户端
二分法启用比逐个禁用快 5 倍
禁用全部 → 分组启用 → 实测 → 复现 → 缩小组别,4 步锁定冲突源。不用等 20 次重启。
- 先启用语言类:如
ms-python.python、ms-vscode.vscode-typescript,测试基础关键字是否上色 - 再加格式化类:
esbenp.prettier-vscode和dbaeumer.vscode-eslint不要同时开,它们对onSave事件争抢最猛 - Vue 项目务必检查
Vetur和Volar是否共存——只要同时启用,defineProps必不跳转、setup语法全白 - 打开 Output 面板 → 切换到
Log (Extension Host),搜索failed to activate或language ser,看哪一行报错停在哪个插件
token scope 错了说明解析已失控
高亮颜色不对、某些词突然变灰、async和await一个有色一个没色?运行Developer: Inspect Editor Tokens and Scopes看底层 token。
- 悬停在
function上,若 scope 显示support.type.object.js而不是storage.type.function.js,说明 TextMate 语法规则被插件劫持或错配 - 显示
no color customizations?不是插件问题,是当前主题压根没定义这个 scope,换Default Dark+对比即知 - scope 正确但颜色不对?检查
settings.json里有没有被插件偷偷写入空的"editor.tokenColorCustomizations": {},删掉整段 - 临时关语义高亮:
"editor.semanticHighlighting.enabled": false,如果此时constlet恢复颜色,说明是Volar/Pylance语义层和主题不兼容
真正难搞的不是高亮消失,而是它“半亮”——部分词有颜色、部分没颜色、切换文件又恢复。这种往往卡在语义缓存和 TextMate 规则交界处,%APPDATA%\Code\Cache\semantic-tokens\(Windows)或$HOME/.vscode/Cache/semantic-tokens/(macOS/Linux)删完必须完全退出 VS Code 进程,不能只关窗口。











