~/VibeHandbook
免費 PDF

AI 服務

microsoft.github.io

LSP

是什麼

不妨把它想像成一個不知疲倦的程式碼拼寫檢查器兼語法檢查器——你一邊打字,它一邊給錯誤劃上下劃線。這個幫手就是 (語言伺服器協議)。LSP 是編輯器和工具獲取專案即時程式碼智慧資訊的一種通用方式。"語言伺服器"在你編寫程式碼時讀取程式碼,並報告錯誤、型別資訊、自動補全建議以及"跳轉到定義"連結。有了這一協議,一個語言伺服器就能為多個編輯器提供支援——你在 VS Code 中看到的那些紅色波浪線,同樣可以驅動命令列工具或 AI 編碼代理。

優勢

  • 提供真實的、理解語言的反饋:是實際的型別錯誤和未定義引用,而非憑空猜測。
  • 標準化,因此同一個伺服器可在多種編輯器和工具間通用。
  • 隨輸入即時更新,問題會立刻浮現,而不必等到構建時。
  • 支撐開發者日常依賴的各項功能:補全、懸停文件、重新命名、跳轉到定義。

取捨

  • 每種語言都需要自己的伺服器,而各伺服器的質量參差不齊。
  • 在大型專案上,伺服器可能佔用大量記憶體和 CPU(中央處理器)。
  • 它告訴你哪裡有問題,卻不會告訴你如何修復——解讀仍需靠你(或 AI)。
  • 配置可能比較瑣碎;為一個專案配好合適的伺服器需要費些心思。

何時使用

任何你希望對正在編寫的程式碼獲得可信、即時反饋的時候——這基本上就是任何時候。對 vibe coding 而言,它最重要的作用是作為一個訊號源:語言伺服器產生的診斷資訊,正是你希望反饋回迴圈中的內容。

與 vibe coding 的契合度

LSP 能讓 AI 看到與你相同的問題。一個好的框架會在每次編輯後將語言伺服器的診斷資訊反饋給代理,這樣 AI 就能在你執行程式碼之前發現並修復自己的型別和 lint 錯誤。你得到的不再是"看起來合理",而是"編譯器認可"。告訴你的代理去讀診斷資訊,而不僅僅是檔案本身。

// LSP 伺服器返回的一條診斷——把它反饋給代理
{
  "severity": "error",
  "range": { "start": { "line": 12, "character": 6 } },
  "message": "Type 'string' is not assignable to type 'number'."
}