@colbymchenry/codegraph-win32-x64 1.1.6 → 1.3.0

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 (219) 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 +14 -1
  7. package/lib/dist/bin/command-supervision.js.map +1 -1
  8. package/lib/dist/db/migrations.d.ts +1 -1
  9. package/lib/dist/db/migrations.d.ts.map +1 -1
  10. package/lib/dist/db/migrations.js +19 -1
  11. package/lib/dist/db/migrations.js.map +1 -1
  12. package/lib/dist/db/queries.d.ts +51 -0
  13. package/lib/dist/db/queries.d.ts.map +1 -1
  14. package/lib/dist/db/queries.js +141 -0
  15. package/lib/dist/db/queries.js.map +1 -1
  16. package/lib/dist/db/schema.sql +19 -0
  17. package/lib/dist/directory.d.ts +9 -5
  18. package/lib/dist/directory.d.ts.map +1 -1
  19. package/lib/dist/directory.js +210 -19
  20. package/lib/dist/directory.js.map +1 -1
  21. package/lib/dist/extraction/cfml-extractor.d.ts +107 -0
  22. package/lib/dist/extraction/cfml-extractor.d.ts.map +1 -0
  23. package/lib/dist/extraction/cfml-extractor.js +494 -0
  24. package/lib/dist/extraction/cfml-extractor.js.map +1 -0
  25. package/lib/dist/extraction/grammars.d.ts +9 -0
  26. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  27. package/lib/dist/extraction/grammars.js +115 -3
  28. package/lib/dist/extraction/grammars.js.map +1 -1
  29. package/lib/dist/extraction/index.d.ts +46 -1
  30. package/lib/dist/extraction/index.d.ts.map +1 -1
  31. package/lib/dist/extraction/index.js +254 -3
  32. package/lib/dist/extraction/index.js.map +1 -1
  33. package/lib/dist/extraction/languages/arkts.d.ts +3 -0
  34. package/lib/dist/extraction/languages/arkts.d.ts.map +1 -0
  35. package/lib/dist/extraction/languages/arkts.js +127 -0
  36. package/lib/dist/extraction/languages/arkts.js.map +1 -0
  37. package/lib/dist/extraction/languages/c-cpp.d.ts +59 -0
  38. package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  39. package/lib/dist/extraction/languages/c-cpp.js +499 -3
  40. package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
  41. package/lib/dist/extraction/languages/cfquery.d.ts +12 -0
  42. package/lib/dist/extraction/languages/cfquery.d.ts.map +1 -0
  43. package/lib/dist/extraction/languages/cfquery.js +28 -0
  44. package/lib/dist/extraction/languages/cfquery.js.map +1 -0
  45. package/lib/dist/extraction/languages/cfscript.d.ts +3 -0
  46. package/lib/dist/extraction/languages/cfscript.d.ts.map +1 -0
  47. package/lib/dist/extraction/languages/cfscript.js +73 -0
  48. package/lib/dist/extraction/languages/cfscript.js.map +1 -0
  49. package/lib/dist/extraction/languages/cobol.d.ts +33 -0
  50. package/lib/dist/extraction/languages/cobol.d.ts.map +1 -0
  51. package/lib/dist/extraction/languages/cobol.js +499 -0
  52. package/lib/dist/extraction/languages/cobol.js.map +1 -0
  53. package/lib/dist/extraction/languages/erlang.d.ts +3 -0
  54. package/lib/dist/extraction/languages/erlang.d.ts.map +1 -0
  55. package/lib/dist/extraction/languages/erlang.js +350 -0
  56. package/lib/dist/extraction/languages/erlang.js.map +1 -0
  57. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  58. package/lib/dist/extraction/languages/index.js +18 -0
  59. package/lib/dist/extraction/languages/index.js.map +1 -1
  60. package/lib/dist/extraction/languages/nix.d.ts +3 -0
  61. package/lib/dist/extraction/languages/nix.d.ts.map +1 -0
  62. package/lib/dist/extraction/languages/nix.js +294 -0
  63. package/lib/dist/extraction/languages/nix.js.map +1 -0
  64. package/lib/dist/extraction/languages/solidity.d.ts +3 -0
  65. package/lib/dist/extraction/languages/solidity.d.ts.map +1 -0
  66. package/lib/dist/extraction/languages/solidity.js +293 -0
  67. package/lib/dist/extraction/languages/solidity.js.map +1 -0
  68. package/lib/dist/extraction/languages/terraform.d.ts +3 -0
  69. package/lib/dist/extraction/languages/terraform.d.ts.map +1 -0
  70. package/lib/dist/extraction/languages/terraform.js +641 -0
  71. package/lib/dist/extraction/languages/terraform.js.map +1 -0
  72. package/lib/dist/extraction/languages/vbnet.d.ts +11 -0
  73. package/lib/dist/extraction/languages/vbnet.d.ts.map +1 -0
  74. package/lib/dist/extraction/languages/vbnet.js +141 -0
  75. package/lib/dist/extraction/languages/vbnet.js.map +1 -0
  76. package/lib/dist/extraction/mybatis-extractor.d.ts +30 -10
  77. package/lib/dist/extraction/mybatis-extractor.d.ts.map +1 -1
  78. package/lib/dist/extraction/mybatis-extractor.js +140 -38
  79. package/lib/dist/extraction/mybatis-extractor.js.map +1 -1
  80. package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
  81. package/lib/dist/extraction/tree-sitter-helpers.js +1 -0
  82. package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
  83. package/lib/dist/extraction/tree-sitter-types.d.ts +20 -1
  84. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  85. package/lib/dist/extraction/tree-sitter.d.ts +38 -0
  86. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  87. package/lib/dist/extraction/tree-sitter.js +845 -16
  88. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  89. package/lib/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
  90. package/lib/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
  91. package/lib/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
  92. package/lib/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
  93. package/lib/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
  94. package/lib/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
  95. package/lib/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
  96. package/lib/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
  97. package/lib/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
  98. package/lib/dist/graph/traversal.d.ts.map +1 -1
  99. package/lib/dist/graph/traversal.js +76 -17
  100. package/lib/dist/graph/traversal.js.map +1 -1
  101. package/lib/dist/index.d.ts +63 -1
  102. package/lib/dist/index.d.ts.map +1 -1
  103. package/lib/dist/index.js +310 -6
  104. package/lib/dist/index.js.map +1 -1
  105. package/lib/dist/installer/index.d.ts.map +1 -1
  106. package/lib/dist/installer/index.js +3 -1
  107. package/lib/dist/installer/index.js.map +1 -1
  108. package/lib/dist/mcp/daemon.d.ts +25 -3
  109. package/lib/dist/mcp/daemon.d.ts.map +1 -1
  110. package/lib/dist/mcp/daemon.js +39 -7
  111. package/lib/dist/mcp/daemon.js.map +1 -1
  112. package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
  113. package/lib/dist/mcp/dynamic-boundaries.js +2 -1
  114. package/lib/dist/mcp/dynamic-boundaries.js.map +1 -1
  115. package/lib/dist/mcp/early-ppid.d.ts +26 -0
  116. package/lib/dist/mcp/early-ppid.d.ts.map +1 -0
  117. package/lib/dist/mcp/early-ppid.js +29 -0
  118. package/lib/dist/mcp/early-ppid.js.map +1 -0
  119. package/lib/dist/mcp/index.d.ts.map +1 -1
  120. package/lib/dist/mcp/index.js +21 -4
  121. package/lib/dist/mcp/index.js.map +1 -1
  122. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  123. package/lib/dist/mcp/proxy.js +21 -3
  124. package/lib/dist/mcp/proxy.js.map +1 -1
  125. package/lib/dist/mcp/startup-handshake.d.ts +44 -0
  126. package/lib/dist/mcp/startup-handshake.d.ts.map +1 -0
  127. package/lib/dist/mcp/startup-handshake.js +73 -0
  128. package/lib/dist/mcp/startup-handshake.js.map +1 -0
  129. package/lib/dist/mcp/tools.d.ts +22 -0
  130. package/lib/dist/mcp/tools.d.ts.map +1 -1
  131. package/lib/dist/mcp/tools.js +74 -9
  132. package/lib/dist/mcp/tools.js.map +1 -1
  133. package/lib/dist/project-config.d.ts +38 -0
  134. package/lib/dist/project-config.d.ts.map +1 -1
  135. package/lib/dist/project-config.js +101 -2
  136. package/lib/dist/project-config.js.map +1 -1
  137. package/lib/dist/resolution/callback-synthesizer.d.ts +1 -1
  138. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  139. package/lib/dist/resolution/callback-synthesizer.js +743 -11
  140. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  141. package/lib/dist/resolution/cooperative-yield.d.ts +32 -0
  142. package/lib/dist/resolution/cooperative-yield.d.ts.map +1 -0
  143. package/lib/dist/resolution/cooperative-yield.js +42 -0
  144. package/lib/dist/resolution/cooperative-yield.js.map +1 -0
  145. package/lib/dist/resolution/frameworks/cics.d.ts +20 -0
  146. package/lib/dist/resolution/frameworks/cics.d.ts.map +1 -0
  147. package/lib/dist/resolution/frameworks/cics.js +90 -0
  148. package/lib/dist/resolution/frameworks/cics.js.map +1 -0
  149. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  150. package/lib/dist/resolution/frameworks/index.js +6 -0
  151. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  152. package/lib/dist/resolution/frameworks/java.d.ts.map +1 -1
  153. package/lib/dist/resolution/frameworks/java.js +14 -6
  154. package/lib/dist/resolution/frameworks/java.js.map +1 -1
  155. package/lib/dist/resolution/frameworks/terraform.d.ts +38 -0
  156. package/lib/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  157. package/lib/dist/resolution/frameworks/terraform.js +277 -0
  158. package/lib/dist/resolution/frameworks/terraform.js.map +1 -0
  159. package/lib/dist/resolution/import-resolver.d.ts +7 -0
  160. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  161. package/lib/dist/resolution/import-resolver.js +129 -4
  162. package/lib/dist/resolution/import-resolver.js.map +1 -1
  163. package/lib/dist/resolution/index.d.ts +44 -2
  164. package/lib/dist/resolution/index.d.ts.map +1 -1
  165. package/lib/dist/resolution/index.js +335 -30
  166. package/lib/dist/resolution/index.js.map +1 -1
  167. package/lib/dist/resolution/name-matcher.d.ts +22 -3
  168. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  169. package/lib/dist/resolution/name-matcher.js +484 -39
  170. package/lib/dist/resolution/name-matcher.js.map +1 -1
  171. package/lib/dist/resolution/strip-comments.d.ts +1 -1
  172. package/lib/dist/resolution/strip-comments.d.ts.map +1 -1
  173. package/lib/dist/resolution/strip-comments.js +49 -0
  174. package/lib/dist/resolution/strip-comments.js.map +1 -1
  175. package/lib/dist/resolution/types.d.ts +20 -0
  176. package/lib/dist/resolution/types.d.ts.map +1 -1
  177. package/lib/dist/resolution/workspace-packages.d.ts +10 -0
  178. package/lib/dist/resolution/workspace-packages.d.ts.map +1 -1
  179. package/lib/dist/resolution/workspace-packages.js +142 -4
  180. package/lib/dist/resolution/workspace-packages.js.map +1 -1
  181. package/lib/dist/search/identifier-segments.d.ts +60 -0
  182. package/lib/dist/search/identifier-segments.d.ts.map +1 -0
  183. package/lib/dist/search/identifier-segments.js +176 -0
  184. package/lib/dist/search/identifier-segments.js.map +1 -0
  185. package/lib/dist/sync/git-hooks.d.ts.map +1 -1
  186. package/lib/dist/sync/git-hooks.js +2 -0
  187. package/lib/dist/sync/git-hooks.js.map +1 -1
  188. package/lib/dist/sync/watcher.d.ts +10 -5
  189. package/lib/dist/sync/watcher.d.ts.map +1 -1
  190. package/lib/dist/sync/watcher.js +51 -14
  191. package/lib/dist/sync/watcher.js.map +1 -1
  192. package/lib/dist/sync/worktree.d.ts.map +1 -1
  193. package/lib/dist/sync/worktree.js +5 -0
  194. package/lib/dist/sync/worktree.js.map +1 -1
  195. package/lib/dist/types.d.ts +19 -1
  196. package/lib/dist/types.d.ts.map +1 -1
  197. package/lib/dist/types.js +10 -0
  198. package/lib/dist/types.js.map +1 -1
  199. package/lib/dist/upgrade/index.js +1 -1
  200. package/lib/dist/upgrade/index.js.map +1 -1
  201. package/lib/node_modules/.package-lock.json +1 -1
  202. package/lib/package.json +1 -1
  203. package/package.json +1 -1
  204. package/lib/dist/reasoning/config.d.ts +0 -45
  205. package/lib/dist/reasoning/config.d.ts.map +0 -1
  206. package/lib/dist/reasoning/config.js +0 -171
  207. package/lib/dist/reasoning/config.js.map +0 -1
  208. package/lib/dist/reasoning/credentials.d.ts +0 -5
  209. package/lib/dist/reasoning/credentials.d.ts.map +0 -1
  210. package/lib/dist/reasoning/credentials.js +0 -83
  211. package/lib/dist/reasoning/credentials.js.map +0 -1
  212. package/lib/dist/reasoning/login.d.ts +0 -21
  213. package/lib/dist/reasoning/login.d.ts.map +0 -1
  214. package/lib/dist/reasoning/login.js +0 -85
  215. package/lib/dist/reasoning/login.js.map +0 -1
  216. package/lib/dist/reasoning/reasoner.d.ts +0 -43
  217. package/lib/dist/reasoning/reasoner.d.ts.map +0 -1
  218. package/lib/dist/reasoning/reasoner.js +0 -308
  219. package/lib/dist/reasoning/reasoner.js.map +0 -1
@@ -4,6 +4,13 @@ exports.cppExtractor = exports.cExtractor = void 0;
4
4
  exports.normalizeCppReturnType = normalizeCppReturnType;
5
5
  exports.stripCppTemplateArgs = stripCppTemplateArgs;
6
6
  exports.blankCppExportMacros = blankCppExportMacros;
7
+ exports.blankCppInlineMacros = blankCppInlineMacros;
8
+ exports.recoverMangledCppName = recoverMangledCppName;
9
+ exports.blankMetalAttributes = blankMetalAttributes;
10
+ exports.blankCppAnnotationMacroCalls = blankCppAnnotationMacroCalls;
11
+ exports.blankCppApiPrefixMacros = blankCppApiPrefixMacros;
12
+ exports.blankCppInlineAnnotationMacros = blankCppInlineAnnotationMacros;
13
+ exports.blankCudaConstructs = blankCudaConstructs;
7
14
  const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
8
15
  /**
9
16
  * Find the function NAME's `qualified_identifier` (`Foo::bar`) inside a
@@ -30,7 +37,60 @@ function findDeclaratorQualifiedId(declarator) {
30
37
  }
31
38
  return undefined;
32
39
  }
40
+ /**
41
+ * Recover the real function name from the macro-definition idiom
42
+ * `MACRO_NAME(real_name, typed args…) { body }` — flash-attention's
43
+ * `DEFINE_FLASH_FORWARD_KERNEL(flash_fwd_kernel, bool Is_dropout, …) { … }`
44
+ * being the motivating case: tree-sitter parses the invocation as a
45
+ * function_definition NAMED after the macro, so every such kernel shared one
46
+ * name (`DEFINE_FLASH_FORWARD_KERNEL`) and the launch sites' calls to the real
47
+ * names (`flash_fwd_kernel<…><<<…>>>`) could never resolve.
48
+ *
49
+ * Deliberately narrow so name-in-first-arg is unambiguous — ALL of:
50
+ * - the parsed name is macro-shaped: ALL-CAPS with at least one underscore
51
+ * (`TEST` never matches; K&R C definitions have lowercase names);
52
+ * - the first "parameter" is a LONE identifier (no type, no declarator)
53
+ * containing a lowercase letter — the name being defined;
54
+ * - at least one more parameter follows and NONE of them is another lone
55
+ * identifier — a second bare arg means the first isn't the name (gtest's
56
+ * `TEST_F(Fixture, Name)`, `PYBIND11_MODULE(ext, m)`,
57
+ * google-benchmark's `BENCHMARK_DEFINE_F(Fix, name)` all bail here).
58
+ */
59
+ function recoverCppMacroDefinedName(node, source) {
60
+ if (node.type !== 'function_definition')
61
+ return undefined;
62
+ const declarator = (0, tree_sitter_helpers_1.getChildByField)(node, 'declarator');
63
+ if (declarator?.type !== 'function_declarator')
64
+ return undefined;
65
+ const inner = (0, tree_sitter_helpers_1.getChildByField)(declarator, 'declarator');
66
+ if (inner?.type !== 'identifier')
67
+ return undefined;
68
+ const macroName = (0, tree_sitter_helpers_1.getNodeText)(inner, source);
69
+ if (!/^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+$/.test(macroName))
70
+ return undefined;
71
+ const params = (0, tree_sitter_helpers_1.getChildByField)(declarator, 'parameters');
72
+ if (!params || params.namedChildCount < 2)
73
+ return undefined;
74
+ const loneIdentText = (p) => p.type === 'parameter_declaration' &&
75
+ p.namedChildCount === 1 &&
76
+ p.namedChild(0)?.type === 'type_identifier'
77
+ ? (0, tree_sitter_helpers_1.getNodeText)(p.namedChild(0), source)
78
+ : null;
79
+ const first = params.namedChild(0);
80
+ const name = first ? loneIdentText(first) : null;
81
+ if (!name || !/[a-z]/.test(name))
82
+ return undefined;
83
+ for (let i = 1; i < params.namedChildCount; i++) {
84
+ const p = params.namedChild(i);
85
+ if (p && loneIdentText(p) !== null)
86
+ return undefined;
87
+ }
88
+ return name;
89
+ }
33
90
  function extractCppQualifiedMethodName(node, source) {
91
+ const macroDefined = recoverCppMacroDefinedName(node, source);
92
+ if (macroDefined)
93
+ return macroDefined;
34
94
  const declarator = (0, tree_sitter_helpers_1.getChildByField)(node, 'declarator');
35
95
  if (!declarator)
36
96
  return undefined;
@@ -137,6 +197,10 @@ function extractCppReturnType(node, source) {
137
197
  return normalizeCppReturnType((0, tree_sitter_helpers_1.getNodeText)(typeNode, source));
138
198
  }
139
199
  exports.cExtractor = {
200
+ // CUDA in C-detected headers (content-gated blank; see preParseCSource).
201
+ preParse: preParseCSource,
202
+ // Universal net: recover a real name from any macro-mangled function name.
203
+ recoverMangledName: recoverMangledCppName,
140
204
  functionTypes: ['function_definition'],
141
205
  classTypes: [],
142
206
  methodTypes: [],
@@ -252,12 +316,444 @@ function blankCppExportMacros(source) {
252
316
  return source;
253
317
  return source.replace(/\b(class|struct)(\s+)([A-Z][A-Z0-9_]+)(?=\s+[A-Za-z_]\w*(?:\s+final)?\s*[:{])/g, (_m, kw, ws, macro) => kw + ws + ' '.repeat(macro.length));
254
318
  }
319
+ /**
320
+ * Blank a known inline-specifier macro sitting in front of a function's return
321
+ * type (`FORCEINLINE FString GetName(…)`), before parsing. Not knowing the
322
+ * macro, tree-sitter can't reconcile `MACRO <return-type> <name>(` — an extra
323
+ * type-like token before the name — and drops into error recovery: the macro
324
+ * becomes the return type and, for a non-primitive return, the return type gets
325
+ * glued onto the name (`GetName` → `"FString GetName"`), so the function can't
326
+ * be found by name and its callers don't link. This is pervasive in Unreal
327
+ * Engine (`FORCEINLINE <ret> <name>(…)`) and in vendored third-party libraries
328
+ * that define their own inline macro (pugixml's `PUGI__FN`, Godot's
329
+ * `_FORCE_INLINE_`, Boost's `BOOST_FORCEINLINE`, …). Replacing the macro with
330
+ * equal-length spaces preserves every byte offset (so line/column stay exact)
331
+ * and the declaration then parses as an ordinary function — recovering the real
332
+ * name AND the return type — mirroring how `blankCppExportMacros` recovers
333
+ * macro-annotated classes (#946/#1061).
334
+ *
335
+ * Matched tightly so it can't touch an ordinary identifier: only the exact,
336
+ * curated inline-specifier tokens below (never an arbitrary all-caps token, so a
337
+ * real return type like `HRESULT DoIt()` is untouched), and only in specifier
338
+ * position — immediately followed by whitespace and the identifier that starts
339
+ * the return type or name. That lookahead leaves value/expression uses
340
+ * (`x = FORCEINLINE ? …`), string literals, and longer words
341
+ * (`FORCEINLINE_SOMETHINGELSE`, word-boundary) alone. To cover a new codebase's
342
+ * inline macro, add its exact token to the list.
343
+ */
344
+ const CPP_INLINE_MACROS = [
345
+ // Unreal Engine
346
+ 'FORCEINLINE_DEBUGGABLE', 'FORCENOINLINE', 'FORCEINLINE',
347
+ // pugixml (ubiquitous vendored XML parser): `#define PUGI__FN inline` before
348
+ // the return type, plus `PUGIXML_FUNCTION` (linkage macro) between the return
349
+ // type and the name — the blank mechanism handles both positions.
350
+ 'PUGI__FN_NO_INLINE', 'PUGI__FN', 'PUGIXML_FUNCTION',
351
+ // Godot
352
+ '_ALWAYS_INLINE_', '_FORCE_INLINE_',
353
+ // Boost
354
+ 'BOOST_FORCEINLINE', 'BOOST_NOINLINE',
355
+ // Qt (per-method markers + inline)
356
+ 'Q_INVOKABLE', 'Q_SCRIPTABLE', 'Q_ALWAYS_INLINE', 'Q_SLOT', 'Q_SIGNAL',
357
+ // Folly / Abseil / LLVM / V8 / Eigen / rapidjson
358
+ 'FOLLY_ALWAYS_INLINE', 'FOLLY_NOINLINE',
359
+ 'ABSL_ATTRIBUTE_ALWAYS_INLINE', 'ABSL_ATTRIBUTE_NOINLINE',
360
+ 'LLVM_ATTRIBUTE_ALWAYS_INLINE', 'LLVM_ATTRIBUTE_NOINLINE',
361
+ 'V8_INLINE', 'V8_NOINLINE',
362
+ 'EIGEN_STRONG_INLINE', 'EIGEN_ALWAYS_INLINE', 'EIGEN_DEVICE_FUNC',
363
+ 'RAPIDJSON_FORCEINLINE',
364
+ // Mozilla / SpiderMonkey
365
+ 'MOZ_ALWAYS_INLINE', 'MOZ_NEVER_INLINE',
366
+ // Protocol Buffers
367
+ 'PROTOBUF_ALWAYS_INLINE', 'PROTOBUF_NOINLINE',
368
+ // {fmt} / spdlog
369
+ 'FMT_CONSTEXPR20', 'FMT_CONSTEXPR', 'FMT_INLINE',
370
+ // Hedley + nlohmann/json (bundles Hedley)
371
+ 'JSON_HEDLEY_ALWAYS_INLINE', 'JSON_HEDLEY_NEVER_INLINE',
372
+ 'HEDLEY_ALWAYS_INLINE', 'HEDLEY_NEVER_INLINE',
373
+ // GLM (graphics math — pervasive in games/rendering)
374
+ 'GLM_FUNC_QUALIFIER', 'GLM_FUNC_DECL', 'GLM_CONSTEXPR', 'GLM_INLINE',
375
+ // Bullet Physics / Skia / OpenCV / EASTL / Cocos2d-x / Chromium-WebKit
376
+ 'SIMD_FORCE_INLINE',
377
+ 'SK_ALWAYS_INLINE',
378
+ 'CV_ALWAYS_INLINE', 'CV_INLINE',
379
+ 'EA_FORCE_INLINE', 'EA_NOINLINE',
380
+ 'CC_INLINE',
381
+ 'NEVER_INLINE',
382
+ // C libraries: GLib, SQLite (internal linkage)
383
+ 'G_INLINE_FUNC', 'SQLITE_PRIVATE', 'SQLITE_API',
384
+ // Windows calling conventions (linkage position — recover the return type; the
385
+ // name is salvaged regardless). Only the unambiguous, non-word-like ones.
386
+ 'STDMETHODCALLTYPE', 'WINAPIV', 'WINAPI', 'APIENTRY',
387
+ // Common cross-ecosystem inline/attribute hints
388
+ 'ALWAYS_INLINE', 'FORCE_INLINE', 'NOINLINE',
389
+ ];
390
+ // One alternation, longest token first so a longer macro wins over a prefix.
391
+ const CPP_INLINE_MACRO_RE = new RegExp(`\\b(${[...CPP_INLINE_MACROS].sort((a, b) => b.length - a.length).join('|')})\\b(?=\\s+[A-Za-z_])`, 'g');
392
+ function blankCppInlineMacros(source) {
393
+ if (!CPP_INLINE_MACROS.some((m) => source.indexOf(m) !== -1))
394
+ return source;
395
+ return source.replace(CPP_INLINE_MACRO_RE, (m) => ' '.repeat(m.length));
396
+ }
397
+ // Bare C/C++ type/qualifier tokens that must never be taken as a recovered
398
+ // function name (guards `recoverMangledCppName` against the `Ret (name)` idiom,
399
+ // where the token before the params is the return type, not the name).
400
+ const CPP_PRIMITIVE_NAMES = new Set([
401
+ 'bool', 'void', 'int', 'char', 'short', 'long', 'float', 'double', 'unsigned',
402
+ 'signed', 'wchar_t', 'char8_t', 'char16_t', 'char32_t', 'char_t', 'size_t',
403
+ 'auto', 'const', 'struct', 'class', 'enum', 'union', 'typename',
404
+ ]);
405
+ /**
406
+ * Universal fallback (any macro, no list) for a C/C++ function name still mangled
407
+ * because a macro we don't blank sat in front of the return type: `MACRO Ret
408
+ * name(…)` / `Ret MACRO name(…)` misparse so the return type is glued onto the
409
+ * name ("Ret name", "char_t* to_str(double v)"). Recover the real identifier —
410
+ * the token immediately before the parameter list (or the last token). This runs
411
+ * AFTER the curated pre-parse blank, so it only ever sees the residual tail that
412
+ * blanking didn't already fix cleanly (which also recovers the return type).
413
+ *
414
+ * Safe by construction: only touches an ALREADY-mangled name — one with an
415
+ * internal space that isn't a legit `operator …`/destructor — so a well-formed
416
+ * name is returned unchanged. Guarded against the two ways it could mis-pick:
417
+ * the `Ret (name)` parenthesized-name idiom (left as-is, ambiguous), and a token
418
+ * that is a bare primitive/keyword rather than a real identifier.
419
+ */
420
+ function recoverMangledCppName(name) {
421
+ if (!/\s/.test(name) || name.startsWith('operator') || name.startsWith('~'))
422
+ return name;
423
+ if (/^\S+\s+\([A-Za-z_]\w*\)/.test(name))
424
+ return name; // `Ret (name)` idiom — leave alone
425
+ const beforeParams = name.includes('(') ? name.slice(0, name.indexOf('(')) : name;
426
+ const tokens = beforeParams.trim().split(/\s+/);
427
+ const candidate = tokens[tokens.length - 1];
428
+ if (!candidate || !/^[A-Za-z_]\w*$/.test(candidate) || CPP_PRIMITIVE_NAMES.has(candidate))
429
+ return name;
430
+ return candidate;
431
+ }
432
+ /**
433
+ * Blank Metal Shading Language `[[attribute]]` annotations before parsing.
434
+ * MSL (≈ C++14) puts attributes AFTER the declarator — `float4 position
435
+ * [[position]];`, `constant Uniforms &u [[buffer(0)]]` — a position
436
+ * tree-sitter-cpp can't reconcile: a struct field with a trailing attribute
437
+ * misparses into a shape that emits a spurious `extends` reference from the
438
+ * struct to the field's *type* (`VertexIn extends float3`), which becomes a
439
+ * wrong inheritance edge whenever the repo defines that type itself (simd
440
+ * typedefs in a shared ShaderTypes.h are common). Replacing the attribute with
441
+ * equal-length spaces preserves every byte offset and lets fields and
442
+ * parameters parse as ordinary declarations, mirroring the macro blanks above.
443
+ *
444
+ * Matched tightly to the attribute shape — `[[ident]]`, `[[ident(args)]]`, and
445
+ * comma-separated lists (`[[buffer(0), raster_order_group(0)]]`) — so a
446
+ * subscripted lambda call (`arr[[]{ … }()]`, the only other way `[[` appears in
447
+ * C++-family source) can never match: after `[[` a lambda continues with `]`,
448
+ * never an identifier followed by `]]`. Applied ONLY to `.metal` files — in
449
+ * regular C++ the pre-declarator attribute position (`[[nodiscard]] int f()`)
450
+ * is legal syntax the grammar parses natively, and blanking it would be pure
451
+ * blast radius. (#1121)
452
+ */
453
+ const METAL_ATTRIBUTE_RE = /\[\[\s*[A-Za-z_]\w*(?:\s*\([^()\n]*\))?(?:\s*,\s*[A-Za-z_]\w*(?:\s*\([^()\n]*\))?)*\s*\]\]/g;
454
+ function blankMetalAttributes(source) {
455
+ if (source.indexOf('[[') === -1)
456
+ return source;
457
+ return source.replace(METAL_ATTRIBUTE_RE, (m) => ' '.repeat(m.length));
458
+ }
459
+ /**
460
+ * Blank annotation-style macro invocations that decorate a declaration but carry
461
+ * NO terminating semicolon — the pervasive Unreal-Engine reflection markup
462
+ * (`UPROPERTY(...)`, `UFUNCTION(...)`, `UCLASS(...)`, `GENERATED_BODY()`,
463
+ * `UE_DEPRECATED_FORGAME(...)`, `DECLARE_DELEGATE_*(...)`, …) that sits on its
464
+ * own line right before a member/type. tree-sitter's C++ grammar doesn't know
465
+ * these are macros, so each one drops into error recovery; in a big reflected
466
+ * class (`CharacterMovementComponent.h` has ~240 of them) the errors accumulate
467
+ * until the enclosing `class_specifier` can't close and collapses into an ERROR
468
+ * node — the whole class definition, its members, and its `extends` edges vanish
469
+ * from the graph. Neither `blankCppExportMacros` (class-header export macros) nor
470
+ * `blankCppInlineMacros` (return-type inline specifiers) touches these in-body
471
+ * markup macros. Replacing each with equal-length spaces preserves every byte
472
+ * offset (so line/column stay exact) and the class then parses normally.
473
+ *
474
+ * Deliberately name-list-FREE — UE alone has hundreds of such macros and projects
475
+ * add their own — so it keys on structure, not a curated list, matched tightly to
476
+ * avoid touching legitimate C++:
477
+ * - the macro must be the FIRST non-whitespace token on its line (`^[ \t]*`),
478
+ * which is where declaration markup lives — so a macro used inside an
479
+ * expression or condition (`if (CHECK(x))`, `x = MACRO(a) + b`) is never
480
+ * matched (it isn't line-leading);
481
+ * - the name must be ALL-CAPS (`[A-Z][A-Z0-9_]{2,}`), since ordinary
482
+ * function/type names called at line start are lower/mixed case;
483
+ * - the char after the balanced `(...)` must START A DECLARATION — a letter,
484
+ * `_`, `~` (destructor), or `#` (a following directive). Declaration markup is
485
+ * always followed by the thing it decorates (`UPROPERTY(...)\n float X;`,
486
+ * `UE_DEPRECATED(...) UPROPERTY(...)`), whereas a statement call is followed by
487
+ * `;` (`FOO(x);`), an init-list item by `,`/`{`, and an expression fragment by
488
+ * an operator (`MAKE(a) + 1`) — all rejected. String/char literals inside the
489
+ * args are skipped so an embedded `)` can't mis-close the balance.
490
+ *
491
+ * C++-only (wired into cppExtractor). A blanked macro inside a block comment is
492
+ * harmless (comments don't parse), and the rare line-leading no-semicolon
493
+ * ALL-CAPS call that isn't markup only loses that one annotation, never a whole
494
+ * class.
495
+ */
496
+ function blankCppAnnotationMacroCalls(source) {
497
+ if (!/^[ \t]*[A-Z][A-Z0-9_]{2,}\s*\(/m.test(source))
498
+ return source;
499
+ const chars = source.split('');
500
+ const re = /^([ \t]*)([A-Z][A-Z0-9_]{2,})(\s*)\(/gm;
501
+ let m;
502
+ while ((m = re.exec(source)) !== null) {
503
+ const macroStart = m.index + (m[1] ?? '').length; // skip leading indent
504
+ let i = m.index + m[0].length - 1; // index of the opening '('
505
+ let depth = 0;
506
+ let end = -1;
507
+ for (; i < source.length; i++) {
508
+ const c = source[i];
509
+ if (c === '"' || c === "'") {
510
+ const quote = c;
511
+ i++;
512
+ while (i < source.length && source[i] !== quote) {
513
+ if (source[i] === '\\')
514
+ i++;
515
+ i++;
516
+ }
517
+ continue;
518
+ }
519
+ if (c === '(')
520
+ depth++;
521
+ else if (c === ')') {
522
+ depth--;
523
+ if (depth === 0) {
524
+ end = i + 1;
525
+ break;
526
+ }
527
+ }
528
+ }
529
+ if (end < 0)
530
+ continue;
531
+ let j = end;
532
+ while (j < source.length && /\s/.test(source[j]))
533
+ j++;
534
+ const after = source[j];
535
+ // Only markup is followed by the declaration it decorates; a statement call
536
+ // (`;`), init-list item (`,`/`{`), or expression fragment (operator) is not.
537
+ if (!after || !/[A-Za-z_~#]/.test(after))
538
+ continue;
539
+ for (let k = macroStart; k < end; k++) {
540
+ if (chars[k] !== '\n' && chars[k] !== '\r')
541
+ chars[k] = ' ';
542
+ }
543
+ re.lastIndex = end;
544
+ }
545
+ return chars.join('');
546
+ }
547
+ /**
548
+ * Blank an export/visibility macro sitting in front of a *member* or *method*
549
+ * declaration inside a class/namespace (`ENGINE_API virtual void Tick(…)`,
550
+ * `static ENGINE_API void AddReferencedObjects(…)`, `UE_API FVector GetVel()
551
+ * const`), before parsing. `blankCppExportMacros` only recovers the macro in a
552
+ * `class MACRO Name` *header*; the very same macro also prefixes almost every
553
+ * exported member of a big Unreal-Engine class, and tree-sitter — not knowing
554
+ * it's a macro — reads `MACRO <return-type> <name>(` as an extra type token and
555
+ * drops each such declaration into error recovery. In a heavily-exported header
556
+ * (`Actor.h`, `World.h`, …) hundreds of these accumulate: the return types pile
557
+ * up as orphan ERROR tokens and, combined with other markup, can still tip the
558
+ * enclosing class into collapse. Replacing the macro with equal-length spaces
559
+ * preserves every byte offset (line/column stay exact) and each member parses
560
+ * as an ordinary declaration.
561
+ *
562
+ * Matched tightly so it can't touch the same token used as a value
563
+ * (`int x = SOME_API;`, `if (mode == FOO_API)`): the token must be ALL-CAPS AND
564
+ * end in the conventional visibility-macro suffix `_API` / `_EXPORT` / `_ABI`
565
+ * (Unreal `*_API`, Qt/Boost `*_EXPORT`, LLVM `*_ABI`) — ordinary identifiers
566
+ * effectively never carry these suffixes — and must be immediately followed by
567
+ * whitespace then a declaration token (`\s+[A-Za-z_]`: a type, `virtual`,
568
+ * `static`, or the name). A value use is instead followed by `;`, `)`, `,`,
569
+ * `=`, `::`, or an operator, all of which fail the look-ahead. C++-only (wired
570
+ * into cppExtractor).
571
+ */
572
+ const CPP_API_PREFIX_RE = /\b[A-Z][A-Z0-9_]*(?:_API|_EXPORT|_ABI)\b(?=\s+[A-Za-z_])/g;
573
+ function blankCppApiPrefixMacros(source) {
574
+ if (!/_(?:API|EXPORT|ABI)\b/.test(source))
575
+ return source;
576
+ return source.replace(CPP_API_PREFIX_RE, (m) => ' '.repeat(m.length));
577
+ }
578
+ /**
579
+ * Blank an Unreal-Engine annotation macro that appears MID-LINE (not
580
+ * line-leading, so `blankCppAnnotationMacroCalls` never sees it) inside a
581
+ * declaration: an enum value's `UMETA(DisplayName="…")`, a parameter's
582
+ * `UPARAM(ref)`, or a deprecation tag wedged into a `using`/member declaration
583
+ * (`using FOnNetTick UE_DEPRECATED(5.5, "…") = TMulticastDelegate<void(float)>;`
584
+ * in `World.h`, which otherwise collapses `UWorld`). tree-sitter can't reconcile
585
+ * these embedded macro calls and drops into error recovery, and a mid-line one
586
+ * inside a big enum or a class-scope `using` can cascade into the whole enum /
587
+ * class being lost. Replacing the entire `MACRO(...)` (balanced parens, string
588
+ * literals skipped so an embedded `)` can't mis-close) with equal-length spaces
589
+ * preserves every byte offset and the declaration parses normally.
590
+ *
591
+ * Keyed on an explicit UE-only name list (`UMETA`, `UPARAM`, and the
592
+ * `UE_DEPRECATED*` family) — these identifiers are exclusive to Unreal's
593
+ * reflection layer and appear in no standard-C++ or other-library code, so
594
+ * blanking them is zero-risk to non-UE sources. (The line-LEADING forms of
595
+ * `UE_DEPRECATED(...)` are already handled by `blankCppAnnotationMacroCalls`;
596
+ * this covers the mid-line forms it structurally can't.) C++-only.
597
+ */
598
+ const CPP_INLINE_ANNOTATION_RE = /\b(?:UMETA|UPARAM|UE_DEPRECATED\w*)\s*\(/g;
599
+ function blankCppInlineAnnotationMacros(source) {
600
+ if (!/\b(?:UMETA|UPARAM|UE_DEPRECATED)/.test(source))
601
+ return source;
602
+ const chars = source.split('');
603
+ const re = new RegExp(CPP_INLINE_ANNOTATION_RE.source, 'g');
604
+ let m;
605
+ while ((m = re.exec(source)) !== null) {
606
+ let i = m.index + m[0].length - 1; // index of the opening '('
607
+ let depth = 0;
608
+ let end = -1;
609
+ for (; i < source.length; i++) {
610
+ const c = source[i];
611
+ if (c === '"' || c === "'") {
612
+ const quote = c;
613
+ i++;
614
+ while (i < source.length && source[i] !== quote) {
615
+ if (source[i] === '\\')
616
+ i++;
617
+ i++;
618
+ }
619
+ continue;
620
+ }
621
+ if (c === '(')
622
+ depth++;
623
+ else if (c === ')') {
624
+ depth--;
625
+ if (depth === 0) {
626
+ end = i + 1;
627
+ break;
628
+ }
629
+ }
630
+ }
631
+ if (end < 0)
632
+ continue;
633
+ for (let k = m.index; k < end; k++) {
634
+ if (chars[k] !== '\n' && chars[k] !== '\r')
635
+ chars[k] = ' ';
636
+ }
637
+ re.lastIndex = end;
638
+ }
639
+ return chars.join('');
640
+ }
641
+ /**
642
+ * Blank CUDA-specific constructs before parsing `.cu`/`.cuh` files (parsed with
643
+ * the C++ grammar). Three shapes tree-sitter-cpp can't reconcile, each replaced
644
+ * with equal-length whitespace so every byte offset survives (#387):
645
+ *
646
+ * 1. Execution-space / storage specifiers: in `__global__ void step(…)` or
647
+ * `__shared__ float tile[256]` the specifier parses as the declaration's
648
+ * TYPE and shunts the real return/value type into an ERROR node — mangling
649
+ * signatures and, for `__shared__` arrays, the declared name itself. Blanked
650
+ * unconditionally (no following-token lookahead) so extended lambdas
651
+ * (`[=] __device__ (int i) { … }`) recover too. `__restrict__` is deliberately
652
+ * absent: the grammar already parses it natively as a type_qualifier.
653
+ * 2. `__launch_bounds__(…)` between specifier and declarator — same misparse.
654
+ * The parenthesized form is blanked first; a bare leftover token is caught
655
+ * by the specifier list.
656
+ * 3. Kernel-launch configs `step<<<grid, block, smem, stream>>>(args)`: the
657
+ * chevrons lex as shift operators around an empty-named template, so no
658
+ * call_expression exists and the host→kernel call edge — the main reason to
659
+ * index CUDA at all — is lost. Blanking the `<<<…>>>` span leaves
660
+ * `step (args)`, a plain call the grammar
661
+ * parses natively (templated launches `k<T, 256><<<…>>>(…)` included).
662
+ *
663
+ * The launch-config match is deliberately bounded — statement/brace characters
664
+ * excluded, span capped, newlines preserved by the replacer — so a stray `<<<`
665
+ * (a committed merge-conflict marker, a string literal) can never blank a run
666
+ * of real code: an unmatched launch degrades to the status quo for that call
667
+ * site (no call edge), never to corruption. Applied to `.cu`/`.cuh` files and —
668
+ * because much real CUDA lives in extension-less headers (cutlass launches the
669
+ * majority of its kernels from `.h`; flash-attention's launch templates are
670
+ * `.h`; llm.c keeps device helpers in C-detected `.h`) — to any C/C++-family
671
+ * file whose CONTENT carries a strong CUDA marker (`looksLikeCudaSource`).
672
+ * Unlike Metal's `[[attribute]]` (legal C++ syntax elsewhere, hence Metal's
673
+ * strict extension gate), no CUDA marker is valid C++ anywhere: `<<<` isn't
674
+ * legal syntax and the dunder specifiers are implementation-reserved names no
675
+ * real codebase defines — so a content-triggered blank on a non-CUDA file can
676
+ * only ever whitespace tokens inside comments or strings, which parse the same.
677
+ */
678
+ const CUDA_LAUNCH_BOUNDS_RE = /\b__launch_bounds__\s*\([^()\n]*\)/g;
679
+ const CUDA_SPECIFIER_RE = /\b__(?:global|device|host|constant|shared|managed|grid_constant|forceinline|noinline|launch_bounds)__\b/g;
680
+ // `;` stays excluded (launch configs are expressions; a stray `<<<` spanning
681
+ // real statements always crosses one) and the span is capped. Braces are
682
+ // allowed through the regex — `k<<<dim3{1,1,1}, dim3{256,1,1}>>>(…)` is a real
683
+ // launch shape — but the replacer only blanks a BALANCED match: a merge
684
+ // conflict's `<<<<<<< … >>>>>>>` region that dodges every `;` still opens
685
+ // braces it never closes, so it fails the balance check and stays untouched.
686
+ const CUDA_LAUNCH_CONFIG_RE = /<<<[^;]{0,400}?>>>/g;
687
+ function blankCudaConstructs(source) {
688
+ let out = source;
689
+ if (out.indexOf('__') !== -1) {
690
+ out = out
691
+ .replace(CUDA_LAUNCH_BOUNDS_RE, (m) => ' '.repeat(m.length))
692
+ .replace(CUDA_SPECIFIER_RE, (m) => ' '.repeat(m.length));
693
+ }
694
+ if (out.indexOf('<<<') !== -1) {
695
+ out = out.replace(CUDA_LAUNCH_CONFIG_RE, (m) => {
696
+ let depth = 0;
697
+ for (let i = 0; i < m.length; i++) {
698
+ const ch = m.charCodeAt(i);
699
+ if (ch === 0x7b /* { */)
700
+ depth++;
701
+ else if (ch === 0x7d /* } */ && --depth < 0)
702
+ return m;
703
+ }
704
+ return depth === 0 ? m.replace(/[^\n]/g, ' ') : m;
705
+ });
706
+ }
707
+ return out;
708
+ }
709
+ /** Strong content markers for CUDA source in files without a CUDA extension
710
+ * (headers). The dunders are execution-space specifiers that only nvcc defines;
711
+ * `cudaStream_t` is the runtime's stream handle, pervasive in launcher headers
712
+ * that themselves declare no kernel. Deliberately excludes weak markers (`dim3`,
713
+ * `<<<`) that could plausibly appear in non-CUDA text. */
714
+ function looksLikeCudaSource(source) {
715
+ return (source.indexOf('__global__') !== -1 ||
716
+ source.indexOf('__device__') !== -1 ||
717
+ source.indexOf('__constant__') !== -1 ||
718
+ source.indexOf('cudaStream_t') !== -1);
719
+ }
720
+ /** C/C++ source pre-processing before tree-sitter: recover macro-annotated class
721
+ * definitions, macro-prefixed function definitions, macro-prefixed members, and
722
+ * macro-decorated members (Unreal-Engine reflection markup) — plus the non-C++
723
+ * surface of the dialects parsed with the C++ grammar: `.metal` MSL attribute
724
+ * annotations, and CUDA specifiers + launch syntax (by `.cu`/`.cuh` extension
725
+ * or by content, for CUDA living in `.h`/`.hpp` headers). Offset-preserving. */
726
+ function preParseCppSource(source, filePath) {
727
+ const blanked = blankCppAnnotationMacroCalls(blankCppInlineAnnotationMacros(blankCppApiPrefixMacros(blankCppInlineMacros(blankCppExportMacros(source)))));
728
+ const lower = filePath ? filePath.toLowerCase() : '';
729
+ if (lower.endsWith('.metal'))
730
+ return blankMetalAttributes(blanked);
731
+ if (lower.endsWith('.cu') || lower.endsWith('.cuh') || looksLikeCudaSource(source)) {
732
+ return blankCudaConstructs(blanked);
733
+ }
734
+ return blanked;
735
+ }
736
+ /** C source pre-processing: C-detected headers in CUDA projects (llm.c keeps
737
+ * `__device__` helpers and kernel prototypes in plain `.h`) get the same
738
+ * content-gated CUDA blank as C++. */
739
+ function preParseCSource(source) {
740
+ return looksLikeCudaSource(source) ? blankCudaConstructs(source) : source;
741
+ }
255
742
  exports.cppExtractor = {
256
- // Recover macro-annotated class/struct definitions (`class MYMODULE_API Foo : Base`)
257
- // that tree-sitter otherwise misparses into a phantom function (#1061/#946).
258
- preParse: blankCppExportMacros,
743
+ // Recover macro-annotated class/struct definitions (`class MYMODULE_API Foo : Base`,
744
+ // #1061/#946) and macro-prefixed functions (`FORCEINLINE FString Foo()`, #1093
745
+ // follow-up) that tree-sitter otherwise misparses.
746
+ preParse: preParseCppSource,
747
+ // Universal net for any macro the curated blank list misses.
748
+ recoverMangledName: recoverMangledCppName,
259
749
  functionTypes: ['function_definition'],
260
750
  classTypes: ['class_specifier'],
751
+ // A bodiless `class_specifier` is a forward declaration (`class Foo;`) or an
752
+ // elaborated type reference, not a definition. Skip it so dozens of forward
753
+ // decls across headers don't mint phantom `class` nodes that crowd out — and
754
+ // get picked as the blast-radius representative over — the single real
755
+ // definition, exactly as bodiless struct/enum specifiers are already skipped. (#1093)
756
+ skipBodilessClass: true,
261
757
  methodTypes: ['function_definition'],
262
758
  interfaceTypes: [],
263
759
  structTypes: ['struct_specifier'],
@@ -1 +1 @@
1
- {"version":3,"file":"c-cpp.js","sourceRoot":"","sources":["../../../src/extraction/languages/c-cpp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c-cpp.js","sourceRoot":"","sources":["../../../src/extraction/languages/c-cpp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { LanguageExtractor } from '../tree-sitter-types';
2
+ /**
3
+ * `<cfquery>` SQL bodies: `#hash#` expressions inside the SQL text are real
4
+ * CFML expressions (tree-sitter-cfml's `cfquery` grammar parses them
5
+ * structurally — `call_expression`/`member_expression`, same shape as
6
+ * cfscript's), so a call like `#getCurrentUser().getId()#` embedded in a
7
+ * WHERE clause is a genuine call edge. The surrounding SQL keywords/
8
+ * identifiers aren't symbols CodeGraph models — only `call_expression` is
9
+ * mapped, so extraction yields call references and nothing else.
10
+ */
11
+ export declare const cfqueryExtractor: LanguageExtractor;
12
+ //# sourceMappingURL=cfquery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cfquery.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/cfquery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAc9B,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cfqueryExtractor = void 0;
4
+ /**
5
+ * `<cfquery>` SQL bodies: `#hash#` expressions inside the SQL text are real
6
+ * CFML expressions (tree-sitter-cfml's `cfquery` grammar parses them
7
+ * structurally — `call_expression`/`member_expression`, same shape as
8
+ * cfscript's), so a call like `#getCurrentUser().getId()#` embedded in a
9
+ * WHERE clause is a genuine call edge. The surrounding SQL keywords/
10
+ * identifiers aren't symbols CodeGraph models — only `call_expression` is
11
+ * mapped, so extraction yields call references and nothing else.
12
+ */
13
+ exports.cfqueryExtractor = {
14
+ functionTypes: [],
15
+ classTypes: [],
16
+ methodTypes: [],
17
+ interfaceTypes: [],
18
+ structTypes: [],
19
+ enumTypes: [],
20
+ typeAliasTypes: [],
21
+ importTypes: [],
22
+ callTypes: ['call_expression'],
23
+ variableTypes: [],
24
+ nameField: 'name',
25
+ bodyField: 'body',
26
+ paramsField: 'parameters',
27
+ };
28
+ //# sourceMappingURL=cfquery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cfquery.js","sourceRoot":"","sources":["../../../src/extraction/languages/cfquery.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACU,QAAA,gBAAgB,GAAsB;IACjD,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,CAAC,iBAAiB,CAAC;IAC9B,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,YAAY;CAC1B,CAAC"}