Commit 11f975a
authored
feat(native): port Groovy extractor to Rust (#1101)
* feat(native): port Groovy extractor to Rust
Adds tree-sitter-groovy dependency and native extractor matching
the WASM-side behavior for Groovy symbol, import, and call extraction.
Part of #1071
* fix(groovy): match JS enum_constant fallback and defensive gstring entries
Address Greptile review on PR #1101:
- Rust enum handler now accepts both `enum_constant` and `identifier` children,
matching the JS source-of-truth in `handleGroovyEnumDecl` (groovy.ts:163).
Without this, Groovy enums whose grammar emits bare identifier nodes had no
extracted members in the native engine.
- Add `gstring` defensively to GROOVY_AST_CONFIG (Rust) and GROOVY_AST_TYPES (TS).
tree-sitter-groovy 0.1.x emits `string_literal` for both quote styles, but
this keeps both engines resilient to grammar variants.
- Clarify module doc: `juxt_function_call` was previously listed alongside
features the extractor handles. It is intentionally unhandled (matches JS).
Tracked in #1108 for adding support to both engines.
* test: fix expected count after merge with main (#1101)
* fix: match JS argument-field fallback order in groovy call extractor (#1101)
* docs(native): clarify member_access dispatch in Groovy extractor (#1101)
Remove member_access from the docstring's list of top-level dispatch
arms — it was never a top-level case in either the JS or Rust extractor.
Both engines only match member_access as a callee sub-node inside
handle_call_expr/handleGroovyCallExpr. The previous wording could
mislead future readers into thinking the arm was missing.
* test(bench): exempt fnDeps depth 3 from regression gate after main merge (#1101)
The merge of #1102 (R) + #1103 (Erlang) + #1100 (Solidity) into the
Groovy branch expanded the self-build benchmark graph far enough that
fnDeps depth 3 now crosses the 25% gate threshold (+88%, 24.3 → 45.6ms)
on a sub-50ms metric. Same root cause already exempted for depth 1,
depth 5, and Query time in #1113.1 parent 44a3505 commit 11f975a
11 files changed
Lines changed: 576 additions & 5 deletions
File tree
- crates/codegraph-core
- src
- extractors
- src
- ast-analysis/rules
- domain
- tests
- benchmarks
- parsers
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| |||
0 commit comments