A language server for the Web.
WEBlsp is an implementation of the Language Server Protocol (Work In Progress) providing full-featured language support for HTML and CSS, including code completion, diagnostics, hover, and more. It uses HTMLlsrs and CSSlsrs, our own modern and fast language services, designed to be integrated into language servers written in Rust or via WebAssembly.
🐛 Report a bug, please read our contributing guidelines and code of conduct first.
🚨 Report a security vulnerability, and be sure to review our security policy.
💬 Join the discussion, if you have any questions, ideas, or suggestions.
To get started with WEBlsp, you will need to install the following tools:
- Rust
- Node.js
- PNPM
- Just
- wasm-bindgen-cli (optional, for building WASM binaries)
- wasm-opt (optional, for WASM benchmarks and releases)
Useful commands:
Command | Description |
---|---|
just install |
Install NPM dependencies across all crates and packages |
just build |
Build WEBlsp crate and every language services |
just build-wasm |
Build WASM packages |
just test |
Run tests for all crates and packages |
just benchmark |
Run native, WASM, and E2E benchmarks |
WEBlsp is a monorepo that contains the following crates (Rust packages):
Name | Description | Crates.io | README |
---|---|---|---|
weblsp |
The main language server | WIP | README.md |
csslsrs |
CSS language service | WIP | README.md |
Additionally, WEBlsp contains the following NPM packages (JavaScript packages):
Name | Description | NPM | README |
---|---|---|---|
vscode |
WEBlsp VSCode extension | WIP | README.md |
csslsrs |
CSSlsrs API for JS/TS | WIP | README.md |
benchmark-wasm |
Benchmark WASM packages | WIP | README.md |
ls-tests-benchmarks |
End-to-end tests and benchmarks for WEBlsp | WIP | README.md |