Slangd - SystemVerilog Language Server
November 2, 2025 ยท View on GitHub
Slangd is a SystemVerilog language server implementing the Language Server Protocol. Built on the Slang compiler frontend, it provides accurate language intelligence for SystemVerilog projects.
Features
- Diagnostics - Real-time syntax and semantic error detection
- Go-to-definition - Navigate to symbol definitions across files
- Document symbols - Outline view for modules, classes, packages, and more
- Workspace indexing - Fast cross-file navigation and symbol resolution
- Flexible configuration - Auto-discovery with directory skipping, explicit file lists, path filtering, and more
Development
Project Goals
- Build a SystemVerilog Language Server (
slangd) using Slang and C++23 - Provide a reusable, language-agnostic LSP core library (
lsp) - Implement clean asynchronous LSP communication using
jsonrpcandasio - Follow modern C++ design practices for robustness and maintainability
Requirements
- Bazel 7.0+ for bzlmod support
- Clang 20+ for C++23 support
Building and Testing
Build the project:
bazel build //...
Run tests:
bazel test //...
Generate compile_commands.json for IDE integration (optional):
bazel run @hedron_compile_commands//:refresh_all
License
MIT - see LICENSE file.