@lzehrung/codegraph 2.4.0 → 3.0.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 (452) hide show
  1. package/README.md +5 -4
  2. package/codegraph-skill/codegraph/SKILL.md +3 -3
  3. package/dist/agent/call-hierarchy.js +2 -4
  4. package/dist/agent/call-hierarchy.js.map +1 -1
  5. package/dist/agent/explore.d.ts +1 -1
  6. package/dist/agent/explore.d.ts.map +1 -1
  7. package/dist/agent/explore.js +3 -2
  8. package/dist/agent/explore.js.map +1 -1
  9. package/dist/agent/refactor-plan.js +2 -4
  10. package/dist/agent/refactor-plan.js.map +1 -1
  11. package/dist/agent/rename-preview.d.ts.map +1 -1
  12. package/dist/agent/rename-preview.js +58 -8
  13. package/dist/agent/rename-preview.js.map +1 -1
  14. package/dist/agent/search.js +2 -3
  15. package/dist/agent/search.js.map +1 -1
  16. package/dist/agent/semantic-symbols.d.ts.map +1 -1
  17. package/dist/agent/semantic-symbols.js +2 -3
  18. package/dist/agent/semantic-symbols.js.map +1 -1
  19. package/dist/agent/type-hierarchy.js +2 -4
  20. package/dist/agent/type-hierarchy.js.map +1 -1
  21. package/dist/agent/workspace-symbols.d.ts.map +1 -1
  22. package/dist/agent/workspace-symbols.js +2 -3
  23. package/dist/agent/workspace-symbols.js.map +1 -1
  24. package/dist/agent-tools.d.ts +0 -4
  25. package/dist/agent-tools.d.ts.map +1 -1
  26. package/dist/agent-tools.js +3 -6
  27. package/dist/agent-tools.js.map +1 -1
  28. package/dist/analysis-summary.d.ts +8 -4
  29. package/dist/analysis-summary.d.ts.map +1 -1
  30. package/dist/analysis-summary.js +15 -66
  31. package/dist/analysis-summary.js.map +1 -1
  32. package/dist/bin/cli.js +14417 -16886
  33. package/dist/bin/query-index-worker.js +229 -99
  34. package/dist/cli/command-table.d.ts.map +1 -1
  35. package/dist/cli/command-table.js +9 -17
  36. package/dist/cli/command-table.js.map +1 -1
  37. package/dist/cli/context.js +10 -10
  38. package/dist/cli/context.js.map +1 -1
  39. package/dist/cli/drift.d.ts +0 -2
  40. package/dist/cli/drift.d.ts.map +1 -1
  41. package/dist/cli/drift.js +0 -1
  42. package/dist/cli/drift.js.map +1 -1
  43. package/dist/cli/graph-delta.d.ts +0 -2
  44. package/dist/cli/graph-delta.d.ts.map +1 -1
  45. package/dist/cli/graph-delta.js +0 -4
  46. package/dist/cli/graph-delta.js.map +1 -1
  47. package/dist/cli/graph.d.ts +0 -3
  48. package/dist/cli/graph.d.ts.map +1 -1
  49. package/dist/cli/graph.js +4 -14
  50. package/dist/cli/graph.js.map +1 -1
  51. package/dist/cli/help.d.ts +34 -34
  52. package/dist/cli/help.d.ts.map +1 -1
  53. package/dist/cli/help.js +6 -13
  54. package/dist/cli/help.js.map +1 -1
  55. package/dist/cli/impact.d.ts +0 -2
  56. package/dist/cli/impact.d.ts.map +1 -1
  57. package/dist/cli/impact.js +0 -1
  58. package/dist/cli/impact.js.map +1 -1
  59. package/dist/cli/index.d.ts +0 -2
  60. package/dist/cli/index.d.ts.map +1 -1
  61. package/dist/cli/index.js +5 -6
  62. package/dist/cli/index.js.map +1 -1
  63. package/dist/cli/inspect.d.ts +0 -2
  64. package/dist/cli/inspect.d.ts.map +1 -1
  65. package/dist/cli/inspect.js +5 -8
  66. package/dist/cli/inspect.js.map +1 -1
  67. package/dist/cli/invocation-context.d.ts +0 -3
  68. package/dist/cli/invocation-context.d.ts.map +1 -1
  69. package/dist/cli/invocation-context.js +4 -16
  70. package/dist/cli/invocation-context.js.map +1 -1
  71. package/dist/cli/navigation.d.ts +0 -2
  72. package/dist/cli/navigation.d.ts.map +1 -1
  73. package/dist/cli/navigation.js +0 -1
  74. package/dist/cli/navigation.js.map +1 -1
  75. package/dist/cli/options.d.ts.map +1 -1
  76. package/dist/cli/options.js +2 -12
  77. package/dist/cli/options.js.map +1 -1
  78. package/dist/cli/review.d.ts +0 -2
  79. package/dist/cli/review.d.ts.map +1 -1
  80. package/dist/cli/review.js +0 -5
  81. package/dist/cli/review.js.map +1 -1
  82. package/dist/cli/root-policy.d.ts +0 -2
  83. package/dist/cli/root-policy.d.ts.map +1 -1
  84. package/dist/cli/root-policy.js +0 -8
  85. package/dist/cli/root-policy.js.map +1 -1
  86. package/dist/cli/server.d.ts.map +1 -1
  87. package/dist/cli/server.js +0 -2
  88. package/dist/cli/server.js.map +1 -1
  89. package/dist/drift/git.d.ts.map +1 -1
  90. package/dist/drift/git.js +0 -1
  91. package/dist/drift/git.js.map +1 -1
  92. package/dist/drift/snapshot.d.ts.map +1 -1
  93. package/dist/drift/snapshot.js +0 -1
  94. package/dist/drift/snapshot.js.map +1 -1
  95. package/dist/drift/types.d.ts +0 -2
  96. package/dist/drift/types.d.ts.map +1 -1
  97. package/dist/drift/types.js.map +1 -1
  98. package/dist/duplicates/unit-cache.d.ts +0 -1
  99. package/dist/duplicates/unit-cache.d.ts.map +1 -1
  100. package/dist/duplicates/unit-cache.js +3 -11
  101. package/dist/duplicates/unit-cache.js.map +1 -1
  102. package/dist/duplicates/units.d.ts +5 -5
  103. package/dist/duplicates/units.d.ts.map +1 -1
  104. package/dist/duplicates/units.js +25 -88
  105. package/dist/duplicates/units.js.map +1 -1
  106. package/dist/graph-builder.d.ts +0 -6
  107. package/dist/graph-builder.d.ts.map +1 -1
  108. package/dist/graph-builder.js +2 -5
  109. package/dist/graph-builder.js.map +1 -1
  110. package/dist/graph-edge-collector.d.ts +1 -6
  111. package/dist/graph-edge-collector.d.ts.map +1 -1
  112. package/dist/graph-edge-collector.js +23 -21
  113. package/dist/graph-edge-collector.js.map +1 -1
  114. package/dist/graphs/edge-resolution.d.ts +1 -1
  115. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  116. package/dist/graphs/edge-resolution.js +22 -98
  117. package/dist/graphs/edge-resolution.js.map +1 -1
  118. package/dist/graphs/specifiers.d.ts +4 -13
  119. package/dist/graphs/specifiers.d.ts.map +1 -1
  120. package/dist/graphs/specifiers.js +76 -173
  121. package/dist/graphs/specifiers.js.map +1 -1
  122. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts +12 -3
  123. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
  124. package/dist/graphs/symbol-graph-detailed/edge-passes.js +315 -177
  125. package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
  126. package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts.map +1 -1
  127. package/dist/graphs/symbol-graph-detailed/import-aliases.js +11 -0
  128. package/dist/graphs/symbol-graph-detailed/import-aliases.js.map +1 -1
  129. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +25 -22
  130. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
  131. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +216 -147
  132. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  133. package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
  134. package/dist/graphs/symbol-graph-detailed.js +80 -71
  135. package/dist/graphs/symbol-graph-detailed.js.map +1 -1
  136. package/dist/graphs/symbol-graph.d.ts +1 -1
  137. package/dist/graphs/symbol-graph.d.ts.map +1 -1
  138. package/dist/graphs/symbol-graph.js +12 -4
  139. package/dist/graphs/symbol-graph.js.map +1 -1
  140. package/dist/graphs/types.d.ts +0 -4
  141. package/dist/graphs/types.d.ts.map +1 -1
  142. package/dist/graphs.d.ts +1 -1
  143. package/dist/graphs.d.ts.map +1 -1
  144. package/dist/impact/analyzer.d.ts.map +1 -1
  145. package/dist/impact/analyzer.js +94 -1
  146. package/dist/impact/analyzer.js.map +1 -1
  147. package/dist/impact/call-compatibility.d.ts.map +1 -1
  148. package/dist/impact/call-compatibility.js +39 -43
  149. package/dist/impact/call-compatibility.js.map +1 -1
  150. package/dist/impact/transitive.d.ts +6 -2
  151. package/dist/impact/transitive.d.ts.map +1 -1
  152. package/dist/impact/transitive.js +23 -11
  153. package/dist/impact/transitive.js.map +1 -1
  154. package/dist/index.d.ts +2 -2
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js.map +1 -1
  157. package/dist/indexer/build-cache/module-cache.d.ts +1 -1
  158. package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
  159. package/dist/indexer/build-cache/module-cache.js +67 -12
  160. package/dist/indexer/build-cache/module-cache.js.map +1 -1
  161. package/dist/indexer/build-cache/options.d.ts +17 -2
  162. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  163. package/dist/indexer/build-cache/options.js +19 -29
  164. package/dist/indexer/build-cache/options.js.map +1 -1
  165. package/dist/indexer/build-cache/project-snapshot.d.ts +3 -4
  166. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  167. package/dist/indexer/build-cache/project-snapshot.js +53 -62
  168. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  169. package/dist/indexer/build-cache/reports.d.ts +0 -2
  170. package/dist/indexer/build-cache/reports.d.ts.map +1 -1
  171. package/dist/indexer/build-cache/reports.js +0 -97
  172. package/dist/indexer/build-cache/reports.js.map +1 -1
  173. package/dist/indexer/build-cache.d.ts +1 -1
  174. package/dist/indexer/build-cache.d.ts.map +1 -1
  175. package/dist/indexer/build-cache.js +1 -1
  176. package/dist/indexer/build-cache.js.map +1 -1
  177. package/dist/indexer/build-index.d.ts.map +1 -1
  178. package/dist/indexer/build-index.js +72 -58
  179. package/dist/indexer/build-index.js.map +1 -1
  180. package/dist/indexer/build-workers.d.ts.map +1 -1
  181. package/dist/indexer/build-workers.js +9 -9
  182. package/dist/indexer/build-workers.js.map +1 -1
  183. package/dist/indexer/callable-identity.d.ts +24 -0
  184. package/dist/indexer/callable-identity.d.ts.map +1 -0
  185. package/dist/indexer/callable-identity.js +111 -0
  186. package/dist/indexer/callable-identity.js.map +1 -0
  187. package/dist/indexer/compilation-units.d.ts +2 -0
  188. package/dist/indexer/compilation-units.d.ts.map +1 -1
  189. package/dist/indexer/compilation-units.js +20 -18
  190. package/dist/indexer/compilation-units.js.map +1 -1
  191. package/dist/indexer/cpp-callables.d.ts +12 -7
  192. package/dist/indexer/cpp-callables.d.ts.map +1 -1
  193. package/dist/indexer/cpp-callables.js +42 -34
  194. package/dist/indexer/cpp-callables.js.map +1 -1
  195. package/dist/indexer/declaration-visibility.d.ts +7 -0
  196. package/dist/indexer/declaration-visibility.d.ts.map +1 -1
  197. package/dist/indexer/declaration-visibility.js +22 -0
  198. package/dist/indexer/declaration-visibility.js.map +1 -1
  199. package/dist/indexer/declarations.d.ts.map +1 -1
  200. package/dist/indexer/declarations.js +32 -7
  201. package/dist/indexer/declarations.js.map +1 -1
  202. package/dist/indexer/expand-star-imports.d.ts +6 -1
  203. package/dist/indexer/expand-star-imports.d.ts.map +1 -1
  204. package/dist/indexer/expand-star-imports.js +120 -48
  205. package/dist/indexer/expand-star-imports.js.map +1 -1
  206. package/dist/indexer/finalize.d.ts.map +1 -1
  207. package/dist/indexer/finalize.js +0 -1
  208. package/dist/indexer/finalize.js.map +1 -1
  209. package/dist/indexer/import-resolution-tables.d.ts +72 -0
  210. package/dist/indexer/import-resolution-tables.d.ts.map +1 -0
  211. package/dist/indexer/import-resolution-tables.js +147 -0
  212. package/dist/indexer/import-resolution-tables.js.map +1 -0
  213. package/dist/indexer/import-types.d.ts +18 -1
  214. package/dist/indexer/import-types.d.ts.map +1 -1
  215. package/dist/indexer/import-types.js.map +1 -1
  216. package/dist/indexer/imports/context.d.ts +6 -1
  217. package/dist/indexer/imports/context.d.ts.map +1 -1
  218. package/dist/indexer/imports/import-binding-tables.d.ts +3 -2
  219. package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
  220. package/dist/indexer/imports/import-binding-tables.js +19 -22
  221. package/dist/indexer/imports/import-binding-tables.js.map +1 -1
  222. package/dist/indexer/imports/native-captures.d.ts.map +1 -1
  223. package/dist/indexer/imports/native-captures.js +10 -4
  224. package/dist/indexer/imports/native-captures.js.map +1 -1
  225. package/dist/indexer/imports/python.d.ts.map +1 -1
  226. package/dist/indexer/imports/python.js +46 -81
  227. package/dist/indexer/imports/python.js.map +1 -1
  228. package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -1
  229. package/dist/indexer/imports/text-import-extractors.js +17 -7
  230. package/dist/indexer/imports/text-import-extractors.js.map +1 -1
  231. package/dist/indexer/imports.d.ts +3 -4
  232. package/dist/indexer/imports.d.ts.map +1 -1
  233. package/dist/indexer/imports.js +106 -81
  234. package/dist/indexer/imports.js.map +1 -1
  235. package/dist/indexer/incremental-plan.d.ts.map +1 -1
  236. package/dist/indexer/incremental-plan.js +27 -11
  237. package/dist/indexer/incremental-plan.js.map +1 -1
  238. package/dist/indexer/locals-and-exports.d.ts +1 -2
  239. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  240. package/dist/indexer/locals-and-exports.js +121 -43
  241. package/dist/indexer/locals-and-exports.js.map +1 -1
  242. package/dist/indexer/member-selection.d.ts +46 -0
  243. package/dist/indexer/member-selection.d.ts.map +1 -0
  244. package/dist/indexer/member-selection.js +169 -0
  245. package/dist/indexer/member-selection.js.map +1 -0
  246. package/dist/indexer/name-lookup-policies/c-family.d.ts +1 -1
  247. package/dist/indexer/name-lookup-policies/c-family.d.ts.map +1 -1
  248. package/dist/indexer/name-lookup-policies/c-family.js +30 -10
  249. package/dist/indexer/name-lookup-policies/c-family.js.map +1 -1
  250. package/dist/indexer/name-lookup-policies/implicit-self.d.ts.map +1 -1
  251. package/dist/indexer/name-lookup-policies/implicit-self.js +14 -8
  252. package/dist/indexer/name-lookup-policies/implicit-self.js.map +1 -1
  253. package/dist/indexer/name-lookup-policies/index.d.ts.map +1 -1
  254. package/dist/indexer/name-lookup-policies/index.js +29 -3
  255. package/dist/indexer/name-lookup-policies/index.js.map +1 -1
  256. package/dist/indexer/name-lookup-policies/php.d.ts.map +1 -1
  257. package/dist/indexer/name-lookup-policies/php.js +9 -2
  258. package/dist/indexer/name-lookup-policies/php.js.map +1 -1
  259. package/dist/indexer/name-resolution-types.d.ts +2 -0
  260. package/dist/indexer/name-resolution-types.d.ts.map +1 -1
  261. package/dist/indexer/name-resolution.d.ts +5 -0
  262. package/dist/indexer/name-resolution.d.ts.map +1 -1
  263. package/dist/indexer/name-resolution.js +17 -2
  264. package/dist/indexer/name-resolution.js.map +1 -1
  265. package/dist/indexer/navigation-cpp.d.ts +8 -0
  266. package/dist/indexer/navigation-cpp.d.ts.map +1 -1
  267. package/dist/indexer/navigation-cpp.js +283 -2
  268. package/dist/indexer/navigation-cpp.js.map +1 -1
  269. package/dist/indexer/navigation-goto.d.ts +11 -2
  270. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  271. package/dist/indexer/navigation-goto.js +675 -333
  272. package/dist/indexer/navigation-goto.js.map +1 -1
  273. package/dist/indexer/navigation-local.d.ts +4 -1
  274. package/dist/indexer/navigation-local.d.ts.map +1 -1
  275. package/dist/indexer/navigation-local.js +43 -23
  276. package/dist/indexer/navigation-local.js.map +1 -1
  277. package/dist/indexer/navigation-provenance.d.ts +1 -1
  278. package/dist/indexer/navigation-provenance.d.ts.map +1 -1
  279. package/dist/indexer/navigation-provenance.js +4 -13
  280. package/dist/indexer/navigation-provenance.js.map +1 -1
  281. package/dist/indexer/navigation-references.d.ts +1 -1
  282. package/dist/indexer/navigation-references.d.ts.map +1 -1
  283. package/dist/indexer/navigation-references.js +44 -16
  284. package/dist/indexer/navigation-references.js.map +1 -1
  285. package/dist/indexer/navigation-resolve.d.ts +13 -0
  286. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  287. package/dist/indexer/navigation-resolve.js +158 -5
  288. package/dist/indexer/navigation-resolve.js.map +1 -1
  289. package/dist/indexer/navigation.d.ts +2 -1
  290. package/dist/indexer/navigation.d.ts.map +1 -1
  291. package/dist/indexer/navigation.js +82 -57
  292. package/dist/indexer/navigation.js.map +1 -1
  293. package/dist/indexer/parse-context.d.ts +2 -3
  294. package/dist/indexer/parse-context.d.ts.map +1 -1
  295. package/dist/indexer/parse-context.js +8 -21
  296. package/dist/indexer/parse-context.js.map +1 -1
  297. package/dist/indexer/reference-candidates.d.ts.map +1 -1
  298. package/dist/indexer/reference-candidates.js +13 -7
  299. package/dist/indexer/reference-candidates.js.map +1 -1
  300. package/dist/indexer/reference-context.d.ts.map +1 -1
  301. package/dist/indexer/reference-context.js +4 -1
  302. package/dist/indexer/reference-context.js.map +1 -1
  303. package/dist/indexer/scope-nodes.d.ts.map +1 -1
  304. package/dist/indexer/scope-nodes.js +5 -0
  305. package/dist/indexer/scope-nodes.js.map +1 -1
  306. package/dist/indexer/scope-types.d.ts +4 -0
  307. package/dist/indexer/scope-types.d.ts.map +1 -1
  308. package/dist/indexer/scope.d.ts +2 -3
  309. package/dist/indexer/scope.d.ts.map +1 -1
  310. package/dist/indexer/scope.js +85 -13
  311. package/dist/indexer/scope.js.map +1 -1
  312. package/dist/indexer/shared-owner-identity.js +1 -1
  313. package/dist/indexer/shared-owner-identity.js.map +1 -1
  314. package/dist/indexer/star-import-precedence.d.ts +6 -7
  315. package/dist/indexer/star-import-precedence.d.ts.map +1 -1
  316. package/dist/indexer/star-import-precedence.js +18 -12
  317. package/dist/indexer/star-import-precedence.js.map +1 -1
  318. package/dist/indexer/ts-callables.d.ts +15 -24
  319. package/dist/indexer/ts-callables.d.ts.map +1 -1
  320. package/dist/indexer/ts-callables.js +44 -75
  321. package/dist/indexer/ts-callables.js.map +1 -1
  322. package/dist/indexer/types.d.ts +23 -26
  323. package/dist/indexer/types.d.ts.map +1 -1
  324. package/dist/indexer/types.js +4 -0
  325. package/dist/indexer/types.js.map +1 -1
  326. package/dist/indexer.d.ts +2 -7
  327. package/dist/indexer.d.ts.map +1 -1
  328. package/dist/indexer.js.map +1 -1
  329. package/dist/languages/all.d.ts +1 -0
  330. package/dist/languages/all.d.ts.map +1 -1
  331. package/dist/languages/all.js +1 -0
  332. package/dist/languages/all.js.map +1 -1
  333. package/dist/languages/callable-arity.d.ts +21 -0
  334. package/dist/languages/callable-arity.d.ts.map +1 -1
  335. package/dist/languages/callable-arity.js +17 -0
  336. package/dist/languages/callable-arity.js.map +1 -1
  337. package/dist/languages/definitions/terraform.d.ts +9 -0
  338. package/dist/languages/definitions/terraform.d.ts.map +1 -0
  339. package/dist/languages/definitions/terraform.js +84 -0
  340. package/dist/languages/definitions/terraform.js.map +1 -0
  341. package/dist/languages/definitions/zig.d.ts.map +1 -1
  342. package/dist/languages/definitions/zig.js +6 -0
  343. package/dist/languages/definitions/zig.js.map +1 -1
  344. package/dist/languages.d.ts +1 -0
  345. package/dist/languages.d.ts.map +1 -1
  346. package/dist/languages.js +1 -0
  347. package/dist/languages.js.map +1 -1
  348. package/dist/lifecycle/manifest.d.ts.map +1 -1
  349. package/dist/lifecycle/manifest.js +0 -1
  350. package/dist/lifecycle/manifest.js.map +1 -1
  351. package/dist/native/byte-index.d.ts +6 -0
  352. package/dist/native/byte-index.d.ts.map +1 -1
  353. package/dist/native/byte-index.js +11 -6
  354. package/dist/native/byte-index.js.map +1 -1
  355. package/dist/native/contracts.d.ts +2 -3
  356. package/dist/native/contracts.d.ts.map +1 -1
  357. package/dist/native/execution.d.ts +9 -9
  358. package/dist/native/execution.d.ts.map +1 -1
  359. package/dist/native/execution.js +37 -77
  360. package/dist/native/execution.js.map +1 -1
  361. package/dist/native/js-bridge.d.ts +2 -15
  362. package/dist/native/js-bridge.d.ts.map +1 -1
  363. package/dist/native/js-bridge.js +2 -15
  364. package/dist/native/js-bridge.js.map +1 -1
  365. package/dist/native/query-results.js +2 -2
  366. package/dist/native/query-results.js.map +1 -1
  367. package/dist/native/runtime.d.ts +12 -12
  368. package/dist/native/runtime.d.ts.map +1 -1
  369. package/dist/native/runtime.js +24 -69
  370. package/dist/native/runtime.js.map +1 -1
  371. package/dist/native/tree-sitter-native.d.ts +3 -3
  372. package/dist/native/tree-sitter-native.d.ts.map +1 -1
  373. package/dist/native/tree-sitter-native.js +2 -2
  374. package/dist/native/tree-sitter-native.js.map +1 -1
  375. package/dist/presets.d.ts.map +1 -1
  376. package/dist/presets.js +0 -4
  377. package/dist/presets.js.map +1 -1
  378. package/dist/review.d.ts.map +1 -1
  379. package/dist/review.js +2 -20
  380. package/dist/review.js.map +1 -1
  381. package/dist/session.d.ts.map +1 -1
  382. package/dist/session.js +0 -5
  383. package/dist/session.js.map +1 -1
  384. package/dist/sql/navigation.js +1 -1
  385. package/dist/sql/navigation.js.map +1 -1
  386. package/dist/terraform/navigation.d.ts +20 -0
  387. package/dist/terraform/navigation.d.ts.map +1 -0
  388. package/dist/terraform/navigation.js +142 -0
  389. package/dist/terraform/navigation.js.map +1 -0
  390. package/dist/terraform/resolution.d.ts +82 -0
  391. package/dist/terraform/resolution.d.ts.map +1 -0
  392. package/dist/terraform/resolution.js +324 -0
  393. package/dist/terraform/resolution.js.map +1 -0
  394. package/dist/terraform/syntax.d.ts +109 -0
  395. package/dist/terraform/syntax.d.ts.map +1 -0
  396. package/dist/terraform/syntax.js +441 -0
  397. package/dist/terraform/syntax.js.map +1 -0
  398. package/dist/util/bloom-filter.d.ts +1 -0
  399. package/dist/util/bloom-filter.d.ts.map +1 -1
  400. package/dist/util/bloom-filter.js +3 -0
  401. package/dist/util/bloom-filter.js.map +1 -1
  402. package/dist/util/glob.d.ts +32 -0
  403. package/dist/util/glob.d.ts.map +1 -0
  404. package/dist/util/glob.js +137 -0
  405. package/dist/util/glob.js.map +1 -0
  406. package/dist/util/member-access-tables.d.ts.map +1 -1
  407. package/dist/util/member-access-tables.js +5 -0
  408. package/dist/util/member-access-tables.js.map +1 -1
  409. package/dist/util/member-access.d.ts.map +1 -1
  410. package/dist/util/member-access.js +5 -2
  411. package/dist/util/member-access.js.map +1 -1
  412. package/dist/util/project-files.d.ts +2 -10
  413. package/dist/util/project-files.d.ts.map +1 -1
  414. package/dist/util/project-files.js +32 -52
  415. package/dist/util/project-files.js.map +1 -1
  416. package/dist/util/python-type-checking.d.ts +18 -0
  417. package/dist/util/python-type-checking.d.ts.map +1 -0
  418. package/dist/util/python-type-checking.js +160 -0
  419. package/dist/util/python-type-checking.js.map +1 -0
  420. package/dist/util/resolution/jvm.d.ts +7 -3
  421. package/dist/util/resolution/jvm.d.ts.map +1 -1
  422. package/dist/util/resolution/jvm.js +56 -38
  423. package/dist/util/resolution/jvm.js.map +1 -1
  424. package/dist/util/resolution/rust.d.ts +0 -1
  425. package/dist/util/resolution/rust.d.ts.map +1 -1
  426. package/dist/util/resolution/rust.js +0 -9
  427. package/dist/util/resolution/rust.js.map +1 -1
  428. package/dist/util/resolution/specifier-targets.d.ts +44 -0
  429. package/dist/util/resolution/specifier-targets.d.ts.map +1 -0
  430. package/dist/util/resolution/specifier-targets.js +157 -0
  431. package/dist/util/resolution/specifier-targets.js.map +1 -0
  432. package/dist/util/resolution/terraform.d.ts +18 -0
  433. package/dist/util/resolution/terraform.d.ts.map +1 -0
  434. package/dist/util/resolution/terraform.js +64 -0
  435. package/dist/util/resolution/terraform.js.map +1 -0
  436. package/dist/util/resolution.d.ts.map +1 -1
  437. package/dist/util/resolution.js +5 -10
  438. package/dist/util/resolution.js.map +1 -1
  439. package/dist/util/specifiers.d.ts +9 -1
  440. package/dist/util/specifiers.d.ts.map +1 -1
  441. package/dist/util/specifiers.js +27 -8
  442. package/dist/util/specifiers.js.map +1 -1
  443. package/dist/util/trivia-tables.d.ts.map +1 -1
  444. package/dist/util/trivia-tables.js +9 -0
  445. package/dist/util/trivia-tables.js.map +1 -1
  446. package/dist/util/trivia.d.ts.map +1 -1
  447. package/dist/util/trivia.js +49 -30
  448. package/dist/util/trivia.js.map +1 -1
  449. package/dist/util/workspace.d.ts.map +1 -1
  450. package/dist/util/workspace.js +32 -4
  451. package/dist/util/workspace.js.map +1 -1
  452. package/package.json +6 -8
@@ -1 +1 @@
1
- {"version":3,"file":"name-resolution-types.d.ts","sourceRoot":"","sources":["../../src/indexer/name-resolution-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"name-resolution-types.d.ts","sourceRoot":"","sources":["../../src/indexer/name-resolution-types.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { type ParsedFileContext } from "./parse-context.js";
12
12
  import type { BareNameUse, LoadingParsedFileProvider, NameResolution } from "./name-resolution-types.js";
13
13
  export type { BareNameUse, DeferredNameRequest, LoadingParsedFileProvider, NameLookupPolicy, NameLookupState, NameResolution, ParsedFileProvider, } from "./name-resolution-types.js";
14
14
  import { type GoToResult, type ImportBinding, type ModuleIndex, type ProjectIndex, type SymbolDef } from "./types.js";
15
+ import type { Binding, ScopeIndex } from "./scope.js";
15
16
  /** PHP import role (class, function, or const) of the import that covers a 0-based position. */
16
17
  export declare function phpImportTypeAtPosition(imports: readonly ImportBinding[], line: number, column: number): "class" | "function" | "const" | undefined;
17
18
  export declare function createLoadingParsedFileProvider(index: ProjectIndex, current: {
@@ -20,6 +21,10 @@ export declare function createLoadingParsedFileProvider(index: ProjectIndex, cur
20
21
  }): LoadingParsedFileProvider;
21
22
  /** Runs a synchronous lookup step, parsing any file it missed and rerunning it. */
22
23
  export declare function withParsedFiles<T>(files: LoadingParsedFileProvider, step: () => T): Promise<T>;
24
+ /** A closer lexical binding hides a file alias unless that local holds the same module. */
25
+ export declare function fileBindingIsUnshadowed(scopeIndex: ScopeIndex, binding: Binding | null, aliasFrom?: string): boolean;
26
+ /** File import aliases yield to closer lexical bindings unless a language policy says otherwise. */
27
+ export declare function moduleAliasIsUnshadowed(use: BareNameUse, aliasFrom?: string): boolean;
23
28
  /**
24
29
  * Resolves a bare (unqualified or C++-qualified) name at a use site. Returns `null` when no
25
30
  * lookup step answers; go-to-definition then tries a declaration at the position.
@@ -1 +1 @@
1
- {"version":3,"file":"name-resolution.d.ts","sourceRoot":"","sources":["../../src/indexer/name-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkB1C,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EAEzB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAKtH,gGAAgG;AAChG,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAU5C;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GACnD,yBAAyB,CA6B3B;AAKD,mFAAmF;AACnF,wBAAsB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CASpG;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CA8CvE;AAED,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+FAA+F;IAC/F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CACtH,CAAC;AAEF,6EAA6E;AAC7E,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA4C5B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAM9G;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAIlG"}
1
+ {"version":3,"file":"name-resolution.d.ts","sourceRoot":"","sources":["../../src/indexer/name-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkB1C,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EAEzB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACtH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMtD,gGAAgG;AAChG,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAU5C;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GACnD,yBAAyB,CA6B3B;AAKD,mFAAmF;AACnF,wBAAsB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CASpG;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAMpH;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAOrF;AACD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CA+CvE;AAED,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+FAA+F;IAC/F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CACtH,CAAC;AAEF,6EAA6E;AAC7E,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA4C5B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAM9G;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAIlG"}
@@ -74,6 +74,21 @@ export async function withParsedFiles(files, step) {
74
74
  }
75
75
  return result;
76
76
  }
77
+ /** A closer lexical binding hides a file alias unless that local holds the same module. */
78
+ export function fileBindingIsUnshadowed(scopeIndex, binding, aliasFrom) {
79
+ return (!binding ||
80
+ (!!binding.import && scopeIndex.allScopes[0]?.map.get(binding.canonicalName) === binding) ||
81
+ (binding.kind === "local" && aliasFrom !== undefined && binding.heldModuleSpecifier === aliasFrom));
82
+ }
83
+ /** File import aliases yield to closer lexical bindings unless a language policy says otherwise. */
84
+ export function moduleAliasIsUnshadowed(use, aliasFrom) {
85
+ const policy = nameLookupPolicyFor(use.parsed.sup.id);
86
+ const closestBinding = findClosestScopeBinding(use.scopeIndex, use.name, use.node, use.parsed.sup);
87
+ if (policy.moduleAliasIsUnshadowed) {
88
+ return policy.moduleAliasIsUnshadowed({ use, lookupName: use.name, closestBinding });
89
+ }
90
+ return fileBindingIsUnshadowed(use.scopeIndex, closestBinding, aliasFrom);
91
+ }
77
92
  /**
78
93
  * Resolves a bare (unqualified or C++-qualified) name at a use site. Returns `null` when no
79
94
  * lookup step answers; go-to-definition then tries a declaration at the position.
@@ -122,7 +137,7 @@ export function resolveBareName(use) {
122
137
  return beforeCrossModule;
123
138
  if (!sup.supportsCrossModuleSymbols)
124
139
  return null;
125
- const resolved = resolveNamedDefinition(index, mod, file, sup, policy.crossModuleName?.(state) ?? lookupName, policy.cNamespace?.(node), node.startIndex);
140
+ const resolved = resolveNamedDefinition(index, mod, file, sup, policy.crossModuleName?.(state) ?? lookupName, policy.cNamespace?.(node), node.startIndex, { node, source });
126
141
  const adjusted = policy.afterCrossModule?.(state, resolved);
127
142
  return adjusted !== undefined ? adjusted : resolved;
128
143
  };
@@ -146,7 +161,7 @@ export async function settleNameResolution(use, resolution, options = {}) {
146
161
  // The graph records no edge for a call its target cannot accept, and does not fall back.
147
162
  if (member &&
148
163
  options.requireAcceptedArity &&
149
- !(await memberAcceptsCallAt(index, member, node, parsed.source, parsed.sup.id))) {
164
+ !memberAcceptsCallAt(index, member, node, parsed.source, parsed.sup.id)) {
150
165
  return null;
151
166
  }
152
167
  if (member)
@@ -1 +1 @@
1
- {"version":3,"file":"name-resolution.js","sourceRoot":"","sources":["../../src/indexer/name-resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"name-resolution.js","sourceRoot":"","sources":["../../src/indexer/name-resolution.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,12 @@ export declare function resolveCppExportedCallables(index: ProjectIndex, defs: r
30
30
  */
31
31
  export declare function resolveVisibleCppCallableName(index: ProjectIndex, sourceModule: ModuleIndex, name: string, node: SyntaxNodeLike, source: string, loadParsedFile: (file: string) => CppParsedFile | null): SymbolDef | null | undefined;
32
32
  export declare function cppStarImportClosure(index: ProjectIndex, sourceModule: ModuleIndex): readonly ModuleIndex[];
33
+ /**
34
+ * Find the first qualifier where it is used: a block alias, then namespace aliases,
35
+ * nested namespaces, and type names in the enclosing namespaces, innermost first.
36
+ * Undefined means no binding was found; null means an ambiguous or cyclic alias.
37
+ */
38
+ export declare function cppQualifiedNameThroughVisiblePrefix(index: ProjectIndex, sourceModule: ModuleIndex, name: string, node: SyntaxNodeLike, source: string, tree: SyntaxTreeLike, loadParsedFile: (file: string) => CppParsedFile | null): string | null | undefined;
33
39
  /**
34
40
  * Bare lookup through `using namespace`. Undefined means no directive nominates
35
41
  * this name. Null means more than one viable candidate, or the candidate could
@@ -38,6 +44,8 @@ export declare function cppStarImportClosure(index: ProjectIndex, sourceModule:
38
44
  export declare function resolveCppUsingDirectiveName(index: ProjectIndex, sourceModule: ModuleIndex, name: string, node: SyntaxNodeLike, source: string, loadParsedFile: (file: string) => CppParsedFile | null): SymbolDef | null | undefined;
39
45
  /** Resolves one reachable C++ class/struct/union by its exact namespace and nesting path. */
40
46
  export declare function resolveCppQualifiedMemberContainer(index: ProjectIndex, sourceModule: ModuleIndex, ownerPath: readonly string[], loadParsedFile?: CppParsedFileLoader): Promise<SymbolDef | null>;
47
+ /** Select a proven static class member named through a namespace-qualified type. */
48
+ export declare function resolveCppVisibleStaticCallableName(index: ProjectIndex, sourceModule: ModuleIndex, qualifiedName: string, node: SyntaxNodeLike, source: string, loadParsedFile: (file: string) => CppParsedFile | null): SymbolDef | null | undefined;
41
49
  /**
42
50
  * Whether code inside a C++ function definition has an implicit `this`: the function is a
43
51
  * non-static member function, defined in its class body or out of line as `Owner::f`. A free
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-cpp.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation-cpp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation-cpp.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation-cpp.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { supportForFileWithoutHeaderSample } from "../languages.js";
2
2
  import { cppOutOfLineOwnerPath, cppQualifiedNameSegments } from "../graphs/symbol-graph-detailed/receiver-calls.js";
3
+ import { sliceText } from "../util/ast.js";
3
4
  import { fileIdentityKey } from "../util/paths.js";
4
5
  import { ensureParsedContext } from "./parse-context.js";
5
- import { cppBindingCallableShape, cppEquivalentCallableBindings, cppSelectCallableByCallArity, cppSelectCallableBinding, } from "./cpp-callables.js";
6
+ import { cppEquivalentCallableBindings, cppSelectCallableByCallArity, cppSelectCallableBinding, } from "./cpp-callables.js";
6
7
  import { getOrBuildScopeIndex } from "./navigation-local.js";
7
8
  import { fileScopeDefinitionCoversUse } from "./scope-nodes.js";
8
9
  import { definitionIdentityKey } from "./reference-context.js";
@@ -17,6 +18,7 @@ function cppBindingDefinition(file, binding) {
17
18
  localName: binding.name,
18
19
  kind: SymbolKind.Function,
19
20
  range: binding.def,
21
+ ...(binding.callable ? { callable: binding.callable } : {}),
20
22
  };
21
23
  }
22
24
  export function resolveCppCallableBindings(file, bindings, node, source) {
@@ -31,7 +33,7 @@ export function resolveCppCollidingBinding(file, binding, node, source) {
31
33
  if (binding.kind !== "function")
32
34
  return undefined;
33
35
  const collisions = binding.sameScopeFunctionBindings ?? [binding];
34
- if (collisions.length < 2 && !cppBindingCallableShape(binding))
36
+ if (collisions.length < 2 && !binding.callable?.signature)
35
37
  return undefined;
36
38
  return resolveCppCallableBindings(file, collisions, node, source);
37
39
  }
@@ -431,6 +433,229 @@ function cppIncludeEntryOffsets(index, sourceModule, node) {
431
433
  visit(root);
432
434
  return offsets;
433
435
  }
436
+ const cppNamespaceAliasesByTree = new WeakMap();
437
+ function cppNamespaceAliasTargetSegments(node, source) {
438
+ const name = node.childForFieldName("name");
439
+ for (const child of node.namedChildren) {
440
+ if (name && child.startIndex === name.startIndex && child.endIndex === name.endIndex)
441
+ continue;
442
+ if (child.type !== "namespace_identifier" &&
443
+ child.type !== "nested_namespace_specifier" &&
444
+ child.type !== "splice_specifier") {
445
+ continue;
446
+ }
447
+ const segments = cppQualifiedNameSegments(child, source);
448
+ if (segments.length)
449
+ return segments;
450
+ }
451
+ return null;
452
+ }
453
+ function collectCppNamespaceAliases(root, source, fileKey) {
454
+ const aliases = [];
455
+ const visit = (node) => {
456
+ if (node.type === "namespace_alias_definition") {
457
+ const nameNode = node.childForFieldName("name");
458
+ const name = nameNode ? sliceText(nameNode, source) : "";
459
+ const target = cppNamespaceAliasTargetSegments(node, source);
460
+ if (name && target) {
461
+ aliases.push({
462
+ startIndex: node.startIndex,
463
+ name,
464
+ target,
465
+ enclosing: cppEnclosingNamespace(node, source, fileKey),
466
+ namespaceScope: cppUsingDirectiveIsFileOrNamespaceScope(node),
467
+ });
468
+ }
469
+ }
470
+ for (const child of node.namedChildren)
471
+ visit(child);
472
+ };
473
+ visit(root);
474
+ return aliases;
475
+ }
476
+ function cppNamespaceAliasesForTree(tree, source, fileKey) {
477
+ const cached = cppNamespaceAliasesByTree.get(tree);
478
+ if (cached?.fileKey === fileKey)
479
+ return cached.aliases;
480
+ const aliases = collectCppNamespaceAliases(tree.rootNode, source, fileKey);
481
+ cppNamespaceAliasesByTree.set(tree, { fileKey, aliases });
482
+ return aliases;
483
+ }
484
+ function sameNamespacePath(left, right) {
485
+ return left.length === right.length && left.every((segment, index) => segment === right[index]);
486
+ }
487
+ /** A block-scope alias hides namespace aliases. The innermost preceding alias wins. */
488
+ function cppBlockNamespaceAliasTarget(node, source, name, useStart) {
489
+ for (let current = node.parent; current; current = current.parent) {
490
+ if (current.type !== "compound_statement")
491
+ continue;
492
+ let found;
493
+ for (const child of current.namedChildren) {
494
+ if (child.type !== "namespace_alias_definition" || child.startIndex >= useStart)
495
+ continue;
496
+ const nameNode = child.childForFieldName("name");
497
+ if (!nameNode || sliceText(nameNode, source) !== name)
498
+ continue;
499
+ const target = cppNamespaceAliasTargetSegments(child, source);
500
+ if (target)
501
+ found = target;
502
+ }
503
+ if (found)
504
+ return found;
505
+ }
506
+ return undefined;
507
+ }
508
+ /**
509
+ * Latest visible namespace-scope alias of `name` in `enclosing`. A later declaration in the
510
+ * translation unit wins; two aliases at the same position with different targets are ambiguous.
511
+ */
512
+ function cppNamespaceScopeAliasTarget(files, enclosing, name) {
513
+ let best;
514
+ let ambiguous = false;
515
+ for (const file of files) {
516
+ for (const alias of file.aliases) {
517
+ if (!alias.namespaceScope || alias.name !== name || !sameNamespacePath(alias.enclosing, enclosing))
518
+ continue;
519
+ const position = file.positionOf(alias.startIndex);
520
+ if (position === undefined)
521
+ continue;
522
+ if (!best || position > best.position || (position === best.position && alias.startIndex > best.tie)) {
523
+ best = { position, tie: alias.startIndex, target: alias.target };
524
+ ambiguous = false;
525
+ }
526
+ else if (position === best.position &&
527
+ alias.startIndex === best.tie &&
528
+ alias.target.join("::") !== best.target.join("::")) {
529
+ ambiguous = true;
530
+ }
531
+ }
532
+ }
533
+ if (ambiguous)
534
+ return null;
535
+ return best?.target;
536
+ }
537
+ /** A namespace or type declared in this scope hides names in every outer namespace. */
538
+ function cppNamespaceScopeOwnerPath(files, enclosing, name) {
539
+ const path = [...enclosing, name];
540
+ const qualified = path.join("::");
541
+ for (const file of files) {
542
+ for (const entry of file.module.exports) {
543
+ if (entry.type !== "local" || entry.exportedAs !== qualified)
544
+ continue;
545
+ if (entry.target.kind !== SymbolKind.Class && entry.target.kind !== SymbolKind.TypeAlias)
546
+ continue;
547
+ const start = entry.target.range.start.index;
548
+ if (start !== undefined && file.positionOf(start) !== undefined)
549
+ return path;
550
+ }
551
+ }
552
+ return undefined;
553
+ }
554
+ /**
555
+ * Find the first qualifier where it is used: a block alias, then namespace aliases,
556
+ * nested namespaces, and type names in the enclosing namespaces, innermost first.
557
+ * Undefined means no binding was found; null means an ambiguous or cyclic alias.
558
+ */
559
+ export function cppQualifiedNameThroughVisiblePrefix(index, sourceModule, name, node, source, tree, loadParsedFile) {
560
+ if (!name.includes("::"))
561
+ return undefined;
562
+ let qualifiedNode = node;
563
+ while (qualifiedNode.parent?.type === "qualified_identifier")
564
+ qualifiedNode = qualifiedNode.parent;
565
+ const absolute = name.startsWith("::") ||
566
+ (qualifiedNode.type === "qualified_identifier" && source.startsWith("::", qualifiedNode.startIndex));
567
+ const segments = name.split("::").filter(Boolean);
568
+ if (segments.length < 2)
569
+ return undefined;
570
+ const useFileKey = fileIdentityKey(sourceModule.file);
571
+ const useStart = node.startIndex;
572
+ const useNamespace = cppEnclosingNamespace(node, source, useFileKey);
573
+ const files = [
574
+ {
575
+ module: sourceModule,
576
+ aliases: cppNamespaceAliasesForTree(tree, source, useFileKey),
577
+ positionOf: (startIndex) => (startIndex < useStart ? startIndex : undefined),
578
+ },
579
+ ];
580
+ let entryOffsets;
581
+ for (const moduleEntry of cppStarImportClosure(index, sourceModule)) {
582
+ const fileKey = fileIdentityKey(moduleEntry.file);
583
+ if (fileKey === useFileKey)
584
+ continue;
585
+ const parsed = loadParsedFile(moduleEntry.file);
586
+ if (!parsed?.tree)
587
+ continue;
588
+ entryOffsets ??= cppIncludeEntryOffsets(index, sourceModule, node);
589
+ const entry = entryOffsets.get(fileKey);
590
+ files.push({
591
+ module: moduleEntry,
592
+ aliases: cppNamespaceAliasesForTree(parsed.tree, parsed.source, fileKey),
593
+ positionOf: () => (entry !== undefined && entry < useStart ? entry : undefined),
594
+ });
595
+ }
596
+ const firstBinding = (segment) => {
597
+ if (!absolute) {
598
+ const block = cppBlockNamespaceAliasTarget(node, source, segment, useStart);
599
+ if (block)
600
+ return { path: block, alias: true };
601
+ }
602
+ for (let length = absolute ? 0 : useNamespace.length; length >= 0; length -= 1) {
603
+ const enclosing = useNamespace.slice(0, length);
604
+ const alias = cppNamespaceScopeAliasTarget(files, enclosing, segment);
605
+ if (alias === null)
606
+ return null;
607
+ if (alias)
608
+ return { path: alias, alias: true };
609
+ const owner = cppNamespaceScopeOwnerPath(files, enclosing, segment);
610
+ if (owner)
611
+ return { path: owner, alias: false };
612
+ }
613
+ return undefined;
614
+ };
615
+ const expandPrefix = (prefix, seen) => {
616
+ let resolved = [];
617
+ let bound = false;
618
+ for (const segment of prefix) {
619
+ let alias;
620
+ if (!resolved.length) {
621
+ const first = firstBinding(segment);
622
+ if (first === null)
623
+ return null;
624
+ if (first && !first.alias) {
625
+ resolved = [...first.path];
626
+ bound = true;
627
+ continue;
628
+ }
629
+ alias = first?.path;
630
+ }
631
+ else {
632
+ alias = cppNamespaceScopeAliasTarget(files, resolved, segment);
633
+ }
634
+ if (alias === null)
635
+ return null;
636
+ if (!alias) {
637
+ resolved.push(segment);
638
+ continue;
639
+ }
640
+ const key = `${resolved.join("::")}\0${segment}`;
641
+ if (seen.has(key))
642
+ return null;
643
+ seen.add(key);
644
+ bound = true;
645
+ const nested = expandPrefix(alias, seen);
646
+ if (nested === null)
647
+ return null;
648
+ resolved = [...(nested ?? alias)];
649
+ }
650
+ return bound ? resolved : undefined;
651
+ };
652
+ const expanded = expandPrefix(segments.slice(0, -1), new Set());
653
+ if (expanded === null)
654
+ return null;
655
+ if (!expanded)
656
+ return undefined;
657
+ return [...expanded, segments[segments.length - 1]].join("::");
658
+ }
434
659
  /**
435
660
  * Bare lookup through `using namespace`. Undefined means no directive nominates
436
661
  * this name. Null means more than one viable candidate, or the candidate could
@@ -607,6 +832,62 @@ export function resolveCppQualifiedMemberContainer(index, sourceModule, ownerPat
607
832
  function hasStaticStorageClass(node) {
608
833
  return node.namedChildren.some((child) => child.type === "storage_class_specifier" && child.text === "static");
609
834
  }
835
+ /** Select a proven static class member named through a namespace-qualified type. */
836
+ export function resolveCppVisibleStaticCallableName(index, sourceModule, qualifiedName, node, source, loadParsedFile) {
837
+ const separator = qualifiedName.lastIndexOf("::");
838
+ if (separator < 0)
839
+ return undefined;
840
+ const owner = qualifiedName.slice(0, separator);
841
+ const member = qualifiedName.slice(separator + 2);
842
+ const ownerPath = owner.split("::");
843
+ const useFileKey = fileIdentityKey(sourceModule.file);
844
+ let entryOffsets;
845
+ const defs = [];
846
+ for (const moduleEntry of cppStarImportClosure(index, sourceModule)) {
847
+ const fileKey = fileIdentityKey(moduleEntry.file);
848
+ let parsed;
849
+ let includeVisible;
850
+ for (const def of moduleEntry.locals) {
851
+ if (def.kind !== SymbolKind.Function || def.localName !== member || def.callable?.owner !== owner)
852
+ continue;
853
+ if (fileKey !== useFileKey) {
854
+ if (includeVisible === undefined) {
855
+ entryOffsets ??= cppIncludeEntryOffsets(index, sourceModule, node);
856
+ const entry = entryOffsets.get(fileKey);
857
+ includeVisible = entry !== undefined && entry < node.startIndex;
858
+ }
859
+ if (!includeVisible)
860
+ break;
861
+ }
862
+ const start = def.range.start.index;
863
+ if (start === undefined || (fileKey === useFileKey && start >= node.startIndex))
864
+ continue;
865
+ if (parsed === undefined)
866
+ parsed = loadParsedFile(moduleEntry.file);
867
+ if (!parsed)
868
+ break;
869
+ const position = { row: def.range.start.line - 1, column: def.range.start.column - 1 };
870
+ let current = parsed.tree.rootNode.descendantForPosition(position, position);
871
+ let staticMember = false;
872
+ while (current && !CPP_MEMBER_CONTAINER_TYPES.has(current.type)) {
873
+ if (current.type === "function_definition" || current.type === "declaration") {
874
+ staticMember = hasStaticStorageClass(current);
875
+ break;
876
+ }
877
+ current = current.parent;
878
+ }
879
+ if (!staticMember)
880
+ continue;
881
+ while (current && !CPP_MEMBER_CONTAINER_TYPES.has(current.type))
882
+ current = current.parent;
883
+ if (current && sameCppPath(cppMemberContainerPath(current, parsed.source), ownerPath))
884
+ defs.push(def);
885
+ }
886
+ }
887
+ if (!defs.length)
888
+ return undefined;
889
+ return resolveCppExportedCallables(index, defs, node, source, loadParsedFile, () => qualifiedName);
890
+ }
610
891
  /** The name a member declarator declares: `f` in `int f(int)`, `int A::f(int)`, or `int* f()`. */
611
892
  function cppDeclaredMemberName(declaration, source) {
612
893
  let declarator = declaration.childForFieldName("declarator");
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-cpp.js","sourceRoot":"","sources":["../../src/indexer/navigation-cpp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation-cpp.js","sourceRoot":"","sources":["../../src/indexer/navigation-cpp.ts"],"names":[],"mappings":"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"}