A rust crate for creating AST and LSP servers powered by tree-sitter.
  • Rust 71%
  • Python 23.9%
  • CSS 4.8%
  • JavaScript 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Balazs Horvath 090f69a1f0
Some checks failed
Codegen / test (push) Has been cancelled
CodSpeed / Run benchmarks (push) Has been cancelled
Run LSP Server - native / test (push) Has been cancelled
Release-plz / Release-plz release (push) Has been cancelled
Release-plz / Release-plz PR (push) Has been cancelled
Test AST - native / cargo test (push) Has been cancelled
Test AST - native / cargo test-1 (push) Has been cancelled
fix: add resolver and url dependency
2026-05-26 20:23:46 +02:00
.config ci: update nextest installation 2025-07-20 10:29:15 +02:00
.github chore(deps): bump actions/checkout from 5 to 6 (#30) 2026-02-17 18:35:58 +01:00
.vscode chore: remove vscode-wasi references and related configurations 2026-02-17 13:41:46 +01:00
book fix(book): remove deprecated multilingual field 2026-02-17 15:01:39 +01:00
crates changes 2026-03-09 23:33:08 +01:00
examples fix(test): remove TriggerError request and associated tests 2026-02-17 21:27:46 +01:00
src chore: remove vscode-wasi references and related configurations 2026-02-17 13:41:46 +01:00
.gitignore chore: ignore Cargo.lock files to make release-plz happy 2025-10-04 19:37:34 +02:00
ARCHITECTURE.md chore: remove vscode-wasi references and related configurations 2026-02-17 13:41:46 +01:00
Cargo.toml fix: add resolver and url dependency 2026-05-26 20:23:46 +02:00
CHANGELOG.md chore: release 2025-06-17 14:48:19 +00:00
LICENSE.TXT chore(license): replace MIT License with GNU General Public License v3 2025-04-11 21:59:27 +02:00
README.MD chore: remove vscode-wasi references and related configurations 2026-02-17 13:41:46 +01:00
release-plz.toml chore: set release_always to false in release-plz config 2025-06-02 00:44:28 +02:00

Auto LSP

A Rust crate for creating Abstract Syntax Trees (AST) and Language Server Protocol (LSP) servers powered by Tree-sitter

CI Status CI Status Book crates.io Rust Version

auto_lsp is a generic library for creating Abstract Syntax Trees (AST) and Language Server Protocol (LSP) servers.

It leverages crates such as lsp_types, lsp_server, salsa, and texter, and generates the AST of a Tree-sitter language to simplify building LSP servers.

auto_lsp provides useful abstractions while remaining flexible. You can override the default database as well as all LSP request and notification handlers.

It is designed to be as language-agnostic as possible, allowing any Tree-sitter grammar to be used.

See ARCHITECTURE.md for more information.

Features

  • Generates a thread-safe, immutable and iterable AST with parent-child relations from a Tree-sitter language.
  • Supports downcasting of AST nodes to concrete types.
  • Integrates with a Salsa database and parallelize LSP requests and notifications.

📚 Documentation

Examples

Cargo Features

  • lsp_server: Enables the LSP server (uses lsp_server).

Inspirations / Similar Projects