Skip to content

[FEATURE]:Add Visual Basic .NET (VB.NET) Language Server Protocol (LSP) Support #9534

@k-wakamatsu-tms

Description

@k-wakamatsu-tms

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

What do you want to change or add?

I would like to request Language Server Protocol (LSP) support for Visual Basic .NET (VB.NET) in OpenCode, similar to the existing C# LSP integration.

Currently, OpenCode provides built-in LSP support for C#, but .vb files are not recognized by any language server.
Adding VB.NET LSP support would allow OpenCode to be used effectively in mixed-language .NET codebases and in legacy enterprise environments where VB.NET is still actively maintained.


Why is this important / What are the benefits?

  • Large existing VB.NET codebases
    VB.NET is still widely used in long-lived systems such as ASP.NET WebForms, WinForms, and internal enterprise tools. Many teams maintain VB and C# side by side.

  • Roslyn-based implementation is technically feasible
    VB.NET is fully supported by the Roslyn compiler platform, which already provides semantic analysis, diagnostics, and symbol resolution. This makes implementing an LSP server for VB.NET technically viable and aligned with how C# LSP works.

  • Parity with C# experience
    Developers expect the same level of language tooling for VB as for C# in modern editors. Without LSP support, VB projects are significantly disadvantaged in OpenCode.

  • Better adoption in enterprise / legacy modernization projects
    OpenCode would become more attractive for teams modernizing legacy .NET systems who cannot immediately migrate away from VB.NET.


Suggested implementation (optional guidance)

  • Provide a built-in VB.NET LSP configuration, similar to the existing C# setup
  • Or allow an officially documented custom LSP example for .vb files (command, file extensions, workspace handling)
  • Even partial support (diagnostics + basic navigation) would be highly valuable as a first step

Metadata

Metadata

Assignees

Labels

discussionUsed for feature requests, proposals, ideas, etc. Open discussion

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions