~/VibeHandbook
$39

AIサービス

microsoft.github.io

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'."
}