You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)