Language Server Protocol
EdgeCrab includes a dedicated edgecrab-lsp crate and a first-class lsp toolset. This gives the agent semantic code intelligence instead of relying only on text search.
Why It Matters
Section titled “Why It Matters”Plain grep can find strings. It cannot reliably answer:
- Where is this symbol actually defined?
- Which references are semantic references instead of comments or strings?
- Can this rename be applied safely across files?
- What fixes does the language server already know how to apply?
- What type errors exist right now in the workspace?
The LSP subsystem answers those questions directly from the language server.
Tool Surface
Section titled “Tool Surface”EdgeCrab exposes 25 LSP operations.
Claude-Parity Navigation
Section titled “Claude-Parity Navigation”lsp_goto_definitionlsp_find_referenceslsp_hoverlsp_document_symbolslsp_workspace_symbolslsp_goto_implementationlsp_call_hierarchy_preparelsp_incoming_callslsp_outgoing_calls
EdgeCrab Extensions
Section titled “EdgeCrab Extensions”lsp_code_actionslsp_apply_code_actionlsp_renamelsp_format_documentlsp_format_rangelsp_inlay_hintslsp_semantic_tokenslsp_signature_helplsp_type_hierarchy_preparelsp_supertypeslsp_subtypeslsp_diagnostics_pulllsp_linked_editing_rangelsp_enrich_diagnosticslsp_select_and_apply_actionlsp_workspace_type_errors
Built-In Language Coverage
Section titled “Built-In Language Coverage”Default server entries cover Rust, TypeScript, JavaScript, Python, Go, C, C++, Java, C#, PHP, Ruby, Bash, HTML, CSS, and JSON.
Discoverability
Section titled “Discoverability”EdgeCrab does not rely on the model guessing that these tools exist.
- The
coreandcodingtoolset aliases expand to includelsp CORE_TOOLSandACP_TOOLSboth expose the fulllsp_*surface- The system prompt adds LSP-first guidance when LSP tools are present
That prompt guidance tells the agent to prefer definitions, references, diagnostics, rename, formatting, and code actions before falling back to grep-style search.
Configuration
Section titled “Configuration”Add or override servers in ~/.edgecrab/config.yaml:
lsp: enabled: true file_size_limit_bytes: 10000000 servers: rust: command: rust-analyzer args: [] file_extensions: ["rs"] language_id: rust root_markers: ["Cargo.toml", "rust-project.json"] env: {} initialization_options: ~ python: command: pylsp args: [] file_extensions: ["py"] language_id: python root_markers: ["pyproject.toml", "setup.py", "requirements.txt"] env: {} initialization_options: ~How the Agent Uses It
Section titled “How the Agent Uses It”For a semantic coding task, the intended flow is:
- Resolve the right server for the file
- Open and sync the document in LSP context
- Query definitions, references, hover, symbols, or diagnostics
- Apply semantic actions like rename, format, or code action where supported
- Fall back to ordinary file tools only when the language is unsupported or the task is purely textual
Verification
Section titled “Verification”The feature is covered by:
- prompt-builder tests for LSP guidance injection
- alias tests proving
coreandcodingincludelsp - surface tests proving EdgeCrab exposes more than the 9-operation Claude baseline
- end-to-end integration tests against a mock LSP server
That is the standard for this feature: code-backed behavior, not marketing copy.