DNAKode/vbnet-lsp
59.5
Adequate · 1 October 2026
13.4k
lines of production code
VB.NET
with TypeScript, JavaScript
2
measurements over time
What this system is
This system is a VB.NET language support infrastructure that provides a Language Server Protocol (LSP) implementation and debugging capabilities for the Visual Basic .NET ecosystem. It enables code intelligence features such as completion, diagnostics, navigation, and refactoring across multiple editors including VS Code, Neovim, Emacs, Zed, and Claude Code. The project also includes a Tree-sitter grammar for syntax parsing and a comprehensive test harness to validate server behavior and editor integrations.
Features
Add Emacs eglot LSP client harness for VB.NET smoke testing
Introduces a new headless Emacs-based test harness in the \test-explore/clients/emacs\ directory to validate LSP server compliance outside of VS Code. The implementation uses Emacs 29's built-in \eglot\ client to connect to the VB.NET language server via stdio, executing smoke tests that verify project loading, hover information, and definition lookups. The package includes a PowerShell runner (\run-tests.ps1\) that automatically downloads a portable Emacs instance and executes the Emacs Lisp test script (\eglot-smoke.el\), providing a portable, CI-friendly method for exercising the VB.NET LSP protocol.
test-explore/clients/emacs · high confidence
Add VB.NET grammar and multi-language bindings
Introduces a new Tree-sitter grammar for VB.NET, providing syntax highlighting and code navigation support for Visual Basic .NET files. The change includes the core grammar definition, a generated C parser, and language bindings for Node.js, Python, Rust, Go, and Swift, enabling consumers to parse VB.NET source code programmatically.
tree-sitter-vbnet · high confidence
Add VB.NET language server integration for Claude Code
This change introduces a new distribution snapshot for the VB.NET language server (\vbnet-lsp\) as a plugin for Claude Code. It includes the plugin manifest (\plugin.json\) which registers the \vbnet-ls\ server over stdio for \.vb\ files, along with a GitHub Actions workflow (\ci.yml\) that validates the plugin on both Ubuntu and Windows using .NET SDK 10.0. A PowerShell export script (\export-integration-repos.ps1\) is added to mirror these snapshot files into standalone repositories, and documentation is provided in \integrations/README.md\ and the plugin's own \README.md\.
integrations · high confidence
Add editor adapter snapshots for Neovim, Emacs, and Zed
The \adapters\ directory now includes thin, editor-specific adapter packages that launch the shared VB.NET language server. This change adds the \vbnet-lsp.nvim\ Neovim plugin (supporting both the VB.NET and Roslyn backends), the \vbnet-eglot\ Emacs package, and the \vbnet-zed\ Zed extension (including language configuration, Tree-sitter grammar queries, and \netcoredbg\ debug adapter support). It also introduces a PowerShell export script to mirror these snapshots into standalone distribution repositories and adds corresponding CI workflows to validate each adapter.
adapters · high confidence
Automated bundling of debugger and language server assets
The extension now includes build scripts to automatically download, extract, and bundle the netcoredbg debugger and Roslyn language server components for all supported platforms (Windows, macOS, Linux). This ensures the extension ships with the necessary binaries and assets without requiring manual setup, and includes a validation step to verify the integrity of the Roslyn bundle before use.
src/extension/scripts · high confidence
Initial VB.NET support for the Zed editor
This change introduces the first version of the VB.NET extension for Zed, enabling language server (vbnet-ls) and debugging (netcoredbg) capabilities within the editor. The extension automatically downloads the required language server and debugger binaries for Windows, Linux, and macOS (x64 and ARM64), and provides configuration for launching and attaching to VB.NET processes. It also includes a suite of test fixtures and probes to verify LSP and DAP protocol compliance across various project types, including single files, .vbproj, .sln, .slnf, and .slnx solutions.
adapters/zed/vbnet-zed, test-explore/clients/zed · high confidence
Initial release of VB.NET language support for VS Code
This change introduces the first public release of the VB.NET Language Support extension for Visual Studio Code. It provides first-class language features including IntelliSense (completion, signature help, hover), diagnostics, formatting, rename, and code actions (including Roslyn-backed Extract Method). The extension supports navigation features like go-to-definition, call/type hierarchy, and document highlights. It handles both modern SDK-style and legacy non-SDK-style VB.NET projects, with a best-effort fallback for older Framework projects. Debugging is supported via a bundled netcoredbg. The release also includes configuration options for workspace context selection and English diagnostic output.
src/extension · high confidence
Introduce VB.NET LSP protocol layer with named pipe and stdio transports
The VB.NET language server now includes a dedicated protocol layer that implements the Language Server Protocol (LSP) communication stack. This adds support for two transport mechanisms: named pipes (the primary method, outputting the pipe name to stdout for client connection) and standard I/O (for compatibility). The implementation includes the full JSON-RPC 2.0 message infrastructure, a message dispatcher for routing LSP requests and notifications, and comprehensive type definitions for LSP capabilities and messages, enabling the VB.NET extension to communicate with editors using the standard LSP protocol.
src/VbNet.LanguageServer.Vb/Protocol · high confidence
Introduce exploratory test harnesses for VB.NET across multiple editors
The \test-explore\ directory now provides a unified framework for headless and multi-environment exploratory testing of VB.NET language support. It includes a central PowerShell runner (\run-tests.ps1\) that orchestrates suites across VS Code, Emacs, Neovim, and Helix, as well as large-solution stress tests using DWSIM. The setup introduces a structured test hierarchy (unit, component, LSP integration, and end-to-end) documented in \TEST\_SUITE.md\, automated result logging via \Update-TestResults.ps1\, and specific client configurations like the Helix \languages.toml\ template. This allows developers to validate VB.NET LSP behavior across different editors and environments outside of standard CI.
test-explore · high confidence
Neovim LSP client harness and plugin prototype for VB.NET
A new headless Neovim-based LSP client harness has been added to validate the VB.NET language server outside of Visual Studio Code. This includes a PowerShell test runner (\run-tests.ps1\) that bootstraps Neovim v0.11.0 and executes smoke tests against the VB.NET server, as well as the Roslyn C\# and VB.NET language servers. The harness also introduces a minimal Neovim plugin prototype (\vbnet\_lsp\) that allows users to configure and start either the VB.NET or Roslyn LSP backends, supporting features like solution targeting and source-generated document handling.
test-explore/clients/nvim · high confidence
New LSP services for call hierarchy, code actions, and document navigation
The language server now implements several new LSP capabilities in the VB.NET services layer. Call hierarchy support allows users to view incoming and outgoing calls for symbols. Code actions now include Roslyn-backed refactorings, specifically the Extract Method action, alongside source actions for adding Option Strict/Explicit/Infer. Document navigation is enhanced with document highlighting to show all references to a symbol, document links to detect and navigate URLs in comments, and improved definition lookup that can resolve symbols from metadata back to source code.
src/VbNet.LanguageServer.Vb/Services · high confidence
New Zed extension verification and readiness scripts
Added a suite of PowerShell and Bash scripts to validate the VB.NET Zed extension and its integration environment. The \verify-zed-extension.ps1\ script checks that the extension manifest, required source files, and Tree-sitter grammar are present and correctly configured. \verify-zed-probes.ps1\ and \verify-zed-real-server.ps1\ build and run protocol probes to ensure the language server and debugger adapters function correctly. \verify-zed-readiness.ps1\ orchestrates these checks along with optional live smoke tests against a Zed instance. \verify-zed-release-assets.ps1\ confirms that necessary server binaries are available on GitHub for release, while \verify-zed-tree-sitter.ps1\ validates the grammar against test fixtures. Additionally, \scripts/wsl/ensure-dotnet10.sh\ configures the .NET 10 runtime path in WSL user profiles.
scripts · high confidence
VB.NET Language Server core initialization and service wiring
The main Language Server class in src/VbNet.LanguageServer.Vb/Core/LanguageServer.vb has been introduced (or significantly restructured) to orchestrate the VB.NET language server. This file initializes and wires up the core workspace layer (WorkspaceManager, DocumentManager) and a comprehensive suite of language services including diagnostics, completion, hover, definition, references, rename, symbols, folding, formatting, signature help, semantic tokens, code actions, call/type hierarchy, document highlights, selection ranges, type definitions, implementations, and document links. It also manages server lifecycle, configuration options (such as memory limits, project search paths, and feature toggles), and handles workspace loading logic.
src/VbNet.LanguageServer.Vb/Core · high confidence
VB.NET Language Server entry point and configuration
The VB.NET Language Server now includes its main entry point (Program.vb) and documentation (NUGET\_README.md). Users can launch the server via standard input (stdio) or named pipes, with support for configuring the UI culture via environment variables (VBNET\_UI\_CULTURE, DOTNET\_CLI\_UI\_LANGUAGE, PreferredUILang) and overriding the MSBuild path. The server also exposes command-line options for log level, debug mode, and help/version information.
src/VbNet.LanguageServer.Vb · high confidence
VB.NET Language Support extension and server scaffolded with initial documentation and release artifacts
The repository now includes the core structure for the VB.NET Language Support extension, including the solution file, install scripts, and comprehensive documentation (README, Project Plan, Release Artifacts). The changelog indicates that version 0.1.20 introduces significant behavioral improvements for large solution loading, such as honoring configured solution paths to avoid broad workspace scans, deferring diagnostics until the Roslyn workspace is loaded, and ensuring configuration changes do not block LSP requests during startup. Previous versions (0.1.10–0.1.19) added legacy project fallback support, cross-project symbol resolution for C\# references, workspace context selection commands, and debugger workarounds for netcoredbg stack trace issues.
(repo-wide) · high confidence
VB.NET Language Support extension initializes with debugging, runtime resolution, and language server management
The VB.NET Language Support extension now activates with full debugging integration, automatically resolving .NET 10.0 runtime dependencies via the VS Code .NET Runtime extension and configuring the debugger to infer program paths from project files or prompt the user if missing. The extension manages the VB.NET language server lifecycle, supporting both named pipe and stdio transports, and allows users to switch between the native VB.NET backend and the Roslyn backend. It also provides a status bar to monitor server state and workspace context (solution, single project, or all projects), while ensuring diagnostics and output are configurable for consistent English-language error messages.
src/extension/src · high confidence
Behavioural changes
Added licensing and notice files for netcoredbg macOS arm64 bundle
The third\_party/netcoredbg directory now includes a NOTICE file for the macOS arm64 build (sourced from the Cliffback community release, tag 3.1.3-1062) and a LICENSE file containing the MIT License from Samsung Electronics. These files ensure proper attribution and license compliance for the bundled netcoredbg binaries and supporting libraries.
_third\party · high confidence
Support for legacy VB.NET projects and improved workspace loading
The language server now supports legacy (non-SDK-style) VB.NET projects by introducing a new projection model that parses .vbproj files and maps their settings (such as target framework, references, and options) to an SDK-style equivalent. This allows the workspace manager to load and process older VB projects that were previously unsupported. Additionally, the workspace loading mechanism has been hardened with fallback logic to ensure legacy projects load promptly even in large solutions, and references to C\# netstandard projects within legacy VB solutions are now correctly resolved.
src/VbNet.LanguageServer.Vb/Workspace · high confidence
Test coverage
Add VB.NET LSP smoke test harness and fixtures; Add VB.NET test projects for harness validation; Add VS Code integration test harness for VB.NET extension; Added DWSIM LSP test harness for smoke and service validation; Added VS Code integration test harness for VB.NET extension; Added integration tests for VB.NET Language Server features; Added tests for VB.NET language server workspace and document management; Added tests for extension manifest configuration and commands; Added unit tests for VB.NET Language Server services.
Dependencies
Initial dependency manifests for Zed adapter, VS Code extension, and Tree-sitter grammar
This change introduces the initial dependency manifests for several new or scaffolded components. The Zed adapter (\adapters/zed/vbnet-zed\) is added with a Rust \Cargo.toml\ and lockfile, depending on \zed\_extension\_api\ 0.7.0. The VS Code extension (\src/extension\) is scaffolded with a \package.json\ and lockfile, targeting VS Code 1.80.0 and using \vscode-languageclient\ 9.0.1. The VB.NET language server project (\src/VbNet.LanguageServer.Vb\) is added, targeting .NET 10.0 and referencing Microsoft.CodeAnalysis 4.12.0 packages, along with an explicit override for \System.Security.Cryptography.Xml\ 10.0.6 to address a vulnerability. Additionally, the \tree-sitter-vbnet\ grammar is added with manifests for Rust, Node.js, Go, Python, and Swift, and various test fixtures are updated to target .NET 10.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 50 → 60 (+9.8)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 67 → 68 (+1.4)
- Architecture 96 → 83 (-13.7)
- Maturity 63 → 62 (-1.8)
- Readiness 59 → 59 (+0.0)
- Security 33 → 55 (+22.3)
Resolved (13)
- Documentation: no architecture or design documentation (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- High CVE: [GHSA redacted] (src/extension/package-lock.json)
- High CVE: [GHSA redacted] (src/extension/package-lock.json)
- High CVE: [GHSA redacted] (src/extension/package-lock.json)
- High CVE: [GHSA redacted] (src/extension/package-lock.json)
- Hotspot: src/VbNet.LanguageServer.Vb/Workspace/LegacyVbProjectReader.vb (src/VbNet.LanguageServer.Vb/Workspace/LegacyVbProjectReader.vb)
- Hotspot: src/extension/src/extension.ts (src/extension/src/extension.ts)
- Medium CVE: [GHSA redacted] (src/extension/package-lock.json)
- Members sharing a duplicated core (15 members, 50+ identical tokens) (src/VbNet.LanguageServer.Vb/Services/CallHierarchyService.vb)
- Members sharing a duplicated core (5 members, 50+ identical tokens) (src/VbNet.LanguageServer.Vb/Services/CallHierarchyService.vb)
- Members sharing a duplicated core (6 members, 50+ identical tokens) (src/VbNet.LanguageServer.Vb/Services/CallHierarchyService.vb)
New (40)
- Build failed
- ClassTooLong: Program (test-explore/vbnet-lsp/VbNetLspSmokeTest.Vb/Program.vb)
- Documentation: no contributor guidance (README.md)
- Duplicated block (15 lines × 2) (test-explore/vbnet-lsp/VbNetLspSmokeTest.Vb/Program.vb)
- Duplicated block (23 lines × 4) (test-explore/clients/zed/probes/dap-probe/Program.cs)
- Duplicated block (34 lines × 2) (test-explore/clients/zed/probes/probe-harness/Program.cs)
- Duplicated block (45 lines × 2) (test-explore/clients/zed/probes/dap-probe/Program.cs)
- Duplicated block (8 lines × 2) (test-explore/clients/zed/probes/dap-probe/Program.cs)
- Duplicated block (8 lines × 2) (test-explore/clients/zed/probes/probe-harness/Program.cs)
- EmptyCatchBlock (test-explore/vbnet-lsp/VbNetLspSmokeTest.Vb/Program.vb)
- FileTooLong: VbNetLspSmokeTest.Vb/Program.vb (test-explore/vbnet-lsp/VbNetLspSmokeTest.Vb/Program.vb)
- High CVE: [GHSA redacted] (src/extension/package-lock.json)
- High CVE: [GHSA redacted] (src/extension/package-lock.json)
- High CVE: [GHSA redacted] (src/extension/package-lock.json)
- High CVE: [GHSA redacted] (src/extension/package-lock.json)
- Inconsistent factory method naming convention. One method is named 'Success' (adjective/verb-like) and the other 'CreateError' (verb+noun). This breaks the symmetry of the API surface for constructing responses.
- Medium vulnerability: [GHSA redacted] (src/extension/package-lock.json)
- Members sharing a duplicated core (15 members, 50+ identical tokens) (src/VbNet.LanguageServer.Vb/Services/CallHierarchyService.vb)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (test-explore/clients/zed/probes/dap-probe/Program.cs)
- Members sharing a duplicated core (5 members, 50+ identical tokens) (src/VbNet.LanguageServer.Vb/Services/CallHierarchyService.vb)
- …and 20 more
Architecture
- Containers 11 added · 0 removed · contexts 0 added · 0 removed · edges 0 added · 0 removed
Added containers (11)
- cli:CSharpSample
- cli:DebugConsole
- cli:VbNet.Zed.DapProbe
- cli:VbNet.Zed.LspProbe
- cli:VbNet.Zed.ProbeHarness
- cli:VbNet.Zed.RealServerHarness
- cli:VbNetLspSmokeTest.Vb
- cli:ZedFixture
- cli:ZedSlnFixture
- cli:ZedSlnfFixture
- cli:ZedSlnxFixture
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
DNAKode/vbnet-lsp was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 0ce31f47c3dcb1ed351e468b04591a39a97056e7 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.