@lzehrung/codegraph 2.3.29 → 2.3.31

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 (324) hide show
  1. package/dist/bin/cli.js +6602 -4453
  2. package/dist/bin/query-index-worker.js +1302 -753
  3. package/dist/document-links/asciidoc.d.ts.map +1 -1
  4. package/dist/document-links/asciidoc.js +3 -4
  5. package/dist/document-links/asciidoc.js.map +1 -1
  6. package/dist/document-links/html-forms.d.ts +39 -0
  7. package/dist/document-links/html-forms.d.ts.map +1 -0
  8. package/dist/document-links/html-forms.js +94 -0
  9. package/dist/document-links/html-forms.js.map +1 -0
  10. package/dist/document-links/html.d.ts +8 -0
  11. package/dist/document-links/html.d.ts.map +1 -1
  12. package/dist/document-links/html.js +30 -15
  13. package/dist/document-links/html.js.map +1 -1
  14. package/dist/document-links/markdown.d.ts.map +1 -1
  15. package/dist/document-links/markdown.js +6 -7
  16. package/dist/document-links/markdown.js.map +1 -1
  17. package/dist/document-links/rst.d.ts.map +1 -1
  18. package/dist/document-links/rst.js +6 -0
  19. package/dist/document-links/rst.js.map +1 -1
  20. package/dist/document-links/sfc.d.ts.map +1 -1
  21. package/dist/document-links/sfc.js +4 -4
  22. package/dist/document-links/sfc.js.map +1 -1
  23. package/dist/graphs/angularjs.d.ts.map +1 -1
  24. package/dist/graphs/angularjs.js +9 -1
  25. package/dist/graphs/angularjs.js.map +1 -1
  26. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  27. package/dist/graphs/edge-resolution.js +8 -3
  28. package/dist/graphs/edge-resolution.js.map +1 -1
  29. package/dist/graphs/specifiers.d.ts.map +1 -1
  30. package/dist/graphs/specifiers.js +62 -104
  31. package/dist/graphs/specifiers.js.map +1 -1
  32. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
  33. package/dist/graphs/symbol-graph-detailed/edge-passes.js +118 -86
  34. package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
  35. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +27 -0
  36. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
  37. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +509 -42
  38. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  39. package/dist/impact/call-compatibility/providers/index.d.ts +15 -1
  40. package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
  41. package/dist/impact/call-compatibility/providers/index.js +21 -20
  42. package/dist/impact/call-compatibility/providers/index.js.map +1 -1
  43. package/dist/impact/call-compatibility/providers/profiles.d.ts +80 -0
  44. package/dist/impact/call-compatibility/providers/profiles.d.ts.map +1 -0
  45. package/dist/impact/call-compatibility/providers/profiles.js +164 -0
  46. package/dist/impact/call-compatibility/providers/profiles.js.map +1 -0
  47. package/dist/impact/call-compatibility.d.ts.map +1 -1
  48. package/dist/impact/call-compatibility.js +73 -108
  49. package/dist/impact/call-compatibility.js.map +1 -1
  50. package/dist/impact/member-resolution-coverage.d.ts.map +1 -1
  51. package/dist/impact/member-resolution-coverage.js +2 -2
  52. package/dist/impact/member-resolution-coverage.js.map +1 -1
  53. package/dist/indexer/build-cache/manifest.d.ts +7 -0
  54. package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
  55. package/dist/indexer/build-cache/manifest.js +32 -1
  56. package/dist/indexer/build-cache/manifest.js.map +1 -1
  57. package/dist/indexer/build-cache/options.d.ts +16 -2
  58. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  59. package/dist/indexer/build-cache/options.js +17 -3
  60. package/dist/indexer/build-cache/options.js.map +1 -1
  61. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  62. package/dist/indexer/build-cache/project-snapshot.js +1 -0
  63. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  64. package/dist/indexer/build-index.d.ts.map +1 -1
  65. package/dist/indexer/build-index.js +80 -2
  66. package/dist/indexer/build-index.js.map +1 -1
  67. package/dist/indexer/build-manifest.d.ts +1 -0
  68. package/dist/indexer/build-manifest.d.ts.map +1 -1
  69. package/dist/indexer/build-manifest.js +18 -0
  70. package/dist/indexer/build-manifest.js.map +1 -1
  71. package/dist/indexer/build-workers.js +1 -1
  72. package/dist/indexer/build-workers.js.map +1 -1
  73. package/dist/indexer/declaration-visibility.d.ts +43 -0
  74. package/dist/indexer/declaration-visibility.d.ts.map +1 -0
  75. package/dist/indexer/declaration-visibility.js +202 -0
  76. package/dist/indexer/declaration-visibility.js.map +1 -0
  77. package/dist/indexer/imports/binding-ranges.d.ts +2 -2
  78. package/dist/indexer/imports/binding-ranges.d.ts.map +1 -1
  79. package/dist/indexer/imports/binding-ranges.js +2 -123
  80. package/dist/indexer/imports/binding-ranges.js.map +1 -1
  81. package/dist/indexer/imports/import-binding-tables.d.ts +64 -0
  82. package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -0
  83. package/dist/indexer/imports/import-binding-tables.js +419 -0
  84. package/dist/indexer/imports/import-binding-tables.js.map +1 -0
  85. package/dist/indexer/imports/js-text-imports.d.ts.map +1 -1
  86. package/dist/indexer/imports/js-text-imports.js +5 -2
  87. package/dist/indexer/imports/js-text-imports.js.map +1 -1
  88. package/dist/indexer/imports/language-specific.d.ts +3 -22
  89. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  90. package/dist/indexer/imports/language-specific.js +54 -573
  91. package/dist/indexer/imports/language-specific.js.map +1 -1
  92. package/dist/indexer/imports/native-captures.d.ts.map +1 -1
  93. package/dist/indexer/imports/native-captures.js +23 -32
  94. package/dist/indexer/imports/native-captures.js.map +1 -1
  95. package/dist/indexer/imports/text-import-extractors.d.ts +37 -0
  96. package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -0
  97. package/dist/indexer/imports/text-import-extractors.js +358 -0
  98. package/dist/indexer/imports/text-import-extractors.js.map +1 -0
  99. package/dist/indexer/imports.d.ts.map +1 -1
  100. package/dist/indexer/imports.js +2 -1
  101. package/dist/indexer/imports.js.map +1 -1
  102. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  103. package/dist/indexer/locals-and-exports.js +23 -27
  104. package/dist/indexer/locals-and-exports.js.map +1 -1
  105. package/dist/indexer/navigation-goto.d.ts +1 -7
  106. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  107. package/dist/indexer/navigation-goto.js +181 -381
  108. package/dist/indexer/navigation-goto.js.map +1 -1
  109. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  110. package/dist/indexer/navigation-resolve.js +20 -1
  111. package/dist/indexer/navigation-resolve.js.map +1 -1
  112. package/dist/indexer/navigation.d.ts.map +1 -1
  113. package/dist/indexer/navigation.js +39 -7
  114. package/dist/indexer/navigation.js.map +1 -1
  115. package/dist/indexer/parse-context.js +2 -2
  116. package/dist/indexer/parse-context.js.map +1 -1
  117. package/dist/indexer/scope-nodes.d.ts +108 -0
  118. package/dist/indexer/scope-nodes.d.ts.map +1 -0
  119. package/dist/indexer/scope-nodes.js +238 -0
  120. package/dist/indexer/scope-nodes.js.map +1 -0
  121. package/dist/indexer/scope.d.ts.map +1 -1
  122. package/dist/indexer/scope.js +70 -130
  123. package/dist/indexer/scope.js.map +1 -1
  124. package/dist/indexer/types.d.ts +7 -0
  125. package/dist/indexer/types.d.ts.map +1 -1
  126. package/dist/languages/definitions/c-family.d.ts +18 -4
  127. package/dist/languages/definitions/c-family.d.ts.map +1 -1
  128. package/dist/languages/definitions/c-family.js +51 -13
  129. package/dist/languages/definitions/c-family.js.map +1 -1
  130. package/dist/languages/definitions/c.d.ts.map +1 -1
  131. package/dist/languages/definitions/c.js +7 -43
  132. package/dist/languages/definitions/c.js.map +1 -1
  133. package/dist/languages/definitions/cpp.d.ts.map +1 -1
  134. package/dist/languages/definitions/cpp.js +15 -61
  135. package/dist/languages/definitions/cpp.js.map +1 -1
  136. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  137. package/dist/languages/definitions/csharp.js +46 -52
  138. package/dist/languages/definitions/csharp.js.map +1 -1
  139. package/dist/languages/definitions/css-like.d.ts.map +1 -1
  140. package/dist/languages/definitions/css-like.js +13 -10
  141. package/dist/languages/definitions/css-like.js.map +1 -1
  142. package/dist/languages/definitions/go.d.ts.map +1 -1
  143. package/dist/languages/definitions/go.js +29 -42
  144. package/dist/languages/definitions/go.js.map +1 -1
  145. package/dist/languages/definitions/html.d.ts.map +1 -1
  146. package/dist/languages/definitions/html.js +15 -14
  147. package/dist/languages/definitions/html.js.map +1 -1
  148. package/dist/languages/definitions/java.d.ts.map +1 -1
  149. package/dist/languages/definitions/java.js +42 -48
  150. package/dist/languages/definitions/java.js.map +1 -1
  151. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  152. package/dist/languages/definitions/javascript.js +26 -54
  153. package/dist/languages/definitions/javascript.js.map +1 -1
  154. package/dist/languages/definitions/js-family.d.ts +15 -1
  155. package/dist/languages/definitions/js-family.d.ts.map +1 -1
  156. package/dist/languages/definitions/js-family.js +51 -0
  157. package/dist/languages/definitions/js-family.js.map +1 -1
  158. package/dist/languages/definitions/kotlin.d.ts.map +1 -1
  159. package/dist/languages/definitions/kotlin.js +26 -43
  160. package/dist/languages/definitions/kotlin.js.map +1 -1
  161. package/dist/languages/definitions/php.d.ts.map +1 -1
  162. package/dist/languages/definitions/php.js +50 -60
  163. package/dist/languages/definitions/php.js.map +1 -1
  164. package/dist/languages/definitions/python.d.ts.map +1 -1
  165. package/dist/languages/definitions/python.js +23 -14
  166. package/dist/languages/definitions/python.js.map +1 -1
  167. package/dist/languages/definitions/ruby.d.ts.map +1 -1
  168. package/dist/languages/definitions/ruby.js +14 -17
  169. package/dist/languages/definitions/ruby.js.map +1 -1
  170. package/dist/languages/definitions/rust.d.ts.map +1 -1
  171. package/dist/languages/definitions/rust.js +30 -52
  172. package/dist/languages/definitions/rust.js.map +1 -1
  173. package/dist/languages/definitions/scss.d.ts.map +1 -1
  174. package/dist/languages/definitions/scss.js +33 -49
  175. package/dist/languages/definitions/scss.js.map +1 -1
  176. package/dist/languages/definitions/sfc-graph.d.ts +4 -0
  177. package/dist/languages/definitions/sfc-graph.d.ts.map +1 -0
  178. package/dist/languages/definitions/sfc-graph.js +16 -0
  179. package/dist/languages/definitions/sfc-graph.js.map +1 -0
  180. package/dist/languages/definitions/shared.d.ts +33 -0
  181. package/dist/languages/definitions/shared.d.ts.map +1 -0
  182. package/dist/languages/definitions/shared.js +63 -0
  183. package/dist/languages/definitions/shared.js.map +1 -0
  184. package/dist/languages/definitions/sql.d.ts.map +1 -1
  185. package/dist/languages/definitions/sql.js +1 -0
  186. package/dist/languages/definitions/sql.js.map +1 -1
  187. package/dist/languages/definitions/svelte.d.ts.map +1 -1
  188. package/dist/languages/definitions/svelte.js +2 -10
  189. package/dist/languages/definitions/svelte.js.map +1 -1
  190. package/dist/languages/definitions/swift.d.ts.map +1 -1
  191. package/dist/languages/definitions/swift.js +37 -31
  192. package/dist/languages/definitions/swift.js.map +1 -1
  193. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  194. package/dist/languages/definitions/typescript.js +56 -90
  195. package/dist/languages/definitions/typescript.js.map +1 -1
  196. package/dist/languages/definitions/vue.d.ts.map +1 -1
  197. package/dist/languages/definitions/vue.js +2 -10
  198. package/dist/languages/definitions/vue.js.map +1 -1
  199. package/dist/languages/definitions/zig.d.ts.map +1 -1
  200. package/dist/languages/definitions/zig.js +9 -15
  201. package/dist/languages/definitions/zig.js.map +1 -1
  202. package/dist/languages/graph-captures.d.ts +40 -0
  203. package/dist/languages/graph-captures.d.ts.map +1 -0
  204. package/dist/languages/graph-captures.js +46 -0
  205. package/dist/languages/graph-captures.js.map +1 -0
  206. package/dist/languages/import-statement-parsers.d.ts +17 -0
  207. package/dist/languages/import-statement-parsers.d.ts.map +1 -1
  208. package/dist/languages/import-statement-parsers.js +108 -0
  209. package/dist/languages/import-statement-parsers.js.map +1 -1
  210. package/dist/languages/js-family.d.ts +2 -0
  211. package/dist/languages/js-family.d.ts.map +1 -1
  212. package/dist/languages/js-family.js +15 -6
  213. package/dist/languages/js-family.js.map +1 -1
  214. package/dist/languages/types.d.ts +4 -0
  215. package/dist/languages/types.d.ts.map +1 -1
  216. package/dist/languages/types.js +1 -1
  217. package/dist/languages/types.js.map +1 -1
  218. package/dist/languages.js +1 -1
  219. package/dist/languages.js.map +1 -1
  220. package/dist/native/contracts.d.ts +1 -1
  221. package/dist/native/contracts.d.ts.map +1 -1
  222. package/dist/native/js-bridge.d.ts +10 -0
  223. package/dist/native/js-bridge.d.ts.map +1 -1
  224. package/dist/native/js-bridge.js +10 -0
  225. package/dist/native/js-bridge.js.map +1 -1
  226. package/dist/native/native-backend-report.d.ts.map +1 -1
  227. package/dist/native/native-backend-report.js +2 -0
  228. package/dist/native/native-backend-report.js.map +1 -1
  229. package/dist/util/comments.d.ts +7 -7
  230. package/dist/util/comments.d.ts.map +1 -1
  231. package/dist/util/comments.js +15 -214
  232. package/dist/util/comments.js.map +1 -1
  233. package/dist/util/dynamic-import-tables.d.ts +88 -0
  234. package/dist/util/dynamic-import-tables.d.ts.map +1 -0
  235. package/dist/util/dynamic-import-tables.js +100 -0
  236. package/dist/util/dynamic-import-tables.js.map +1 -0
  237. package/dist/util/lines.d.ts.map +1 -1
  238. package/dist/util/lines.js +4 -1
  239. package/dist/util/lines.js.map +1 -1
  240. package/dist/util/member-access-tables.d.ts +72 -0
  241. package/dist/util/member-access-tables.d.ts.map +1 -0
  242. package/dist/util/member-access-tables.js +167 -0
  243. package/dist/util/member-access-tables.js.map +1 -0
  244. package/dist/util/member-access.d.ts +2 -0
  245. package/dist/util/member-access.d.ts.map +1 -1
  246. package/dist/util/member-access.js +61 -95
  247. package/dist/util/member-access.js.map +1 -1
  248. package/dist/util/paths.d.ts +4 -0
  249. package/dist/util/paths.d.ts.map +1 -1
  250. package/dist/util/paths.js +26 -0
  251. package/dist/util/paths.js.map +1 -1
  252. package/dist/util/project-files.js +1 -1
  253. package/dist/util/project-files.js.map +1 -1
  254. package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
  255. package/dist/util/resolution/cargo-targets.js +17 -14
  256. package/dist/util/resolution/cargo-targets.js.map +1 -1
  257. package/dist/util/resolution/cpp.d.ts +6 -0
  258. package/dist/util/resolution/cpp.d.ts.map +1 -0
  259. package/dist/util/resolution/cpp.js +69 -0
  260. package/dist/util/resolution/cpp.js.map +1 -0
  261. package/dist/util/resolution/csharp.d.ts +4 -3
  262. package/dist/util/resolution/csharp.d.ts.map +1 -1
  263. package/dist/util/resolution/csharp.js +27 -113
  264. package/dist/util/resolution/csharp.js.map +1 -1
  265. package/dist/util/resolution/files.d.ts +6 -0
  266. package/dist/util/resolution/files.d.ts.map +1 -1
  267. package/dist/util/resolution/files.js +108 -4
  268. package/dist/util/resolution/files.js.map +1 -1
  269. package/dist/util/resolution/go.d.ts +1 -0
  270. package/dist/util/resolution/go.d.ts.map +1 -1
  271. package/dist/util/resolution/go.js +4 -3
  272. package/dist/util/resolution/go.js.map +1 -1
  273. package/dist/util/resolution/jvm.d.ts +3 -3
  274. package/dist/util/resolution/jvm.d.ts.map +1 -1
  275. package/dist/util/resolution/jvm.js +90 -54
  276. package/dist/util/resolution/jvm.js.map +1 -1
  277. package/dist/util/resolution/node.js +2 -2
  278. package/dist/util/resolution/node.js.map +1 -1
  279. package/dist/util/resolution/php-composer.d.ts.map +1 -1
  280. package/dist/util/resolution/php-composer.js +8 -7
  281. package/dist/util/resolution/php-composer.js.map +1 -1
  282. package/dist/util/resolution/php.d.ts.map +1 -1
  283. package/dist/util/resolution/php.js +30 -43
  284. package/dist/util/resolution/php.js.map +1 -1
  285. package/dist/util/resolution/project-symbols.d.ts +5 -7
  286. package/dist/util/resolution/project-symbols.d.ts.map +1 -1
  287. package/dist/util/resolution/project-symbols.js +23 -9
  288. package/dist/util/resolution/project-symbols.js.map +1 -1
  289. package/dist/util/resolution/python.d.ts.map +1 -1
  290. package/dist/util/resolution/python.js +107 -62
  291. package/dist/util/resolution/python.js.map +1 -1
  292. package/dist/util/resolution/rust.d.ts.map +1 -1
  293. package/dist/util/resolution/rust.js +45 -34
  294. package/dist/util/resolution/rust.js.map +1 -1
  295. package/dist/util/resolution/tsconfig.d.ts.map +1 -1
  296. package/dist/util/resolution/tsconfig.js +3 -9
  297. package/dist/util/resolution/tsconfig.js.map +1 -1
  298. package/dist/util/resolution-candidates.d.ts +5 -1
  299. package/dist/util/resolution-candidates.d.ts.map +1 -1
  300. package/dist/util/resolution-candidates.js +18 -0
  301. package/dist/util/resolution-candidates.js.map +1 -1
  302. package/dist/util/resolution.d.ts.map +1 -1
  303. package/dist/util/resolution.js +93 -49
  304. package/dist/util/resolution.js.map +1 -1
  305. package/dist/util/specifiers.d.ts +4 -10
  306. package/dist/util/specifiers.d.ts.map +1 -1
  307. package/dist/util/specifiers.js +131 -165
  308. package/dist/util/specifiers.js.map +1 -1
  309. package/dist/util/trivia-tables.d.ts +69 -0
  310. package/dist/util/trivia-tables.d.ts.map +1 -0
  311. package/dist/util/trivia-tables.js +186 -0
  312. package/dist/util/trivia-tables.js.map +1 -0
  313. package/dist/util/trivia.d.ts +24 -0
  314. package/dist/util/trivia.d.ts.map +1 -0
  315. package/dist/util/trivia.js +621 -0
  316. package/dist/util/trivia.js.map +1 -0
  317. package/dist/util.d.ts +1 -1
  318. package/dist/util.d.ts.map +1 -1
  319. package/dist/util.js +1 -1
  320. package/dist/util.js.map +1 -1
  321. package/dist/worker/native-extract-worker.d.ts.map +1 -1
  322. package/dist/worker/native-extract-worker.js +4 -4
  323. package/dist/worker/native-extract-worker.js.map +1 -1
  324. package/package.json +3 -3
@@ -14,12 +14,7 @@ export const cFamilyControlSplitPoints = [
14
14
  "switch_statement",
15
15
  "case_statement",
16
16
  ];
17
- export const cFamilyIncludeImportsQuery = `
18
- (preproc_include path: (string_literal) @mod) @stmt
19
- (preproc_include path: (system_lib_string) @mod) @stmt
20
- (preproc_include path: (identifier) @mod) @stmt
21
- `;
22
- export const cFamilyIncludeBindingsQuery = `
17
+ export const cFamilyIncludeQuery = `
23
18
  (preproc_include path: (string_literal) @from) @stmt
24
19
  (preproc_include path: (system_lib_string) @from) @stmt
25
20
  (preproc_include path: (identifier) @from) @stmt
@@ -111,16 +106,16 @@ export function createCFamilyLanguageDefinition(options) {
111
106
  comments: ["comment"],
112
107
  },
113
108
  graph: {
114
- imports: cFamilyIncludeImportsQuery,
109
+ imports: cFamilyIncludeQuery,
115
110
  exports: joinQueryPatterns([
116
111
  ...cFamilyCoreExportQueries(graphFunctionNameQuery),
117
- ...(options.extraExportQueries ?? []),
112
+ ...(options.extraSymbolQueries ?? []),
118
113
  ]),
119
114
  locals: joinQueryPatterns([
120
115
  ...cFamilyCoreLocalQueries(graphFunctionNameQuery),
121
- ...(options.extraLocalQueries ?? []),
116
+ ...(options.extraSymbolQueries ?? []),
122
117
  ]),
123
- importBindings: cFamilyIncludeBindingsQuery,
118
+ importBindings: cFamilyIncludeQuery,
124
119
  },
125
120
  nodeTypes: options.nodeTypes,
126
121
  classifyDefinition: options.classifyDefinition,
@@ -129,10 +124,15 @@ export function createCFamilyLanguageDefinition(options) {
129
124
  createsFunctionScope: options.createsFunctionScope,
130
125
  createsBlockScope: (node) => node.type === "compound_statement",
131
126
  supportsCrossModuleSymbols: true,
132
- // A name declared inside a function body is not a module export. The exports query cannot
133
- // anchor on `translation_unit` because include guards nest every header declaration.
134
- exportScopeBlockers: ["compound_statement"],
127
+ // A name declared inside a function body or a class/struct/union body is not a module
128
+ // export. C and C++ spell that type body `field_declaration_list`, not `class_body`.
129
+ // The exports query cannot anchor on `translation_unit` because include guards nest
130
+ // every header declaration.
131
+ exportScopeBlockers: ["compound_statement", "field_declaration_list"],
135
132
  usesQueryDrivenLocals: options.usesQueryDrivenLocals || false,
133
+ ...(options.membersAreImplicitlyInScope !== undefined
134
+ ? { membersAreImplicitlyInScope: options.membersAreImplicitlyInScope }
135
+ : {}),
136
136
  };
137
137
  }
138
138
  export function isWithin(node, ancestor) {
@@ -159,6 +159,44 @@ export function findAncestor(node, types) {
159
159
  export function isInParameterList(node) {
160
160
  return !!findAncestor(node, cFamilyParameterListTypes);
161
161
  }
162
+ /** True when `node` sits inside the `name` field of a parent of one of the listed types. */
163
+ export function isSpecifierNameField(node, specifierTypes) {
164
+ const parent = node.parent;
165
+ return !!parent && specifierTypes.includes(parent.type) && isInField(node, parent, "name");
166
+ }
167
+ /**
168
+ * Declarator-chain and preprocessor declaration checks shared by C and C++: parameter, field,
169
+ * initializer, typedef, function, and plain declarations name their declarator, and enumerator
170
+ * and preprocessor definitions carry a `name` field.
171
+ */
172
+ export function cFamilyIsDeclarationName(node) {
173
+ if (isInAncestorDeclarator(node, new Set(["parameter_declaration"])) ||
174
+ isInAncestorDeclarator(node, new Set(["field_declaration"])) ||
175
+ isInAncestorDeclarator(node, new Set(["init_declarator"])) ||
176
+ isInAncestorDeclarator(node, new Set(["type_definition"])))
177
+ return true;
178
+ if (isInAncestorDeclarator(node, new Set(["function_definition"])) && !isInParameterList(node))
179
+ return true;
180
+ if (isInAncestorDeclarator(node, new Set(["declaration"])) && !isInParameterList(node))
181
+ return true;
182
+ return isSpecifierNameField(node, ["enumerator", "preproc_def", "preproc_function_def"]);
183
+ }
184
+ /**
185
+ * Container-walk classification shared by C and C++: a name inside a function body is a
186
+ * function, one inside a declaration with a function declarator is a function, and
187
+ * `typedef int (*Comparator)(int, int);` wraps the typedef name in a declarator chain, so the
188
+ * direct-parent checks above cannot see it.
189
+ */
190
+ export function cFamilyContainerClassifyDefinition(node) {
191
+ const container = findAncestor(node, cFamilyContainerTypes);
192
+ if (container?.type === "function_definition")
193
+ return "function";
194
+ if (container?.type === "declaration" && isFunctionDeclarator(node))
195
+ return "function";
196
+ if (container?.type === "type_definition")
197
+ return "type";
198
+ return "variable";
199
+ }
162
200
  function resolveDeclaratorRoot(ancestor) {
163
201
  let declaratorNode = ancestor.childForFieldName("declarator");
164
202
  if (!declaratorNode)
@@ -1 +1 @@
1
- {"version":3,"file":"c-family.js","sourceRoot":"","sources":["../../../src/languages/definitions/c-family.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c-family.js","sourceRoot":"","sources":["../../../src/languages/definitions/c-family.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"c.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/c.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,KAAK,0CAoEhB,CAAC"}
1
+ {"version":3,"file":"c.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/c.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,KAAK,0CAqChB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { registerLanguage } from "../registry.js";
2
- import { cFamilyBlock, cFamilyContainerTypes, cFamilyFunctionBlock, cFamilyTypeIdentifierBlock, createCFamilyLanguageDefinition, findAncestor, isFunctionDeclarator, isInAncestorDeclarator, isInField, isInParameterList, } from "./c-family.js";
2
+ import { nodeTypeIn } from "./shared.js";
3
+ import { cFamilyBlock, cFamilyContainerClassifyDefinition, cFamilyFunctionBlock, cFamilyTypeIdentifierBlock, cFamilyIsDeclarationName, createCFamilyLanguageDefinition, isInField, isSpecifierNameField, } from "./c-family.js";
3
4
  export const C_DEF = createCFamilyLanguageDefinition({
4
5
  id: "c",
5
6
  extensions: [".c", ".h", ".i"],
@@ -14,13 +15,7 @@ export const C_DEF = createCFamilyLanguageDefinition({
14
15
  cFamilyBlock("preproc_def", "name: (identifier) @chunk.name", "macro"),
15
16
  cFamilyBlock("preproc_function_def", "name: (identifier) @chunk.name", "macro"),
16
17
  ],
17
- extraExportQueries: [
18
- `(union_specifier name: (type_identifier) @name)`,
19
- `(enumerator name: (identifier) @name)`,
20
- `(preproc_def name: (identifier) @name)`,
21
- `(preproc_function_def name: (identifier) @name)`,
22
- ],
23
- extraLocalQueries: [
18
+ extraSymbolQueries: [
24
19
  `(union_specifier name: (type_identifier) @name)`,
25
20
  `(enumerator name: (identifier) @name)`,
26
21
  `(preproc_def name: (identifier) @name)`,
@@ -41,42 +36,11 @@ export const C_DEF = createCFamilyLanguageDefinition({
41
36
  return "class";
42
37
  if (parent.type === "type_definition" && isInField(node, parent, "declarator"))
43
38
  return "type";
44
- const container = findAncestor(node, cFamilyContainerTypes);
45
- if (container?.type === "function_definition")
46
- return "function";
47
- if (container?.type === "declaration" && isFunctionDeclarator(node))
48
- return "function";
49
- // `typedef int (*Comparator)(int, int);` and `typedef int *IntPtr;` wrap the typedef name in a
50
- // declarator chain, so the direct-parent check above cannot see it.
51
- if (container?.type === "type_definition")
52
- return "type";
53
- return "variable";
54
- },
55
- isDeclarationName: (node) => {
56
- const parent = node.parent;
57
- if (!parent)
58
- return false;
59
- if ((parent.type === "struct_specifier" || parent.type === "union_specifier" || parent.type === "enum_specifier") &&
60
- isInField(node, parent, "name"))
61
- return true;
62
- if (isInAncestorDeclarator(node, new Set(["parameter_declaration"])) ||
63
- isInAncestorDeclarator(node, new Set(["field_declaration"])) ||
64
- isInAncestorDeclarator(node, new Set(["init_declarator"])) ||
65
- isInAncestorDeclarator(node, new Set(["type_definition"])))
66
- return true;
67
- if (isInAncestorDeclarator(node, new Set(["function_definition"])) && !isInParameterList(node))
68
- return true;
69
- if (isInAncestorDeclarator(node, new Set(["declaration"])) && !isInParameterList(node))
70
- return true;
71
- if (parent.type === "enumerator" && isInField(node, parent, "name"))
72
- return true;
73
- if (parent.type === "preproc_def" && isInField(node, parent, "name"))
74
- return true;
75
- if (parent.type === "preproc_function_def" && isInField(node, parent, "name"))
76
- return true;
77
- return false;
39
+ return cFamilyContainerClassifyDefinition(node);
78
40
  },
79
- createsFunctionScope: (node) => node.type === "function_definition",
41
+ isDeclarationName: (node) => isSpecifierNameField(node, ["struct_specifier", "union_specifier", "enum_specifier"]) ||
42
+ cFamilyIsDeclarationName(node),
43
+ createsFunctionScope: nodeTypeIn(["function_definition"]),
80
44
  });
81
45
  registerLanguage(C_DEF);
82
46
  //# sourceMappingURL=c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"c.js","sourceRoot":"","sources":["../../../src/languages/definitions/c.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c.js","sourceRoot":"","sources":["../../../src/languages/definitions/c.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,kCAAkC,EAClC,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,EAC/B,SAAS,EACT,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,KAAK,GAAG,+BAA+B,CAAC;IACnD,EAAE,EAAE,GAAG;IACP,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9B,sBAAsB,EAAE,KAAK;IAC7B,qBAAqB,EAAE,IAAI;IAC3B,MAAM,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC7B,oBAAoB,CAAC,iBAAiB,CAAC;QACvC,0BAA0B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;QACxD,0BAA0B,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACtD,0BAA0B,CAAC,gBAAgB,EAAE,MAAM,CAAC;QACpD,YAAY,CAAC,iBAAiB,EAAE,2CAA2C,EAAE,MAAM,CAAC;QACpF,YAAY,CAAC,aAAa,EAAE,gCAAgC,EAAE,OAAO,CAAC;QACtE,YAAY,CAAC,sBAAsB,EAAE,gCAAgC,EAAE,OAAO,CAAC;KAChF;IACD,kBAAkB,EAAE;QAClB,iDAAiD;QACjD,uCAAuC;QACvC,wCAAwC;QACxC,iDAAiD;KAClD;IACD,SAAS,EAAE;QACT,UAAU,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;QACjE,kBAAkB,EAAE,CAAC,kBAAkB,CAAC;QACxC,gBAAgB,EAAE,kBAAkB;KACrC;IACD,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,OAAO,UAAU,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,MAAM,CAAC;QACpD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,OAAO,CAAC;QAC5F,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC;QAC9F,OAAO,kCAAkC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,oBAAoB,CAAC,IAAI,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QACrF,wBAAwB,CAAC,IAAI,CAAC;IAChC,oBAAoB,EAAE,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH,gBAAgB,CAAC,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/cpp.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,OAAO,0CA+HlB,CAAC"}
1
+ {"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/cpp.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,OAAO,0CAyFlB,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { registerLanguage } from "../registry.js";
2
- import { cFamilyBlock, cFamilyContainerTypes, cFamilyControlSplitPoints, cFamilyFunctionBlock, cFamilyTypeIdentifierBlock, createCFamilyLanguageDefinition, findAncestor, isFunctionDeclarator, isInAncestorDeclarator, isInField, isInParameterList, } from "./c-family.js";
2
+ import { nodeTypeIn } from "./shared.js";
3
+ import { cFamilyBlock, cFamilyContainerClassifyDefinition, cFamilyControlSplitPoints, cFamilyFunctionBlock, cFamilyIsDeclarationName, cFamilyTypeIdentifierBlock, createCFamilyLanguageDefinition, findAncestor, isInField, isSpecifierNameField, } from "./c-family.js";
3
4
  export const CPP_DEF = createCFamilyLanguageDefinition({
4
5
  id: "cpp",
5
- extensions: [".cc", ".cpp", ".cxx", ".c++", ".hpp", ".hh", ".hxx", ".ipp", ".tpp", ".inl"],
6
+ // Module-interface units use `.cppm`/`.ixx`/`.mxx` by convention; without them a declared
7
+ // `export module foo;` is never discovered, so a first-party `import foo;` stays external.
8
+ extensions: [".cc", ".cpp", ".cxx", ".c++", ".hpp", ".hh", ".hxx", ".ipp", ".tpp", ".inl", ".cppm", ".ixx", ".mxx"],
6
9
  includeFieldIdentifier: true,
7
10
  usesQueryDrivenLocals: true,
11
+ membersAreImplicitlyInScope: true,
8
12
  blocks: (functionNameQuery) => [
9
13
  cFamilyFunctionBlock(functionNameQuery),
10
14
  cFamilyTypeIdentifierBlock("class_specifier", "class"),
@@ -15,7 +19,7 @@ export const CPP_DEF = createCFamilyLanguageDefinition({
15
19
  cFamilyBlock("type_definition", "declarator: (type_identifier) @chunk.name", "type"),
16
20
  ],
17
21
  splitPoints: [...cFamilyControlSplitPoints, "try_statement", "catch_clause"],
18
- extraExportQueries: [
22
+ extraSymbolQueries: [
19
23
  `(class_specifier name: (type_identifier) @name)`,
20
24
  `(class_specifier name: (template_type name: (type_identifier) @name))`,
21
25
  `(union_specifier name: (type_identifier) @name)`,
@@ -31,23 +35,6 @@ export const CPP_DEF = createCFamilyLanguageDefinition({
31
35
  `(class_specifier body: (field_declaration_list (declaration declarator: (function_declarator declarator: (destructor_name) @name))))`,
32
36
  `(module_declaration name: (module_name) @name)`,
33
37
  ],
34
- extraLocalQueries: [
35
- `(class_specifier name: (type_identifier) @name)`,
36
- `(class_specifier name: (template_type name: (type_identifier) @name))`,
37
- `(enum_specifier name: (type_identifier) @name)`,
38
- `(union_specifier name: (type_identifier) @name)`,
39
- `(enumerator name: (identifier) @name)`,
40
- `(namespace_definition name: (namespace_identifier) @name)`,
41
- `(namespace_definition name: (nested_namespace_specifier (namespace_identifier) @name))`,
42
- `(alias_declaration name: (type_identifier) @name)`,
43
- `(concept_definition name: (identifier) @name)`,
44
- `(preproc_def name: (identifier) @name)`,
45
- `(preproc_function_def name: (identifier) @name)`,
46
- `(class_specifier body: (field_declaration_list (field_declaration declarator: (function_declarator declarator: (field_identifier) @name))))`,
47
- `(class_specifier body: (field_declaration_list (field_declaration declarator: (reference_declarator (function_declarator declarator: (operator_name) @name)))))`,
48
- `(class_specifier body: (field_declaration_list (declaration declarator: (function_declarator declarator: (destructor_name) @name))))`,
49
- `(module_declaration name: (module_name) @name)`,
50
- ],
51
38
  nodeTypes: {
52
39
  identifier: ["identifier", "field_identifier", "type_identifier", "namespace_identifier"],
53
40
  propertyIdentifier: ["field_identifier", "identifier"],
@@ -74,27 +61,14 @@ export const CPP_DEF = createCFamilyLanguageDefinition({
74
61
  if (parent.type === "alias_declaration" ||
75
62
  (parent.type === "type_definition" && isInField(node, parent, "declarator")))
76
63
  return "type";
77
- const container = findAncestor(node, cFamilyContainerTypes);
78
- if (container?.type === "function_definition")
79
- return "function";
80
- if (container?.type === "declaration" && isFunctionDeclarator(node))
81
- return "function";
82
- // `typedef int (*Comparator)(int, int);` wraps the typedef name in a declarator chain, so the
83
- // direct-parent check above cannot see it.
84
- if (container?.type === "type_definition")
85
- return "type";
86
- return "variable";
64
+ return cFamilyContainerClassifyDefinition(node);
87
65
  },
88
66
  isDeclarationName: (node) => {
67
+ if (isSpecifierNameField(node, ["class_specifier", "struct_specifier", "union_specifier", "enum_specifier"]))
68
+ return true;
89
69
  const parent = node.parent;
90
70
  if (!parent)
91
71
  return false;
92
- if ((parent.type === "class_specifier" ||
93
- parent.type === "struct_specifier" ||
94
- parent.type === "union_specifier" ||
95
- parent.type === "enum_specifier") &&
96
- isInField(node, parent, "name"))
97
- return true;
98
72
  if (parent.type === "namespace_definition" && isInField(node, parent, "name"))
99
73
  return true;
100
74
  if (parent.type === "module_declaration" && isInField(node, parent, "name"))
@@ -113,40 +87,20 @@ export const CPP_DEF = createCFamilyLanguageDefinition({
113
87
  return true;
114
88
  if (parent.type === "concept_definition" && isInField(node, parent, "name"))
115
89
  return true;
116
- if (isInAncestorDeclarator(node, new Set(["parameter_declaration"])) ||
117
- isInAncestorDeclarator(node, new Set(["field_declaration"])) ||
118
- isInAncestorDeclarator(node, new Set(["init_declarator"])) ||
119
- isInAncestorDeclarator(node, new Set(["type_definition"])))
120
- return true;
121
- if (isInAncestorDeclarator(node, new Set(["function_definition"])) && !isInParameterList(node))
122
- return true;
123
- if (isInAncestorDeclarator(node, new Set(["declaration"])) && !isInParameterList(node))
124
- return true;
125
90
  if (parent.type === "qualified_identifier" &&
126
91
  parent.parent?.type === "using_declaration" &&
127
92
  isInField(node, parent, "name"))
128
93
  return true;
129
- if (parent.type === "enumerator" && isInField(node, parent, "name"))
130
- return true;
131
- if (parent.type === "preproc_def" && isInField(node, parent, "name"))
132
- return true;
133
- if (parent.type === "preproc_function_def" && isInField(node, parent, "name"))
134
- return true;
135
- return false;
94
+ return cFamilyIsDeclarationName(node);
136
95
  },
137
- createsFunctionScope: (node) => node.type === "function_definition" || node.type === "lambda_expression",
96
+ createsFunctionScope: nodeTypeIn(["function_definition", "lambda_expression"]),
138
97
  });
139
- const cppModuleImportQuery = `
140
- (import_declaration name: (module_name) @mod) @stmt
141
- (import_declaration header: (string_literal) @mod) @stmt
142
- (import_declaration header: (system_lib_string) @mod) @stmt
143
- `;
144
- const cppModuleBindingQuery = `
98
+ const cppModuleQuery = `
145
99
  (import_declaration name: (module_name) @from) @stmt
146
100
  (import_declaration header: (string_literal) @from) @stmt
147
101
  (import_declaration header: (system_lib_string) @from) @stmt
148
102
  `;
149
- CPP_DEF.graph.imports += cppModuleImportQuery;
150
- CPP_DEF.graph.importBindings += cppModuleBindingQuery;
103
+ CPP_DEF.graph.imports += cppModuleQuery;
104
+ CPP_DEF.graph.importBindings += cppModuleQuery;
151
105
  registerLanguage(CPP_DEF);
152
106
  //# sourceMappingURL=cpp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../src/languages/definitions/cpp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../src/languages/definitions/cpp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMtD,eAAO,MAAM,UAAU,EAAE,kBA6JxB,CAAC"}
1
+ {"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOtD,eAAO,MAAM,UAAU,EAAE,kBAuJxB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { registerLanguage } from "../registry.js";
2
+ import { classifyByParentType, isNameFieldOnParent, nodeTypeIn } from "./shared.js";
2
3
  import { CSHARP_IDENTIFIER_FORMAT_SOURCE, hasNonAsciiCodePoint } from "../../util/identifiers.js";
3
4
  const CSHARP_IDENTIFIER_FORMAT_PATTERN = new RegExp(`[${CSHARP_IDENTIFIER_FORMAT_SOURCE}]`, "gu");
4
5
  export const CSHARP_DEF = {
@@ -59,9 +60,11 @@ export const CSHARP_DEF = {
59
60
  comments: ["comment"],
60
61
  },
61
62
  graph: {
63
+ // Path node is `identifier` | `qualified_name` | `alias_qualified_name` (`global::System`).
64
+ // An identifier/qualified_name alternation misses `alias_qualified_name`, so keep `(_)`.
62
65
  imports: `
63
- (using_directive !name (_) @mod) @stmt
64
- (using_directive name: (identifier) (_) @mod) @stmt
66
+ (using_directive !name (_) @from) @stmt
67
+ (using_directive name: (identifier) (_) @from) @stmt
65
68
  `,
66
69
  exports: `
67
70
  (class_declaration name: (identifier) @name)
@@ -80,6 +83,8 @@ export const CSHARP_DEF = {
80
83
  (class_declaration name: (identifier) @name)
81
84
  (record_declaration name: (identifier) @name)
82
85
  (record_declaration (parameter_list (parameter name: (identifier) @name)))
86
+ (method_declaration (parameter_list (parameter name: (identifier) @name)))
87
+ (constructor_declaration (parameter_list (parameter name: (identifier) @name)))
83
88
  (struct_declaration name: (identifier) @name)
84
89
  (interface_declaration name: (identifier) @name)
85
90
  (enum_declaration name: (identifier) @name)
@@ -91,6 +96,8 @@ export const CSHARP_DEF = {
91
96
  (variable_declarator name: (identifier) @name)
92
97
  (declaration_pattern name: (identifier) @name)
93
98
  `,
99
+ // extern alias has no path node in the grammar, so there is no @from.
100
+ // using path node: identifier | qualified_name | alias_qualified_name — keep `(_)`.
94
101
  importBindings: `
95
102
  (using_directive name: (identifier) @alias (_) @from) @stmt
96
103
  (using_directive !name (_) @from) @stmt
@@ -102,56 +109,43 @@ export const CSHARP_DEF = {
102
109
  memberExpression: "member_access_expression",
103
110
  },
104
111
  supportsCrossModuleSymbols: true,
105
- classifyDefinition: (node) => {
106
- const parent = node.parent;
107
- if (!parent)
108
- return "variable";
109
- if (parent.type === "method_declaration" ||
110
- parent.type === "constructor_declaration" ||
111
- parent.type === "destructor_declaration" ||
112
- parent.type === "local_function_statement")
113
- return "method";
114
- if (parent.type === "class_declaration" ||
115
- parent.type === "record_declaration" ||
116
- parent.type === "struct_declaration")
117
- return "class";
118
- if (parent.type === "interface_declaration")
119
- return "interface";
120
- if (parent.type === "enum_declaration" || parent.type === "delegate_declaration")
121
- return "type";
122
- return "variable";
123
- },
124
- createsFunctionScope: (node) => node.type === "method_declaration" ||
125
- node.type === "constructor_declaration" ||
126
- node.type === "destructor_declaration" ||
127
- node.type === "local_function_statement",
128
- createsBlockScope: (node) => node.type === "block" || node.type === "declaration_list",
129
- isDeclarationName: (node) => {
130
- const p = node.parent;
131
- if (!p)
132
- return false;
133
- if ((p.type === "class_declaration" ||
134
- p.type === "record_declaration" ||
135
- p.type === "struct_declaration" ||
136
- p.type === "interface_declaration" ||
137
- p.type === "enum_declaration" ||
138
- p.type === "delegate_declaration" ||
139
- p.type === "enum_member_declaration" ||
140
- p.type === "method_declaration" ||
141
- p.type === "constructor_declaration" ||
142
- p.type === "destructor_declaration" ||
143
- p.type === "local_function_statement" ||
144
- p.type === "property_declaration") &&
145
- p.childForFieldName("name")?.id === node.id)
146
- return true;
147
- if (p.type === "variable_declarator" && p.childForFieldName("name")?.id === node.id)
148
- return true;
149
- if (p.type === "parameter" && p.childForFieldName("name")?.id === node.id)
150
- return true;
151
- if (p.type === "declaration_pattern" && p.childForFieldName("name")?.id === node.id)
152
- return true;
153
- return false;
154
- },
112
+ membersAreImplicitlyInScope: true,
113
+ classifyDefinition: classifyByParentType({
114
+ method_declaration: "method",
115
+ constructor_declaration: "method",
116
+ destructor_declaration: "method",
117
+ local_function_statement: "method",
118
+ class_declaration: "class",
119
+ record_declaration: "class",
120
+ struct_declaration: "class",
121
+ interface_declaration: "interface",
122
+ enum_declaration: "type",
123
+ delegate_declaration: "type",
124
+ }),
125
+ createsFunctionScope: nodeTypeIn([
126
+ "method_declaration",
127
+ "constructor_declaration",
128
+ "destructor_declaration",
129
+ "local_function_statement",
130
+ ]),
131
+ createsBlockScope: nodeTypeIn(["block", "declaration_list"]),
132
+ isDeclarationName: (node) => isNameFieldOnParent(node, [
133
+ "class_declaration",
134
+ "record_declaration",
135
+ "struct_declaration",
136
+ "interface_declaration",
137
+ "enum_declaration",
138
+ "delegate_declaration",
139
+ "enum_member_declaration",
140
+ "method_declaration",
141
+ "constructor_declaration",
142
+ "destructor_declaration",
143
+ "local_function_statement",
144
+ "property_declaration",
145
+ "variable_declarator",
146
+ "parameter",
147
+ "declaration_pattern",
148
+ ]),
155
149
  normalizeIdentifier: (name) => {
156
150
  const withoutVerbatimPrefix = name.startsWith("@") ? name.slice(1) : name;
157
151
  return hasNonAsciiCodePoint(withoutVerbatimPrefix)
@@ -1 +1 @@
1
- {"version":3,"file":"csharp.js","sourceRoot":"","sources":["../../../src/languages/definitions/csharp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csharp.js","sourceRoot":"","sources":["../../../src/languages/definitions/csharp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"css-like.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/css-like.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,gBAAgB,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAUlE;AAED,wBAAgB,YAAY,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAc1D;AAED,wBAAgB,gBAAgB,IAAI,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAI/E"}
1
+ {"version":3,"file":"css-like.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/css-like.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAetD,wBAAgB,gBAAgB,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAUlE;AAED,wBAAgB,YAAY,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAO1D;AAED,wBAAgB,gBAAgB,IAAI,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAI/E"}
@@ -1,3 +1,13 @@
1
+ import { graphCapture } from "../graph-captures.js";
2
+ const from = graphCapture("from");
3
+ const stmt = graphCapture("stmt");
4
+ const cssLikeImportQuery = `
5
+ (import_statement (string_value) ${from}) ${stmt}
6
+ `;
7
+ const cssLikeLocalsQuery = `
8
+ (class_selector (class_name) @name)
9
+ (id_selector (id_name) @name)
10
+ `;
1
11
  export function cssLikeStructure() {
2
12
  return {
3
13
  blocks: [
@@ -11,17 +21,10 @@ export function cssLikeStructure() {
11
21
  }
12
22
  export function cssLikeGraph() {
13
23
  return {
14
- imports: `
15
- (import_statement (string_value) @mod) @stmt
16
- `,
24
+ imports: cssLikeImportQuery,
17
25
  exports: "",
18
- locals: `
19
- (class_selector (class_name) @name)
20
- (id_selector (id_name) @name)
21
- `,
22
- importBindings: `
23
- (import_statement (string_value) @from) @stmt
24
- `,
26
+ locals: cssLikeLocalsQuery,
27
+ importBindings: cssLikeImportQuery,
25
28
  };
26
29
  }
27
30
  export function cssLikeNodeTypes() {
@@ -1 +1 @@
1
- {"version":3,"file":"css-like.js","sourceRoot":"","sources":["../../../src/languages/definitions/css-like.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE;YACvC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE;YAC/C,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE;SACxD;QACD,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,OAAO,EAAE;;KAER;QACD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE;;;KAGP;QACD,cAAc,EAAE;;KAEf;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,UAAU,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"css-like.js","sourceRoot":"","sources":["../../../src/languages/definitions/css-like.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAElC,MAAM,kBAAkB,GAAG;yCACc,IAAI,KAAK,IAAI;KACjD,CAAC;AAEN,MAAM,kBAAkB,GAAG;;;KAGtB,CAAC;AAEN,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE;YACvC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE;YAC/C,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE;SACxD;QACD,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,kBAAkB;QAC1B,cAAc,EAAE,kBAAkB;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,UAAU,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;KACtC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/go.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,eAAO,MAAM,MAAM,EAAE,kBAoGpB,CAAC"}
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/go.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,MAAM,EAAE,kBAkGpB,CAAC"}