Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Slang Server Extended: Verilog/SystemVerilog LSPNew to Visual Studio Code? Get it now.
Slang Server Extended: Verilog/SystemVerilog LSP

Slang Server Extended: Verilog/SystemVerilog LSP

Caio Plazas

|
2 installs
| (0) | Free
Verilog and SystemVerilog support via an extended fork of the slang language server, with support for unusual/ASIC project configurations (workDir, recursive incdirs, include-fragment resolution, a bundled Linux binary, and more). Fork of hudson-trading/slang-server.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Slang Server Extended: Verilog/SystemVerilog LSP

A community fork of hudson-trading/slang-server (built on the Slang library), extended to work well with unusual / ASIC-style project configurations — shared work directories, deep flist-driven RTL trees, and header/fragment files that are only ever `included rather than compiled on their own.

Everything upstream does, this does too. The additions below are the reason this fork exists; they are additive and (unless noted) off by default, so nothing from upstream changes behavior unless you opt in.

How this fork is built: the changes here are written with a combination of a locally-run Qwen3 (32B) model and Claude prompts. It's a personal fork maintained to unblock real ASIC/FPGA workflows — but I'm happy to contribute any of these ideas or changes back upstream if the maintainers are interested. Feedback, issues, and suggestions are welcome.

What this fork adds over upstream

Feature What it does
resolveIncludeFragments (on by default) .vh/.svh files that are only ever `included elsewhere used to parse standalone and emit bogus "expected a module" errors, with no working goto/hover/references inside them. They're now analyzed in the context of the file(s) that include them, so diagnostics are real and position features (goto-definition, hover, find-references, completions) work inside headers.
workDir Shared work-directory support for ASIC flows: relative paths in flags (e.g. -F ./design.f) resolve as if the server were launched from workDir, exactly like cd <workDir> && <tool> <flags>.
Recursive incdirs for big RTL trees Guidance + tests for -F (chdir-into-flist) plus slang's -I .../ recursive include-dir glob, so large multi-folder designs need no per-folder config and pick up new subfolders automatically.
Bundled Linux binary The linux-x64 VSIX ships the slang-server binary inside the extension — install and it just works, no separate server download or PATH setup.
CentOS 7 / glibc 2.17 builds A fully-static build option so the bundled binary runs on old-but-common enterprise Linux, not just recent glibc. The packaging step refuses to bundle a non-optimized binary.
Separate extension identity Published as Slang Server Extended under its own id and slangCustom.* settings namespace, so it can be installed side by side with the original without the two fighting over settings.

See FORK_FEATURES.md for full configuration details and examples.

Quick start

Install Slang Server Extended from the VS Code Marketplace (search the name, or code --install-extension CaioPlazas.slang-server-extended). On Linux the server binary is bundled, so there's nothing else to install. You can also grab the VSIX from the Releases page.

To point the extension at your own slang-server build instead, set slangCustom.path in your settings. Project-level flags live in .slang/server.json. See the upstream docs for the shared feature and configuration reference.

Features (inherited from upstream)

Quick, high quality lint messages from Slang on every keystroke, with links to the Slang warning reference.

Lints

Informative hovers and gotos on nearly every symbol across your workspace and libraries.

Hovers

Find references across your entire workspace.

Go to References

Configurable inlay hints that provide useful information.

Inlays

Intuitive completions for module instances and macros, as well as scope members of packages, modules, structs, and more.

Completions

HDL-specific features that let you set a filelist or top level for a design, browse the elaborated hierarchy, and interact with waveform viewers.

HDL Features

For more detailed feature info, see the upstream docs.

Credits & license

This is a fork of hudson-trading/slang-server, which is built on Slang by Mike Popoloski. All original work belongs to its respective authors; this fork keeps the upstream MIT license. Thank you to the Hudson River Trading team and the Slang project for the foundation this builds on.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft