根本原因是error lens不生成错误,仅显示lsp或linter提供的诊断数据;若行尾为空,说明语言服务未启动、未安装对应语言扩展,或配置中diagnosticlevel未设为warning及以上。

安装Error Lens插件后为什么行尾还是空的
根本原因是 Error Lens 本身不生成错误,只负责把语言服务器(LSP)或 linter(如 ESLint、Pylance)产生的诊断数据“贴”到行尾。如果行尾空白,90% 是上游没给数据——不是插件坏了,是它没东西可贴。
检查三件事:
- 右下角状态栏是否显示对应语言服务,比如 TypeScript (Workspace) 或 Python (Pylance);不显示说明 LSP 根本没启动
- 是否已安装并启用该语言的官方扩展(例如 ms-python.python、octref.volar),只装 Error Lens 不够
- 打开命令面板(Ctrl+Shift+P),运行 Developer: Toggle Developer Tools,在 Console 里搜 Failed to activate language client 或 language server,看有没有启动失败日志
必须开启的两个核心配置项
Error Lens 默认只显示 error 级别诊断,warning 和 info 全被过滤掉——这是最常被忽略的默认行为。
在 settings.json 中至少加这两项:
{
"errorLens.showInline": true,
"errorLens.diagnosticLevel": "warning"
}
说明:
- "errorLens.showInline": true 控制“是否在行尾显示文字”,默认是 true,但重置设置或旧版本可能关掉,务必确认
- "errorLens.diagnosticLevel": "warning" 表示显示 error 和 warning(info 仍不显示);设为 "error" 就真只剩红色错误了
- "errorLens.showInGutter": false 可选,关掉左侧 gutter 小图标,避免和 GitLens 等插件视觉冲突
TypeScript/JS 项目里提示延迟或漏报
本质是 VSCode 内置 TS Server 和你项目用的 TypeScript 版本不一致。比如项目用 typescript@5.3,VSCode 却调用内置的 4.9,就会漏掉 const 类型推导、新语法检查等。
解决方法:
- 在任意 .ts 文件中按 Ctrl+Shift+P → 运行 TypeScript: Select TypeScript Version → 选 Use Workspace Version
- 关掉 "typescript.preferences.includePackageJsonAutoImports": "auto",这个选项会触发全量 node_modules 扫描,拖慢诊断响应
- 如果用了 "composite": true 的 tsconfig.json,确保所有引用项目都已构建(tsc -b),否则跨项目类型检查失效
行尾提示错位、截断或点击无效
常见于启用了软换行、混合缩进或装饰类插件叠加的场景。VSCode 的装饰层(decorations)和实际文本渲染位置不是完全同步的。
优先排查:
- 关掉软换行:"editor.wordWrap": "off"
- 统一缩进:执行 Editor: Reindent Lines(Shift+Alt+F),避免空格/TAB混用
- 临时禁用其他装饰插件(如 Bracket Pair Colorizer、Highlight Matching Tag),确认是否干扰
- Ctrl+Click 行尾提示跳转不到 Problems 面板?检查是否有多个诊断来源(比如同时开了 ESLint 和 Pylance),它们可能互相覆盖同一行的诊断数据
真正卡住的地方往往不在 Error Lens 自身,而在语言服务是否就绪、版本是否对齐、诊断级别是否被过滤——这些点不确认清楚,调再多颜色和字体都没用。











