Polyglot language server for MetaCall workspaces. It gives cross-language navigation, hover, and completion across Python, JavaScript, TypeScript, and other supported languages in one server.
- Serves one workspace from one process over LSP and stdio.
- Answers from a static index built by
meta-ast. It never runs user code. - Tracks open buffers so unsaved edits stay visible.
- Reindexes in the background and swaps snapshots without blocking queries.
- Coexists with native language servers. It adds cross-language queries only.
- No full type inference.
- No cross-language rename.
- No code execution.
- No edits to user sources.
Any LSP client works: Neovim, Helix, Emacs. Point the client at the server binary over stdio. Thin VSCode and Zed clients are planned; no client code ships yet.
Every release attaches native binaries for Linux (glibc and musl), macOS (x86_64 and aarch64), and Windows (x86_64 and aarch64):
| Platform | Archive |
|---|---|
| Linux x86_64 | meta-call-lsp-<tag>-x86_64-unknown-linux-gnu.tar.gz |
| Linux x86_64 (static) | meta-call-lsp-<tag>-x86_64-unknown-linux-musl.tar.gz |
| Linux aarch64 | meta-call-lsp-<tag>-aarch64-unknown-linux-gnu.tar.gz |
| macOS x86_64 | meta-call-lsp-<tag>-x86_64-apple-darwin.tar.gz |
| macOS aarch64 | meta-call-lsp-<tag>-aarch64-apple-darwin.tar.gz |
| Windows x86_64 | meta-call-lsp-<tag>-x86_64-pc-windows-msvc.zip |
| Windows aarch64 | meta-call-lsp-<tag>-aarch64-pc-windows-msvc.zip |
Each archive contains meta-call-lsp (meta-call-lsp.exe on Windows), LICENSE, and README.md under a meta-call-lsp-<tag>-<target>/ directory. Verify downloads against the attached SHA256SUMS and the per-asset .sha256 files. The meta-call-lsp-<tag>.json manifest maps each target to its asset name, URL, and SHA-256 digest for automatic client updates. Releases are not code signed yet; macOS and Windows signing is planned.
Run meta-call-lsp --version after extraction, then point the client at the binary over stdio. The server accepts --stdio for clients that pass it.
src/ server crate
tests/ protocol tests and fixtures
- Phase 1: single-language correctness. Sync, symbols, hover, definition, diagnostics.
- Phase 2: polyglot queries. Cross-language definition, references, workspace symbols, ranked completion.
- Phase 3: runtime hover data, semantic tokens, stub emit.
- Packaging: per-platform release binaries, code signing, thin VSCode and Zed clients.
Toolchain: Rust 1.94.0, pinned in rust-toolchain.toml.
cargo build
cargo test
cargo clippy --all-targets -- -D warnings
cargo fmt --checkCI runs the same four commands on Linux, macOS, and Windows in .github/workflows/ci.yml.
- Bump the version in
Cargo.tomland commit the change. - Tag the commit
vX.Y.Zand push the tag. .github/workflows/release.ymlverifies the tag againstCargo.toml, builds the seven targets, and publishes archives, checksums, a manifest, and notes generated bycliff.tomlwith git-cliff.
Run the workflow manually from the Actions tab to build and smoke test every target without creating a release.
Apache-2.0. See LICENSE.