LSP Server

Clawdius includes a built-in Language Server Protocol server (clawdius-lsp) that provides code intelligence to any LSP-compatible editor.

Installation

# Build from source
cargo build --release -p clawdius-lsp

# Binary location
./target/release/clawdius-lsp

Supported Features

LSP MethodStatusBackend
textDocument/didOpenWorkingTree-sitter indexing
textDocument/didChangeWorkingIncremental re-index
textDocument/documentSymbolWorkingTree-sitter extraction
textDocument/hoverPlannedGraph-RAG integration
textDocument/definitionPlannedSymbol index
textDocument/referencesPlannedSymbol index
clawdius/analyze (custom)WorkingReturns index summary
clawdius/verify (custom)WorkingReturns proof stats

Languages

Symbol extraction via Tree-sitter (inherited from clawdius-core):

  • Rust, Python, JavaScript, TypeScript, TSX, Go, Java, C++, PHP, Ruby

Editor Configuration

Neovim (nvim-lspconfig)

require('lspconfig').clawdius_lsp.setup {
  cmd = { 'clawdius-lsp' },
  filetypes = { 'rust', 'python', 'javascript', 'typescript', 'go' },
}

VSCode

Install the Clawdius extension from extensions/clawdius/. The extension communicates with clawdius-code (JSON-RPC over stdio), which delegates to the same core library.

Emacs (lsp-mode)

(lsp-register-client
 (make-lsp-client
  :new-connection (lsp-stdio-connection "clawdius-lsp")
  :major-modes '(rust-mode python-mode go-mode js-mode typescript-mode)
  :server-id 'clawdius-lsp))

Helix

# .helix/languages.toml
[language-server.clawdius-lsp]
command = "clawdius-lsp"

Architecture

Editor (LSP client)
    |
    | JSON-RPC over stdio
    v
clawdius-lsp (tower-lsp)
    |
    | clawdius-core graph_rag module
    v
Tree-sitter parsers (10 languages) + symbol index

The LSP server is a thin layer over clawdius-core's existing Tree-sitter parsing infrastructure. No additional indexing step is required -- documents are parsed on open and change events.

Custom Methods

clawdius/analyze

Returns a summary of the current symbol index:

{
  "documents": 15,
  "symbols": 342
}

clawdius/verify

Returns Lean4 proof verification status:

{
  "status": "ok",
  "theorems": 318,
  "proof_files": 22,
  "lake_jobs": "21 libs + 1 exe"
}