Skip to content
metacallPublic

About

Repository implementing MetaCall LSP for interfacing with multiple IDEs and providing polyglot intellisense.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

MetaCall LSP

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.

What it does

  • 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.

What it does not do now

  • No full type inference.
  • No cross-language rename.
  • No code execution.
  • No edits to user sources.

Clients

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.

Prebuilt binaries

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.

Layout

src/        server crate
tests/      protocol tests and fixtures

Roadmap

  • 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.

Development

Toolchain: Rust 1.94.0, pinned in rust-toolchain.toml.

cargo build
cargo test
cargo clippy --all-targets -- -D warnings
cargo fmt --check

CI runs the same four commands on Linux, macOS, and Windows in .github/workflows/ci.yml.

Releasing

  1. Bump the version in Cargo.toml and commit the change.
  2. Tag the commit vX.Y.Z and push the tag.
  3. .github/workflows/release.yml verifies the tag against Cargo.toml, builds the seven targets, and publishes archives, checksums, a manifest, and notes generated by cliff.toml with git-cliff.

Run the workflow manually from the Actions tab to build and smoke test every target without creating a release.

License

Apache-2.0. See LICENSE.

About

Repository implementing MetaCall LSP for interfacing with multiple IDEs and providing polyglot intellisense.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages