0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「読む」から「理解する」へ - Claude Code LSP プラグイン

0
Posted at

Claude Code の「弱点」

Claude Code はターミナルで動く AI コーディングアシスタントです。ファイルを読んでコードを書いてくれる、非常に便利なツールです。

でも実は、LSP プラグインを使う前の Claude Code には弱点がありました。

たとえば「この関数がプロジェクト内のどこで呼ばれているか調べて」と頼んだとき、Claude Code は内部的にテキスト検索(grep) をしていました。つまり、コードを「テキスト」としてしか見ていなかったのです。

# 従来の Claude Code の調べ方(イメージ)
"processPayment" という文字列が含まれるファイルを全部探す
  → 変数名にもヒット、コメントにもヒット、文字列リテラルにもヒット...
  → 本当に「呼び出し」している箇所だけを特定するのが難しい
  → しかも大きなプロジェクトだと 45秒 以上かかることも!

これが LSP プラグイン によって劇的に変わります。


LSP プラグインが解決すること

LSP(Language Server Protocol)プラグインを使うと、Claude Code はコードを「テキスト」ではなく「プログラム」として理解できるようになります。

# LSP を使った Claude Code の調べ方(イメージ)
「processPayment」の呼び出し箇所を型情報つきで正確に特定
  → 文字列検索ではなく「構文として関数を呼び出している箇所」のみを抽出
  → 結果が返るまで 約 50ms(テキスト検索の約 900倍 速い!)

これは自身の IDE が持っている「コードを理解する力」と同じ仕組みです。


仕組みの全体像

まず「LSP とは何か」を理解しましょう。

LSP はもともと「エディタ用」の仕組みです。
Claude Code はそのエディタの代わりとして LSP サーバーに接続し、エディタと同じ「コード理解力」を手に入れます。


リリース情報と対応言語

Claude Code の LSP サポートは 2025 年 12 月、バージョン 2.0.74 でリリースされました。対応言語は以下の通りです。

Web系
  PHP
バックエンド系
  Python
  Go
  Ruby
  Java
  C# .NET
システム系
  Rust
  C / C++
  Swift
  Lua

実践編:セットアップ

Step 1: /plugin コマンドを開く

Claude Code を起動したら、/plugin とタイプして対話型の UI を開きます。

/plugin

まず 「Marketplaces」タブ で、公式マーケットプレイス(claude-plugins-official)が有効になっていることを確認してください。デフォルトで有効なはずです。

スクリーンショット 2026-02-23 15.11.07.png

Step 2: LSP プラグインをインストール

「Discover」タブ に移動し、検索ボックスに LSP と入力します。言語別のプラグインが一覧表示されます。

  • Space キー:プラグインを選択
  • i キー:インストール開始

インストール済みのプラグインは 「Installed」タブ で確認できます。

スクリーンショット 2026-02-23 15.13.53.png

Step 3: Language Server バイナリをインストール

プラグインは「設定ファイル」です。実際に動くバイナリを別途インストールする必要があります。

# Python (Pyright)
npm install -g pyright

# TypeScript (typescript-language-server)
npm install -g typescript-language-server typescript

# Go (gopls)
go install golang.org/x/tools/gopls@latest

# Rust (rust-analyzer)
rustup component add rust-analyzer

実践編:LSP で何ができるか

LSP が有効になると、Claude Code は以下の操作を「意味的に」実行できるようになります。

利用可能な操作一覧

操作 内容
goToDefinition シンボルが定義されている場所を検索
findReferences シンボルへのすべての参照を検索
hover シンボルの型情報・ドキュメントを取得
documentSymbol ファイル内のすべてのシンボルを取得
workspaceSymbol ワークスペース全体でシンボルを検索
goToImplementation インターフェースや抽象メソッドの実装を検索
prepareCallHierarchy 呼び出し階層アイテムを取得
incomingCalls その関数を呼び出しているすべての関数を検索
outgoingCalls その関数が呼び出しているすべての関数を検索

注意: オートコンプリート(コード補完)は LSP サポートの対象外です。

使用例:参照を検索(findReferences)

自分:「UserService クラスはどこで使われてる?」

LSP あり:「3 箇所で参照されています:
          - src/routes/auth.ts: 15行目(インポート)
          - src/middleware/session.ts: 42行目(引数として使用)
          - tests/user.test.ts: 8行目(テスト)」

使用例:定義へジャンプ(goToDefinition)

あなた:「processPayment 関数の定義はどこ?」

LSP なし:「processPayment を含むファイルを検索します...(数十秒)」

LSP あり:「src/services/payment.ts の 127行目 に定義があります(50ms)」

実際に Claude Code が LSP を使用する際は、ターミナルに LSP(...) という形でツールの利用が表示されます。


余談:Serena MCP も同じ発想

「LSP を使って AI にコードを理解させる」というアイデアは、Claude Code の公式サポートより前から存在していました。その代表例が Serena です。
Serena は MCP を使って LSP の機能を AI に提供するコミュニティ製ツールです。

Claude Code 公式 LSPSerena MCP
Claude Code が直接 LSP サーバーと通信 MCP サーバーが LSP をラップして AI に提供
Anthropic 公式 コミュニティ製(oraios/serena)
Claude Code 専用 Claude Code 以外のエージェントでも使える
2025年12月(v2.0.74) それ以前から存在

LSP あり・なしの比較

機能 LSP なし LSP あり
定義を探す テキスト検索(遅い・誤検知あり) 意味的に正確(即時)
参照を探す grep(コメントにもヒット) 呼び出し箇所のみ正確に抽出
型情報の取得 コードを読んで推測 Language Server から直接取得
大規模コードベース 苦手(遅い・コンテキスト不足) 得意(900 倍高速)

まとめ

Claude Code の LSP プラグインは、AI がコードを「テキスト」ではなく「プログラム」として理解するための橋渡しです。

エディタ(VS Code など)が長年活用してきた Language Server の仕組みを、Claude Code がそのまま流用することで、IDE と同等のコード理解力をターミナルの AI が手に入れました。


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?