Expand description
Language Server Protocol implementation for Gruel (ADR-0091).
This crate is the engine behind the gruel lsp subcommand. It depends on
gruel-compiler and reuses the existing frontend pipeline; what we add
on top is the LSP message pump (tower-lsp), incremental document state,
and the mapping from Gruel JsonDiagnostic values to LSP types.
Re-exports§
pub use server::Backend;pub use server::run_server;pub use server::run_stdio_server;
Modules§
- analysis
- Compile analysis worker (ADR-0091).
- code_
actions - Code actions for diagnostic suggestions (ADR-0091 Phase 2).
- completion
- Completion (ADR-0091 Phase 6).
- diagnostics
- Convert Gruel
JsonDiagnosticvalues to LSPDiagnosticvalues (ADR-0091). - document
- Document store with incremental text sync (ADR-0091).
- goto
- Goto-definition (ADR-0091 Phase 4).
- hover
- Hover (ADR-0091 Phase 3).
- inlay_
hints - Inlay hints (ADR-0091 Phase 6).
- position
- Position conversion between LSP Position (UTF-16 code units) and Gruel byte offsets (ADR-0091).
- references
- Find references (ADR-0091 Phase 5).
- server
tower-lspLanguageServerimpl (ADR-0091).- signature
- Signature help (ADR-0091 Phase 4).
- workspace
- Workspace file discovery and @import closure construction (ADR-0091).
- workspace_
symbols - Workspace symbols (ADR-0091 Phase 5).