Skip to content

First-class Visual Basic (VB.NET) — get a grammar past the parse-rate bar, then index it #165

Description

@joyful-ii-V-I

What is missing

Visual Basic .NET still carries a large share of enterprise and legacy .NET code. It is one of only
two languages on the SCIP indexer list that ripwire does not index yet; the other is Scala, which
has its own kit. The stated plan on #70 is to support every language on that list first-class. The
catch here is the grammar, not the integration.

The evidence

The only VB.NET tree-sitter grammar, CodeAnt-AI/tree-sitter-vb-dotnet, was checked and found to
have:

After the grammar come two things ripwire has not done before: case-insensitive name resolution (a
first), and a VB-only call graph that cannot disturb C# edges in mixed solutions. The kit carries
design notes for both, plus type characters, root namespace, Module, Partial,
Handles/WithEvents, line continuations, late binding and XML literals.

Size

Large, and it depends on which route the grammar takes:

  • Route A — upstream adds a license and accepts fixes: medium for the grammar, since an upstream
    PR and a fork already hold many of the fixes, plus a normal language integration about the size of
    the Dart landing.
  • Route B — no upstream response: large. A new grammar with a test corpus is the bulk of it.

Either way the first milestone is small and useful on its own: STEP 0 parse-rate numbers for
today's grammar on three public corpora, measured with two instruments that must agree, plus the
work list of failing constructs. Grammar work and ripwire integration can be done by different
people; the STEP 0 numbers are the handoff between them.

Prerequisites

Nothing has to merge first. Before designing any VB↔C# bridge, read #126 (Kotlin) and #136
(declined-call disclosure); the kit explains why.

Where to start

prompts/help-wanted/visual-basic-language.md is a self-contained prompt for a coding agent. It
covers why VB matters, the verified state of the grammar with links, the STEP 0 measurement, the
integration path file by file (taken from the Dart and C# landings), the VB design notes, the
cross-language question with the Kotlin lesson, the acceptance criteria, the traps, and what the PR
description must contain. Like every prompt in prompts/, it ends by writing a plan and
stopping
— a maintainer agrees the plan before any code is written.

Comment here to claim it, naming the route.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions