@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.
- package/dist/bin/cli.js +6602 -4453
- package/dist/bin/query-index-worker.js +1302 -753
- package/dist/document-links/asciidoc.d.ts.map +1 -1
- package/dist/document-links/asciidoc.js +3 -4
- package/dist/document-links/asciidoc.js.map +1 -1
- package/dist/document-links/html-forms.d.ts +39 -0
- package/dist/document-links/html-forms.d.ts.map +1 -0
- package/dist/document-links/html-forms.js +94 -0
- package/dist/document-links/html-forms.js.map +1 -0
- package/dist/document-links/html.d.ts +8 -0
- package/dist/document-links/html.d.ts.map +1 -1
- package/dist/document-links/html.js +30 -15
- package/dist/document-links/html.js.map +1 -1
- package/dist/document-links/markdown.d.ts.map +1 -1
- package/dist/document-links/markdown.js +6 -7
- package/dist/document-links/markdown.js.map +1 -1
- package/dist/document-links/rst.d.ts.map +1 -1
- package/dist/document-links/rst.js +6 -0
- package/dist/document-links/rst.js.map +1 -1
- package/dist/document-links/sfc.d.ts.map +1 -1
- package/dist/document-links/sfc.js +4 -4
- package/dist/document-links/sfc.js.map +1 -1
- package/dist/graphs/angularjs.d.ts.map +1 -1
- package/dist/graphs/angularjs.js +9 -1
- package/dist/graphs/angularjs.js.map +1 -1
- package/dist/graphs/edge-resolution.d.ts.map +1 -1
- package/dist/graphs/edge-resolution.js +8 -3
- package/dist/graphs/edge-resolution.js.map +1 -1
- package/dist/graphs/specifiers.d.ts.map +1 -1
- package/dist/graphs/specifiers.js +62 -104
- package/dist/graphs/specifiers.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.js +118 -86
- package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +27 -0
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +509 -42
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/impact/call-compatibility/providers/index.d.ts +15 -1
- package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.js +21 -20
- package/dist/impact/call-compatibility/providers/index.js.map +1 -1
- package/dist/impact/call-compatibility/providers/profiles.d.ts +80 -0
- package/dist/impact/call-compatibility/providers/profiles.d.ts.map +1 -0
- package/dist/impact/call-compatibility/providers/profiles.js +164 -0
- package/dist/impact/call-compatibility/providers/profiles.js.map +1 -0
- package/dist/impact/call-compatibility.d.ts.map +1 -1
- package/dist/impact/call-compatibility.js +73 -108
- package/dist/impact/call-compatibility.js.map +1 -1
- package/dist/impact/member-resolution-coverage.d.ts.map +1 -1
- package/dist/impact/member-resolution-coverage.js +2 -2
- package/dist/impact/member-resolution-coverage.js.map +1 -1
- package/dist/indexer/build-cache/manifest.d.ts +7 -0
- package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
- package/dist/indexer/build-cache/manifest.js +32 -1
- package/dist/indexer/build-cache/manifest.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +16 -2
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +17 -3
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.js +1 -0
- package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
- package/dist/indexer/build-index.d.ts.map +1 -1
- package/dist/indexer/build-index.js +80 -2
- package/dist/indexer/build-index.js.map +1 -1
- package/dist/indexer/build-manifest.d.ts +1 -0
- package/dist/indexer/build-manifest.d.ts.map +1 -1
- package/dist/indexer/build-manifest.js +18 -0
- package/dist/indexer/build-manifest.js.map +1 -1
- package/dist/indexer/build-workers.js +1 -1
- package/dist/indexer/build-workers.js.map +1 -1
- package/dist/indexer/declaration-visibility.d.ts +43 -0
- package/dist/indexer/declaration-visibility.d.ts.map +1 -0
- package/dist/indexer/declaration-visibility.js +202 -0
- package/dist/indexer/declaration-visibility.js.map +1 -0
- package/dist/indexer/imports/binding-ranges.d.ts +2 -2
- package/dist/indexer/imports/binding-ranges.d.ts.map +1 -1
- package/dist/indexer/imports/binding-ranges.js +2 -123
- package/dist/indexer/imports/binding-ranges.js.map +1 -1
- package/dist/indexer/imports/import-binding-tables.d.ts +64 -0
- package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -0
- package/dist/indexer/imports/import-binding-tables.js +419 -0
- package/dist/indexer/imports/import-binding-tables.js.map +1 -0
- package/dist/indexer/imports/js-text-imports.d.ts.map +1 -1
- package/dist/indexer/imports/js-text-imports.js +5 -2
- package/dist/indexer/imports/js-text-imports.js.map +1 -1
- package/dist/indexer/imports/language-specific.d.ts +3 -22
- package/dist/indexer/imports/language-specific.d.ts.map +1 -1
- package/dist/indexer/imports/language-specific.js +54 -573
- package/dist/indexer/imports/language-specific.js.map +1 -1
- package/dist/indexer/imports/native-captures.d.ts.map +1 -1
- package/dist/indexer/imports/native-captures.js +23 -32
- package/dist/indexer/imports/native-captures.js.map +1 -1
- package/dist/indexer/imports/text-import-extractors.d.ts +37 -0
- package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -0
- package/dist/indexer/imports/text-import-extractors.js +358 -0
- package/dist/indexer/imports/text-import-extractors.js.map +1 -0
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +2 -1
- package/dist/indexer/imports.js.map +1 -1
- package/dist/indexer/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +23 -27
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/navigation-goto.d.ts +1 -7
- package/dist/indexer/navigation-goto.d.ts.map +1 -1
- package/dist/indexer/navigation-goto.js +181 -381
- package/dist/indexer/navigation-goto.js.map +1 -1
- package/dist/indexer/navigation-resolve.d.ts.map +1 -1
- package/dist/indexer/navigation-resolve.js +20 -1
- package/dist/indexer/navigation-resolve.js.map +1 -1
- package/dist/indexer/navigation.d.ts.map +1 -1
- package/dist/indexer/navigation.js +39 -7
- package/dist/indexer/navigation.js.map +1 -1
- package/dist/indexer/parse-context.js +2 -2
- package/dist/indexer/parse-context.js.map +1 -1
- package/dist/indexer/scope-nodes.d.ts +108 -0
- package/dist/indexer/scope-nodes.d.ts.map +1 -0
- package/dist/indexer/scope-nodes.js +238 -0
- package/dist/indexer/scope-nodes.js.map +1 -0
- package/dist/indexer/scope.d.ts.map +1 -1
- package/dist/indexer/scope.js +70 -130
- package/dist/indexer/scope.js.map +1 -1
- package/dist/indexer/types.d.ts +7 -0
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.d.ts +18 -4
- package/dist/languages/definitions/c-family.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.js +51 -13
- package/dist/languages/definitions/c-family.js.map +1 -1
- package/dist/languages/definitions/c.d.ts.map +1 -1
- package/dist/languages/definitions/c.js +7 -43
- package/dist/languages/definitions/c.js.map +1 -1
- package/dist/languages/definitions/cpp.d.ts.map +1 -1
- package/dist/languages/definitions/cpp.js +15 -61
- package/dist/languages/definitions/cpp.js.map +1 -1
- package/dist/languages/definitions/csharp.d.ts.map +1 -1
- package/dist/languages/definitions/csharp.js +46 -52
- package/dist/languages/definitions/csharp.js.map +1 -1
- package/dist/languages/definitions/css-like.d.ts.map +1 -1
- package/dist/languages/definitions/css-like.js +13 -10
- package/dist/languages/definitions/css-like.js.map +1 -1
- package/dist/languages/definitions/go.d.ts.map +1 -1
- package/dist/languages/definitions/go.js +29 -42
- package/dist/languages/definitions/go.js.map +1 -1
- package/dist/languages/definitions/html.d.ts.map +1 -1
- package/dist/languages/definitions/html.js +15 -14
- package/dist/languages/definitions/html.js.map +1 -1
- package/dist/languages/definitions/java.d.ts.map +1 -1
- package/dist/languages/definitions/java.js +42 -48
- package/dist/languages/definitions/java.js.map +1 -1
- package/dist/languages/definitions/javascript.d.ts.map +1 -1
- package/dist/languages/definitions/javascript.js +26 -54
- package/dist/languages/definitions/javascript.js.map +1 -1
- package/dist/languages/definitions/js-family.d.ts +15 -1
- package/dist/languages/definitions/js-family.d.ts.map +1 -1
- package/dist/languages/definitions/js-family.js +51 -0
- package/dist/languages/definitions/js-family.js.map +1 -1
- package/dist/languages/definitions/kotlin.d.ts.map +1 -1
- package/dist/languages/definitions/kotlin.js +26 -43
- package/dist/languages/definitions/kotlin.js.map +1 -1
- package/dist/languages/definitions/php.d.ts.map +1 -1
- package/dist/languages/definitions/php.js +50 -60
- package/dist/languages/definitions/php.js.map +1 -1
- package/dist/languages/definitions/python.d.ts.map +1 -1
- package/dist/languages/definitions/python.js +23 -14
- package/dist/languages/definitions/python.js.map +1 -1
- package/dist/languages/definitions/ruby.d.ts.map +1 -1
- package/dist/languages/definitions/ruby.js +14 -17
- package/dist/languages/definitions/ruby.js.map +1 -1
- package/dist/languages/definitions/rust.d.ts.map +1 -1
- package/dist/languages/definitions/rust.js +30 -52
- package/dist/languages/definitions/rust.js.map +1 -1
- package/dist/languages/definitions/scss.d.ts.map +1 -1
- package/dist/languages/definitions/scss.js +33 -49
- package/dist/languages/definitions/scss.js.map +1 -1
- package/dist/languages/definitions/sfc-graph.d.ts +4 -0
- package/dist/languages/definitions/sfc-graph.d.ts.map +1 -0
- package/dist/languages/definitions/sfc-graph.js +16 -0
- package/dist/languages/definitions/sfc-graph.js.map +1 -0
- package/dist/languages/definitions/shared.d.ts +33 -0
- package/dist/languages/definitions/shared.d.ts.map +1 -0
- package/dist/languages/definitions/shared.js +63 -0
- package/dist/languages/definitions/shared.js.map +1 -0
- package/dist/languages/definitions/sql.d.ts.map +1 -1
- package/dist/languages/definitions/sql.js +1 -0
- package/dist/languages/definitions/sql.js.map +1 -1
- package/dist/languages/definitions/svelte.d.ts.map +1 -1
- package/dist/languages/definitions/svelte.js +2 -10
- package/dist/languages/definitions/svelte.js.map +1 -1
- package/dist/languages/definitions/swift.d.ts.map +1 -1
- package/dist/languages/definitions/swift.js +37 -31
- package/dist/languages/definitions/swift.js.map +1 -1
- package/dist/languages/definitions/typescript.d.ts.map +1 -1
- package/dist/languages/definitions/typescript.js +56 -90
- package/dist/languages/definitions/typescript.js.map +1 -1
- package/dist/languages/definitions/vue.d.ts.map +1 -1
- package/dist/languages/definitions/vue.js +2 -10
- package/dist/languages/definitions/vue.js.map +1 -1
- package/dist/languages/definitions/zig.d.ts.map +1 -1
- package/dist/languages/definitions/zig.js +9 -15
- package/dist/languages/definitions/zig.js.map +1 -1
- package/dist/languages/graph-captures.d.ts +40 -0
- package/dist/languages/graph-captures.d.ts.map +1 -0
- package/dist/languages/graph-captures.js +46 -0
- package/dist/languages/graph-captures.js.map +1 -0
- package/dist/languages/import-statement-parsers.d.ts +17 -0
- package/dist/languages/import-statement-parsers.d.ts.map +1 -1
- package/dist/languages/import-statement-parsers.js +108 -0
- package/dist/languages/import-statement-parsers.js.map +1 -1
- package/dist/languages/js-family.d.ts +2 -0
- package/dist/languages/js-family.d.ts.map +1 -1
- package/dist/languages/js-family.js +15 -6
- package/dist/languages/js-family.js.map +1 -1
- package/dist/languages/types.d.ts +4 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/types.js +1 -1
- package/dist/languages/types.js.map +1 -1
- package/dist/languages.js +1 -1
- package/dist/languages.js.map +1 -1
- package/dist/native/contracts.d.ts +1 -1
- package/dist/native/contracts.d.ts.map +1 -1
- package/dist/native/js-bridge.d.ts +10 -0
- package/dist/native/js-bridge.d.ts.map +1 -1
- package/dist/native/js-bridge.js +10 -0
- package/dist/native/js-bridge.js.map +1 -1
- package/dist/native/native-backend-report.d.ts.map +1 -1
- package/dist/native/native-backend-report.js +2 -0
- package/dist/native/native-backend-report.js.map +1 -1
- package/dist/util/comments.d.ts +7 -7
- package/dist/util/comments.d.ts.map +1 -1
- package/dist/util/comments.js +15 -214
- package/dist/util/comments.js.map +1 -1
- package/dist/util/dynamic-import-tables.d.ts +88 -0
- package/dist/util/dynamic-import-tables.d.ts.map +1 -0
- package/dist/util/dynamic-import-tables.js +100 -0
- package/dist/util/dynamic-import-tables.js.map +1 -0
- package/dist/util/lines.d.ts.map +1 -1
- package/dist/util/lines.js +4 -1
- package/dist/util/lines.js.map +1 -1
- package/dist/util/member-access-tables.d.ts +72 -0
- package/dist/util/member-access-tables.d.ts.map +1 -0
- package/dist/util/member-access-tables.js +167 -0
- package/dist/util/member-access-tables.js.map +1 -0
- package/dist/util/member-access.d.ts +2 -0
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +61 -95
- package/dist/util/member-access.js.map +1 -1
- package/dist/util/paths.d.ts +4 -0
- package/dist/util/paths.d.ts.map +1 -1
- package/dist/util/paths.js +26 -0
- package/dist/util/paths.js.map +1 -1
- package/dist/util/project-files.js +1 -1
- package/dist/util/project-files.js.map +1 -1
- package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
- package/dist/util/resolution/cargo-targets.js +17 -14
- package/dist/util/resolution/cargo-targets.js.map +1 -1
- package/dist/util/resolution/cpp.d.ts +6 -0
- package/dist/util/resolution/cpp.d.ts.map +1 -0
- package/dist/util/resolution/cpp.js +69 -0
- package/dist/util/resolution/cpp.js.map +1 -0
- package/dist/util/resolution/csharp.d.ts +4 -3
- package/dist/util/resolution/csharp.d.ts.map +1 -1
- package/dist/util/resolution/csharp.js +27 -113
- package/dist/util/resolution/csharp.js.map +1 -1
- package/dist/util/resolution/files.d.ts +6 -0
- package/dist/util/resolution/files.d.ts.map +1 -1
- package/dist/util/resolution/files.js +108 -4
- package/dist/util/resolution/files.js.map +1 -1
- package/dist/util/resolution/go.d.ts +1 -0
- package/dist/util/resolution/go.d.ts.map +1 -1
- package/dist/util/resolution/go.js +4 -3
- package/dist/util/resolution/go.js.map +1 -1
- package/dist/util/resolution/jvm.d.ts +3 -3
- package/dist/util/resolution/jvm.d.ts.map +1 -1
- package/dist/util/resolution/jvm.js +90 -54
- package/dist/util/resolution/jvm.js.map +1 -1
- package/dist/util/resolution/node.js +2 -2
- package/dist/util/resolution/node.js.map +1 -1
- package/dist/util/resolution/php-composer.d.ts.map +1 -1
- package/dist/util/resolution/php-composer.js +8 -7
- package/dist/util/resolution/php-composer.js.map +1 -1
- package/dist/util/resolution/php.d.ts.map +1 -1
- package/dist/util/resolution/php.js +30 -43
- package/dist/util/resolution/php.js.map +1 -1
- package/dist/util/resolution/project-symbols.d.ts +5 -7
- package/dist/util/resolution/project-symbols.d.ts.map +1 -1
- package/dist/util/resolution/project-symbols.js +23 -9
- package/dist/util/resolution/project-symbols.js.map +1 -1
- package/dist/util/resolution/python.d.ts.map +1 -1
- package/dist/util/resolution/python.js +107 -62
- package/dist/util/resolution/python.js.map +1 -1
- package/dist/util/resolution/rust.d.ts.map +1 -1
- package/dist/util/resolution/rust.js +45 -34
- package/dist/util/resolution/rust.js.map +1 -1
- package/dist/util/resolution/tsconfig.d.ts.map +1 -1
- package/dist/util/resolution/tsconfig.js +3 -9
- package/dist/util/resolution/tsconfig.js.map +1 -1
- package/dist/util/resolution-candidates.d.ts +5 -1
- package/dist/util/resolution-candidates.d.ts.map +1 -1
- package/dist/util/resolution-candidates.js +18 -0
- package/dist/util/resolution-candidates.js.map +1 -1
- package/dist/util/resolution.d.ts.map +1 -1
- package/dist/util/resolution.js +93 -49
- package/dist/util/resolution.js.map +1 -1
- package/dist/util/specifiers.d.ts +4 -10
- package/dist/util/specifiers.d.ts.map +1 -1
- package/dist/util/specifiers.js +131 -165
- package/dist/util/specifiers.js.map +1 -1
- package/dist/util/trivia-tables.d.ts +69 -0
- package/dist/util/trivia-tables.d.ts.map +1 -0
- package/dist/util/trivia-tables.js +186 -0
- package/dist/util/trivia-tables.js.map +1 -0
- package/dist/util/trivia.d.ts +24 -0
- package/dist/util/trivia.d.ts.map +1 -0
- package/dist/util/trivia.js +621 -0
- package/dist/util/trivia.js.map +1 -0
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +1 -1
- package/dist/util.js.map +1 -1
- package/dist/worker/native-extract-worker.d.ts.map +1 -1
- package/dist/worker/native-extract-worker.js +4 -4
- package/dist/worker/native-extract-worker.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
-
import {
|
|
2
|
+
import { classifyByParentType, hasParentType, isNameOrPropertyFieldOnParent, nodeTypeIn } from "./shared.js";
|
|
3
|
+
import { ECMASCRIPT_BLOCK_SCOPE_TYPES, ECMASCRIPT_CONTROL_SPLIT_POINTS, ECMASCRIPT_CORE_FUNCTION_BLOCKS, ECMASCRIPT_DECLARATION_NAME_PARENTS, ECMASCRIPT_FUNCTION_SCOPE_TYPES, ECMASCRIPT_MODULE_VAR_BLOCKS, isEcmaScriptTypeOnlyStatement, isEcmaScriptVariableDeclaratorName, } from "./js-family.js";
|
|
3
4
|
function normalizeTypeScriptNativeQuery(kind, query) {
|
|
4
5
|
let normalized = query.replace(/\(class_declaration name: \(identifier\) @/g, "(class_declaration name: (type_identifier) @");
|
|
5
6
|
if (kind !== "exports") {
|
|
@@ -53,17 +54,17 @@ const BASE_STRUCTURE = {
|
|
|
53
54
|
};
|
|
54
55
|
const BASE_GRAPH = {
|
|
55
56
|
imports: `
|
|
56
|
-
(import_statement (string) @
|
|
57
|
+
(import_statement (string) @from) @stmt
|
|
57
58
|
;; import x = require("...") is represented via import_require_clause
|
|
58
|
-
(import_statement (import_require_clause (string) @
|
|
59
|
-
(export_statement (string) @
|
|
60
|
-
(call_expression function: (import) arguments: (arguments (string) @
|
|
59
|
+
(import_statement (import_require_clause (string) @from)) @stmt
|
|
60
|
+
(export_statement (string) @from) @stmt
|
|
61
|
+
(call_expression function: (import) arguments: (arguments (string) @from)) @stmt
|
|
61
62
|
;; declare module "foo" {} — ambient module augmentations create a type-only
|
|
62
63
|
;; dependency on the named module and must appear in the file graph so that
|
|
63
64
|
;; changes to "foo" propagate to augmenting files (and vice-versa).
|
|
64
65
|
;; The inner node type is "module" (not "module_declaration"); its string
|
|
65
66
|
;; child uses field-name "name".
|
|
66
|
-
(ambient_declaration (module name: (string) @
|
|
67
|
+
(ambient_declaration (module name: (string) @from)) @stmt
|
|
67
68
|
`,
|
|
68
69
|
exports: `
|
|
69
70
|
(export_statement) @stmt
|
|
@@ -87,6 +88,7 @@ const BASE_GRAPH = {
|
|
|
87
88
|
(export_statement (export_clause (export_specifier "type"? @type_kw name: (identifier) @src !alias)) (string) @from) @stmt
|
|
88
89
|
(export_statement (export_clause (export_specifier "type"? @type_kw name: (identifier) @src alias: (identifier) @alias))) @stmt
|
|
89
90
|
(export_statement (export_clause (export_specifier "type"? @type_kw name: (identifier) @src !alias))) @stmt
|
|
91
|
+
(export_statement "*" @wild (string) @from) @stmt
|
|
90
92
|
(export_statement (string) @from) @stmt
|
|
91
93
|
(export_assignment (identifier) @ts_export_assign)
|
|
92
94
|
`,
|
|
@@ -126,78 +128,53 @@ const BASE_HELPERS = {
|
|
|
126
128
|
shorthandPropertyIdentifier: ["shorthand_property_identifier", "shorthand_property_identifier_pattern"],
|
|
127
129
|
memberExpression: "member_expression",
|
|
128
130
|
},
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
return "function";
|
|
150
|
-
if (t === "class_declaration")
|
|
151
|
-
return "class";
|
|
152
|
-
if (t === "abstract_class_declaration")
|
|
153
|
-
return "class";
|
|
154
|
-
if (t === "interface_declaration")
|
|
155
|
-
return "interface";
|
|
156
|
-
if (t === "type_alias_declaration")
|
|
157
|
-
return "type";
|
|
158
|
-
if (t === "enum_declaration" || t === "internal_module" || t === "module")
|
|
159
|
-
return "type";
|
|
160
|
-
return "variable";
|
|
161
|
-
},
|
|
131
|
+
// A named function expression's own name is a function-kind binding, matching the
|
|
132
|
+
// declaration forms; the grammar spells the expression forms without the `_declaration`
|
|
133
|
+
// suffix (`function_expression`, `generator_function`).
|
|
134
|
+
classifyDefinition: classifyByParentType({
|
|
135
|
+
function_declaration: "function",
|
|
136
|
+
generator_function_declaration: "function",
|
|
137
|
+
function_expression: "function",
|
|
138
|
+
generator_function: "function",
|
|
139
|
+
method_definition: "function",
|
|
140
|
+
method_signature: "function",
|
|
141
|
+
abstract_method_signature: "function",
|
|
142
|
+
function_signature: "function",
|
|
143
|
+
class_declaration: "class",
|
|
144
|
+
abstract_class_declaration: "class",
|
|
145
|
+
interface_declaration: "interface",
|
|
146
|
+
type_alias_declaration: "type",
|
|
147
|
+
enum_declaration: "type",
|
|
148
|
+
internal_module: "type",
|
|
149
|
+
module: "type",
|
|
150
|
+
}),
|
|
162
151
|
isDeclarationName: (node) => {
|
|
163
152
|
const parent = node.parent;
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
if (parent?.type === "public_field_definition" || parent?.type === "enum_assignment") {
|
|
169
|
-
const name = parent.childForFieldName("name") ?? parent.childForFieldName("property");
|
|
170
|
-
return name?.id === node.id;
|
|
171
|
-
}
|
|
153
|
+
if (isEcmaScriptVariableDeclaratorName(node))
|
|
154
|
+
return true;
|
|
155
|
+
if (isNameOrPropertyFieldOnParent(node, ["public_field_definition", "enum_assignment"]))
|
|
156
|
+
return true;
|
|
172
157
|
if (parent?.type === "enum_body") {
|
|
173
158
|
return node.type === "property_identifier";
|
|
174
159
|
}
|
|
175
|
-
return (
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
"method_definition",
|
|
194
|
-
"method_signature",
|
|
195
|
-
"abstract_method_signature",
|
|
196
|
-
// A named function expression binds its own name inside its body:
|
|
197
|
-
// `const f = function inner() {}` and `$scope.refresh = function refresh() {}`.
|
|
198
|
-
"function_expression",
|
|
199
|
-
"generator_function",
|
|
200
|
-
].includes(p));
|
|
160
|
+
return hasParentType(node, [
|
|
161
|
+
...ECMASCRIPT_DECLARATION_NAME_PARENTS,
|
|
162
|
+
"abstract_class_declaration",
|
|
163
|
+
"interface_declaration",
|
|
164
|
+
"type_alias_declaration",
|
|
165
|
+
"enum_declaration",
|
|
166
|
+
"function_signature",
|
|
167
|
+
"internal_module",
|
|
168
|
+
"module",
|
|
169
|
+
"import_equals_declaration",
|
|
170
|
+
// Method names in classes and abstract method signatures: needed so
|
|
171
|
+
// that editing a method name is classified as a definition change.
|
|
172
|
+
"method_signature",
|
|
173
|
+
"abstract_method_signature",
|
|
174
|
+
// A named function expression binds its own name inside its body:
|
|
175
|
+
// `const f = function inner() {}` and `$scope.refresh = function refresh() {}`.
|
|
176
|
+
"generator_function",
|
|
177
|
+
]);
|
|
201
178
|
},
|
|
202
179
|
// Scope construction has structural handling for the ordinary declaration forms. Ambient
|
|
203
180
|
// overload signatures, `namespace X {}`, and a named function expression's own name are not
|
|
@@ -212,21 +189,10 @@ const BASE_HELPERS = {
|
|
|
212
189
|
parent === "function_expression" ||
|
|
213
190
|
parent === "generator_function");
|
|
214
191
|
},
|
|
215
|
-
createsBlockScope: (
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
n.type === "enum_body",
|
|
220
|
-
createsFunctionScope: (n) => n.type === "generator_function_declaration" ||
|
|
221
|
-
n.type === "function_declaration" ||
|
|
222
|
-
n.type === "function" ||
|
|
223
|
-
n.type === "function_expression" ||
|
|
224
|
-
// A generator function expression has its own body scope: without this, its own name
|
|
225
|
-
// (registered above) and its parameters would land in the enclosing scope.
|
|
226
|
-
n.type === "generator_function" ||
|
|
227
|
-
n.type === "arrow_function" ||
|
|
228
|
-
n.type === "method_definition",
|
|
229
|
-
membersAreImplicitlyInScope: false,
|
|
192
|
+
createsBlockScope: nodeTypeIn([...ECMASCRIPT_BLOCK_SCOPE_TYPES, "enum_body"]),
|
|
193
|
+
// A generator function expression has its own body scope: without this, its own name
|
|
194
|
+
// (registered above) and its parameters would land in the enclosing scope.
|
|
195
|
+
createsFunctionScope: nodeTypeIn([...ECMASCRIPT_FUNCTION_SCOPE_TYPES, "generator_function"]),
|
|
230
196
|
supportsCrossModuleSymbols: true,
|
|
231
197
|
};
|
|
232
198
|
export const TYPESCRIPT_DEF = {
|
|
@@ -236,7 +202,7 @@ export const TYPESCRIPT_DEF = {
|
|
|
236
202
|
graph: BASE_GRAPH,
|
|
237
203
|
supportsExportFromReferences: true,
|
|
238
204
|
...BASE_HELPERS,
|
|
239
|
-
isTypeOnly:
|
|
205
|
+
isTypeOnly: isEcmaScriptTypeOnlyStatement,
|
|
240
206
|
native: {
|
|
241
207
|
normalizeQuery: normalizeTypeScriptNativeQuery,
|
|
242
208
|
authoritativeKinds: ["exports"],
|
|
@@ -258,7 +224,7 @@ export const TSX_DEF = {
|
|
|
258
224
|
graph: BASE_GRAPH,
|
|
259
225
|
supportsExportFromReferences: true,
|
|
260
226
|
...BASE_HELPERS,
|
|
261
|
-
isTypeOnly:
|
|
227
|
+
isTypeOnly: isEcmaScriptTypeOnlyStatement,
|
|
262
228
|
native: {
|
|
263
229
|
normalizeQuery: normalizeTypeScriptNativeQuery,
|
|
264
230
|
authoritativeKinds: ["exports"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/languages/definitions/typescript.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/languages/definitions/typescript.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/vue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/vue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,OAAO,EAAE,kBAgBrB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
+
import { sfcExternalScriptGraph } from "./sfc-graph.js";
|
|
2
3
|
export const VUE_DEF = {
|
|
3
4
|
id: "vue",
|
|
4
5
|
extensions: [".vue"],
|
|
@@ -11,16 +12,7 @@ export const VUE_DEF = {
|
|
|
11
12
|
splitPoints: ["template_element", "script_element", "style_element"],
|
|
12
13
|
comments: ["comment"],
|
|
13
14
|
},
|
|
14
|
-
graph:
|
|
15
|
-
imports: `
|
|
16
|
-
(script_element (start_tag (attribute (attribute_name) @attr (#eq? @attr "src") (quoted_attribute_value (attribute_value) @mod)))) @stmt
|
|
17
|
-
`,
|
|
18
|
-
exports: "",
|
|
19
|
-
locals: "",
|
|
20
|
-
importBindings: `
|
|
21
|
-
(script_element (start_tag (attribute (attribute_name) @attr (#eq? @attr "src") (quoted_attribute_value (attribute_value) @from)))) @stmt
|
|
22
|
-
`,
|
|
23
|
-
},
|
|
15
|
+
graph: sfcExternalScriptGraph(),
|
|
24
16
|
nodeTypes: {
|
|
25
17
|
identifier: ["attribute_value"],
|
|
26
18
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue.js","sourceRoot":"","sources":["../../../src/languages/definitions/vue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"vue.js","sourceRoot":"","sources":["../../../src/languages/definitions/vue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,OAAO,GAAuB;IACzC,EAAE,EAAE,KAAK;IACT,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE;YACnD,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC/C,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE;SAC9C;QACD,WAAW,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,CAAC;QACpE,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,KAAK,EAAE,sBAAsB,EAAE;IAC/B,SAAS,EAAE;QACT,UAAU,EAAE,CAAC,iBAAiB,CAAC;KAChC;CACF,CAAC;AACF,gBAAgB,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zig.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/zig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"zig.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/zig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AActD,eAAO,MAAM,OAAO,EAAE,kBA8ErB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
+
import { isNameFieldOnParent, nodeTypeIn } from "./shared.js";
|
|
2
3
|
const ZIG_TYPE_INITIALIZER_TYPES = new Set([
|
|
3
4
|
"builtin_type",
|
|
4
5
|
"struct_declaration",
|
|
@@ -22,8 +23,9 @@ export const ZIG_DEF = {
|
|
|
22
23
|
},
|
|
23
24
|
graph: {
|
|
24
25
|
imports: `
|
|
25
|
-
(builtin_function (builtin_identifier) @fn (arguments (string) @
|
|
26
|
-
|
|
26
|
+
(builtin_function (builtin_identifier) @fn (arguments (string) @from) (#eq? @fn "@import")) @stmt
|
|
27
|
+
;; @cImport has no path argument; the builtin identifier is the specifier.
|
|
28
|
+
(builtin_function (builtin_identifier) @from (arguments) (#eq? @from "@cImport")) @stmt
|
|
27
29
|
`,
|
|
28
30
|
exports: `
|
|
29
31
|
(source_file (function_declaration name: (identifier) @name))
|
|
@@ -79,23 +81,15 @@ export const ZIG_DEF = {
|
|
|
79
81
|
return "type";
|
|
80
82
|
return "variable";
|
|
81
83
|
},
|
|
82
|
-
createsFunctionScope: (
|
|
83
|
-
createsBlockScope: (
|
|
84
|
-
isDeclarationName: (node) =>
|
|
85
|
-
const parent = node.parent;
|
|
86
|
-
if (!parent)
|
|
87
|
-
return false;
|
|
88
|
-
if (parent.type === "function_declaration" && parent.childForFieldName("name")?.id === node.id)
|
|
89
|
-
return true;
|
|
90
|
-
if (parent.type !== "variable_declaration")
|
|
91
|
-
return false;
|
|
84
|
+
createsFunctionScope: nodeTypeIn(["function_declaration"]),
|
|
85
|
+
createsBlockScope: nodeTypeIn(["block"]),
|
|
86
|
+
isDeclarationName: (node) => isNameFieldOnParent(node, ["function_declaration"]) ||
|
|
92
87
|
// No named field distinguishes the declared identifier from an initializer that is
|
|
93
88
|
// itself a bare identifier (e.g. `const x = y;` puts both `x` and `y` directly under
|
|
94
89
|
// `variable_declaration`); the declared name is always the first identifier child,
|
|
95
90
|
// matching the lookup classifyDefinition above already relies on.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
},
|
|
91
|
+
(node.parent?.type === "variable_declaration" &&
|
|
92
|
+
node.parent.namedChildren.find((child) => child.type === "identifier")?.id === node.id),
|
|
99
93
|
};
|
|
100
94
|
registerLanguage(ZIG_DEF);
|
|
101
95
|
//# sourceMappingURL=zig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zig.js","sourceRoot":"","sources":["../../../src/languages/definitions/zig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"zig.js","sourceRoot":"","sources":["../../../src/languages/definitions/zig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared capture vocabulary for import-bearing queries only
|
|
3
|
+
* (`graph.imports` and `graph.importBindings`).
|
|
4
|
+
*
|
|
5
|
+
* `@stmt` plus `@from` are required. `@from` is the path-bearing node (module
|
|
6
|
+
* specifier, include path, `use` name). The optional names are produced only
|
|
7
|
+
* when the grammar has a node for them; a language that cannot express one
|
|
8
|
+
* must not invent a capture.
|
|
9
|
+
*
|
|
10
|
+
* This union is not a global query-capture schema. Two other `@mod` spellings
|
|
11
|
+
* are a different vocabulary and must not be renamed to `@from`:
|
|
12
|
+
* - JavaScript CommonJS export queries bind `@mod` to the identifier `module`
|
|
13
|
+
* in `module.exports`, gated by `(#eq? @mod "module")`. That capture is an
|
|
14
|
+
* identifier-equality check, not a path.
|
|
15
|
+
* - `src/duplicates/units.ts` uses `@mod` in duplicate-masking queries for
|
|
16
|
+
* Ruby `load` and Zig `@cImport`. Different subsystem, no capture-schema
|
|
17
|
+
* contract.
|
|
18
|
+
*
|
|
19
|
+
* Predicate-only names (`attr`, `tag`, `fn`, `req`, `method`) and JS-family
|
|
20
|
+
* CommonJS export captures (`pattern`, `cjs_*`, the CJS `@mod` above) stay
|
|
21
|
+
* outside this union. Do not "fix" those to match `GraphImportCapture`.
|
|
22
|
+
*/
|
|
23
|
+
export declare const GRAPH_IMPORT_REQUIRED_CAPTURES: readonly ["stmt", "from"];
|
|
24
|
+
export declare const GRAPH_IMPORT_OPTIONAL_CAPTURES: readonly ["alias", "wild", "iname", "def", "ns", "type_kw"];
|
|
25
|
+
export declare const GRAPH_IMPORT_CAPTURES: readonly ["stmt", "from", "alias", "wild", "iname", "def", "ns", "type_kw"];
|
|
26
|
+
export type GraphImportRequiredCapture = (typeof GRAPH_IMPORT_REQUIRED_CAPTURES)[number];
|
|
27
|
+
export type GraphImportOptionalCapture = (typeof GRAPH_IMPORT_OPTIONAL_CAPTURES)[number];
|
|
28
|
+
export type GraphImportCapture = (typeof GRAPH_IMPORT_CAPTURES)[number];
|
|
29
|
+
/** `@name` token for a typed import capture. Unknown names fail at the call site. */
|
|
30
|
+
export declare function graphCapture(name: GraphImportCapture): `@${GraphImportCapture}`;
|
|
31
|
+
export type GraphImportCaptureMap<T> = Partial<Record<GraphImportCapture, T>>;
|
|
32
|
+
/** Typed lookup so an unknown capture name is a typecheck error, not a silent miss. */
|
|
33
|
+
export declare function importCapture<T>(caps: GraphImportCaptureMap<T> | Partial<Record<string, T>>, name: GraphImportCapture): T | undefined;
|
|
34
|
+
export declare function isGraphImportCapture(name: string): name is GraphImportCapture;
|
|
35
|
+
export declare function graphImportCaptures<T>(byName: Record<string, T | undefined>): GraphImportCaptureMap<T>;
|
|
36
|
+
/** Compile error if `"mod"` is ever added: that name is identifier-equality, not a path. */
|
|
37
|
+
type AssertNever<T extends never> = T;
|
|
38
|
+
export type GraphImportCaptureExcludesMod = AssertNever<Extract<GraphImportCapture, "mod">>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=graph-captures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-captures.d.ts","sourceRoot":"","sources":["../../src/languages/graph-captures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,eAAO,MAAM,8BAA8B,2BAA4B,CAAC;AACxE,eAAO,MAAM,8BAA8B,6DAA8D,CAAC;AAC1G,eAAO,MAAM,qBAAqB,6EAAkF,CAAC;AAErH,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAE/E;AAED,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9E,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAC3D,IAAI,EAAE,kBAAkB,GACvB,CAAC,GAAG,SAAS,CAEf;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,kBAAkB,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAOtG;AAED,4FAA4F;AAC5F,KAAK,WAAW,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;AACtC,MAAM,MAAM,6BAA6B,GAAG,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared capture vocabulary for import-bearing queries only
|
|
3
|
+
* (`graph.imports` and `graph.importBindings`).
|
|
4
|
+
*
|
|
5
|
+
* `@stmt` plus `@from` are required. `@from` is the path-bearing node (module
|
|
6
|
+
* specifier, include path, `use` name). The optional names are produced only
|
|
7
|
+
* when the grammar has a node for them; a language that cannot express one
|
|
8
|
+
* must not invent a capture.
|
|
9
|
+
*
|
|
10
|
+
* This union is not a global query-capture schema. Two other `@mod` spellings
|
|
11
|
+
* are a different vocabulary and must not be renamed to `@from`:
|
|
12
|
+
* - JavaScript CommonJS export queries bind `@mod` to the identifier `module`
|
|
13
|
+
* in `module.exports`, gated by `(#eq? @mod "module")`. That capture is an
|
|
14
|
+
* identifier-equality check, not a path.
|
|
15
|
+
* - `src/duplicates/units.ts` uses `@mod` in duplicate-masking queries for
|
|
16
|
+
* Ruby `load` and Zig `@cImport`. Different subsystem, no capture-schema
|
|
17
|
+
* contract.
|
|
18
|
+
*
|
|
19
|
+
* Predicate-only names (`attr`, `tag`, `fn`, `req`, `method`) and JS-family
|
|
20
|
+
* CommonJS export captures (`pattern`, `cjs_*`, the CJS `@mod` above) stay
|
|
21
|
+
* outside this union. Do not "fix" those to match `GraphImportCapture`.
|
|
22
|
+
*/
|
|
23
|
+
export const GRAPH_IMPORT_REQUIRED_CAPTURES = ["stmt", "from"];
|
|
24
|
+
export const GRAPH_IMPORT_OPTIONAL_CAPTURES = ["alias", "wild", "iname", "def", "ns", "type_kw"];
|
|
25
|
+
export const GRAPH_IMPORT_CAPTURES = [...GRAPH_IMPORT_REQUIRED_CAPTURES, ...GRAPH_IMPORT_OPTIONAL_CAPTURES];
|
|
26
|
+
/** `@name` token for a typed import capture. Unknown names fail at the call site. */
|
|
27
|
+
export function graphCapture(name) {
|
|
28
|
+
return `@${name}`;
|
|
29
|
+
}
|
|
30
|
+
/** Typed lookup so an unknown capture name is a typecheck error, not a silent miss. */
|
|
31
|
+
export function importCapture(caps, name) {
|
|
32
|
+
return caps[name];
|
|
33
|
+
}
|
|
34
|
+
export function isGraphImportCapture(name) {
|
|
35
|
+
return GRAPH_IMPORT_CAPTURES.includes(name);
|
|
36
|
+
}
|
|
37
|
+
export function graphImportCaptures(byName) {
|
|
38
|
+
const out = {};
|
|
39
|
+
for (const name of GRAPH_IMPORT_CAPTURES) {
|
|
40
|
+
const capture = byName[name];
|
|
41
|
+
if (capture !== undefined)
|
|
42
|
+
out[name] = capture;
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=graph-captures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-captures.js","sourceRoot":"","sources":["../../src/languages/graph-captures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AACxE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAU,CAAC;AAC1G,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,8BAA8B,EAAE,GAAG,8BAA8B,CAAU,CAAC;AAMrH,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,IAAwB;IACnD,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC;AAID,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAC3B,IAA2D,EAC3D,IAAwB;IAExB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAQ,qBAA2C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,MAAqC;IAC1E,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -70,4 +70,21 @@ export type ParsedJavaImportStatement = {
|
|
|
70
70
|
};
|
|
71
71
|
export declare function parseJavaImportStatement(stmtText: string): ParsedJavaImportStatement | null;
|
|
72
72
|
export declare function parseCsharpUsingDirective(stmtText: string): ParsedCsharpUsingDirective | null;
|
|
73
|
+
/**
|
|
74
|
+
* Offset of the import keyword inside a scanned Rust statement, skipping leading whitespace,
|
|
75
|
+
* comments, and outer attributes. Returns -1 when no import keyword is present.
|
|
76
|
+
*/
|
|
77
|
+
export declare function rustImportKeywordOffset(text: string): number;
|
|
78
|
+
/**
|
|
79
|
+
* Scans the whole source for `use`/`extern crate`/`mod` item statements. Comments, literals,
|
|
80
|
+
* macro token trees, and outer attributes are honoured, so a statement is never discovered
|
|
81
|
+
* inside trivia. Offsets are UTF-16 indices into `sourceText`.
|
|
82
|
+
*
|
|
83
|
+
* The scanner is shared by the indexer's Rust binding recovery and the graph path's Rust
|
|
84
|
+
* specifier recovery so the two consumers cannot drift apart.
|
|
85
|
+
*/
|
|
86
|
+
export declare function scanRustImportStatements(sourceText: string): Array<{
|
|
87
|
+
text: string;
|
|
88
|
+
start: number;
|
|
89
|
+
}>;
|
|
73
90
|
//# sourceMappingURL=import-statement-parsers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-statement-parsers.d.ts","sourceRoot":"","sources":["../../src/languages/import-statement-parsers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"import-statement-parsers.d.ts","sourceRoot":"","sources":["../../src/languages/import-statement-parsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -812,4 +812,112 @@ export function parseCsharpUsingDirective(stmtText) {
|
|
|
812
812
|
isStatic: false,
|
|
813
813
|
};
|
|
814
814
|
}
|
|
815
|
+
const RUST_IMPORT_KEYWORD_PATTERN = /^(?:pub(?:\s*\([^)]*\))?\s+)?(use|extern\s+crate|mod)\b/;
|
|
816
|
+
/**
|
|
817
|
+
* Offset of the import keyword inside a scanned Rust statement, skipping leading whitespace,
|
|
818
|
+
* comments, and outer attributes. Returns -1 when no import keyword is present.
|
|
819
|
+
*/
|
|
820
|
+
export function rustImportKeywordOffset(text) {
|
|
821
|
+
let index = 0;
|
|
822
|
+
while (index < text.length) {
|
|
823
|
+
if (/\s/.test(text[index])) {
|
|
824
|
+
index += 1;
|
|
825
|
+
continue;
|
|
826
|
+
}
|
|
827
|
+
const skipped = skipRustCommentOrLiteral(text, index);
|
|
828
|
+
if (skipped) {
|
|
829
|
+
index = skipped.end;
|
|
830
|
+
continue;
|
|
831
|
+
}
|
|
832
|
+
const attrEnd = skipRustOuterAttribute(text, index);
|
|
833
|
+
if (attrEnd !== null) {
|
|
834
|
+
index = attrEnd;
|
|
835
|
+
continue;
|
|
836
|
+
}
|
|
837
|
+
const match = text.slice(index).match(RUST_IMPORT_KEYWORD_PATTERN);
|
|
838
|
+
if (match)
|
|
839
|
+
return index;
|
|
840
|
+
index += 1;
|
|
841
|
+
}
|
|
842
|
+
return -1;
|
|
843
|
+
}
|
|
844
|
+
/**
|
|
845
|
+
* Scans the whole source for `use`/`extern crate`/`mod` item statements. Comments, literals,
|
|
846
|
+
* macro token trees, and outer attributes are honoured, so a statement is never discovered
|
|
847
|
+
* inside trivia. Offsets are UTF-16 indices into `sourceText`.
|
|
848
|
+
*
|
|
849
|
+
* The scanner is shared by the indexer's Rust binding recovery and the graph path's Rust
|
|
850
|
+
* specifier recovery so the two consumers cannot drift apart.
|
|
851
|
+
*/
|
|
852
|
+
export function scanRustImportStatements(sourceText) {
|
|
853
|
+
const results = [];
|
|
854
|
+
let index = 0;
|
|
855
|
+
while (index < sourceText.length) {
|
|
856
|
+
const skipped = skipRustCommentOrLiteral(sourceText, index) ?? skipRustMacroTokenTree(sourceText, index);
|
|
857
|
+
if (skipped) {
|
|
858
|
+
index = skipped.end;
|
|
859
|
+
continue;
|
|
860
|
+
}
|
|
861
|
+
if (/\s/.test(sourceText[index])) {
|
|
862
|
+
index += 1;
|
|
863
|
+
continue;
|
|
864
|
+
}
|
|
865
|
+
const statementStart = index;
|
|
866
|
+
let cursor = index;
|
|
867
|
+
for (;;) {
|
|
868
|
+
while (cursor < sourceText.length && /\s/.test(sourceText[cursor]))
|
|
869
|
+
cursor += 1;
|
|
870
|
+
const trivia = skipRustCommentOrLiteral(sourceText, cursor);
|
|
871
|
+
if (trivia) {
|
|
872
|
+
cursor = trivia.end;
|
|
873
|
+
continue;
|
|
874
|
+
}
|
|
875
|
+
const attrEnd = skipRustOuterAttribute(sourceText, cursor);
|
|
876
|
+
if (attrEnd === null)
|
|
877
|
+
break;
|
|
878
|
+
cursor = attrEnd;
|
|
879
|
+
}
|
|
880
|
+
const match = sourceText.slice(cursor).match(RUST_IMPORT_KEYWORD_PATTERN);
|
|
881
|
+
if (!match || !isRustItemStartBoundary(sourceText, cursor)) {
|
|
882
|
+
index = Math.max(index + 1, cursor);
|
|
883
|
+
continue;
|
|
884
|
+
}
|
|
885
|
+
let consumed = false;
|
|
886
|
+
let depth = 0;
|
|
887
|
+
for (let scan = statementStart; scan < sourceText.length;) {
|
|
888
|
+
const inner = skipRustCommentOrLiteral(sourceText, scan) ?? skipRustMacroTokenTree(sourceText, scan);
|
|
889
|
+
if (inner) {
|
|
890
|
+
scan = inner.end;
|
|
891
|
+
continue;
|
|
892
|
+
}
|
|
893
|
+
const character = sourceText[scan];
|
|
894
|
+
if (character === "{") {
|
|
895
|
+
const head = sourceText.slice(statementStart, scan);
|
|
896
|
+
if (/\bmod\b/.test(head) && !/\buse\b/.test(head)) {
|
|
897
|
+
index = scan + 1;
|
|
898
|
+
consumed = true;
|
|
899
|
+
break;
|
|
900
|
+
}
|
|
901
|
+
depth += 1;
|
|
902
|
+
scan += 1;
|
|
903
|
+
continue;
|
|
904
|
+
}
|
|
905
|
+
if (character === "}") {
|
|
906
|
+
depth = Math.max(0, depth - 1);
|
|
907
|
+
scan += 1;
|
|
908
|
+
continue;
|
|
909
|
+
}
|
|
910
|
+
if (character === ";" && !depth) {
|
|
911
|
+
results.push({ text: sourceText.slice(statementStart, scan + 1), start: statementStart });
|
|
912
|
+
index = scan + 1;
|
|
913
|
+
consumed = true;
|
|
914
|
+
break;
|
|
915
|
+
}
|
|
916
|
+
scan += 1;
|
|
917
|
+
}
|
|
918
|
+
if (!consumed)
|
|
919
|
+
index += 1;
|
|
920
|
+
}
|
|
921
|
+
return results;
|
|
922
|
+
}
|
|
815
923
|
//# sourceMappingURL=import-statement-parsers.js.map
|