error lens 不分析代码,只渲染语言服务器(lsp)提供的诊断信息;行尾无提示主因是 lsp 未启动或未推送 diagnostics,需检查状态栏语言模式、开发者工具报错日志、对应语言扩展是否安装启用,并确认 "errorlens.showinline": true 和 severity 配置正确。

Error Lens 不是“装完就用”的插件,它必须配合语言服务器(LSP)才能显示任何内容;没看到行尾提示,90% 是 LSP 没启动或诊断没上来,不是插件本身的问题。
为什么装了 Error Lens 却没任何行内提示?
它不分析代码,只渲染语言服务器发来的 diagnostics。常见现象:波浪线有、Problems 面板里有报错,但行尾空荡荡——说明 LSP 根本没推送诊断。
- 检查右下角状态栏语言模式:如果是
Plain Text,点它手动切到Python、TypeScript等正确模式 - 打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,在 Console 里搜failed to start language server或tsserver/pyright相关错误 - 确认已安装对应语言扩展:Python 项目需
ms-python.pylance(非旧版ms-python.python),TS/JS 项目确保TypeScript and JavaScript Language Features没被禁用 - 远程开发(SSH/WSL)时,插件必须安装在远程环境,本地装无效
怎么让 warning 和 info 也显示在行尾?
默认只显示 error 级别,这是防信息过载的保守策略,不是 bug。想让 warning 上行尾,得改 errorLens.severity 配置。
- 打开
settings.json,添加:"errorLens.severity": ["error", "warning", "info"]—— 注意必须是数组,不能写成字符串"error,warning" - 改完无需重启 VSCode,但已有文件不会自动刷新诊断;保存一次、切换标签页,或运行命令
Developer: Restart Language Server - 若只想显示 warning 及以上(忽略 info),用
["error", "warning"];设成["error"]就回到默认行为
行尾提示错位、跳行、遮挡代码怎么办?
VSCode 的软换行(editor.wordWrap)、混合缩进(Tab + 空格)、或高级换行策略(editor.wrappingStrategy: "advanced")会导致装饰层定位偏移。
- 临时关闭软换行:
"editor.wordWrap": "off"(全局或工作区设置) - 统一缩进:确保
"editor.detectIndentation": true,再对当前文件执行Editor: Reindent Lines(快捷键Shift+Alt+F) - 限制提示长度防遮挡:
"errorLens.maxMessageLength": 60(数值太小会砍掉关键信息,别设为 0) - 若仍错位,临时禁用其他装饰类插件:如
Bracket Pair Colorizer、Highlight Matching Tag,排查叠加干扰
修改配置后提示不更新?别等它自己动
TypeScript(Pylance/Pyright)等语言服务器普遍缓存 AST 或延迟推送诊断,删掉报错代码后,Error Lens 还挂着旧提示是常态,不是插件卡住。
- 强制刷新当前文件诊断:TS/JS 项目运行
TypeScript: Restart TS server;Python 项目运行Python: Restart Language Server - 检查
tsconfig.json是否把当前文件纳入include或默认范围,否则 tsserver 直接跳过 - ESLint 用户注意:
"eslint.enable": true必须显式开启,且工作区需有node_modules/eslint或配置了eslint.packageManager
最常被忽略的一点:Error Lens 的 showInline 必须为 true(默认是 true,但重置设置或某些旧版本可能关掉),否则无论 severity 怎么配,行尾永远空白——它和 showInGutter 是两个独立开关,别混淆。











