LSP
概要
LSP(Language Server Protocol、言語サーバープロトコル)は、エディタやツールがプロジェクトについてのライブなコードインテリジェンスを得るための共通の手段です。「言語サーバー」は作業中にコードを読み取り、エラー、型情報、自動補完の候補、そして「定義へ移動」のリンクを報告します。このプロトコルがあるおかげで、一つの言語サーバーが多くのエディタを動かせます ── VS Code で見える赤い波線と同じものが、コマンドラインツールや AI コーディングエージェントを動かすこともできるのです。
強み
- 本物の、言語を理解したフィードバックを提供する:単なる推測ではなく、実際の型エラーや未定義の参照。
- 標準化されているため、単一のサーバーが多くのエディタやツールにわたって機能する。
- 入力に合わせて更新されるため、問題がビルド時ではなく即座に表面化する。
- 開発者が日々頼る機能を動かす:補完、ホバードキュメント、リネーム、定義へのジャンプ。
トレードオフ
- 各言語に専用のサーバーが必要で、その品質はサーバーごとに差がある。
- 大規模プロジェクトでは、サーバーがメモリや CPU を多く消費することがある。
- 何が間違っているかは教えてくれるが、どう直すかは教えてくれない ── 解釈は依然としてあなた(または AI)に委ねられる。
- セットアップが面倒なことがあり、プロジェクトに適切なサーバーを設定するには少し注意が要る。
使いどころ
コードを書きながら信頼できるリアルタイムのフィードバックが欲しいときはいつでも ── つまり、本質的には常にです。バイブコーディングでは、シグナルの源として最も重要です:言語サーバーが生成する診断こそが、まさにループへ流し戻したいものなのです。
バイブコーディングとの相性
LSP は、AI にあなたと同じ問題を見せるための手段です。優れたハーネスは、編集のたびに言語サーバーの診断をエージェントに送り返すため、AI は自分の型エラーや lint エラーを捉え、あなたがコードを実行するより前に修正します。「もっともらしく見える」ではなく、「コンパイラも同意している」が得られます。ファイルだけでなく診断を読むよう、エージェントに伝えましょう。
// LSP サーバーが返す診断 ── これをエージェントに送り返す
{
"severity": "error",
"range": { "start": { "line": 12, "character": 6 } },
"message": "Type 'string' is not assignable to type 'number'."
}