Skip to content
Registry

lsp

v0.1.11

III Language Server — autocompletion and hover for III engine functions and triggers

license: Apache-2.0

Install

bash
iii trigger compose::add worker=lsp

Run in your project with the iii engine running. Exact versions are immutable and digest-pinned.

Agent-ready brief for v0.1.11
Install, config, dependencies, readme, skills and API reference, all in one place. Fetch as agent-context.md for an LLM to consume.
The same content rendered as discrete blocks below is exposed as a single markdown document at /registry/workers/lsp.md. Paste it into an LLM prompt or pipe it through curl from a worker.

Install

iii trigger compose::add worker=lsp@0.1.11

Dependencies

No dependencies for v0.1.11

Readme

README.md

lsp

Language Server Protocol implementation for the iii engine. Provides autocompletion, hover documentation, and diagnostics for iii function calls and trigger registrations directly inside any LSP-capable editor.

The server connects to a running iii engine over WebSocket, snapshots the live registry of functions and trigger types, and serves that catalog back to the editor as completions and hover. Because the catalog is dynamic, completions reflect whatever workers are currently connected — no hand-maintained type stubs.

Supported languages

Language File extensions
TypeScript / TSX / JS / JSX .ts, .tsx, .js, .jsx
Python .py
Rust .rs

Other file types are passed through without analysis.

Features

  • Completions — function IDs, trigger types, payload properties, trigger config properties, and known values (stream names, topics, API paths). Triggered on ', ", :, {, , and = (for Python keyword arguments). The stream, stream:join and stream:leave trigger types (served by the deprecated iii-stream builtin) are tagged deprecated in completions and hovers.
  • Hover — function description plus request and response JSON schemas, rendered inline.
  • Diagnostics — validates function IDs, required payload fields, trigger types and config properties, cron expressions, and HTTP methods. Republished on every did_open / did_change.

When the engine is not reachable on startup, the server stays up and returns empty completions; once the engine comes online, fresh completions become available without restarting the editor.

Run locally

cargo build --release
./target/release/lsp --url ws://127.0.0.1:49134

The binary speaks LSP over stdio; spawn it from your editor's LSP client.

CLI flags

Flag Default Description
--url (env III_URL) ws://127.0.0.1:49134 WebSocket URL of the iii engine
--stdio — Accepted for editor compatibility (the server always uses stdio)

Editor integration

VS Code / Cursor

Use the bundled VS Code extension, which downloads the matching lsp binary on first activation:

Neovim (built-in LSP)

vim.lsp.config.iii = {
  cmd = { '/path/to/lsp', '--url', 'ws://127.0.0.1:49134' },
  filetypes = { 'typescript', 'typescriptreact', 'javascript', 'python', 'rust' },
}
vim.lsp.enable('iii')

Any LSP client

Configure the client to launch the lsp binary over stdio for the supported filetypes above. No initialization options are required.

See also

API reference (JSON)

No API surface registered for this version

Search the registry

Find workers, kits and executables, or jump to a page.