code spell checker 需手动配置项目级 cspell.json 并正确设置 language、words 和 enabledlanguageids 才能识别专业术语和驼峰拼写错误;仅改 settings.json 或配错语言代码(如 "en")将导致词典不加载、校验失效。

Code Spell Checker 不会自动识别项目里的专业术语,必须手动加白名单;否则 ReactQuery、tRPC、ZodSchema 这类词永远标红。
cSpell.language 必须写成数组且带地区变体
插件只对 cSpell.language 字段里**明确列出的语言**生效,写成 "en" 或 "zh" 会失效。常见错误是只配了 "language": "en",结果 color 和 colour 都不匹配——因为美式英语词典叫 en-US,英式叫 en-GB。
团队用美式英语就写:["en-US"];要同时支持中英文注释,必须写成:["en-US", "zh-CN"](注意大小写和连字符,zh-cn 或 zh 无效)。
配置改完后,打开一个 .ts 文件,右下角状态栏应显示 en-US 或 zh-CN,否则说明插件根本没加载该配置。
- 中文支持依赖
cspell-dict-chinese扩展,仅装 Code Spell Checker 不够 - 如果右下角没语言标识,按
Ctrl+Shift+P→Developer: Toggle Developer Tools,在 Console 搜cSpell: no dictionary,出现即表示词典未加载
项目级 cspell.json 是唯一可靠的方式
把自定义词加到 settings.json 是全局污染,成员之间无法同步,CI 工具也读不到。正确做法是在项目根目录建 cspell.json,内容至少包含 version、language 和 words。
示例:
{
"version": "0.2",
"language": ["en-US", "zh-CN"],
"words": ["VitePress", "tRPC", "ZodSchema", "CI/CD"]
}
words 字段只填真正“拼写不标准”但又合法的术语,比如内部 API 名、库名、自定义 Hook。不要把 fetch、localStorage 这类已内置的单词塞进去——反而干扰分词逻辑。
- 大小写敏感:
ReactQuery和reactquery是两个词 - 路径必须是项目根目录,且文件名必须是
cspell.json(不是.cspell.json或cspell.config.json) - Git 提交这个文件,才能让 CI 工具(如
cspellCLI)读取并校验
驼峰变量名检查要开两个开关
想让 const recieveData = 这种拼错的变量名也被标红,光开 cSpell.checkPrograms: true 不够。它只是“允许检查代码”,但不会主动去解析你写的文件——得告诉插件“在哪类文件里查”。
必须显式配置:cSpell.enabledLanguageIds,例如:["typescript", "javascript", "jsonc"](不是 ts 或 js)。
另外,cSpell.allowCompoundWords 的行为反直觉:
– 设为 true:把 httpStatus 当作一个词查字典(容易漏报)
– 设为 false:强制拆成 http + Status 分别校验(更严格)
- 如果开了标识符检查,记得同步把
useState、useEffect这类技术词加进words,否则它们也会被标红 -
cSpell.ignorePaths若误写成"**/*.ts",整个 TS 文件会被跳过,自然不标红
行内忽略和正则忽略适合临时绕过
某些词只在某几行出现,不想污染项目词典,可用行内注释:// cSpell:ignore recieveData, httpStatus。
批量忽略一类模式(比如所有 URL、所有 PascalCase 技术词),用 ignoreRegExpList:
"ignoreRegExpList": [
"\b([A-Z][a-z]+){2,}\b",
"\b(https?|http):\/\/[\w.-]+(?:\/[\w.-]*)*\b"
]
注意:正则需转义斜杠,且必须写在 cspell.json 里才对项目生效。
最容易被忽略的一点:VSCode 的语言模式(右下角显示的 TypeScript、JSON with Comments)决定了插件是否启用检查——如果当前文件语言 ID 不在 cSpell.enabledLanguageIds 列表里,再怎么配都白搭。











