6 releases (breaking)

0.7.0 Jun 17, 2025
0.6.1 Jun 9, 2025
0.5.0 Mar 14, 2025
0.4.0 Mar 3, 2025
0.1.0 Jan 20, 2025

#578 in Text editors

Download history 9/week @ 2025-03-19 5/week @ 2025-03-26 4/week @ 2025-04-09 4/week @ 2025-04-16 5/week @ 2025-04-30 8/week @ 2025-05-07 19/week @ 2025-05-14 113/week @ 2025-05-28 119/week @ 2025-06-04 112/week @ 2025-06-11 71/week @ 2025-06-18 21/week @ 2025-06-25 11/week @ 2025-07-02

245 downloads per month
Used in 3 crates

GPL-3.0 license

64KB
1.5K SLoC

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).
  • wasm: Enables WASM support (compatible only with wasi-p1-threads).

Inspirations / Similar Projects

Dependencies

~14–23MB
~301K SLoC