lsp
atopile 語言伺服器 (LSP) 的實作與維護指南,為電子電路設計提供自動完成、代碼導航與錯誤診斷等 IDE 功能。
簡介
atopile LSP 模組為 VS Code 和 Cursor 等編輯器提供了即時語言支援,使硬體工程師能透過程式碼進行電路板設計。它作為 atopile 編譯器與編輯器之間的橋樑,確保 .ato 檔案中表達的設計意圖能透過標準 LSP 介面進行驗證與呈現。利用 pygls 框架,該伺服器能提供快速的回饋,包含自動完成、跳轉至定義、以及錯誤診斷報告,大幅縮短了硬體開發的迭代週期。
-
為 .ato 檔案提供即時的 IDE 整合功能,包括自動完成、懸停文件與跳轉至定義。
-
具備容錯功能的局部編譯架構,即使在編輯過程中遇到損壞或不完整的程式碼,也能確保伺服器不會崩潰。
-
採用基於 GraphView 與 TypeGraph 的每份文件狀態管理 (DocumentState),即使在編輯隔離模組時也能維持專案上下文。
-
高效的快取機制,儲存上一次成功的 BuildFileResult,確保在編輯過程中 UI 介面依然保持回應。
-
與核心 atopile 編譯器及基於 ANTLR 的解析器整合,提供強大的錯誤報告與診斷功能。
-
透過標準輸入/輸出 (stdio) 運行,確保與各編輯器的無縫相容性。
-
效能標準要求輸入響應時間小於 50ms,補全響應時間小於 200ms,以維護流暢的使用體驗。
-
實作嚴謹的穩健性模式,包括昂貴操作的去抖動 (debouncing) 與重建或重設時 GraphView 資源的系統性清理。
-
開發者應使用 ato dev test 指令針對 lsp_completion.py 進行整合測試,以獲取快速的反饋循環。
-
主要開發入口位於 src/atopile/lsp/lsp_server.py,輔助工具位於 lsp_utils.py。
-
請確保所有 LSP 處理程序皆實作全面的異常捕獲,以保證伺服器在遇到語法錯誤或延遲執行失敗時絕不崩潰。
倉庫統計
- Star 數
- 3,312
- Fork 數
- 184
- Open Issue 數
- 138
- 主要語言
- Python
- 預設分支
- main
- 同步狀態
- 閒置
- 最近同步時間
- 2026年5月1日 上午09:33