Skip to content

v1.11.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 05:32
· 142 commits to main since this release

[1.11.0] - 2026-07-18

New Features

  • VBA extraction is now driven by a declarative rule table. Every Sub / Function / Property, Implements, Dim, Const, Enum, Event, Type, and Declare declaration is matched by an explicit VbaExtractionRule with a stable id, plain-English description, and isolated emit body — no more giant inline if/else cascades inside the per-concern sweepers. The new test suite enforces the table shape and a non-empty invariant per concern, so an accidentally-emptied rule set fails loudly at module load instead of silently dropping a whole symbol family. Pure structural refactor: zero behavior change, the full existing VBA test suite passes unchanged. (#153)
  • The VBA extraction pipeline now reports per-stage wall-clock timing on demand, gated by the CODEGRAPH_VBA_TIMING env var. Set CODEGRAPH_VBA_TIMING=1 for a per-file block on stderr (preprocess / classifier / walk stages, plus the inner conditional-compilation lexer+parser), or =2 to add a per-process aggregate across the whole index run. With the env var unset the default path stays at zero overhead — no Map allocations, no Map writes — so existing codegraph index runs are unaffected. Useful for diagnosing why a particular .bas or .cls is slow to extract, or for tuning the extraction budget on a large Access project. (#156)
  • VBA event-handler relationships are now materialized in the graph at index time. A WithEvents m_X As ClassName binding in a form combined with a matching m_X_<EventName> handler Sub is now connected to the RaiseEvent <EventName> site via a single event-handler edge, so codegraph_explore reaches the handler in one call instead of the three-hop walk the vba-event-tracer skill used to repeat on every query. Projects with no WithEvents bindings are unaffected; the FORMS-* test suite reports zero new edges. (#150)
  • The Dysflow-specific VBA extractors — form/report SaveAsText, test manifests, and test sequences — are now opt-out-able. If your .bas/.cls files happen to live next to legacy .form.txt/.report.txt files (or test-manifest JSON from a different system) that you don't want expanded into the graph, set vba.dysflowExport: false in your project's codegraph.json; the Dysflow file types are then tracked as just a file node, while the rest of the VBA pipeline keeps behaving exactly as before. The Dysflow extractors also now live behind a FrameworkResolver you can discover alongside the other frameworks. (#154)
  • A spike report on using the tree-sitter-vbnet grammar as a primary parser for VBA is now available. It classifies the per-construct failure modes of a representative Dysflow-exported corpus against the grammar (probes cover procedures, classes, Dim, Implements, WithEvents, RaiseEvent, DoCmd, With, control flow, and string-literal SQL), and includes a go/no-go recommendation for the next phase. (#155)