with one click
lsp
// How the atopile Language Server works (pygls), how it builds per-document graphs for completion/hover/defs, and the invariants for keeping it fast and crash-proof.
// How the atopile Language Server works (pygls), how it builds per-document graphs for completion/hover/defs, and the invariants for keeping it fast and crash-proof.
Core runtime behavior for the atopile sidebar agent: identity, persistence model, execution rules, and tool recipes.
Generate short live progress summaries for the atopile agent from recent tool events, preambles, checklist changes, and build state. Use for ephemeral UI activity text only, never for transcript replies or autonomous reasoning.
Authoritative ato authoring and review skill: language reference, stdlib, design patterns, and end-to-end board design workflow.
Spec-driven planning for complex design tasks: when to plan, how to write specs as .ato files, and how to verify against requirements.
Frontend standards for atopile extension webviews: architecture, contracts, design system, and testing workflow.
Reference for the `.ato` declarative DSL: type system, connection semantics, constraint model, and standard library. Use when authoring or reviewing `.ato` code.
| name | lsp |
| description | How the atopile Language Server works (pygls), how it builds per-document graphs for completion/hover/defs, and the invariants for keeping it fast and crash-proof. |
The lsp module (located in src/atopile/lsp/) implements the Language Server Protocol for atopile. It provides IDE features like autocomplete, go-to-definition, and diagnostics (error reporting) for ato files.
Run the server on stdio (what editors expect):
python -m atopile.lsp.lsp_server
src/atopile/lsp/lsp_server.py
LSP_SERVER (pygls LanguageServer)DocumentState (graph/typegraph/build_result)src/atopile/lsp/lsp_utils.pysrc/atopile/lsp/_debug_server.pyGraphView + TypeGraph stored in DocumentState.BuildFileResult to power completion/hover even when the current edit has errors.src/atopile/lsp/lsp_server.py.ato dev test --llm test/test_lsp_completion.py -qDocumentState.reset_graph calls GraphView.destroy()).