Code Spell Checker 默认不检查变量名等标识符,仅检查注释和字符串;需配置 cSpell.checkPrograms: true、cSpell.enabledLanguageIds 包含对应语言ID,并合理设置忽略路径与词典才能启用标识符拼写检查。

Code Spell Checker 默认只检查注释和字符串字面量,变量名、函数名、类名等标识符**完全不检查**——这不是配置漏了,是插件设计如此。想让它标红 userNmae 而不是 userName,必须手动开启解析能力并配对语言 ID。
为什么变量名拼错不报错?这是默认行为,不是 bug
插件默认跳过所有语法 token(如 const、function、class 后面的标识符),只处理纯文本内容:注释、字符串、Markdown 段落。所以 let recieveData = {} 中的 recieveData 不会标红,哪怕它明显拼错了。
-
cSpell.checkPrograms必须设为true(布尔值,不是字符串"true"),否则插件根本不尝试解析 JS/TS/Python 中的标识符 -
cSpell.enabledLanguageIds必须显式包含对应语言 ID,例如"javascript"、"typescript"、"python";只写"js"或"ts"无效 - 若用 TypeScript,
cSpell.ignorePaths建议加上"**/node_modules/**"和"**/dist/**",否则第三方包里的拼错变量名会大量误报
中文注释里夹英文总被标红?关键在三个配置联动
比如 // 获取用户信息 里的 “用户信息” 被整段标红,是因为插件把它当做一个英文单词去查词典,自然找不到。真正起效的是这三者同时存在:
-
cSpell.language设为["en", "zh-CN"](注意是zh-CN,不是zh或zh-cn) -
cSpell.allowCompoundWords设为true,否则userInfo会被拆成user和info,两个都进词典,反而放过真实错误 - 必须安装官方扩展
cspell-dict-chinese(在 VSCode 扩展市场搜这个 exact 名称),否则zh-CN只是空转
改了 settings.json 还不生效?先看右下角状态栏
插件静默失效最常见原因不是配置错,而是根本没加载到当前文件上下文。打开一个 .ts 文件后,立刻看右下角:
- 有没有出现
Spell图标或语言代码(如en)?没有 → 插件未激活或语言模式不对 - 点开语言模式(右下角文字),确认是
TypeScript React而不是TypeScript—— JSX 字符串依赖前者才能被识别 - 按
Ctrl+Shift+P输入Spell Checker: Toggle回车,强制开关一次,有时能触发重载 - 检查有没有误加
"cSpell.enabled": false,这个全局禁用项一旦存在,其他所有配置全部失效
真正容易被忽略的是:插件对驼峰命名的分词逻辑和你直觉相反——allowCompoundWords: true 会让 httpStatus 当作单个词查词典(易标红),而设为 false 才会强制拆成 http 和 Status(但后者大小写敏感,Status 查不到仍报错)。实际项目中,更稳的做法是关掉自动分词,直接把高频驼峰词加进 cSpell.userWords 白名单。


















