让 Claude Code 自动接收 LSP 诊断?这么做就对了

最近在用 Claude Code 写代码,总得来回切到编辑器看 LSP 报错,效率有点拉胯。有没有办法让它直接“看到”诊断信息?有的,下面咱们一步步来。

是什么 & 为什么

LSP(Language Server Protocol)负责把编辑器里的语法、类型、lint 等错误实时提示出来。Claude Code 若能自动拿这些信息,就不用每次我们手动复制粘贴报错再问 AI,节省时间、少踩坑。

前置条件

  • 编辑器支持 LSP(VS Code、Neovim 等)。
  • Claude Code 已正常配置,并能与你当前工作目录交互。

VS Code LSP 诊断输出配置示例

VS Code 中通过扩展将 LSP 诊断信息输出到文件的配置示例

步骤一:把 LSP 的诊断输出成可读文件

大多数编辑器都能让 LSP 把诊断输出到日志或文件里。我们以 VS Code 为例:

  • 安装“Output to File”或类似的扩展,把诊断信息持续写入一个 .diag.json 文件。
  • 也可以用编辑器的内置命令或脚本,定期导出当前窗口的诊断。

Claude Code 文件监听器配置示例

Claude Code 中监控 LSP 诊断文件的配置示例

目标是:每次报错变动,文件里自动更新出错行、错误级别、消息内容等。

步骤二:让 Claude Code 监控这个文件

在 Claude Code 的配置里,新增一个“文件监听器”,指向刚才的 LSP 诊断文件(比如 diagnostics.txt)。

Claude Code 提示词模版示例

Claude Code 中自动处理 LSP 诊断的提示词模板示例

配置示例思路:

{
  "watch_file": "diagnostics.txt",
  "on_change": "read_latest"
}

这样,编辑器一有新错误,Claude Code 就能自动读到最新内容。

步骤三:提示词模版化

把 Claude Code 的提示词改成一个固定模板,每次读完后自动拼接:

当前 LSP 诊断如下:
${latest_diagnostics}

请据此给出一版修复建议(优先最严重的错误)。

这样就实现了:有错自动读,自动问,回答自动来。

注意事项

  • 文件路径要绝对路径或相对项目根目录明确下来,避免找不到。
  • 频繁读文件会增加 I/O,建议合理设置轮询或监听间隔。
  • 错误内容可以按级别过滤,优先只把 Error 与 Warning 传给 Claude,减少噪音。

其他编辑器怎么办

  • Neovim:可以用 vim.lsp.diagnostic 输出到 buffer,再用脚本写文件;也可以配合 lsp_lines 等插件把诊断转成文本。
  • JetBrains:LSP 插件一般有导出功能;或者写个小插件持续把“问题”面板内容写文件。

小结

本质上就是:

  1. 把 LSP 的诊断变成文本/JSON 持续写入某文件。
  2. Claude Code 监听并读取该文件。
  3. 用提示词模板自动化处理。

折腾完后,写代码时几乎不用切窗口,Claude Code 直接对诊断信息给出解决方案,效率提升不止一点点。你还有哪些小技巧?欢迎在评论区分享~

标签: none

评论已关闭