@colbymchenry/codegraph-win32-x64 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/lib/dist/bin/codegraph.d.ts +1 -1
  2. package/lib/dist/bin/codegraph.d.ts.map +1 -1
  3. package/lib/dist/bin/codegraph.js +232 -61
  4. package/lib/dist/bin/codegraph.js.map +1 -1
  5. package/lib/dist/bin/command-supervision.d.ts.map +1 -1
  6. package/lib/dist/bin/command-supervision.js +4 -1
  7. package/lib/dist/bin/command-supervision.js.map +1 -1
  8. package/lib/dist/db/index.d.ts +17 -5
  9. package/lib/dist/db/index.d.ts.map +1 -1
  10. package/lib/dist/db/index.js +68 -12
  11. package/lib/dist/db/index.js.map +1 -1
  12. package/lib/dist/db/migrations.d.ts +1 -1
  13. package/lib/dist/db/migrations.d.ts.map +1 -1
  14. package/lib/dist/db/migrations.js +19 -1
  15. package/lib/dist/db/migrations.js.map +1 -1
  16. package/lib/dist/db/queries.d.ts +76 -1
  17. package/lib/dist/db/queries.d.ts.map +1 -1
  18. package/lib/dist/db/queries.js +180 -0
  19. package/lib/dist/db/queries.js.map +1 -1
  20. package/lib/dist/db/schema.sql +19 -0
  21. package/lib/dist/directory.d.ts +9 -5
  22. package/lib/dist/directory.d.ts.map +1 -1
  23. package/lib/dist/directory.js +210 -19
  24. package/lib/dist/directory.js.map +1 -1
  25. package/lib/dist/extraction/cfml-extractor.d.ts +107 -0
  26. package/lib/dist/extraction/cfml-extractor.d.ts.map +1 -0
  27. package/lib/dist/extraction/cfml-extractor.js +494 -0
  28. package/lib/dist/extraction/cfml-extractor.js.map +1 -0
  29. package/lib/dist/extraction/grammars.d.ts +9 -0
  30. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  31. package/lib/dist/extraction/grammars.js +115 -3
  32. package/lib/dist/extraction/grammars.js.map +1 -1
  33. package/lib/dist/extraction/index.d.ts +46 -1
  34. package/lib/dist/extraction/index.d.ts.map +1 -1
  35. package/lib/dist/extraction/index.js +338 -34
  36. package/lib/dist/extraction/index.js.map +1 -1
  37. package/lib/dist/extraction/languages/arkts.d.ts +3 -0
  38. package/lib/dist/extraction/languages/arkts.d.ts.map +1 -0
  39. package/lib/dist/extraction/languages/arkts.js +127 -0
  40. package/lib/dist/extraction/languages/arkts.js.map +1 -0
  41. package/lib/dist/extraction/languages/c-cpp.d.ts +42 -0
  42. package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  43. package/lib/dist/extraction/languages/c-cpp.js +369 -4
  44. package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
  45. package/lib/dist/extraction/languages/cfquery.d.ts +12 -0
  46. package/lib/dist/extraction/languages/cfquery.d.ts.map +1 -0
  47. package/lib/dist/extraction/languages/cfquery.js +28 -0
  48. package/lib/dist/extraction/languages/cfquery.js.map +1 -0
  49. package/lib/dist/extraction/languages/cfscript.d.ts +3 -0
  50. package/lib/dist/extraction/languages/cfscript.d.ts.map +1 -0
  51. package/lib/dist/extraction/languages/cfscript.js +73 -0
  52. package/lib/dist/extraction/languages/cfscript.js.map +1 -0
  53. package/lib/dist/extraction/languages/cobol.d.ts +33 -0
  54. package/lib/dist/extraction/languages/cobol.d.ts.map +1 -0
  55. package/lib/dist/extraction/languages/cobol.js +499 -0
  56. package/lib/dist/extraction/languages/cobol.js.map +1 -0
  57. package/lib/dist/extraction/languages/erlang.d.ts +3 -0
  58. package/lib/dist/extraction/languages/erlang.d.ts.map +1 -0
  59. package/lib/dist/extraction/languages/erlang.js +350 -0
  60. package/lib/dist/extraction/languages/erlang.js.map +1 -0
  61. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  62. package/lib/dist/extraction/languages/index.js +18 -0
  63. package/lib/dist/extraction/languages/index.js.map +1 -1
  64. package/lib/dist/extraction/languages/nix.d.ts +3 -0
  65. package/lib/dist/extraction/languages/nix.d.ts.map +1 -0
  66. package/lib/dist/extraction/languages/nix.js +294 -0
  67. package/lib/dist/extraction/languages/nix.js.map +1 -0
  68. package/lib/dist/extraction/languages/solidity.d.ts +3 -0
  69. package/lib/dist/extraction/languages/solidity.d.ts.map +1 -0
  70. package/lib/dist/extraction/languages/solidity.js +293 -0
  71. package/lib/dist/extraction/languages/solidity.js.map +1 -0
  72. package/lib/dist/extraction/languages/terraform.d.ts +3 -0
  73. package/lib/dist/extraction/languages/terraform.d.ts.map +1 -0
  74. package/lib/dist/extraction/languages/terraform.js +641 -0
  75. package/lib/dist/extraction/languages/terraform.js.map +1 -0
  76. package/lib/dist/extraction/languages/vbnet.d.ts +11 -0
  77. package/lib/dist/extraction/languages/vbnet.d.ts.map +1 -0
  78. package/lib/dist/extraction/languages/vbnet.js +141 -0
  79. package/lib/dist/extraction/languages/vbnet.js.map +1 -0
  80. package/lib/dist/extraction/mybatis-extractor.d.ts +30 -10
  81. package/lib/dist/extraction/mybatis-extractor.d.ts.map +1 -1
  82. package/lib/dist/extraction/mybatis-extractor.js +140 -38
  83. package/lib/dist/extraction/mybatis-extractor.js.map +1 -1
  84. package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
  85. package/lib/dist/extraction/tree-sitter-helpers.js +1 -0
  86. package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
  87. package/lib/dist/extraction/tree-sitter-types.d.ts +3 -1
  88. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  89. package/lib/dist/extraction/tree-sitter.d.ts +38 -0
  90. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  91. package/lib/dist/extraction/tree-sitter.js +753 -10
  92. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  93. package/lib/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
  94. package/lib/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
  95. package/lib/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
  96. package/lib/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
  97. package/lib/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
  98. package/lib/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
  99. package/lib/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
  100. package/lib/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
  101. package/lib/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
  102. package/lib/dist/index.d.ts +63 -1
  103. package/lib/dist/index.d.ts.map +1 -1
  104. package/lib/dist/index.js +327 -5
  105. package/lib/dist/index.js.map +1 -1
  106. package/lib/dist/installer/index.d.ts.map +1 -1
  107. package/lib/dist/installer/index.js +3 -1
  108. package/lib/dist/installer/index.js.map +1 -1
  109. package/lib/dist/mcp/daemon.d.ts +25 -3
  110. package/lib/dist/mcp/daemon.d.ts.map +1 -1
  111. package/lib/dist/mcp/daemon.js +62 -8
  112. package/lib/dist/mcp/daemon.js.map +1 -1
  113. package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
  114. package/lib/dist/mcp/dynamic-boundaries.js +2 -1
  115. package/lib/dist/mcp/dynamic-boundaries.js.map +1 -1
  116. package/lib/dist/mcp/early-ppid.d.ts +26 -0
  117. package/lib/dist/mcp/early-ppid.d.ts.map +1 -0
  118. package/lib/dist/mcp/early-ppid.js +29 -0
  119. package/lib/dist/mcp/early-ppid.js.map +1 -0
  120. package/lib/dist/mcp/index.d.ts.map +1 -1
  121. package/lib/dist/mcp/index.js +21 -4
  122. package/lib/dist/mcp/index.js.map +1 -1
  123. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  124. package/lib/dist/mcp/proxy.js +29 -3
  125. package/lib/dist/mcp/proxy.js.map +1 -1
  126. package/lib/dist/mcp/query-pool.d.ts +14 -0
  127. package/lib/dist/mcp/query-pool.d.ts.map +1 -1
  128. package/lib/dist/mcp/query-pool.js +18 -0
  129. package/lib/dist/mcp/query-pool.js.map +1 -1
  130. package/lib/dist/mcp/session.d.ts.map +1 -1
  131. package/lib/dist/mcp/session.js +6 -0
  132. package/lib/dist/mcp/session.js.map +1 -1
  133. package/lib/dist/mcp/startup-handshake.d.ts +44 -0
  134. package/lib/dist/mcp/startup-handshake.d.ts.map +1 -0
  135. package/lib/dist/mcp/startup-handshake.js +73 -0
  136. package/lib/dist/mcp/startup-handshake.js.map +1 -0
  137. package/lib/dist/mcp/tools.d.ts +22 -0
  138. package/lib/dist/mcp/tools.d.ts.map +1 -1
  139. package/lib/dist/mcp/tools.js +88 -18
  140. package/lib/dist/mcp/tools.js.map +1 -1
  141. package/lib/dist/mcp/transport.d.ts.map +1 -1
  142. package/lib/dist/mcp/transport.js +18 -0
  143. package/lib/dist/mcp/transport.js.map +1 -1
  144. package/lib/dist/project-config.d.ts +38 -0
  145. package/lib/dist/project-config.d.ts.map +1 -1
  146. package/lib/dist/project-config.js +101 -2
  147. package/lib/dist/project-config.js.map +1 -1
  148. package/lib/dist/resolution/c-fnptr-synthesizer.d.ts +2 -1
  149. package/lib/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
  150. package/lib/dist/resolution/c-fnptr-synthesizer.js +170 -146
  151. package/lib/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
  152. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  153. package/lib/dist/resolution/callback-synthesizer.js +982 -81
  154. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  155. package/lib/dist/resolution/frameworks/cics.d.ts +20 -0
  156. package/lib/dist/resolution/frameworks/cics.d.ts.map +1 -0
  157. package/lib/dist/resolution/frameworks/cics.js +90 -0
  158. package/lib/dist/resolution/frameworks/cics.js.map +1 -0
  159. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  160. package/lib/dist/resolution/frameworks/index.js +6 -0
  161. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  162. package/lib/dist/resolution/frameworks/java.d.ts.map +1 -1
  163. package/lib/dist/resolution/frameworks/java.js +14 -6
  164. package/lib/dist/resolution/frameworks/java.js.map +1 -1
  165. package/lib/dist/resolution/frameworks/terraform.d.ts +38 -0
  166. package/lib/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  167. package/lib/dist/resolution/frameworks/terraform.js +277 -0
  168. package/lib/dist/resolution/frameworks/terraform.js.map +1 -0
  169. package/lib/dist/resolution/goframe-synthesizer.d.ts +2 -1
  170. package/lib/dist/resolution/goframe-synthesizer.d.ts.map +1 -1
  171. package/lib/dist/resolution/goframe-synthesizer.js +8 -3
  172. package/lib/dist/resolution/goframe-synthesizer.js.map +1 -1
  173. package/lib/dist/resolution/import-resolver.d.ts +7 -0
  174. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  175. package/lib/dist/resolution/import-resolver.js +129 -4
  176. package/lib/dist/resolution/import-resolver.js.map +1 -1
  177. package/lib/dist/resolution/index.d.ts +49 -6
  178. package/lib/dist/resolution/index.d.ts.map +1 -1
  179. package/lib/dist/resolution/index.js +342 -65
  180. package/lib/dist/resolution/index.js.map +1 -1
  181. package/lib/dist/resolution/name-matcher.d.ts +0 -3
  182. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  183. package/lib/dist/resolution/name-matcher.js +225 -33
  184. package/lib/dist/resolution/name-matcher.js.map +1 -1
  185. package/lib/dist/resolution/strip-comments.d.ts +1 -1
  186. package/lib/dist/resolution/strip-comments.d.ts.map +1 -1
  187. package/lib/dist/resolution/strip-comments.js +49 -0
  188. package/lib/dist/resolution/strip-comments.js.map +1 -1
  189. package/lib/dist/resolution/types.d.ts +29 -0
  190. package/lib/dist/resolution/types.d.ts.map +1 -1
  191. package/lib/dist/resolution/workspace-packages.d.ts +10 -0
  192. package/lib/dist/resolution/workspace-packages.d.ts.map +1 -1
  193. package/lib/dist/resolution/workspace-packages.js +142 -4
  194. package/lib/dist/resolution/workspace-packages.js.map +1 -1
  195. package/lib/dist/search/identifier-segments.d.ts +60 -0
  196. package/lib/dist/search/identifier-segments.d.ts.map +1 -0
  197. package/lib/dist/search/identifier-segments.js +176 -0
  198. package/lib/dist/search/identifier-segments.js.map +1 -0
  199. package/lib/dist/sync/git-hooks.d.ts.map +1 -1
  200. package/lib/dist/sync/git-hooks.js +2 -0
  201. package/lib/dist/sync/git-hooks.js.map +1 -1
  202. package/lib/dist/sync/watcher.d.ts +10 -5
  203. package/lib/dist/sync/watcher.d.ts.map +1 -1
  204. package/lib/dist/sync/watcher.js +51 -14
  205. package/lib/dist/sync/watcher.js.map +1 -1
  206. package/lib/dist/sync/worktree.d.ts.map +1 -1
  207. package/lib/dist/sync/worktree.js +5 -0
  208. package/lib/dist/sync/worktree.js.map +1 -1
  209. package/lib/dist/types.d.ts +19 -1
  210. package/lib/dist/types.d.ts.map +1 -1
  211. package/lib/dist/types.js +10 -0
  212. package/lib/dist/types.js.map +1 -1
  213. package/lib/node_modules/.package-lock.json +1 -1
  214. package/lib/package.json +1 -1
  215. package/package.json +1 -1
  216. package/lib/dist/reasoning/config.d.ts +0 -45
  217. package/lib/dist/reasoning/config.d.ts.map +0 -1
  218. package/lib/dist/reasoning/config.js +0 -171
  219. package/lib/dist/reasoning/config.js.map +0 -1
  220. package/lib/dist/reasoning/credentials.d.ts +0 -5
  221. package/lib/dist/reasoning/credentials.d.ts.map +0 -1
  222. package/lib/dist/reasoning/credentials.js +0 -83
  223. package/lib/dist/reasoning/credentials.js.map +0 -1
  224. package/lib/dist/reasoning/login.d.ts +0 -21
  225. package/lib/dist/reasoning/login.d.ts.map +0 -1
  226. package/lib/dist/reasoning/login.js +0 -85
  227. package/lib/dist/reasoning/login.js.map +0 -1
  228. package/lib/dist/reasoning/reasoner.d.ts +0 -43
  229. package/lib/dist/reasoning/reasoner.d.ts.map +0 -1
  230. package/lib/dist/reasoning/reasoner.js +0 -308
  231. package/lib/dist/reasoning/reasoner.js.map +0 -1
@@ -0,0 +1,11 @@
1
+ import type { LanguageExtractor } from '../tree-sitter-types';
2
+ /**
3
+ * The vendored VB.NET grammar has no true end-of-file token (its `_eof` rule is
4
+ * a literal-`$` placeholder that never matches real input), so a file whose
5
+ * last line lacks a trailing newline ends every parse with a MISSING-newline
6
+ * error on the final statement. Appending a newline is offset-preserving for
7
+ * all existing content.
8
+ */
9
+ export declare function ensureTrailingNewline(source: string): string;
10
+ export declare const vbnetExtractor: LanguageExtractor;
11
+ //# sourceMappingURL=vbnet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vbnet.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/vbnet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAgCD,eAAO,MAAM,cAAc,EAAE,iBA2F5B,CAAC"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vbnetExtractor = void 0;
4
+ exports.ensureTrailingNewline = ensureTrailingNewline;
5
+ const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
6
+ /**
7
+ * The vendored VB.NET grammar has no true end-of-file token (its `_eof` rule is
8
+ * a literal-`$` placeholder that never matches real input), so a file whose
9
+ * last line lacks a trailing newline ends every parse with a MISSING-newline
10
+ * error on the final statement. Appending a newline is offset-preserving for
11
+ * all existing content.
12
+ */
13
+ function ensureTrailingNewline(source) {
14
+ return source.endsWith('\n') ? source : source + '\n';
15
+ }
16
+ /** Case-insensitive member-modifier scan (VB keywords are case-insensitive). */
17
+ function hasModifier(node, re) {
18
+ for (let i = 0; i < node.childCount; i++) {
19
+ const child = node.child(i);
20
+ if (child?.type === 'member_modifier' && re.test(child.text))
21
+ return true;
22
+ }
23
+ return false;
24
+ }
25
+ /**
26
+ * A VB.NET method's declared return type (`Function Foo(...) As Bar`),
27
+ * normalized to the bare class name a chained `Foo.Create().Bar()` could be
28
+ * called on (the #645/#608 mechanism). The type lives in the method's
29
+ * `as_clause` child; predefined types (Integer/String/…) and arrays yield
30
+ * undefined, generics `List(Of Foo)` unwrap to the base type, and a dotted
31
+ * `Ns.Foo` reduces to the simple name. Subs have no as_clause → undefined.
32
+ */
33
+ function extractVbnetReturnType(node, source) {
34
+ const asClause = node.namedChildren.find((c) => c.type === 'as_clause');
35
+ if (!asClause)
36
+ return undefined;
37
+ const typeNode = asClause.childForFieldName('declared_type');
38
+ if (!typeNode || typeNode.type === 'predefined_type' || typeNode.type === 'array_type')
39
+ return undefined;
40
+ let t = (0, tree_sitter_helpers_1.getNodeText)(typeNode, source).trim();
41
+ t = t.replace(/\?+$/, ''); // nullable `Foo?`
42
+ t = t.replace(/\(\s*Of\b[^)]*\)/gi, ''); // generics `List(Of Foo)` → `List`
43
+ const last = t.split('.').pop()?.trim();
44
+ if (!last || !/^[A-Za-z_]\w*$/.test(last))
45
+ return undefined;
46
+ return last;
47
+ }
48
+ exports.vbnetExtractor = {
49
+ preParse: ensureTrailingNewline,
50
+ functionTypes: [],
51
+ // VB Modules are static containers (Shared members, no instantiation) —
52
+ // indexed as classes so their members get normal containment/qualification.
53
+ classTypes: ['class_declaration', 'module_declaration'],
54
+ methodTypes: [
55
+ 'method_declaration',
56
+ 'constructor_declaration',
57
+ // `Declare Function GetWindowLong Lib "user32" ...` (P/Invoke)
58
+ 'external_method_declaration',
59
+ // Interface members are distinct node types in this grammar (unlike C#).
60
+ 'interface_method_declaration',
61
+ // `MustOverride Sub/Function ...` — body-less abstract members.
62
+ 'abstract_method_declaration',
63
+ ],
64
+ interfaceTypes: ['interface_declaration'],
65
+ structTypes: ['structure_declaration'],
66
+ enumTypes: ['enum_declaration'],
67
+ enumMemberTypes: ['enum_member_declaration'],
68
+ typeAliasTypes: ['delegate_declaration'],
69
+ packageTypes: ['namespace_declaration'],
70
+ extractPackage: (node, source) => {
71
+ const name = node.childForFieldName('name');
72
+ return name ? (0, tree_sitter_helpers_1.getNodeText)(name, source) : null;
73
+ },
74
+ importTypes: ['imports_statement'],
75
+ // VB uses parentheses for BOTH calls and indexing, so the grammar can only
76
+ // split them heuristically (empty parens → invocation, args → array access;
77
+ // even Roslyn parses both as InvocationExpression and disambiguates during
78
+ // binding). Both are treated as call sites — extractCall has a vbnet branch
79
+ // — and name matching simply never resolves an index read on a collection.
80
+ callTypes: ['invocation_expression', 'array_access_expression', 'generic_invocation_expression'],
81
+ variableTypes: ['declaration_statement'],
82
+ fieldTypes: ['field_declaration'],
83
+ propertyTypes: ['property_declaration', 'interface_property_declaration', 'abstract_property_declaration'],
84
+ nameField: 'name',
85
+ bodyField: 'body',
86
+ paramsField: 'parameters',
87
+ // Method/property statements are direct children of the declaration node
88
+ // (this grammar has no body wrapper), so the node is its own body — without
89
+ // this, calls inside every Sub/Function would be skipped.
90
+ resolveBody: (node) => node,
91
+ getReturnType: extractVbnetReturnType,
92
+ getVisibility: (node) => {
93
+ if (hasModifier(node, /^private$/i))
94
+ return 'private';
95
+ if (hasModifier(node, /^protected(\s+friend)?$/i))
96
+ return 'protected';
97
+ if (hasModifier(node, /^friend$/i))
98
+ return 'internal';
99
+ return 'public'; // VB members default to Public in practice
100
+ },
101
+ isStatic: (node) => hasModifier(node, /^shared$/i),
102
+ isConst: (node) => hasModifier(node, /^const$/i) || (hasModifier(node, /^shared$/i) && hasModifier(node, /^readonly$/i)),
103
+ isAsync: (node) => hasModifier(node, /^async$/i),
104
+ extractImport: (node, source) => {
105
+ const importText = source.substring(node.startIndex, node.endIndex).trim();
106
+ // `Imports System.Collections.Generic` / `Imports Alias = Some.Namespace` /
107
+ // `Imports Global.Company.Product`. The name reference is the last
108
+ // qualified/simple/global name child (skips the alias identifier).
109
+ const nameNode = [...node.namedChildren]
110
+ .reverse()
111
+ .find((c) => c.type === 'qualified_name' || c.type === 'simple_name' || c.type === 'global_qualified_name' || c.type === 'identifier');
112
+ if (nameNode) {
113
+ return { moduleName: (0, tree_sitter_helpers_1.getNodeText)(nameNode, source), signature: importText };
114
+ }
115
+ return null;
116
+ },
117
+ visitNode: (node, ctx) => {
118
+ // Events are indexed so `RaiseEvent X` / `Handles obj.X` flows have a
119
+ // findable declaration (WinForms/WPF code is built around them).
120
+ if (node.type === 'event_declaration' || node.type === 'custom_event_declaration') {
121
+ const nameNode = node.childForFieldName('name');
122
+ if (nameNode) {
123
+ ctx.createNode('field', (0, tree_sitter_helpers_1.getNodeText)(nameNode, ctx.source), node);
124
+ }
125
+ return true;
126
+ }
127
+ // `Sub New(...)` lexes as one token with no name field — without this,
128
+ // constructors index as `<anonymous>`.
129
+ if (node.type === 'constructor_declaration') {
130
+ const ctor = ctx.createNode('method', 'New', node);
131
+ if (ctor) {
132
+ ctx.pushScope(ctor.id);
133
+ ctx.visitFunctionBody(node, ctor.id);
134
+ ctx.popScope();
135
+ }
136
+ return true;
137
+ }
138
+ return false;
139
+ },
140
+ };
141
+ //# sourceMappingURL=vbnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vbnet.js","sourceRoot":"","sources":["../../../src/extraction/languages/vbnet.ts"],"names":[],"mappings":"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"}
@@ -12,15 +12,21 @@ import { ExtractionResult } from '../types';
12
12
  *
13
13
  * This extractor emits one method-shaped node per `<select|insert|update|
14
14
  * delete>` and per `<sql>` fragment, qualified as `<namespace>::<id>` so the
15
- * MyBatis framework synthesizer (`src/resolution/frameworks/mybatis.ts`) can
16
- * link the matching Java method → XML statement by suffix-matching qualified
17
- * names. `<include refid="...">` inside a statement yields an unresolved
18
- * reference to the SQL fragment, also keyed by `<namespace>::<refid>`.
15
+ * MyBatis framework synthesizer can link the matching Java method → XML
16
+ * statement by suffix-matching qualified names. `<include refid="...">` inside
17
+ * a statement yields an unresolved reference to the SQL fragment, also keyed
18
+ * by `<namespace>::<refid>`.
19
+ *
20
+ * Both dialects are covered: MyBatis 3 `<mapper namespace="...">` and the
21
+ * legacy iBatis 2 `<sqlMap>` (namespaced, or namespace-less with `Map.stmt`
22
+ * ids, plus its extra `<statement>`/`<procedure>` verbs). Attribute values may
23
+ * use either quote style, and statements commented out with `<!-- ... -->` are
24
+ * ignored (see the constructor's comment-stripping pre-pass).
19
25
  *
20
26
  * Non-mapper XML (Maven `pom.xml`, Spring beans XML, `web.xml`, log4j config,
21
- * etc.) is detected by the absence of a `<mapper namespace="...">` root and
22
- * returns just a file node — we still need the file row so the watcher can
23
- * track it, but we emit no symbols.
27
+ * etc.) is detected by the absence of a `<mapper namespace="...">` /
28
+ * `<sqlMap>` root and returns just a file node — we still need the file row so
29
+ * the watcher can track it, but we emit no symbols.
24
30
  */
25
31
  export declare class MyBatisExtractor {
26
32
  private filePath;
@@ -31,16 +37,30 @@ export declare class MyBatisExtractor {
31
37
  private errors;
32
38
  private lineStarts;
33
39
  constructor(filePath: string, source: string);
40
+ private static stripXmlComments;
34
41
  extract(): ExtractionResult;
35
42
  private createFileNode;
36
43
  /**
37
- * Find the `<mapper namespace="X">` opening tag. Returns the namespace and
38
- * the byte offsets of the body (between the opening and closing tag) so
39
- * statement extraction can be scoped to mapper contents.
44
+ * Find the mapper root and its dialect. Two shapes are recognized:
45
+ * - MyBatis 3: `<mapper namespace="com.foo.Bar">` namespace required.
46
+ * - iBatis 2: `<sqlMap namespace="Account">`, or a namespace-less
47
+ * `<sqlMap>` whose statement ids carry the qualifier as `Map.statement`.
48
+ * Returns the namespace, the dialect, and the byte offsets of the body
49
+ * (between the opening and closing tag) so statement extraction is scoped to
50
+ * the root's contents. Either quote style is accepted for the namespace
51
+ * (`namespace='X'` is legal XML and common in older mappers).
40
52
  */
41
53
  private findMapperRoot;
42
54
  private extractMapper;
43
55
  private buildSignature;
56
+ /**
57
+ * Build the `<namespace>::<id>` qualified name the MyBatis synthesizer
58
+ * suffix-matches against a Java `<Class>::<method>`, and the display name.
59
+ * For a namespace-less iBatis `<sqlMap>`, the statement id carries the
60
+ * qualifier as `Map.statement`, so split on the last dot to reach the same
61
+ * shape (`Account.getById` → `Account::getById`, name `getById`).
62
+ */
63
+ private qualifyStatement;
44
64
  private previewSql;
45
65
  private computeLineStarts;
46
66
  private getLineNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"mybatis-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/mybatis-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,gBAAgB,EAA6B,MAAM,UAAU,CAAC;AAG9F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAgB;gBAEtB,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM5C,OAAO,IAAI,gBAAgB;IA2B3B,OAAO,CAAC,cAAc;IAoBtB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,aAAa;IA2DrB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;CAWtB"}
1
+ {"version":3,"file":"mybatis-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/mybatis-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,gBAAgB,EAA6B,MAAM,UAAU,CAAC;AAG9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAgB;gBAEtB,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAa5C,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAwB/B,OAAO,IAAI,gBAAgB;IA2B3B,OAAO,CAAC,cAAc;IAoBtB;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,aAAa;IAuFrB,OAAO,CAAC,cAAc;IAetB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;CAWtB"}
@@ -15,15 +15,21 @@ const tree_sitter_helpers_1 = require("./tree-sitter-helpers");
15
15
  *
16
16
  * This extractor emits one method-shaped node per `<select|insert|update|
17
17
  * delete>` and per `<sql>` fragment, qualified as `<namespace>::<id>` so the
18
- * MyBatis framework synthesizer (`src/resolution/frameworks/mybatis.ts`) can
19
- * link the matching Java method → XML statement by suffix-matching qualified
20
- * names. `<include refid="...">` inside a statement yields an unresolved
21
- * reference to the SQL fragment, also keyed by `<namespace>::<refid>`.
18
+ * MyBatis framework synthesizer can link the matching Java method → XML
19
+ * statement by suffix-matching qualified names. `<include refid="...">` inside
20
+ * a statement yields an unresolved reference to the SQL fragment, also keyed
21
+ * by `<namespace>::<refid>`.
22
+ *
23
+ * Both dialects are covered: MyBatis 3 `<mapper namespace="...">` and the
24
+ * legacy iBatis 2 `<sqlMap>` (namespaced, or namespace-less with `Map.stmt`
25
+ * ids, plus its extra `<statement>`/`<procedure>` verbs). Attribute values may
26
+ * use either quote style, and statements commented out with `<!-- ... -->` are
27
+ * ignored (see the constructor's comment-stripping pre-pass).
22
28
  *
23
29
  * Non-mapper XML (Maven `pom.xml`, Spring beans XML, `web.xml`, log4j config,
24
- * etc.) is detected by the absence of a `<mapper namespace="...">` root and
25
- * returns just a file node — we still need the file row so the watcher can
26
- * track it, but we emit no symbols.
30
+ * etc.) is detected by the absence of a `<mapper namespace="...">` /
31
+ * `<sqlMap>` root and returns just a file node — we still need the file row so
32
+ * the watcher can track it, but we emit no symbols.
27
33
  */
28
34
  class MyBatisExtractor {
29
35
  filePath;
@@ -35,16 +41,47 @@ class MyBatisExtractor {
35
41
  lineStarts = [];
36
42
  constructor(filePath, source) {
37
43
  this.filePath = filePath;
38
- this.source = source;
44
+ // Blank out XML comments up front so commented-out statements and includes
45
+ // aren't matched by the scans below (a `<!-- <select id="old">…</select> -->`
46
+ // block must not produce a phantom node). Length-preserving — comment bytes
47
+ // become spaces, newlines are kept — so the offsets and line numbers
48
+ // computed afterwards still map to the original source. Text inside
49
+ // `<![CDATA[ … ]]>` is left intact: a literal `<!--` there is SQL data, not
50
+ // an XML comment.
51
+ this.source = MyBatisExtractor.stripXmlComments(source);
39
52
  this.computeLineStarts();
40
53
  }
54
+ static stripXmlComments(source) {
55
+ const out = source.split('');
56
+ const n = source.length;
57
+ let i = 0;
58
+ while (i < n) {
59
+ if (source.startsWith('<![CDATA[', i)) {
60
+ const end = source.indexOf(']]>', i + 9);
61
+ i = end >= 0 ? end + 3 : n;
62
+ continue;
63
+ }
64
+ if (source.startsWith('<!--', i)) {
65
+ const end = source.indexOf('-->', i + 4);
66
+ const stop = end >= 0 ? end + 3 : n;
67
+ for (let j = i; j < stop; j++) {
68
+ if (source.charCodeAt(j) !== 10)
69
+ out[j] = ' ';
70
+ }
71
+ i = stop;
72
+ continue;
73
+ }
74
+ i++;
75
+ }
76
+ return out.join('');
77
+ }
41
78
  extract() {
42
79
  const startTime = Date.now();
43
80
  const fileNode = this.createFileNode();
44
81
  try {
45
- const mapperMatch = this.findMapperRoot();
46
- if (mapperMatch) {
47
- this.extractMapper(fileNode.id, mapperMatch.namespace, mapperMatch.bodyStart, mapperMatch.bodyEnd);
82
+ const root = this.findMapperRoot();
83
+ if (root) {
84
+ this.extractMapper(fileNode.id, root.namespace, root.dialect, root.bodyStart, root.bodyEnd);
48
85
  }
49
86
  }
50
87
  catch (error) {
@@ -82,49 +119,89 @@ class MyBatisExtractor {
82
119
  return node;
83
120
  }
84
121
  /**
85
- * Find the `<mapper namespace="X">` opening tag. Returns the namespace and
86
- * the byte offsets of the body (between the opening and closing tag) so
87
- * statement extraction can be scoped to mapper contents.
122
+ * Find the mapper root and its dialect. Two shapes are recognized:
123
+ * - MyBatis 3: `<mapper namespace="com.foo.Bar">` namespace required.
124
+ * - iBatis 2: `<sqlMap namespace="Account">`, or a namespace-less
125
+ * `<sqlMap>` whose statement ids carry the qualifier as `Map.statement`.
126
+ * Returns the namespace, the dialect, and the byte offsets of the body
127
+ * (between the opening and closing tag) so statement extraction is scoped to
128
+ * the root's contents. Either quote style is accepted for the namespace
129
+ * (`namespace='X'` is legal XML and common in older mappers).
88
130
  */
89
131
  findMapperRoot() {
90
- const open = /<mapper\b([^>]*)>/.exec(this.source);
91
- if (!open)
92
- return null;
93
- const attrs = open[1] ?? '';
94
- const nsMatch = /\bnamespace\s*=\s*"([^"]+)"/.exec(attrs);
95
- if (!nsMatch)
96
- return null;
97
- const bodyStart = open.index + open[0].length;
98
- const closeIdx = this.source.indexOf('</mapper>', bodyStart);
99
- const bodyEnd = closeIdx >= 0 ? closeIdx : this.source.length;
100
- return { namespace: nsMatch[1], bodyStart, bodyEnd };
132
+ const mapper = /<mapper\b([^>]*)>/.exec(this.source);
133
+ if (mapper) {
134
+ const nsMatch = /\bnamespace\s*=\s*(["'])([^"']+)\1/.exec(mapper[1] ?? '');
135
+ if (nsMatch) {
136
+ const bodyStart = mapper.index + mapper[0].length;
137
+ const closeIdx = this.source.indexOf('</mapper>', bodyStart);
138
+ return {
139
+ namespace: nsMatch[2],
140
+ dialect: 'mybatis',
141
+ bodyStart,
142
+ bodyEnd: closeIdx >= 0 ? closeIdx : this.source.length,
143
+ };
144
+ }
145
+ }
146
+ // iBatis 2 SqlMap. `\b` keeps `<sqlMapConfig>` (the iBatis config root,
147
+ // which holds no statements) from matching here. namespace is optional.
148
+ const sqlMap = /<sqlMap\b([^>]*)>/.exec(this.source);
149
+ if (sqlMap) {
150
+ const nsMatch = /\bnamespace\s*=\s*(["'])([^"']+)\1/.exec(sqlMap[1] ?? '');
151
+ const bodyStart = sqlMap.index + sqlMap[0].length;
152
+ const closeIdx = this.source.indexOf('</sqlMap>', bodyStart);
153
+ return {
154
+ namespace: nsMatch?.[2] ?? '',
155
+ dialect: 'ibatis',
156
+ bodyStart,
157
+ bodyEnd: closeIdx >= 0 ? closeIdx : this.source.length,
158
+ };
159
+ }
160
+ return null;
101
161
  }
102
- extractMapper(fileNodeId, namespace, bodyStart, bodyEnd) {
162
+ extractMapper(fileNodeId, namespace, dialect, bodyStart, bodyEnd) {
103
163
  const body = this.source.slice(bodyStart, bodyEnd);
104
164
  // Match each top-level statement-shaped element. The body may have nested
105
165
  // tags (`<if>`, `<foreach>`, `<include>`), so we scan with a regex that
106
166
  // pairs an opening tag to its matching close — the simple form below works
107
- // because MyBatis statement elements are not themselves nested.
108
- const stmtRegex = /<(select|insert|update|delete|sql)\b([^>]*)>([\s\S]*?)<\/\1>/g;
167
+ // because MyBatis/iBatis statement elements are not themselves nested.
168
+ // iBatis 2 adds the generic `<statement>` and `<procedure>` on top of the
169
+ // MyBatis 3 verbs; gating by dialect keeps MyBatis extraction unchanged.
170
+ const verbs = dialect === 'ibatis'
171
+ ? 'select|insert|update|delete|sql|statement|procedure'
172
+ : 'select|insert|update|delete|sql';
173
+ const stmtRegex = new RegExp(`<(${verbs})\\b([^>]*)>([\\s\\S]*?)</\\1>`, 'g');
109
174
  let m;
110
175
  while ((m = stmtRegex.exec(body)) !== null) {
111
176
  const elemType = m[1];
112
177
  const attrs = m[2] ?? '';
113
178
  const elemBody = m[3] ?? '';
114
- const idMatch = /\bid\s*=\s*"([^"]+)"/.exec(attrs);
179
+ // Accept either quote style (`(["'])…\1`). The identifier-shaped MyBatis
180
+ // attributes matched here and below (namespace/id/refid/resultType/
181
+ // parameterType) are Java FQNs, method names, or type aliases and never
182
+ // contain a quote character, so excluding both quotes from the value is safe.
183
+ const idMatch = /\bid\s*=\s*(["'])([^"']+)\1/.exec(attrs);
115
184
  if (!idMatch)
116
185
  continue;
117
- const id = idMatch[1];
186
+ const id = idMatch[2];
118
187
  const absoluteIndex = bodyStart + m.index;
119
188
  const startLine = this.getLineNumber(absoluteIndex);
120
189
  const endLine = this.getLineNumber(absoluteIndex + m[0].length);
121
- const qualified = `${namespace}::${id}`;
190
+ const { qualifiedName: qualified, name } = this.qualifyStatement(namespace, id);
122
191
  const isSqlFragment = elemType === 'sql';
123
- const nodeId = (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, 'method', qualified, startLine);
192
+ // The id-hash folds in the statement's byte offset (unique per statement
193
+ // in the file), not just the start line: two statements sharing a
194
+ // qualifiedName AND a start line — e.g. a vendor-split `databaseId` pair
195
+ // (`<select id="x" databaseId="oracle">…</select><select id="x"
196
+ // databaseId="mysql">…`) written on one line — would otherwise hash to
197
+ // the same node id, and `INSERT OR REPLACE INTO nodes` (id is the PRIMARY
198
+ // KEY) would silently drop one. qualifiedName and startLine are stored
199
+ // unchanged, so the Java↔XML suffix-match bridge is untouched.
200
+ const nodeId = (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, 'method', qualified, absoluteIndex);
124
201
  const node = {
125
202
  id: nodeId,
126
203
  kind: 'method',
127
- name: id,
204
+ name,
128
205
  qualifiedName: qualified,
129
206
  filePath: this.filePath,
130
207
  language: 'xml',
@@ -140,11 +217,15 @@ class MyBatisExtractor {
140
217
  this.edges.push({ source: fileNodeId, target: nodeId, kind: 'contains' });
141
218
  // <include refid="X"/> → reference to the SQL fragment in this mapper
142
219
  // (or in another mapper, when the refid is qualified — `ns.X`).
143
- const includeRegex = /<include\b[^>]*\brefid\s*=\s*"([^"]+)"/g;
220
+ const includeRegex = /<include\b[^>]*\brefid\s*=\s*(["'])([^"']+)\1/g;
144
221
  let inc;
145
222
  while ((inc = includeRegex.exec(elemBody)) !== null) {
146
- const refid = inc[1];
147
- const refQualified = refid.includes('.') ? refid.replace(/\./g, '::') : `${namespace}::${refid}`;
223
+ const refid = inc[2];
224
+ const refQualified = refid.includes('.')
225
+ ? refid.replace(/\./g, '::')
226
+ : namespace
227
+ ? `${namespace}::${refid}`
228
+ : refid;
148
229
  const includeOffset = absoluteIndex + (m[0].length - m[3].length - `</${elemType}>`.length) + inc.index;
149
230
  const line = this.getLineNumber(includeOffset);
150
231
  this.unresolvedReferences.push({
@@ -161,15 +242,36 @@ class MyBatisExtractor {
161
242
  if (isSqlFragment)
162
243
  return '<sql>';
163
244
  const verb = elemType.toUpperCase();
164
- const result = /\bresultType\s*=\s*"([^"]+)"/.exec(attrs)?.[1];
165
- const param = /\bparameterType\s*=\s*"([^"]+)"/.exec(attrs)?.[1];
245
+ const result = /\bresultType\s*=\s*(["'])([^"']+)\1/.exec(attrs)?.[2];
246
+ const param = /\bparameterType\s*=\s*(["'])([^"']+)\1/.exec(attrs)?.[2];
247
+ // A vendor-split statement carries `databaseId`; surface it so the two
248
+ // otherwise-identical `<namespace>::<id>` nodes are distinguishable.
249
+ const dbId = /\bdatabaseId\s*=\s*(["'])([^"']+)\1/.exec(attrs)?.[2];
166
250
  const parts = [verb];
167
251
  if (param)
168
252
  parts.push(`param=${param}`);
169
253
  if (result)
170
254
  parts.push(`result=${result}`);
255
+ if (dbId)
256
+ parts.push(`databaseId=${dbId}`);
171
257
  return parts.join(' ');
172
258
  }
259
+ /**
260
+ * Build the `<namespace>::<id>` qualified name the MyBatis synthesizer
261
+ * suffix-matches against a Java `<Class>::<method>`, and the display name.
262
+ * For a namespace-less iBatis `<sqlMap>`, the statement id carries the
263
+ * qualifier as `Map.statement`, so split on the last dot to reach the same
264
+ * shape (`Account.getById` → `Account::getById`, name `getById`).
265
+ */
266
+ qualifyStatement(namespace, id) {
267
+ if (namespace)
268
+ return { qualifiedName: `${namespace}::${id}`, name: id };
269
+ const dot = id.lastIndexOf('.');
270
+ if (dot >= 0) {
271
+ return { qualifiedName: `${id.slice(0, dot)}::${id.slice(dot + 1)}`, name: id.slice(dot + 1) };
272
+ }
273
+ return { qualifiedName: id, name: id };
274
+ }
173
275
  previewSql(body) {
174
276
  return body.replace(/<[^>]+>/g, ' ').replace(/\s+/g, ' ').trim().slice(0, 200);
175
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mybatis-extractor.js","sourceRoot":"","sources":["../../src/extraction/mybatis-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mybatis-extractor.js","sourceRoot":"","sources":["../../src/extraction/mybatis-extractor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter-helpers.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEtF;AA+CD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgC1F"}
1
+ {"version":3,"file":"tree-sitter-helpers.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEtF;AAgDD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgC1F"}
@@ -114,6 +114,7 @@ function cleanCommentMarkers(comment) {
114
114
  .replace(/^\/\/[/!]?\s?/gm, '') // // , and Rust/Swift doc lines /// //!
115
115
  .replace(/^--\s?/gm, '') // Lua/Luau line comments
116
116
  .replace(/^#\s?/gm, '') // Python/Ruby/shell line comments
117
+ .replace(/^%+\s?/gm, '') // Erlang line comments (% / %% / %%%)
117
118
  .replace(/^\s*\*\s?/gm, '') // block-comment continuation (* foo)
118
119
  .trim();
119
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter-helpers.js","sourceRoot":"","sources":["../../src/extraction/tree-sitter-helpers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYH,wCAYC;AAKD,kCAEC;AAKD,0CAEC;AAkDD,sDAgCC;AArHD,+CAAiC;AAGjC;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,QAAgB,EAChB,IAAc,EACd,IAAY,EACZ,IAAY;IAEZ,MAAM,IAAI,GAAG,MAAM;SAChB,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,GAAG,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;SAC7C,MAAM,CAAC,KAAK,CAAC;SACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpB,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAgB,EAAE,MAAc;IAC1D,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAgB,EAAE,SAAiB;IACjE,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,kBAAkB,EAAE,yCAAyC;IAC7D,sBAAsB,EAAE,oCAAoC;IAC5D,qBAAqB,EAAE,gCAAgC;IACvD,sBAAsB,EAAE,qBAAqB;IAC7C,qBAAqB,EAAE,mDAAmD;IAC1E,qBAAqB,EAAE,kBAAkB;CAC1C,CAAC,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,SAAS,mBAAmB,CAAC,OAAe;IAC1C,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACvE,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC/E,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SACxE,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC;SACL,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,wCAAwC;SACvE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,gCAAgC;SACxD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,0CAA0C;SACjE,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,yCAAyC;SACpE,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAgB,EAAE,MAAc;IACpE,yEAAyE;IACzE,2EAA2E;IAC3E,6EAA6E;IAC7E,uEAAuE;IACvE,kBAAkB;IAClB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,MAAM,CAAC,MAAM,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,OAAO,OAAO,EAAE,CAAC;QACf,IACE,OAAO,CAAC,IAAI,KAAK,SAAS;YAC1B,OAAO,CAAC,IAAI,KAAK,cAAc;YAC/B,OAAO,CAAC,IAAI,KAAK,eAAe;YAChC,OAAO,CAAC,IAAI,KAAK,uBAAuB,EACxC,CAAC;YACD,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/C,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,mEAAmE;IACnE,OAAO,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"tree-sitter-helpers.js","sourceRoot":"","sources":["../../src/extraction/tree-sitter-helpers.ts"],"names":[],"mappings":"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"}
@@ -76,8 +76,10 @@ export interface LanguageExtractor {
76
76
  * grammar mis-parses inside enum bodies). MUST preserve byte offsets (replace
77
77
  * removed text with spaces, keep newlines) so node positions and getNodeText
78
78
  * stay correct; the returned string is used for both parsing and extraction.
79
+ * `filePath` lets a transform key off the concrete file extension when one
80
+ * language id serves several dialects (C++ also parses `.metal` shaders).
79
81
  */
80
- preParse?: (source: string) => string;
82
+ preParse?: (source: string, filePath?: string) => string;
81
83
  /** Node types that represent functions */
82
84
  functionTypes: string[];
83
85
  /** Node types that represent classes */
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter-types.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-sitter-types.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter-types.ts"],"names":[],"mappings":"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"}