跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

代码智能插件

安装语言服务器插件,让 Claude 在编辑后看到类型错误并按符号导航代码:各语言对应的插件与二进制、验证、推荐对话框、排障,以及为没有官方插件的语言添加支持。

代码智能插件给 Claude 你的编辑器所拥有的实时诊断和跳转到定义:Claude 在你运行构建之前就能抓住它自己的编辑引入的类型错误和缺失的导入,并按符号而不是按文本搜索来查找定义和引用。每个插件通过语言服务器协议(LSP)把 Claude Code 连接到一种语言的语言服务器。你从 Anthropic 的官方市场安装插件,并在你的机器上安装语言服务器的二进制文件。

注意:代码智能插件在终端会话里工作。在云端会话里,Claude Code 不会启动插件的语言服务器,所以 Claude 在那里得不到诊断或代码导航。要编写自己的语言服务器插件,或连接没有插件的语言服务器,见插件组件页的「LSP 服务器」。

开始时,在下面「安装代码智能插件」的表里找到你的语言;该表里的插件来自 Anthropic 的官方插件市场。如果你已经看到了 LSP plugin recommendation 对话框,见「接受或关闭推荐对话框」了解每个选择做什么。

安装代码智能插件

代码智能插件告诉 Claude Code 哪条命令启动语言服务器、它处理哪些文件扩展名;它不包含语言服务器本身。先安装语言服务器的二进制文件,再装插件,然后确认服务器启动。

1. 安装语言服务器二进制文件。 在下表里找到你的语言,并安装它那一行的二进制文件。如果你的语言没有列出,见「为没有官方插件的语言添加支持」。

语言插件二进制
C/C++clangd-lspclangd
C#csharp-lspcsharp-ls
Gogopls-lspgopls
Javajdtls-lspjdtls
Kotlinkotlin-lspkotlin-lsp
Liquidliquid-lspshopify,来自 Shopify CLI
Lualua-lsplua-language-server
PHPphp-lspintelephense
Pythonpyright-lsppyright-langserver
Rubyruby-lspruby-lsp
Rustrust-analyzer-lsprust-analyzer
Swiftswift-lspsourcekit-lsp
TypeScript 和 JavaScripttypescript-lsptypescript-language-server

(官方核实时的列表,以官方为准。)表里除 liquid-lsp 外的每个插件都由 Anthropic 维护;liquid-lsp 由 Shopify 维护,官方市场列出它。要找到安装二进制的命令,从表里点进插件链接,看它的 README;对 TypeScript,命令是 npm install -g typescript-language-server typescript。安装二进制之后,确认它在你启动 claude 所用 shell 的 PATH 上,例如用 which typescript-language-server,在 PowerShell 里用 Get-Command typescript-language-server。

2. 安装插件。 要安装步骤 1 表里为你的语言列出的插件,在 Claude Code 会话里运行 /plugin install,把 typescript-lsp 换成该插件的名称:

/plugin install typescript-lsp@claude-plugins-official

确认消息会说明插件现在是否已激活,或者是否需要 /reload-plugins。如果安装以 Marketplace "claude-plugins-official" not found 失败,见插件排障页里该错误的条目。要控制插件安装在哪里,或要从 shell 而不是在 Claude Code 里运行安装,见「安装插件」。

3. 确认服务器启动。 语言服务器在 Claude 第一次编辑带有该插件某个扩展名的文件时启动。要看它工作,让 Claude 在该语言的文件里引入一个类型错误,再修复它,然后在对话里查看诊断行:

  • 出现诊断行:引入错误的那次编辑下面出现 Found N new diagnostic issues in M files (ctrl+o to expand),表示服务器已启动。
  • 没有出现诊断行:运行 /plugin 并打开 Errors 标签页。一行 Executable not found in $PATH: "<binary>" 会点名要安装的二进制文件;如果该标签页没有这样的行,见「排查代码智能」。

安装了缺失的二进制文件之后,Claude Code 在 Claude 下一次编辑匹配的文件时重试。如果你把二进制文件装进了不在你启动 claude 所用 shell 的 PATH 上的目录,就从有它的 shell 里启动新会话。

Claude 得到什么

语言服务器运行时,Claude 获得诊断和代码导航:

  • 编辑后的诊断:每次 Claude 编辑或写入服务器处理的文件时,都会得到服务器报告的错误和警告,所以它无需运行编译器就能看到自己引入的类型错误、缺失的导入或语法错误。
  • 代码导航:Claude 得到一个 LSP 工具,通过服务器查找符号,而不是用文本搜索它们。该工具是只读的;Claude 能用它查找什么以及权限如何适用,见工具参考里的 LSP 工具行为。

自己阅读诊断

Claude 编辑了服务器处理的文件之后,对话里只显示 Found N new diagnostic issues 的摘要。要阅读问题本身,按 Ctrl+O。

接受或关闭推荐对话框

如果某个语言服务器的二进制文件已经在你的 PATH 上而使用它的插件还没安装,Claude Code 会在标题为 LSP plugin recommendation 的对话框里提议为你安装该插件。

推荐对话框何时出现

LSP plugin recommendation 对话框可能在 Claude 编辑文件之后出现。这些条件决定它是否出现以及提议哪个插件:

  • 有插件匹配该文件:你添加的某个市场,或 Claude Code 为你注册的官方市场,列出了该文件扩展名的代码智能插件,并且该插件的二进制文件已安装。
  • 官方优先:多个市场都提供该扩展名的插件时,对话框提议官方市场的插件。
  • 每个会话一次:对话框在一个会话里最多出现一次,对应 Claude 编辑的第一个匹配文件。
  • 云端会话不出现:当你的终端附加到云端会话(例如你用 claude --cloud 启动的会话)时,对话框从不出现。

回应推荐对话框

LSP plugin recommendation 对话框点名插件,并提供这些选择:

  • Yes, install:Claude Code 为你的用户账号安装插件,并打印 <plugin> installed · restart to apply;开始一个新会话来加载服务器。
  • No, not now:对话框关闭,之后的会话可能再次提议该插件;按 Esc 效果相同。
  • Never for this plugin:对话框不再为该插件出现,但仍会为其他插件出现。
  • Disable all LSP recommendations:对话框不再为任何语言出现。

如果你不选择任何选项,Claude Code 在 30 秒后关闭它并计为被忽略。这个计数跨会话保留;五次对话框被忽略之后,Claude Code 停止推荐插件,与你选了 Disable all LSP recommendations 一样。

重新打开推荐

在你选 Disable all LSP recommendations 或忽略它五次之后,LSP plugin recommendation 对话框不再出现。

  • 被禁用或被忽略五次:这两种情况下要重新打开,从 Claude Code 自己的配置文件 ~/.claude.json 里删除 lspRecommendationDisabled 和 lspRecommendationIgnoredCount 键。
  • Never for this plugin:如果你选了它而想让该插件再次被提议,从同一文件的 lspRecommendationNeverPlugins 列表里删除它的 name@marketplace id。

排查代码智能

插件排障页在「Language server doesn't start, uses too much memory, or reports wrong diagnostics」下涵盖代码智能插件特有的症状:

  • 语言服务器没有启动:你在 /plugin 的 Errors 标签页看到 Executable not found in $PATH,或 Claude 从不报告该语言的诊断。
  • 内存占用高:服务器索引项目期间内存占用增加。
  • monorepo 里的误报诊断:诊断把本来能解析的导入报告为未解析。

为没有官方插件的语言添加支持

如果你的语言不在官方插件表里,你仍然可以连接语言服务器:

  1. 写一个带 .lsp.json 文件的插件,该文件点名服务器命令和它处理的文件扩展名。
  2. 然后用 --plugin-dir 加载该插件,或把它发布到市场。

该文件的字段和一个完整示例见插件组件页的「LSP 服务器」。

下一步

  • 插件组件里的 LSP 服务器:为没有官方插件的语言服务器写 .lsp.json。
  • 安装与管理插件:作用域、更新和卸载。
  • 排查插件:本页语言服务器之外的加载错误。
  • 在官方市场里找插件:去哪里浏览官方市场的其余部分。