@lzehrung/codegraph 2.3.23 → 2.3.25

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 (188) hide show
  1. package/README.md +1 -1
  2. package/codegraph-skill/codegraph/SKILL.md +2 -2
  3. package/dist/bin/cli.js +3475 -1655
  4. package/dist/bin/query-index-worker.js +569 -229
  5. package/dist/cli/command-table.d.ts.map +1 -1
  6. package/dist/cli/command-table.js +1 -5
  7. package/dist/cli/command-table.js.map +1 -1
  8. package/dist/cli/context.d.ts.map +1 -1
  9. package/dist/cli/context.js +7 -4
  10. package/dist/cli/context.js.map +1 -1
  11. package/dist/cli/doctor.d.ts +1 -0
  12. package/dist/cli/doctor.d.ts.map +1 -1
  13. package/dist/cli/doctor.js +8 -1
  14. package/dist/cli/doctor.js.map +1 -1
  15. package/dist/cli/invocation-context.d.ts +2 -1
  16. package/dist/cli/invocation-context.d.ts.map +1 -1
  17. package/dist/cli/invocation-context.js +13 -0
  18. package/dist/cli/invocation-context.js.map +1 -1
  19. package/dist/document-links/asciidoc.d.ts.map +1 -1
  20. package/dist/document-links/asciidoc.js +33 -0
  21. package/dist/document-links/asciidoc.js.map +1 -1
  22. package/dist/document-links/language-ids.d.ts +10 -0
  23. package/dist/document-links/language-ids.d.ts.map +1 -0
  24. package/dist/document-links/language-ids.js +15 -0
  25. package/dist/document-links/language-ids.js.map +1 -0
  26. package/dist/document-links/markdown.d.ts.map +1 -1
  27. package/dist/document-links/markdown.js +103 -21
  28. package/dist/document-links/markdown.js.map +1 -1
  29. package/dist/document-links/shared.d.ts.map +1 -1
  30. package/dist/document-links/shared.js +1 -0
  31. package/dist/document-links/shared.js.map +1 -1
  32. package/dist/document-links.d.ts +1 -3
  33. package/dist/document-links.d.ts.map +1 -1
  34. package/dist/document-links.js +1 -8
  35. package/dist/document-links.js.map +1 -1
  36. package/dist/duplicates/unit-cache.d.ts +4 -3
  37. package/dist/duplicates/unit-cache.d.ts.map +1 -1
  38. package/dist/duplicates/unit-cache.js +17 -7
  39. package/dist/duplicates/unit-cache.js.map +1 -1
  40. package/dist/duplicates/units.d.ts +2 -1
  41. package/dist/duplicates/units.d.ts.map +1 -1
  42. package/dist/duplicates/units.js +77 -16
  43. package/dist/duplicates/units.js.map +1 -1
  44. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  45. package/dist/graphs/edge-resolution.js +3 -0
  46. package/dist/graphs/edge-resolution.js.map +1 -1
  47. package/dist/graphs/external/stdlib.d.ts.map +1 -1
  48. package/dist/graphs/external/stdlib.js +18 -11
  49. package/dist/graphs/external/stdlib.js.map +1 -1
  50. package/dist/graphs/specifiers.d.ts +3 -2
  51. package/dist/graphs/specifiers.d.ts.map +1 -1
  52. package/dist/graphs/specifiers.js +76 -39
  53. package/dist/graphs/specifiers.js.map +1 -1
  54. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +1 -1
  55. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  56. package/dist/indexer/build-cache/options.d.ts +8 -2
  57. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  58. package/dist/indexer/build-cache/options.js +10 -2
  59. package/dist/indexer/build-cache/options.js.map +1 -1
  60. package/dist/indexer/build-cache/reports.d.ts.map +1 -1
  61. package/dist/indexer/build-cache/reports.js +29 -21
  62. package/dist/indexer/build-cache/reports.js.map +1 -1
  63. package/dist/indexer/expand-star-imports.d.ts.map +1 -1
  64. package/dist/indexer/expand-star-imports.js +8 -3
  65. package/dist/indexer/expand-star-imports.js.map +1 -1
  66. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  67. package/dist/indexer/imports/language-specific.js +166 -32
  68. package/dist/indexer/imports/language-specific.js.map +1 -1
  69. package/dist/indexer/imports/native-captures.d.ts.map +1 -1
  70. package/dist/indexer/imports/native-captures.js +4 -3
  71. package/dist/indexer/imports/native-captures.js.map +1 -1
  72. package/dist/indexer/imports/python.d.ts +2 -0
  73. package/dist/indexer/imports/python.d.ts.map +1 -1
  74. package/dist/indexer/imports/python.js +113 -8
  75. package/dist/indexer/imports/python.js.map +1 -1
  76. package/dist/indexer/imports.d.ts.map +1 -1
  77. package/dist/indexer/imports.js +25 -12
  78. package/dist/indexer/imports.js.map +1 -1
  79. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  80. package/dist/indexer/locals-and-exports.js +153 -38
  81. package/dist/indexer/locals-and-exports.js.map +1 -1
  82. package/dist/indexer/navigation-goto.js +1 -1
  83. package/dist/indexer/navigation-goto.js.map +1 -1
  84. package/dist/indexer/scope-types.d.ts +1 -1
  85. package/dist/indexer/scope-types.d.ts.map +1 -1
  86. package/dist/indexer/scope.d.ts.map +1 -1
  87. package/dist/indexer/scope.js +43 -2
  88. package/dist/indexer/scope.js.map +1 -1
  89. package/dist/languages/definitions/c-family.d.ts +5 -0
  90. package/dist/languages/definitions/c-family.d.ts.map +1 -1
  91. package/dist/languages/definitions/c-family.js +27 -6
  92. package/dist/languages/definitions/c-family.js.map +1 -1
  93. package/dist/languages/definitions/c.d.ts.map +1 -1
  94. package/dist/languages/definitions/c.js +5 -0
  95. package/dist/languages/definitions/c.js.map +1 -1
  96. package/dist/languages/definitions/cpp.d.ts.map +1 -1
  97. package/dist/languages/definitions/cpp.js +41 -3
  98. package/dist/languages/definitions/cpp.js.map +1 -1
  99. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  100. package/dist/languages/definitions/csharp.js +52 -21
  101. package/dist/languages/definitions/csharp.js.map +1 -1
  102. package/dist/languages/definitions/go.d.ts.map +1 -1
  103. package/dist/languages/definitions/go.js +10 -7
  104. package/dist/languages/definitions/go.js.map +1 -1
  105. package/dist/languages/definitions/html-stub.d.ts +6 -7
  106. package/dist/languages/definitions/html-stub.d.ts.map +1 -1
  107. package/dist/languages/definitions/html-stub.js +6 -7
  108. package/dist/languages/definitions/html-stub.js.map +1 -1
  109. package/dist/languages/definitions/html.js +13 -13
  110. package/dist/languages/definitions/html.js.map +1 -1
  111. package/dist/languages/definitions/java.d.ts.map +1 -1
  112. package/dist/languages/definitions/java.js +6 -0
  113. package/dist/languages/definitions/java.js.map +1 -1
  114. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  115. package/dist/languages/definitions/javascript.js +48 -30
  116. package/dist/languages/definitions/javascript.js.map +1 -1
  117. package/dist/languages/definitions/kotlin.d.ts.map +1 -1
  118. package/dist/languages/definitions/kotlin.js +49 -61
  119. package/dist/languages/definitions/kotlin.js.map +1 -1
  120. package/dist/languages/definitions/php.js +1 -1
  121. package/dist/languages/definitions/php.js.map +1 -1
  122. package/dist/languages/definitions/python.d.ts.map +1 -1
  123. package/dist/languages/definitions/python.js +85 -20
  124. package/dist/languages/definitions/python.js.map +1 -1
  125. package/dist/languages/definitions/ruby.d.ts.map +1 -1
  126. package/dist/languages/definitions/ruby.js +13 -11
  127. package/dist/languages/definitions/ruby.js.map +1 -1
  128. package/dist/languages/definitions/rust.d.ts.map +1 -1
  129. package/dist/languages/definitions/rust.js +22 -5
  130. package/dist/languages/definitions/rust.js.map +1 -1
  131. package/dist/languages/definitions/scss.d.ts.map +1 -1
  132. package/dist/languages/definitions/scss.js +21 -17
  133. package/dist/languages/definitions/scss.js.map +1 -1
  134. package/dist/languages/definitions/sql.js +1 -1
  135. package/dist/languages/definitions/sql.js.map +1 -1
  136. package/dist/languages/definitions/swift.d.ts.map +1 -1
  137. package/dist/languages/definitions/swift.js +66 -16
  138. package/dist/languages/definitions/swift.js.map +1 -1
  139. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  140. package/dist/languages/definitions/typescript.js +30 -9
  141. package/dist/languages/definitions/typescript.js.map +1 -1
  142. package/dist/languages/definitions/zig.d.ts.map +1 -1
  143. package/dist/languages/definitions/zig.js +26 -5
  144. package/dist/languages/definitions/zig.js.map +1 -1
  145. package/dist/languages/import-statement-parsers.d.ts +14 -1
  146. package/dist/languages/import-statement-parsers.d.ts.map +1 -1
  147. package/dist/languages/import-statement-parsers.js +473 -45
  148. package/dist/languages/import-statement-parsers.js.map +1 -1
  149. package/dist/languages/types.d.ts +11 -0
  150. package/dist/languages/types.d.ts.map +1 -1
  151. package/dist/languages.d.ts +1 -0
  152. package/dist/languages.d.ts.map +1 -1
  153. package/dist/languages.js +9 -2
  154. package/dist/languages.js.map +1 -1
  155. package/dist/native/backend-report-format.d.ts +4 -0
  156. package/dist/native/backend-report-format.d.ts.map +1 -0
  157. package/dist/native/backend-report-format.js +14 -0
  158. package/dist/native/backend-report-format.js.map +1 -0
  159. package/dist/native/contracts.d.ts +2 -0
  160. package/dist/native/contracts.d.ts.map +1 -1
  161. package/dist/util/comments.js +1 -1
  162. package/dist/util/comments.js.map +1 -1
  163. package/dist/util/member-access.d.ts +1 -1
  164. package/dist/util/member-access.d.ts.map +1 -1
  165. package/dist/util/member-access.js +5 -2
  166. package/dist/util/member-access.js.map +1 -1
  167. package/dist/util/project-files.js +1 -1
  168. package/dist/util/project-files.js.map +1 -1
  169. package/dist/util/resolution/rust.d.ts +8 -1
  170. package/dist/util/resolution/rust.d.ts.map +1 -1
  171. package/dist/util/resolution/rust.js +521 -7
  172. package/dist/util/resolution/rust.js.map +1 -1
  173. package/dist/util/resolution-candidates.d.ts +1 -1
  174. package/dist/util/resolution-candidates.d.ts.map +1 -1
  175. package/dist/util/resolution-candidates.js +11 -8
  176. package/dist/util/resolution-candidates.js.map +1 -1
  177. package/dist/util/resolution.d.ts +5 -0
  178. package/dist/util/resolution.d.ts.map +1 -1
  179. package/dist/util/resolution.js +18 -7
  180. package/dist/util/resolution.js.map +1 -1
  181. package/dist/util/rust-test-modules.d.ts.map +1 -1
  182. package/dist/util/rust-test-modules.js +2 -5
  183. package/dist/util/rust-test-modules.js.map +1 -1
  184. package/dist/util/specifiers.d.ts +8 -0
  185. package/dist/util/specifiers.d.ts.map +1 -1
  186. package/dist/util/specifiers.js +33 -7
  187. package/dist/util/specifiers.js.map +1 -1
  188. package/package.json +3 -3
@@ -2,17 +2,17 @@ import { registerLanguage } from "../registry.js";
2
2
  import { ECMASCRIPT_CONTROL_SPLIT_POINTS, ECMASCRIPT_CORE_FUNCTION_BLOCKS, ECMASCRIPT_MODULE_VAR_BLOCKS, } from "./js-family.js";
3
3
  const JS_OBJECT_METHOD_EXPORT_PATTERN = `
4
4
  ;; CJS: module.exports = { helper () {} }
5
- (expression_statement (assignment_expression
5
+ ((expression_statement (assignment_expression
6
6
  left: (member_expression object: (identifier) @mod property: (property_identifier) @prop)
7
7
  right: (object (pair key: (property_identifier) @cjs_export_name value: (function_declaration) @cjs_fn))))
8
- (#eq? @mod "module") (#eq? @prop "exports")
8
+ (#eq? @mod "module") (#eq? @prop "exports"))
9
9
  `;
10
10
  const JS_OBJECT_METHOD_EXPORT_NATIVE_PATTERN = `
11
11
  ;; CJS: module.exports = { helper () {} }
12
- (expression_statement (assignment_expression
12
+ ((expression_statement (assignment_expression
13
13
  left: (member_expression object: (identifier) @mod property: (property_identifier) @prop)
14
14
  right: (object (method_definition name: (property_identifier) @cjs_export_name) @cjs_fn)))
15
- (#eq? @mod "module") (#eq? @prop "exports")
15
+ (#eq? @mod "module") (#eq? @prop "exports"))
16
16
  `;
17
17
  export const JAVASCRIPT_DEF = {
18
18
  id: "js",
@@ -45,58 +45,63 @@ export const JAVASCRIPT_DEF = {
45
45
  (export_statement (export_clause (export_specifier name: (identifier) @src alias: (identifier) @alias)))
46
46
  (export_statement (export_clause (export_specifier name: (identifier) @src !alias)))
47
47
  (export_statement (string) @from)
48
- (expression_statement (assignment_expression
48
+ ;; CJS whole-module export: module.exports = function () {} / = () => {}
49
+ ((expression_statement (assignment_expression
50
+ left: (member_expression object: (identifier) @mod property: (property_identifier) @cjs_export_name)
51
+ right: [ (function) (arrow_function) ] @cjs_fn))
52
+ (#eq? @mod "module") (#eq? @cjs_export_name "exports"))
53
+ ((expression_statement (assignment_expression
49
54
  left: (member_expression object: (identifier) @mod property: (property_identifier) @prop)
50
55
  right: (object (shorthand_property_identifier) @cjs_shorthand)))
51
- (#eq? @mod "module") (#eq? @prop "exports")
56
+ (#eq? @mod "module") (#eq? @prop "exports"))
52
57
  ;; CJS spread export: module.exports = { ...base }
53
58
  ((expression_statement (assignment_expression
54
59
  left: (member_expression object: (identifier) @mod property: (property_identifier) @prop)
55
60
  right: (object (spread_element (identifier) @cjs_spread))) @stmt)
56
61
  (#eq? @mod "module") (#eq? @prop "exports"))
57
- (expression_statement (assignment_expression
62
+ ((expression_statement (assignment_expression
58
63
  left: (member_expression object: (identifier) @mod property: (property_identifier) @prop)
59
64
  right: (object (pair key: (property_identifier) @cjs_export_name value: (identifier) @cjs_local))))
60
- (#eq? @mod "module") (#eq? @prop "exports")
61
- (expression_statement (assignment_expression
65
+ (#eq? @mod "module") (#eq? @prop "exports"))
66
+ ((expression_statement (assignment_expression
62
67
  left: (member_expression object: (member_expression object: (identifier) @mod property: (property_identifier) @prop) property: (property_identifier) @cjs_export_name)
63
68
  right: (identifier) @cjs_local))
64
- (#eq? @mod "module") (#eq? @prop "exports")
65
- (expression_statement (assignment_expression
69
+ (#eq? @mod "module") (#eq? @prop "exports"))
70
+ ((expression_statement (assignment_expression
66
71
  left: (member_expression object: (identifier) @exp property: (property_identifier) @cjs_export_name)
67
72
  right: (identifier) @cjs_local))
68
- (#eq? @exp "exports")
73
+ (#eq? @exp "exports"))
69
74
  ;; CJS function/arrow direct exports
70
- (expression_statement (assignment_expression
75
+ ((expression_statement (assignment_expression
71
76
  left: (member_expression object: (member_expression object: (identifier) @mod property: (property_identifier) @prop) property: (property_identifier) @cjs_export_name)
72
77
  right: (function) @cjs_fn))
73
- (#eq? @mod "module") (#eq? @prop "exports")
74
- (expression_statement (assignment_expression
78
+ (#eq? @mod "module") (#eq? @prop "exports"))
79
+ ((expression_statement (assignment_expression
75
80
  left: (member_expression object: (member_expression object: (identifier) @mod property: (property_identifier) @prop) property: (property_identifier) @cjs_export_name)
76
81
  right: (arrow_function) @cjs_fn))
77
- (#eq? @mod "module") (#eq? @prop "exports")
78
- (expression_statement (assignment_expression
82
+ (#eq? @mod "module") (#eq? @prop "exports"))
83
+ ((expression_statement (assignment_expression
79
84
  left: (member_expression object: (identifier) @exp property: (property_identifier) @cjs_export_name)
80
85
  right: (function) @cjs_fn))
81
- (#eq? @exp "exports")
82
- (expression_statement (assignment_expression
86
+ (#eq? @exp "exports"))
87
+ ((expression_statement (assignment_expression
83
88
  left: (member_expression object: (identifier) @exp property: (property_identifier) @cjs_export_name)
84
89
  right: (arrow_function) @cjs_fn))
85
- (#eq? @exp "exports")
90
+ (#eq? @exp "exports"))
86
91
  ;; CJS object export with function value
87
- (expression_statement (assignment_expression
92
+ ((expression_statement (assignment_expression
88
93
  left: (member_expression object: (identifier) @mod property: (property_identifier) @prop)
89
94
  right: (object (pair key: (property_identifier) @cjs_export_name value: (function) @cjs_fn))))
90
- (#eq? @mod "module") (#eq? @prop "exports")
91
- (expression_statement (assignment_expression
95
+ (#eq? @mod "module") (#eq? @prop "exports"))
96
+ ((expression_statement (assignment_expression
92
97
  left: (member_expression object: (identifier) @mod property: (property_identifier) @prop)
93
98
  right: (object (pair key: (property_identifier) @cjs_export_name value: (arrow_function) @cjs_fn))))
94
- (#eq? @mod "module") (#eq? @prop "exports")
99
+ (#eq? @mod "module") (#eq? @prop "exports"))
95
100
  ;; CJS: module.exports = { helper () {} }
96
- (expression_statement (assignment_expression
101
+ ((expression_statement (assignment_expression
97
102
  left: (member_expression object: (identifier) @mod property: (property_identifier) @prop)
98
103
  right: (object (pair key: (property_identifier) @cjs_export_name value: (function_declaration) @cjs_fn))))
99
- (#eq? @mod "module") (#eq? @prop "exports")
104
+ (#eq? @mod "module") (#eq? @prop "exports"))
100
105
  `,
101
106
  locals: `
102
107
  (function_declaration name: (identifier) @name)
@@ -110,10 +115,12 @@ export const JAVASCRIPT_DEF = {
110
115
  (import_statement (string) @from) @stmt
111
116
  (import_statement (import_clause (identifier) @def) (string) @from) @stmt
112
117
  (import_statement (import_clause (named_imports (import_specifier name: (identifier) @iname alias: (identifier) @alias))) (string) @from) @stmt
113
- (import_statement (import_clause (named_imports (import_specifier name: (identifier) @iname))) (string) @from) @stmt
118
+ (import_statement (import_clause (named_imports (import_specifier name: (identifier) @iname !alias))) (string) @from) @stmt
114
119
  (import_statement (import_clause (namespace_import (identifier) @ns)) (string) @from) @stmt
115
- (lexical_declaration (variable_declarator name:(identifier) @def value: (call_expression (identifier) @req arguments: (arguments (string) @from)))) (#eq? @req "require")
116
- (lexical_declaration (variable_declarator (object_pattern) @pattern value: (call_expression (identifier) @req arguments: (arguments (string) @from)))) (#eq? @req "require")
120
+ ((lexical_declaration (variable_declarator name:(identifier) @def value: (call_expression (identifier) @req arguments: (arguments (string) @from))))
121
+ (#eq? @req "require"))
122
+ ((lexical_declaration (variable_declarator (object_pattern) @pattern value: (call_expression (identifier) @req arguments: (arguments (string) @from))))
123
+ (#eq? @req "require"))
117
124
  `,
118
125
  },
119
126
  nodeTypes: {
@@ -130,6 +137,8 @@ export const JAVASCRIPT_DEF = {
130
137
  return "function";
131
138
  if (t === "method_definition")
132
139
  return "function";
140
+ if (t === "function" || t === "function_expression")
141
+ return "function";
133
142
  if (t === "class_declaration")
134
143
  return "class";
135
144
  return "variable";
@@ -148,9 +157,18 @@ export const JAVASCRIPT_DEF = {
148
157
  // Method names in classes: needed so that editing a method name is
149
158
  // classified as a definition change, not an unrecognised node.
150
159
  "method_definition",
160
+ // A named function expression binds its own name; `$scope.x = function x() {}` and
161
+ // `const f = function inner() {}` are the common shapes.
162
+ "function",
163
+ "function_expression",
151
164
  ].includes(p));
152
165
  },
153
- createsBlockScope: (n) => n.type === "program" || n.type === "block" || n.type === "class_body",
166
+ // Scope construction has no structural handling for a function expression's own name.
167
+ scopeDeclarationNames: (node) => {
168
+ const parent = node.parent?.type;
169
+ return parent === "function" || parent === "function_expression";
170
+ },
171
+ createsBlockScope: (n) => n.type === "program" || n.type === "block" || n.type === "class_body" || n.type === "class_static_block",
154
172
  createsFunctionScope: (n) => n.type === "function_declaration" ||
155
173
  n.type === "generator_function_declaration" ||
156
174
  n.type === "function" ||
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/languages/definitions/javascript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/languages/definitions/javascript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/kotlin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAuBtD,eAAO,MAAM,UAAU,EAAE,kBAqHxB,CAAC"}
1
+ {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/kotlin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAO,MAAM,UAAU,EAAE,kBA0HxB,CAAC"}
@@ -1,52 +1,33 @@
1
1
  import { registerLanguage } from "../registry.js";
2
- function normalizeKotlinNativeQuery(kind, query) {
3
- if (kind === "imports") {
4
- return `
5
- (import (qualified_identifier) @mod) @stmt
6
- `;
7
- }
8
- if (kind === "importBindings") {
9
- return `
10
- (import (qualified_identifier) @from (identifier) @alias) @stmt
11
- (import (qualified_identifier) @from "*" @wild) @stmt
12
- (import (qualified_identifier) @from) @stmt
13
- `;
14
- }
15
- const normalized = query
16
- .replace(/\bimport_header\b/g, "import")
17
- .replace(/\bsimple_identifier\b/g, "identifier")
18
- .replace(/\btype_identifier\b/g, "identifier");
19
- return normalized;
20
- }
21
2
  export const KOTLIN_DEF = {
22
3
  id: "kotlin",
23
- extensions: [".kt", ".kts"],
4
+ extensions: [".kt", ".kts", ".ktm"],
24
5
  usesQueryDrivenLocals: true,
25
6
  structure: {
26
7
  blocks: [
27
8
  {
28
9
  type: "class_declaration",
29
- nameQuery: "(type_identifier) @chunk.name",
10
+ nameQuery: "(identifier) @chunk.name",
30
11
  captureId: "class",
31
12
  },
32
13
  {
33
14
  type: "object_declaration",
34
- nameQuery: "(type_identifier) @chunk.name",
15
+ nameQuery: "(identifier) @chunk.name",
35
16
  captureId: "object",
36
17
  },
37
18
  {
38
19
  type: "function_declaration",
39
- nameQuery: "(simple_identifier) @chunk.name",
20
+ nameQuery: "(identifier) @chunk.name",
40
21
  captureId: "function",
41
22
  },
42
23
  {
43
24
  type: "property_declaration",
44
- nameQuery: "(variable_declaration (simple_identifier) @chunk.name)",
25
+ nameQuery: "(variable_declaration (identifier) @chunk.name)",
45
26
  captureId: "property",
46
27
  },
47
28
  {
48
29
  type: "type_alias",
49
- nameQuery: "(type_identifier) @chunk.name",
30
+ nameQuery: "(identifier) @chunk.name",
50
31
  captureId: "type",
51
32
  },
52
33
  ],
@@ -64,36 +45,47 @@ export const KOTLIN_DEF = {
64
45
  },
65
46
  graph: {
66
47
  imports: `
67
- (import_header (identifier) @mod) @stmt
48
+ (import (qualified_identifier) @mod) @stmt
68
49
  `,
69
50
  exports: `
70
- (class_declaration (type_identifier) @name)
71
- (object_declaration (type_identifier) @name)
72
- (function_declaration (simple_identifier) @name)
73
- (property_declaration (variable_declaration (simple_identifier) @name))
74
- (type_alias (type_identifier) @name)
75
- (enum_entry (simple_identifier) @name)
51
+ (source_file
52
+ [
53
+ (class_declaration name: (identifier) @name)
54
+ (object_declaration name: (identifier) @name)
55
+ (function_declaration name: (identifier) @name)
56
+ (property_declaration (variable_declaration (identifier) @name))
57
+ (type_alias type: (identifier) @name)
58
+ ])
59
+ (class_body
60
+ [
61
+ (class_declaration name: (identifier) @name)
62
+ (object_declaration name: (identifier) @name)
63
+ (function_declaration name: (identifier) @name)
64
+ (property_declaration (variable_declaration (identifier) @name))
65
+ (type_alias type: (identifier) @name)
66
+ ])
67
+ (enum_class_body (enum_entry (identifier) @name))
76
68
  `,
77
69
  locals: `
78
- (class_declaration (type_identifier) @name)
79
- (object_declaration (type_identifier) @name)
80
- (function_declaration (simple_identifier) @name)
81
- (property_declaration (variable_declaration (simple_identifier) @name))
82
- (type_alias (type_identifier) @name)
83
- (enum_entry (simple_identifier) @name)
84
- (parameter (simple_identifier) @name)
85
- (class_parameter (simple_identifier) @name)
86
- (type_parameter (type_identifier) @name)
70
+ (class_declaration name: (identifier) @name)
71
+ (object_declaration name: (identifier) @name)
72
+ (function_declaration name: (identifier) @name)
73
+ (property_declaration (variable_declaration (identifier) @name))
74
+ (type_alias type: (identifier) @name)
75
+ (enum_entry (identifier) @name)
76
+ (parameter (identifier) @name)
77
+ (class_parameter (identifier) @name)
78
+ (type_parameter (identifier) @name)
87
79
  `,
88
80
  importBindings: `
89
- (import_header (identifier) @from (import_alias (type_identifier) @alias)) @stmt
90
- (import_header (identifier) @from (wildcard_import) @wild) @stmt
91
- (import_header (identifier) @from) @stmt
81
+ (import (qualified_identifier) @from (identifier) @alias) @stmt
82
+ (import (qualified_identifier) @from ("*") @wild) @stmt
83
+ (import (qualified_identifier) @from) @stmt
92
84
  `,
93
85
  },
94
86
  nodeTypes: {
95
- identifier: ["identifier", "interpolated_identifier", "simple_identifier", "type_identifier"],
96
- propertyIdentifier: ["simple_identifier", "type_identifier"],
87
+ identifier: ["identifier"],
88
+ propertyIdentifier: ["identifier"],
97
89
  memberExpression: "navigation_expression",
98
90
  },
99
91
  classifyDefinition: (node) => {
@@ -112,23 +104,23 @@ export const KOTLIN_DEF = {
112
104
  const parent = node.parent;
113
105
  if (!parent)
114
106
  return false;
115
- if (parent.type === "class_declaration" && node.type === "type_identifier")
107
+ if (parent.type === "class_declaration" && node.type === "identifier")
116
108
  return true;
117
- if (parent.type === "object_declaration" && node.type === "type_identifier")
109
+ if (parent.type === "object_declaration" && node.type === "identifier")
118
110
  return true;
119
- if (parent.type === "function_declaration" && (node.type === "simple_identifier" || node.type === "identifier"))
111
+ if (parent.type === "function_declaration" && node.type === "identifier")
120
112
  return true;
121
- if (parent.type === "type_alias" && node.type === "type_identifier")
113
+ if (parent.type === "type_alias" && node.type === "identifier")
122
114
  return true;
123
- if (parent.type === "variable_declaration" && node.type === "simple_identifier")
115
+ if (parent.type === "variable_declaration" && node.type === "identifier")
124
116
  return true;
125
- if (parent.type === "parameter" && (node.type === "simple_identifier" || node.type === "identifier"))
117
+ if (parent.type === "parameter" && node.type === "identifier")
126
118
  return true;
127
- if (parent.type === "class_parameter" && (node.type === "simple_identifier" || node.type === "identifier"))
119
+ if (parent.type === "class_parameter" && node.type === "identifier")
128
120
  return true;
129
- if (parent.type === "enum_entry" && (node.type === "simple_identifier" || node.type === "identifier"))
121
+ if (parent.type === "enum_entry" && node.type === "identifier")
130
122
  return true;
131
- if (parent.type === "type_parameter" && node.type === "type_identifier")
123
+ if (parent.type === "type_parameter" && node.type === "identifier")
132
124
  return true;
133
125
  return false;
134
126
  },
@@ -136,15 +128,11 @@ export const KOTLIN_DEF = {
136
128
  createsFunctionScope: (node) => node.type === "function_declaration" || node.type === "anonymous_function" || node.type === "lambda_literal",
137
129
  createsBlockScope: (node) => node.type === "function_body" ||
138
130
  node.type === "class_body" ||
139
- node.type === "control_structure_body" ||
131
+ node.type === "block" ||
140
132
  node.type === "catch_block" ||
141
133
  node.type === "finally_block",
142
134
  supportsCrossModuleSymbols: true,
143
- native: {
144
- normalizeQuery: normalizeKotlinNativeQuery,
145
- authoritativeKinds: ["imports", "importBindings", "exports", "locals"],
146
- notes: ["normalizes kotlin import and identifier node names for the native grammar"],
147
- },
135
+ exportScopeBlockers: ["function_body", "lambda_literal", "anonymous_function"],
148
136
  };
149
137
  registerLanguage(KOTLIN_DEF);
150
138
  //# sourceMappingURL=kotlin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../../src/languages/definitions/kotlin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../../src/languages/definitions/kotlin.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { registerLanguage } from "../registry.js";
2
2
  export const PHP_DEF = {
3
3
  id: "php",
4
- extensions: [".php"],
4
+ extensions: [".php", ".phtml", ".php4", ".php8"],
5
5
  usesQueryDrivenLocals: true,
6
6
  structure: {
7
7
  blocks: [
@@ -1 +1 @@
1
- {"version":3,"file":"php.js","sourceRoot":"","sources":["../../../src/languages/definitions/php.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"php.js","sourceRoot":"","sources":["../../../src/languages/definitions/php.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,UAAU,EAAE,kBAuIxB,CAAC"}
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,aAAa,CAAC;AAuBtE,eAAO,MAAM,UAAU,EAAE,kBAmLxB,CAAC"}
@@ -1,8 +1,25 @@
1
1
  import { registerLanguage } from "../registry.js";
2
2
  import { hasNonAsciiCodePoint } from "../../util/identifiers.js";
3
+ function isTypeAliasLeftName(node) {
4
+ const parent = node.parent;
5
+ if (!parent)
6
+ return false;
7
+ if (parent.type === "type") {
8
+ const stmt = parent.parent;
9
+ return stmt?.type === "type_alias_statement" && stmt.childForFieldName("left")?.id === parent.id;
10
+ }
11
+ if (parent.type === "generic_type") {
12
+ const typeNode = parent.parent;
13
+ const stmt = typeNode?.parent;
14
+ return (typeNode?.type === "type" &&
15
+ stmt?.type === "type_alias_statement" &&
16
+ stmt.childForFieldName("left")?.id === typeNode.id);
17
+ }
18
+ return false;
19
+ }
3
20
  export const PYTHON_DEF = {
4
21
  id: "python",
5
- extensions: [".py", ".pyi"],
22
+ extensions: [".py", ".pyi", ".pyw"],
6
23
  usesQueryDrivenLocals: true,
7
24
  structure: {
8
25
  blocks: [
@@ -26,9 +43,14 @@ export const PYTHON_DEF = {
26
43
  // Top level assignments
27
44
  {
28
45
  type: "assignment",
29
- nameQuery: "left: (identifier) @chunk.name",
46
+ nameQuery: "left: [(identifier) @chunk.name (pattern_list (identifier) @chunk.name) (tuple_pattern (identifier) @chunk.name)]",
30
47
  captureId: "module_var",
31
48
  },
49
+ {
50
+ type: "type_alias_statement",
51
+ nameQuery: "left: (type [(identifier) @chunk.name (generic_type (identifier) @chunk.name)])",
52
+ captureId: "type",
53
+ },
32
54
  // Imports
33
55
  { type: "import_statement", captureId: "imports" },
34
56
  { type: "import_from_statement", captureId: "imports" },
@@ -55,35 +77,60 @@ export const PYTHON_DEF = {
55
77
  // This is a known limitation - such patterns are rare in practice.
56
78
  exports: `
57
79
  ;; __all__ = ["a", "b"] - simple list assignment
58
- (assignment left: (identifier) @left right: (list (string)+ @all_item)) @stmt
80
+ (module (expression_statement (assignment left: (identifier) @left right: (list (string) @all_item)) @stmt))
59
81
  ;; __all__ = ("a", "b") - tuple assignment
60
- (assignment left: (identifier) @left right: (tuple (string)+ @all_item)) @stmt
82
+ (module (expression_statement (assignment left: (identifier) @left right: (tuple (string) @all_item)) @stmt))
61
83
  ;; __all__ = ["a"] + ["b"] - concatenation (captures strings in both sides)
62
- (assignment left: (identifier) @left right: (binary_operator (list (string)+ @all_item))) @stmt
63
- (assignment left: (identifier) @left right: (binary_operator right: (list (string)+ @all_item))) @stmt
84
+ (module (expression_statement (assignment left: (identifier) @left right: (binary_operator (list (string) @all_item))) @stmt))
85
+ (module (expression_statement (assignment left: (identifier) @left right: (binary_operator right: (list (string) @all_item))) @stmt))
64
86
  ;; __all__.extend(["a"]) - extend pattern
65
- (expression_statement (call function: (attribute object: (identifier) @left attribute: (identifier) @method) arguments: (argument_list (list (string)+ @all_item)))) @stmt
87
+ (module (expression_statement (call function: (attribute object: (identifier) @left attribute: (identifier) @method) arguments: (argument_list (list (string) @all_item)))) @stmt)
66
88
  ;; __all__.append("a") - append pattern
67
- (expression_statement (call function: (attribute object: (identifier) @left attribute: (identifier) @method) arguments: (argument_list (string) @all_item))) @stmt
89
+ (module (expression_statement (call function: (attribute object: (identifier) @left attribute: (identifier) @method) arguments: (argument_list (string) @all_item))) @stmt)
68
90
  ;; __all__ += ["a"] - augmented assignment
69
- (augmented_assignment left: (identifier) @left right: (list (string)+ @all_item)) @stmt
70
- (function_definition name: (identifier) @name)
71
- (class_definition name: (identifier) @name)
72
- (assignment left: (identifier) @name)
91
+ (module (expression_statement (augmented_assignment left: (identifier) @left right: (list (string) @all_item)) @stmt))
92
+ ;; An empty static list or tuple still defines an explicit export set.
93
+ (module (expression_statement (assignment left: (identifier) @left right: [(list) (tuple)]) @stmt))
94
+ (module (function_definition name: (identifier) @name))
95
+ (module (class_definition name: (identifier) @name))
96
+ (module (decorated_definition (function_definition name: (identifier) @name)))
97
+ (module (decorated_definition (class_definition name: (identifier) @name)))
98
+ (module (expression_statement (assignment left: (identifier) @name)))
99
+ (module (expression_statement (assignment left: [(pattern_list (identifier) @name) (tuple_pattern (identifier) @name)])))
100
+ (module (expression_statement (named_expression name: (identifier) @name)))
101
+ (module (type_alias_statement left: (type [(identifier) @name (generic_type (identifier) @name)])))
102
+ (class_definition body: (block (function_definition name: (identifier) @name)))
103
+ (class_definition body: (block (class_definition name: (identifier) @name)))
104
+ (class_definition body: (block (decorated_definition (function_definition name: (identifier) @name))))
105
+ (class_definition body: (block (decorated_definition (class_definition name: (identifier) @name))))
106
+ (class_definition body: (block (expression_statement (assignment left: (identifier) @name))))
107
+ (class_definition body: (block (expression_statement (assignment left: [(pattern_list (identifier) @name) (tuple_pattern (identifier) @name)]))))
108
+ (class_definition body: (block (expression_statement (named_expression name: (identifier) @name))))
109
+ (class_definition body: (block (type_alias_statement left: (type [(identifier) @name (generic_type (identifier) @name)]))))
73
110
  `,
74
111
  locals: `
75
112
  (function_definition name: (identifier) @name)
76
113
  (class_definition name: (identifier) @name)
77
114
  (assignment left: (identifier) @name)
78
- ;; \`case Point(x=x, y=y):\` binds the right-hand identifier of a keyword
79
- ;; pattern as a new local, distinct from the left-hand attribute name it
80
- ;; matches against.
115
+ (assignment left: [(pattern_list (identifier) @name) (tuple_pattern (identifier) @name)])
116
+ (named_expression name: (identifier) @name)
117
+ (type_alias_statement left: (type [(identifier) @name (generic_type (identifier) @name)]))
118
+ ;; \`case Point(x=px, y=py):\` is case_pattern -> class_pattern ->
119
+ ;; case_pattern -> keyword_pattern. The binding is the dotted_name child;
120
+ ;; the left-hand attribute is a bare identifier and must not be captured.
121
+ ;; Anchoring to the first and last (named) child restricts the match to a
122
+ ;; single-segment dotted_name, so a qualified value like \`x=module.CONST\`
123
+ ;; does not create locals for \`module\` or \`CONST\`.
124
+ (keyword_pattern (dotted_name . (identifier) @name .))
81
125
  ;; A bare identifier in a case pattern is represented as a single-name
82
126
  ;; dotted_name inside a case_pattern. Nested tuple/list/or patterns
83
- ;; preserve this shape for each capture.
84
- (case_pattern (dotted_name (identifier) @name))
127
+ ;; preserve this shape for each capture. The same anchor keeps a qualified
128
+ ;; value pattern such as \`case module.CONST:\` from creating locals.
129
+ (case_pattern (dotted_name . (identifier) @name .))
85
130
  ;; \`case value as alias:\` binds the direct identifier child as its alias.
86
- (as_pattern (identifier) @name)
131
+ ;; \`except E as err\` / \`with ctx as handle\` put the binding in alias.
132
+ (as_pattern !alias (identifier) @name)
133
+ (as_pattern alias: (as_pattern_target (identifier) @name))
87
134
  ;; \`case [head, *tail]:\` binds the capture after the splat.
88
135
  (splat_pattern (identifier) @name)
89
136
  `,
@@ -104,14 +151,22 @@ export const PYTHON_DEF = {
104
151
  return "function";
105
152
  if (t === "class_definition")
106
153
  return "class";
154
+ if (isTypeAliasLeftName(n))
155
+ return "type";
107
156
  return "variable";
108
157
  },
109
158
  scopeDeclarationNames: (node) => {
110
159
  const parentType = node.parent?.type;
111
160
  return (parentType === "case_pattern" ||
112
161
  parentType === "as_pattern" ||
162
+ parentType === "as_pattern_target" ||
113
163
  parentType === "splat_pattern" ||
114
- parentType === "dotted_name");
164
+ parentType === "dotted_name" ||
165
+ parentType === "named_expression" ||
166
+ parentType === "pattern_list" ||
167
+ parentType === "tuple_pattern" ||
168
+ parentType === "type" ||
169
+ parentType === "generic_type");
115
170
  },
116
171
  isDeclarationName: (node) => {
117
172
  const parent = node.parent;
@@ -121,16 +176,26 @@ export const PYTHON_DEF = {
121
176
  parent.namedChildren.length === 1 &&
122
177
  (parent.parent?.type === "keyword_pattern" || parent.parent?.type === "case_pattern"))
123
178
  return true;
124
- if (parent?.type === "as_pattern")
179
+ if (t === "as_pattern_target")
125
180
  return true;
181
+ if (t === "as_pattern")
182
+ return parent?.childForFieldName("alias") == null;
126
183
  if (t === "splat_pattern")
127
184
  return true;
185
+ if (t === "named_expression")
186
+ return parent?.childForFieldName("name")?.id === node.id;
187
+ if (t === "pattern_list" || t === "tuple_pattern")
188
+ return true;
189
+ if (isTypeAliasLeftName(node))
190
+ return true;
128
191
  return !!t && ["function_definition", "class_definition", "assignment", "aliased_import"].includes(t);
129
192
  },
130
193
  createsBlockScope: (n) => n.type === "module" || n.type === "block",
131
194
  createsFunctionScope: (n) => n.type === "function_definition" || n.type === "lambda",
132
195
  membersAreImplicitlyInScope: false,
133
196
  supportsCrossModuleSymbols: true,
197
+ // A function body and a class body are both `block`, so only the function form blocks exports.
198
+ exportScopeBlockers: ["function_definition>block"],
134
199
  normalizeIdentifier: (name) => (hasNonAsciiCodePoint(name) ? name.normalize("NFKC") : name),
135
200
  };
136
201
  registerLanguage(PYTHON_DEF);
@@ -1 +1 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/languages/definitions/python.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/languages/definitions/python.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/ruby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,eAAO,MAAM,QAAQ,EAAE,kBAkFtB,CAAC"}
1
+ {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/ruby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,eAAO,MAAM,QAAQ,EAAE,kBAoFtB,CAAC"}