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