Code Spell Checker 默认不检查变量名等标识符,仅检查注释和字符串;需设cSpell.checkPrograms为true、cSpell.enabledLanguageIds包含正确语言ID(如"javascript"),并配合cSpell.language=["en","zh-CN"]、allowCompoundWords=true及安装cspell-dict-chinese才能实现中英文混合注释准确校验。

Code Spell Checker 默认不检查变量名、函数名等标识符,只查注释和字符串里的英文单词——这不是配置错了,是插件设计如此。想让它标红 recieveData 而不是 receiveData,必须手动开启解析能力并配对语言 ID。
为什么变量名拼错不标红?
插件默认跳过所有语法 token(比如 const、function、class 后面的标识符),只处理纯文本内容:注释、字符串、Markdown 段落。所以 let recieveData = {} 中的 recieveData 不会标红,哪怕它明显拼错了。
真正起作用的两个配置项是:
-
cSpell.checkPrograms必须设为true(布尔值,不是字符串"true"),否则插件根本不尝试解析 JS/TS/Python 中的标识符 -
cSpell.enabledLanguageIds必须显式包含对应语言 ID,例如"javascript"、"typescript"、"python";只写"js"或"ts"无效
中英文混合注释总被误标?关键在三者联动
比如 // 获取用户信息 里的“用户信息”被整段标红,是因为插件把它当做一个英文单词去查词典,自然找不到。真正起效的是这三者同时存在:
-
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 分别校验——这意味着拼写纠错效果取决于你希望它“更宽松”还是“更严格”,不是简单设成 true 就万事大吉。


















