轻量级项目应精简检查链路,优先关闭干扰项:禁用detectIndentation、按语言限制诊断范围、cSpell仅检查comments/strings、确保Quick Fix快捷键可用且语言模式正确。

轻量级项目不需要堆砌整套 ESLint + Prettier + TypeScript Server 的检查链路,VSCode 自带的 cSpell、editor.quickSuggestions 和语言服务器基础诊断已足够覆盖 90% 的拼写、语法和符号错误。关键不是“开更多检查”,而是关掉干扰项、对齐配置优先级、避免规则打架。
关掉 detectIndentation 和自动格式化冲突
轻量级项目常因缩进混乱被误报“语法错误”(比如 Python 报 IndentationError,但实际是 VSCode 错把 Tab 当空格)。根源常在 editor.detectIndentation 自动猜错,或 editor.formatOnSave 被未配置的 formatter 触发乱排。
- 在项目根目录
.vscode/settings.json中强制关闭检测:"editor.detectIndentation": false - 统一缩进风格:
"editor.insertSpaces": true+"editor.tabSize": 2(JavaScript/TypeScript/Markdown 推荐)或4(Python) - 禁用未启用 formatter 的自动格式:
"editor.formatOnSave": false,除非你明确装了esbenp.prettier-vscode并设为默认
只启用必要语言服务器诊断
VSCode 默认对所有打开的文件启用语言服务器,但轻量项目往往混着 .js、.md、.json,而 jsonc 服务会对 .json 做严格 schema 校验,导致误报(如 package.json 缺少 type 字段被标红)。
- 按语言粒度开关诊断:在
settings.json中用语言专属块限制范围,例如:{"[json]": {"editor.quickSuggestions": false,"json.schemas": []}} - 禁用非当前项目语言的 server:比如纯 JS 项目,关掉
python、rust相关扩展的后台服务(通过扩展面板右键 → Disable (Workspace)) - 对
.md文件,保留editor.quickSuggestions但关掉markdown.preview.breaks类易误触发项
拼写检查只扫注释与字符串,不碰代码标识符
cSpell 默认会检查变量名、函数名,这在轻量项目里毫无意义——myVarName 拼错不会影响运行,但会淹没真正该修的注释拼写错误(如 "recieve")。
- 在项目级
cspell.json中设置:"languageSettings": [{"language": "javascript","enableFiletypes": ["comments", "strings"]}] - 添加常用缩写进
words列表,避免误报:"words": ["http", "url", "jsx", "ts"] - 用
ignoreWords过滤无意义词:"ignoreWords": ["todo", "fixme", "hack"](注意全小写,匹配默认行为)
快速修复入口必须可用,且不依赖插件
轻量项目不装额外修复插件时,VSCode 内置的 Quick Fix 仍能处理基础问题(如补全 import、初始化 const 变量),但需确保触发路径畅通。
- 确认快捷键生效:
Alt + Enter(macOS)或Ctrl + .(Windows/Linux)必须能唤出灯泡菜单 - 检查
editor.codeActionsOnSave不被设为{}空对象——这会彻底禁用所有保存时修复 - 若灯泡不出现,先验证语言模式是否正确:右下角状态栏显示的是
JavaScript而非Plain Text;点击它手动切换
真正卡住轻量项目的,从来不是“检查不够多”,而是“检查没对准位置”。一个 cSpell 配置错行、一次 detectIndentation 误判、一个语言模式识别失败,就足以让纠错功能集体失灵。动手前先看右下角语言标签和波浪线下提示的具体错误类型,比盲目加规则更有效。


















