Open-source VB.NET language tooling built around Roslyn:
- A VS Code extension: VB.NET Language Support
- Standalone language server binaries for non-VS Code LSP clients
- Thin editor adapters for non-VS Code clients (Neovim, Emacs)
- Marketplace: https://marketplace.visualstudio.com/items?itemName=dnakode.vbnet-language-support
- VSIX packages are also attached to GitHub Releases for manual install
- Includes:
- VB.NET language server backend (default)
- Optional Roslyn backend support
- Bundled netcoredbg for debugging
Install as a global .NET tool (recommended):
dotnet tool install --global DNAKode.VbNet.LspOr download from GitHub Releases:
- Releases: https://github.com/DNAKode/vbnet-lsp/releases
- Language server artifacts:
vbnet-language-server-win-x64.zipvbnet-language-server-linux-x64.tar.gzvbnet-language-server-osx-x64.tar.gzvbnet-language-server-osx-arm64.tar.gz
- VSIX artifacts:
vbnet-language-support-win32-x64.vsixvbnet-language-support-linux-x64.vsixvbnet-language-support-darwin-x64.vsixvbnet-language-support-darwin-arm64.vsix
Use these with any LSP client that supports stdio or named pipes.
Use editor-native adapters that launch the standalone language server:
- Neovim adapter source:
adapters/nvim/vbnet-lsp.nvim - Emacs
eglotadapter source:adapters/emacs/vbnet-eglot
Packaging guidance for native channels is documented in docs/editor-packaging.md.
- Roslyn-backed semantic analysis and project loading (
.sln,.slnf,.slnx,.vbproj) - Core language features: diagnostics, completion, hover, definition, references, rename, symbols
- Advanced navigation: type definition, implementation, call hierarchy, type hierarchy
- Editing support: formatting, semantic tokens, signature help, folding ranges
- Debugger integration in the VS Code extension via bundled netcoredbg
Current implementation details and roadmap are tracked in PROJECT_PLAN.md and docs/features.md.
- Install the extension from the Marketplace.
- Open a folder containing a
.slnor.vbproj. - Start coding in
.vbfiles.
Useful commands:
VB.NET: Select Workspace SolutionVB.NET: Show LogsVB.NET: Toggle LSP TraceVB.NET: Reload Workspace
- Install the global tool (
dotnet tool install --global DNAKode.VbNet.Lsp) or download and extract the server artifact for your platform from Releases. - Configure your editor/client to launch the server with
--stdio.
Examples:
# Global tool
vbnet-ls --stdio
# Linux/macOS (app host)
./VbNet.LanguageServer --stdio
# Linux/macOS/Windows (dotnet host)
dotnet VbNet.LanguageServer.dll --stdio
# Windows (app host)
VbNet.LanguageServer.exe --stdioThe server also supports --pipe (named pipe transport), --logLevel, and --msbuildPath.
- .NET SDK 10.0 or later
- For VS Code extension development: Node.js 18+
- For VS Code users: VS Code 1.80+
Notes:
- Dev containers / SSH / WSL are supported if .NET SDK is available in the runtime environment.
- VS Code Web (
vscode.dev/github.dev) is not supported.
GitHub Actions release automation is available in .github/workflows/release.yml and publishes:
- Platform-specific standalone language server archives
- Platform-specific VSIX packages
- A GitHub Release containing all artifacts
The dotnet tool package (DNAKode.VbNet.Lsp, command: vbnet-ls) is built in
.github/workflows/publish-dotnet-tool.yml and published to NuGet when
NUGET_API_KEY is configured.
Editor adapters are validated separately in .github/workflows/editor-adapters.yml
and are intended for editor-native distribution channels (for example, Neovim
plugin managers and MELPA/package-vc for Emacs).
Downstream snapshot sync guidance (adapters + Claude plugin) is documented in docs/downstream-repositories.md.
The release workflow runs on tag push (v*) and can also be run manually with workflow_dispatch.
The extension supports backend selection:
vbnet(default)roslyn
Only one backend is active at a time by design (single active backend) to reduce regression risk.
For Roslyn packaging constraints (.roslyn + .roslyn-vb split), see docs/roslyn-packaging.md.
- Architecture
- Development Guide
- Configuration
- Feature Matrix
- Roslyn Packaging
- Roslyn Comparison Notes
- Editor Adapter Packaging
- Adapter Release Checklist
- Claude Plugin Marketplace Plan
- Downstream Repositories
- Release Artifacts
Build from source:
dotnet build src/VbNet.LanguageServer.Vb
dotnet test
cd src/extension && npm ci && npm run compileFor full workflows and exploratory harnesses, see:
Issues, bug reports, docs improvements, and code contributions are welcome.
- Issues: https://github.com/DNAKode/vbnet-lsp/issues
- Discussions: https://github.com/DNAKode/vbnet-lsp/discussions
MIT - see LICENSE.