LSPシャットダウン/終了の互換性修正(厳格なLanguage Server対応)
原文(日本語に翻訳)
nullパラメータを拒否する厳格なLanguage Serverとのシャットダウン/終了の互換性を修正しました。
原文(英語)
Fixed LSP shutdown/exit compatibility with strict language servers that reject null params
概要
一部の厳格なLanguage Server実装が、LSPプロトコルのshutdown/exitリクエストにnullパラメータが含まれていると拒否する問題が修正されました。この修正により、パラメータ検証が厳密なLanguage Serverでも正常にシャットダウンできるようになりました。
基本的な使い方
LSPプラグインの設定
# LSPプラグインをインストール
claude mcp add @claude-code/lsp
# 設定の確認
cat ~/.claude/settings.json正常なシャットダウンの確認
# Claude Codeを起動してLSPを使用
claude
> "main.tsのエラーを確認して"
# LSPが正常に診断を提供
# セッション終了時
# Ctrl+D または exit
# 以前: 厳格なLSPがnullパラメータを拒否してエラー
# 現在: 正常にシャットダウン実践例
TypeScript Language Serverとの使用
TypeScriptのような厳格なパラメータ検証を持つLanguage Serverで正常動作:
claude
> "この関数の型エラーを確認して"
# tsserver(TypeScript Language Server)が診断を提供
# ファイル:行:列 形式で正確なエラー位置を取得
# セッション終了
# LSPが正確なシャットダウンプロトコルで終了Rust Analyzer との使用
厳格なパラメータ検証を持つRust Analyzerでも問題なく動作:
claude
> "main.rsのコンパイルエラーを診断して"
# rust-analyzerが詳細な診断を提供
# ライフタイム、借用チェッカーエラーなど
# 終了時も正常にシャットダウン複数のLSPサーバーを使用する場合
プロジェクトで複数のLanguage Serverを同時使用:
# プロジェクト設定
# ~/.claude/settings.json または .claude/settings.json
{
"lsp": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"]
},
"rust": {
"command": "rust-analyzer",
"args": []
},
"python": {
"command": "pylsp",
"args": []
}
}
}claude
# 複数のファイルタイプを編集
> "server.tsとmain.rsを確認して"
# 両方のLSPが正常に動作
# セッション終了時、すべてのLSPが正常にシャットダウンLSPによるリファクタリング
claude
> "User クラスの定義箇所を教えて"
# LSP の "Go to Definition" 機能を使用
# 正確なファイル:行:列 を返す
> "この関数を別のモジュールに移動して"
# LSP の "Find All References" を使用
# すべての参照箇所を更新
# 作業完了後、正常にシャットダウン注意点
LSPサポートの現状: Claude CodeのLSPサポートは2025年12月のv2.0.74で追加されたばかりで、まだ改善中です。一部のLSP操作にバグがある可能性があります。
厳格なLanguage Server: 一部のLanguage Server(特にRust、TypeScript、Go)は、LSPプロトコルのパラメータ検証が厳格です。この修正により、これらのサーバーとの互換性が向上しました。
nullパラメータの扱い: LSPプロトコルの
shutdownおよびexitメソッドは、仕様上パラメータを取りませんが、一部の実装ではnullパラメータを明示的に拒否します。LSPプラグインの状態確認: LSPサーバーが起動・実行中かどうかを確認するUIインジケータはまだありません。エラーが発生した場合は、ログを確認してください:
bash# LSP ログの確認 tail -f ~/.claude/logs/lsp.logエラーメッセージ: "No LSP server available for file type" エラーが出る場合、LSP設定が正しくない可能性があります。設定を確認してください。
パフォーマンス: LSPサーバーは大規模なプロジェクトでメモリとCPUを消費する場合があります。不要な場合は無効化を検討してください。