@lzehrung/codegraph 2.3.28 → 2.3.30
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 +7008 -4340
- package/dist/bin/query-index-worker.js +1357 -724
- 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 +12 -2
- 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/ast.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/ast.js +3 -0
- package/dist/graphs/symbol-graph-detailed/ast.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 +157 -91
- package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +34 -0
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +531 -24
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/impact/analyzer.d.ts.map +1 -1
- package/dist/impact/analyzer.js +82 -4
- package/dist/impact/analyzer.js.map +1 -1
- package/dist/impact/call-compatibility/providers/index.d.ts +3 -1
- package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.js +11 -4
- package/dist/impact/call-compatibility/providers/index.js.map +1 -1
- package/dist/impact/call-compatibility.d.ts.map +1 -1
- package/dist/impact/call-compatibility.js +2 -7
- package/dist/impact/call-compatibility.js.map +1 -1
- package/dist/impact/map.d.ts.map +1 -1
- package/dist/impact/map.js +58 -1
- package/dist/impact/map.js.map +1 -1
- package/dist/impact/member-resolution-coverage.d.ts.map +1 -1
- package/dist/impact/member-resolution-coverage.js +2 -5
- 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 +20 -2
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +21 -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 +1 -1
- 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/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.map +1 -1
- package/dist/indexer/imports/language-specific.js +58 -215
- 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/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +26 -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 +406 -276
- 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 +49 -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 +34 -53
- 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 +47 -53
- 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 +5 -1
- package/dist/languages/definitions/python.d.ts.map +1 -1
- package/dist/languages/definitions/python.js +62 -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 +36 -30
- 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 +65 -79
- 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/sql/graph.d.ts +1 -1
- package/dist/sql/graph.d.ts.map +1 -1
- package/dist/sql/graph.js.map +1 -1
- package/dist/sql/lookup.d.ts +7 -0
- package/dist/sql/lookup.d.ts.map +1 -1
- package/dist/sql/lookup.js +17 -0
- package/dist/sql/lookup.js.map +1 -1
- package/dist/sql/source-graph.d.ts +2 -0
- package/dist/sql/source-graph.d.ts.map +1 -1
- package/dist/sql/source-graph.js +20 -1
- package/dist/sql/source-graph.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/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.d.ts +2 -0
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +18 -5
- 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 +8 -0
- package/dist/util/resolution/csharp.d.ts.map +1 -0
- package/dist/util/resolution/csharp.js +103 -0
- package/dist/util/resolution/csharp.js.map +1 -0
- 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 +95 -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 +213 -164
- 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,4 +1,5 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
+
import { classifyByParentType, isNameFieldOnParent, nodeTypeIn } from "./shared.js";
|
|
2
3
|
import { hasNonAsciiCodePoint } from "../../util/identifiers.js";
|
|
3
4
|
export const RUST_DEF = {
|
|
4
5
|
id: "rust",
|
|
@@ -42,9 +43,9 @@ export const RUST_DEF = {
|
|
|
42
43
|
},
|
|
43
44
|
graph: {
|
|
44
45
|
imports: `
|
|
45
|
-
(mod_item name: (identifier) @
|
|
46
|
-
(extern_crate_declaration name: (identifier) @
|
|
47
|
-
(use_declaration argument: (_) @
|
|
46
|
+
(mod_item name: (identifier) @from) @stmt
|
|
47
|
+
(extern_crate_declaration name: (identifier) @from) @stmt
|
|
48
|
+
(use_declaration argument: (_) @from) @stmt
|
|
48
49
|
`,
|
|
49
50
|
exports: `
|
|
50
51
|
(function_item name: (identifier) @name) @stmt
|
|
@@ -94,6 +95,7 @@ export const RUST_DEF = {
|
|
|
94
95
|
(use_declaration argument: (use_as_clause path: (identifier) @from alias: (identifier) @alias)) @stmt
|
|
95
96
|
(use_declaration argument: (use_as_clause path: (scoped_identifier path: (_) @from name: (identifier) @iname) alias: (identifier) @alias)) @stmt
|
|
96
97
|
(use_declaration argument: (scoped_identifier path: (_) @from name: (identifier) @iname)) @stmt
|
|
98
|
+
(use_declaration argument: (use_wildcard) @from @wild) @stmt
|
|
97
99
|
(use_declaration argument: (identifier) @from) @stmt
|
|
98
100
|
(use_declaration argument: (scoped_use_list path: (_) @from list: (use_list (identifier) @iname))) @stmt
|
|
99
101
|
;; Aliased members inside a group (\`use foo::{Bar as Baz}\`): import
|
|
@@ -108,55 +110,31 @@ export const RUST_DEF = {
|
|
|
108
110
|
supportsCrossModuleSymbols: true,
|
|
109
111
|
exportScopeBlockers: ["block"],
|
|
110
112
|
scopeDeclarationNames: (node) => node.parent?.type === "macro_definition",
|
|
111
|
-
classifyDefinition: (
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if (p.type === "struct_item" && p.childForFieldName("name")?.id === node.id)
|
|
137
|
-
return true;
|
|
138
|
-
if (p.type === "trait_item" && p.childForFieldName("name")?.id === node.id)
|
|
139
|
-
return true;
|
|
140
|
-
if (p.type === "type_item" && p.childForFieldName("name")?.id === node.id)
|
|
141
|
-
return true;
|
|
142
|
-
if (p.type === "associated_type" && p.childForFieldName("name")?.id === node.id)
|
|
143
|
-
return true;
|
|
144
|
-
if (p.type === "enum_item" && p.childForFieldName("name")?.id === node.id)
|
|
145
|
-
return true;
|
|
146
|
-
if (p.type === "enum_variant" && p.childForFieldName("name")?.id === node.id)
|
|
147
|
-
return true;
|
|
148
|
-
if (p.type === "const_item" && p.childForFieldName("name")?.id === node.id)
|
|
149
|
-
return true;
|
|
150
|
-
if (p.type === "static_item" && p.childForFieldName("name")?.id === node.id)
|
|
151
|
-
return true;
|
|
152
|
-
if (p.type === "macro_definition" && p.childForFieldName("name")?.id === node.id)
|
|
153
|
-
return true;
|
|
154
|
-
if (p.type === "let_declaration" && p.childForFieldName("pattern")?.id === node.id)
|
|
155
|
-
return true;
|
|
156
|
-
if (p.type === "parameter" && p.childForFieldName("pattern")?.id === node.id)
|
|
157
|
-
return true;
|
|
158
|
-
return false;
|
|
159
|
-
},
|
|
113
|
+
classifyDefinition: classifyByParentType({
|
|
114
|
+
function_item: "function",
|
|
115
|
+
function_signature_item: "function",
|
|
116
|
+
macro_definition: "function",
|
|
117
|
+
enum_item: "type",
|
|
118
|
+
type_item: "type",
|
|
119
|
+
associated_type: "type",
|
|
120
|
+
struct_item: "class",
|
|
121
|
+
trait_item: "class",
|
|
122
|
+
}),
|
|
123
|
+
createsFunctionScope: nodeTypeIn(["function_item"]),
|
|
124
|
+
createsBlockScope: nodeTypeIn(["block"]),
|
|
125
|
+
isDeclarationName: (node) => isNameFieldOnParent(node, [
|
|
126
|
+
"function_item",
|
|
127
|
+
"function_signature_item",
|
|
128
|
+
"struct_item",
|
|
129
|
+
"trait_item",
|
|
130
|
+
"type_item",
|
|
131
|
+
"associated_type",
|
|
132
|
+
"enum_item",
|
|
133
|
+
"enum_variant",
|
|
134
|
+
"const_item",
|
|
135
|
+
"static_item",
|
|
136
|
+
"macro_definition",
|
|
137
|
+
]) || isNameFieldOnParent(node, ["let_declaration", "parameter"], "pattern"),
|
|
160
138
|
normalizeIdentifier: (name) => (hasNonAsciiCodePoint(name) ? name.normalize("NFC") : name),
|
|
161
139
|
};
|
|
162
140
|
registerLanguage(RUST_DEF);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/languages/definitions/rust.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAuB;IAC1C,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,qBAAqB,EAAE,IAAI;IAC3B,SAAS,EAAE;QACT,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,eAAe;gBACrB,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,UAAU;aACtB;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,qCAAqC;gBAChD,SAAS,EAAE,QAAQ;aACpB;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,qCAAqC;gBAChD,SAAS,EAAE,MAAM;aAClB;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,qCAAqC;gBAChD,SAAS,EAAE,MAAM;aAClB;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,QAAQ;aACpB;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,OAAO;aACnB;SACF;QACD,WAAW,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;QAC3G,QAAQ,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;KAC5C;IACD,KAAK,EAAE;QACL,OAAO,EAAE;;;;KAIR;QACD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;KAyBR;QACD,MAAM,EAAE;;;;;;;;;;;;;;KAcP;QACD,cAAc,EAAE
|
|
1
|
+
{"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/languages/definitions/rust.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/scss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/scss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAyBtD,eAAO,MAAM,QAAQ,EAAE,kBA4CtB,CAAC"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
|
+
import { graphCapture } from "../graph-captures.js";
|
|
1
2
|
import { registerLanguage } from "../registry.js";
|
|
3
|
+
import { classifyByParentType, isNameFieldOnParent, matchesParentTypePairs } from "./shared.js";
|
|
4
|
+
import { cssLikeGraph } from "./css-like.js";
|
|
5
|
+
const from = graphCapture("from");
|
|
6
|
+
const stmt = graphCapture("stmt");
|
|
7
|
+
const cssGraph = cssLikeGraph();
|
|
8
|
+
const sassImportQueries = `
|
|
9
|
+
(import_statement (_ (string_value) ${from})) ${stmt}
|
|
10
|
+
(use_statement (string_value) ${from}) ${stmt}
|
|
11
|
+
(use_statement (_ (string_value) ${from})) ${stmt}
|
|
12
|
+
(forward_statement (string_value) ${from}) ${stmt}
|
|
13
|
+
(forward_statement (_ (string_value) ${from})) ${stmt}
|
|
14
|
+
`;
|
|
15
|
+
const sassLocalQueries = `
|
|
16
|
+
(mixin_statement name: (identifier) @name)
|
|
17
|
+
(function_statement name: (identifier) @name)
|
|
18
|
+
((declaration (property_name) @name) (#match? @name "^[$]"))
|
|
19
|
+
(selectors (placeholder (identifier) @name))
|
|
20
|
+
`;
|
|
2
21
|
export const SCSS_DEF = {
|
|
3
22
|
id: "scss",
|
|
4
23
|
extensions: [".scss"],
|
|
@@ -15,46 +34,33 @@ export const SCSS_DEF = {
|
|
|
15
34
|
comments: ["comment", "js_comment"],
|
|
16
35
|
},
|
|
17
36
|
graph: {
|
|
18
|
-
imports:
|
|
19
|
-
(import_statement (string_value) @mod) @stmt
|
|
20
|
-
(import_statement (_ (string_value) @mod)) @stmt
|
|
21
|
-
(use_statement (string_value) @mod) @stmt
|
|
22
|
-
(use_statement (_ (string_value) @mod)) @stmt
|
|
23
|
-
(forward_statement (string_value) @mod) @stmt
|
|
24
|
-
(forward_statement (_ (string_value) @mod)) @stmt
|
|
25
|
-
`,
|
|
37
|
+
imports: `${cssGraph.imports}${sassImportQueries}`,
|
|
26
38
|
exports: `
|
|
27
39
|
(stylesheet (mixin_statement name: (identifier) @name))
|
|
28
40
|
(stylesheet (function_statement name: (identifier) @name))
|
|
29
41
|
((stylesheet (declaration (property_name) @name)) (#match? @name "^[$]"))
|
|
30
42
|
(stylesheet (rule_set (selectors (placeholder (identifier) @name))))
|
|
31
43
|
`,
|
|
32
|
-
locals:
|
|
33
|
-
|
|
34
|
-
(function_statement name: (identifier) @name)
|
|
35
|
-
((declaration (property_name) @name) (#match? @name "^[$]"))
|
|
36
|
-
(placeholder (identifier) @name)
|
|
37
|
-
(class_selector (class_name) @name)
|
|
38
|
-
(id_selector (id_name) @name)
|
|
39
|
-
`,
|
|
40
|
-
importBindings: `
|
|
41
|
-
(import_statement (string_value) @from) @stmt
|
|
42
|
-
(import_statement (_ (string_value) @from)) @stmt
|
|
43
|
-
(use_statement (string_value) @from) @stmt
|
|
44
|
-
(use_statement (_ (string_value) @from)) @stmt
|
|
45
|
-
(forward_statement (string_value) @from) @stmt
|
|
46
|
-
(forward_statement (_ (string_value) @from)) @stmt
|
|
47
|
-
`,
|
|
44
|
+
locals: `${sassLocalQueries}${cssGraph.locals}`,
|
|
45
|
+
importBindings: `${cssGraph.importBindings}${sassImportQueries}`,
|
|
48
46
|
},
|
|
49
47
|
nodeTypes: {
|
|
50
48
|
identifier: ["identifier", "variable", "class_name", "id_name", "property_name"],
|
|
51
49
|
},
|
|
52
|
-
classifyDefinition: (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
classifyDefinition: classifyByParentType({
|
|
51
|
+
mixin_statement: "function",
|
|
52
|
+
function_statement: "function",
|
|
53
|
+
}),
|
|
54
|
+
isDeclarationName: (node) => isNameFieldOnParent(node, ["mixin_statement", "function_statement"]) ||
|
|
55
|
+
(node.parent?.type === "declaration" && node.type === "property_name" && node.text.startsWith("$")) ||
|
|
56
|
+
// A placeholder in a selector list is a declaration. `@extend %name` is a use;
|
|
57
|
+
// the pinned grammar currently wraps that form in ERROR rather than extend_statement.
|
|
58
|
+
(node.parent?.type === "placeholder" && node.parent.parent?.type === "selectors") ||
|
|
59
|
+
matchesParentTypePairs(node, [
|
|
60
|
+
["class_selector", "class_name"],
|
|
61
|
+
["id_selector", "id_name"],
|
|
62
|
+
]),
|
|
63
|
+
scopeDeclarationNames: "all",
|
|
58
64
|
};
|
|
59
65
|
registerLanguage(SCSS_DEF);
|
|
60
66
|
//# sourceMappingURL=scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/languages/definitions/scss.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/languages/definitions/scss.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;AAEhC,MAAM,iBAAiB,GAAG;4CACkB,IAAI,MAAM,IAAI;sCACpB,IAAI,KAAK,IAAI;yCACV,IAAI,MAAM,IAAI;0CACb,IAAI,KAAK,IAAI;6CACV,IAAI,MAAM,IAAI;KACtD,CAAC;AAEN,MAAM,gBAAgB,GAAG;;;;;KAKpB,CAAC;AAEN,MAAM,CAAC,MAAM,QAAQ,GAAuB;IAC1C,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,qBAAqB,EAAE,IAAI;IAC3B,SAAS,EAAE;QACT,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,oBAAoB,EAAE,SAAS,EAAE,UAAU,EAAE;YACrD,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,EAAE,iBAAiB,EAAE,oBAAoB,CAAC;QAClE,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;KACpC;IACD,KAAK,EAAE;QACL,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,GAAG,iBAAiB,EAAE;QAClD,OAAO,EAAE;;;;;KAKR;QACD,MAAM,EAAE,GAAG,gBAAgB,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC/C,cAAc,EAAE,GAAG,QAAQ,CAAC,cAAc,GAAG,iBAAiB,EAAE;KACjE;IACD,SAAS,EAAE;QACT,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,CAAC;KACjF;IACD,kBAAkB,EAAE,oBAAoB,CAAC;QACvC,eAAe,EAAE,UAAU;QAC3B,kBAAkB,EAAE,UAAU;KAC/B,CAAC;IACF,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,mBAAmB,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;QACpE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnG,+EAA+E;QAC/E,sFAAsF;QACtF,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC;QACjF,sBAAsB,CAAC,IAAI,EAAE;YAC3B,CAAC,gBAAgB,EAAE,YAAY,CAAC;YAChC,CAAC,aAAa,EAAE,SAAS,CAAC;SAC3B,CAAC;IACJ,qBAAqB,EAAE,KAAK;CAC7B,CAAC;AACF,gBAAgB,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sfc-graph.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/sfc-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAUtD,4EAA4E;AAC5E,wBAAgB,sBAAsB,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAOpE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { graphCapture } from "../graph-captures.js";
|
|
2
|
+
const from = graphCapture("from");
|
|
3
|
+
const stmt = graphCapture("stmt");
|
|
4
|
+
const sfcExternalScriptQuery = `
|
|
5
|
+
(script_element (start_tag (attribute (attribute_name) @attr (#eq? @attr "src") (quoted_attribute_value (attribute_value) ${from})))) ${stmt}
|
|
6
|
+
`;
|
|
7
|
+
/** Shared Vue/Svelte graph: only the external `<script src>` asset edge. */
|
|
8
|
+
export function sfcExternalScriptGraph() {
|
|
9
|
+
return {
|
|
10
|
+
imports: sfcExternalScriptQuery,
|
|
11
|
+
exports: "",
|
|
12
|
+
locals: "",
|
|
13
|
+
importBindings: sfcExternalScriptQuery,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=sfc-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sfc-graph.js","sourceRoot":"","sources":["../../../src/languages/definitions/sfc-graph.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,sBAAsB,GAAG;kIACmG,IAAI,QAAQ,IAAI;KAC7I,CAAC;AAEN,4EAA4E;AAC5E,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,sBAAsB;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { SyntaxNodeLike } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Hook shapes repeated across the language definitions: `isDeclarationName` as a
|
|
4
|
+
* parent-name-field check, `classifyDefinition` as a parent-type switch, and the scope
|
|
5
|
+
* predicates as node-type unions. Each definition supplies only its per-language data.
|
|
6
|
+
*/
|
|
7
|
+
/** True when `node` is the child named `field` of a parent whose type is listed. */
|
|
8
|
+
export declare function isNameFieldOnParent(node: SyntaxNodeLike, parentTypes: readonly string[], field?: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* True when `node` is the `name` child of a listed parent type, falling back to the
|
|
11
|
+
* `property` child for grammars that spell class fields either way.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isNameOrPropertyFieldOnParent(node: SyntaxNodeLike, parentTypes: readonly string[]): boolean;
|
|
14
|
+
/** True when `node`'s direct parent has one of the listed types. */
|
|
15
|
+
export declare function hasParentType(node: SyntaxNodeLike, parentTypes: readonly string[]): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* True when `node`'s parent type and its own type form one of the listed pairs, for
|
|
18
|
+
* grammars that name declarations positionally instead of through a `name` field.
|
|
19
|
+
*/
|
|
20
|
+
export declare function matchesParentTypePairs(node: SyntaxNodeLike, pairs: readonly (readonly [string, string])[]): boolean;
|
|
21
|
+
/** A classification entry is a kind, or a kind gated on the node being the parent's named field. */
|
|
22
|
+
export type ParentTypeClassification = string | {
|
|
23
|
+
kind: string;
|
|
24
|
+
nameField?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Builds `classifyDefinition` from a parent-type map. Non-matching parents (or a name-field
|
|
28
|
+
* entry whose node is not the field child) classify as `fallback`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function classifyByParentType(mapping: Readonly<Record<string, ParentTypeClassification>>, fallback?: string): (node: SyntaxNodeLike) => string;
|
|
31
|
+
/** Node-type membership predicate for `createsBlockScope` / `createsFunctionScope`. */
|
|
32
|
+
export declare function nodeTypeIn(types: readonly string[]): (node: SyntaxNodeLike) => boolean;
|
|
33
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AAEH,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,SAAS,GAAG,OAAO,CAIjH;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAK3G;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAE3F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,OAAO,CAInH;AAED,oGAAoG;AACpG,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,EAC3D,QAAQ,SAAa,GACpB,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAYlC;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAGtF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook shapes repeated across the language definitions: `isDeclarationName` as a
|
|
3
|
+
* parent-name-field check, `classifyDefinition` as a parent-type switch, and the scope
|
|
4
|
+
* predicates as node-type unions. Each definition supplies only its per-language data.
|
|
5
|
+
*/
|
|
6
|
+
/** True when `node` is the child named `field` of a parent whose type is listed. */
|
|
7
|
+
export function isNameFieldOnParent(node, parentTypes, field = "name") {
|
|
8
|
+
const parent = node.parent;
|
|
9
|
+
if (!parent || !parentTypes.includes(parent.type))
|
|
10
|
+
return false;
|
|
11
|
+
return parent.childForFieldName(field)?.id === node.id;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* True when `node` is the `name` child of a listed parent type, falling back to the
|
|
15
|
+
* `property` child for grammars that spell class fields either way.
|
|
16
|
+
*/
|
|
17
|
+
export function isNameOrPropertyFieldOnParent(node, parentTypes) {
|
|
18
|
+
const parent = node.parent;
|
|
19
|
+
if (!parent || !parentTypes.includes(parent.type))
|
|
20
|
+
return false;
|
|
21
|
+
const name = parent.childForFieldName("name") ?? parent.childForFieldName("property");
|
|
22
|
+
return name?.id === node.id;
|
|
23
|
+
}
|
|
24
|
+
/** True when `node`'s direct parent has one of the listed types. */
|
|
25
|
+
export function hasParentType(node, parentTypes) {
|
|
26
|
+
return parentTypes.includes(node.parent?.type ?? "");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* True when `node`'s parent type and its own type form one of the listed pairs, for
|
|
30
|
+
* grammars that name declarations positionally instead of through a `name` field.
|
|
31
|
+
*/
|
|
32
|
+
export function matchesParentTypePairs(node, pairs) {
|
|
33
|
+
const parentType = node.parent?.type;
|
|
34
|
+
if (!parentType)
|
|
35
|
+
return false;
|
|
36
|
+
return pairs.some(([parent, child]) => parent === parentType && child === node.type);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Builds `classifyDefinition` from a parent-type map. Non-matching parents (or a name-field
|
|
40
|
+
* entry whose node is not the field child) classify as `fallback`.
|
|
41
|
+
*/
|
|
42
|
+
export function classifyByParentType(mapping, fallback = "variable") {
|
|
43
|
+
return (node) => {
|
|
44
|
+
const parent = node.parent;
|
|
45
|
+
if (!parent)
|
|
46
|
+
return fallback;
|
|
47
|
+
const entry = mapping[parent.type];
|
|
48
|
+
if (entry === undefined)
|
|
49
|
+
return fallback;
|
|
50
|
+
if (typeof entry === "string")
|
|
51
|
+
return entry;
|
|
52
|
+
if (entry.nameField !== undefined && parent.childForFieldName(entry.nameField)?.id !== node.id) {
|
|
53
|
+
return fallback;
|
|
54
|
+
}
|
|
55
|
+
return entry.kind;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** Node-type membership predicate for `createsBlockScope` / `createsFunctionScope`. */
|
|
59
|
+
export function nodeTypeIn(types) {
|
|
60
|
+
const nodeTypes = new Set(types);
|
|
61
|
+
return (node) => nodeTypes.has(node.type);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/languages/definitions/shared.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,IAAoB,EAAE,WAA8B,EAAE,KAAK,GAAG,MAAM;IACtG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAoB,EAAE,WAA8B;IAChG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACtF,OAAO,IAAI,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAoB,EAAE,WAA8B;IAChF,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAoB,EAAE,KAA6C;IACxG,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;IACrC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC;AAKD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA2D,EAC3D,QAAQ,GAAG,UAAU;IAErB,OAAO,CAAC,IAAoB,EAAU,EAAE;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YAC/F,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,KAAwB;IACjD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,CAAC,IAAoB,EAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,eAAO,MAAM,OAAO,EAAE,kBA+BrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../src/languages/definitions/sql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,OAAO,GAAuB;IACzC,EAAE,EAAE,KAAK;IACT,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAChD,SAAS,EAAE;QACT,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE;YACvE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE;YACtE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,4BAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE;YACnF,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE;YACvE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE;YAC3E,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE;YAC1E,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE;YACrE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE;YACnE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE;YAClE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE;YACnE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE;SAClE;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,EAAE;KACnB;IACD,0BAA0B,EAAE,KAAK;CAClC,CAAC;AAEF,gBAAgB,CAAC,OAAO,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../src/languages/definitions/sql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,OAAO,GAAuB;IACzC,EAAE,EAAE,KAAK;IACT,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAChD,SAAS,EAAE;QACT,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE;YACvE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE;YACtE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,4BAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE;YACnF,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE;YACvE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE;YAC3E,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE;YAC1E,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE;YACrE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE;YACnE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE;YAClE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE;YACnE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;YAChE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE;SAClE;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,KAAK,EAAE;QACL,qEAAqE;QACrE,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,EAAE;KACnB;IACD,0BAA0B,EAAE,KAAK;CAClC,CAAC;AAEF,gBAAgB,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,UAAU,EAAE,kBAgBxB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
+
import { sfcExternalScriptGraph } from "./sfc-graph.js";
|
|
2
3
|
export const SVELTE_DEF = {
|
|
3
4
|
id: "svelte",
|
|
4
5
|
extensions: [".svelte"],
|
|
@@ -11,16 +12,7 @@ export const SVELTE_DEF = {
|
|
|
11
12
|
splitPoints: ["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":"svelte.js","sourceRoot":"","sources":["../../../src/languages/definitions/svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"svelte.js","sourceRoot":"","sources":["../../../src/languages/definitions/svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,UAAU,GAAuB;IAC5C,EAAE,EAAE,QAAQ;IACZ,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,SAAS,EAAE;QACT,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC/C,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE;YAC7C,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;SAC1C;QACD,WAAW,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;QAChD,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,UAAU,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/swift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/swift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,SAAS,EAAE,kBAgPvB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
+
import { isNameFieldOnParent, nodeTypeIn } from "./shared.js";
|
|
2
3
|
export const SWIFT_DEF = {
|
|
3
4
|
id: "swift",
|
|
4
5
|
extensions: [".swift"],
|
|
@@ -76,8 +77,12 @@ export const SWIFT_DEF = {
|
|
|
76
77
|
comments: ["comment", "multiline_comment"],
|
|
77
78
|
},
|
|
78
79
|
graph: {
|
|
80
|
+
// Pinned tree-sitter-swift: the path is always one `identifier` node, including
|
|
81
|
+
// dotted paths (`Foundation.NSString`). Kind keywords (`class`, `struct`, `func`,
|
|
82
|
+
// `enum`, `typealias`) are anonymous. `simple_identifier` is not a child of
|
|
83
|
+
// `import_declaration` (Impossible pattern). No alias or wildcard node.
|
|
79
84
|
imports: `
|
|
80
|
-
(import_declaration (identifier) @
|
|
85
|
+
(import_declaration (identifier) @from) @stmt
|
|
81
86
|
`,
|
|
82
87
|
exports: `
|
|
83
88
|
(source_file (class_declaration declaration_kind: "class" name: (_) @name))
|
|
@@ -138,6 +143,7 @@ export const SWIFT_DEF = {
|
|
|
138
143
|
(macro_declaration (simple_identifier) @name)
|
|
139
144
|
(operator_declaration [(custom_operator) (simple_identifier) (bang)] @name)
|
|
140
145
|
`,
|
|
146
|
+
// Same path node as `imports`; Swift has no import alias or star token.
|
|
141
147
|
importBindings: `
|
|
142
148
|
(import_declaration (identifier) @from) @stmt
|
|
143
149
|
`,
|
|
@@ -179,21 +185,24 @@ export const SWIFT_DEF = {
|
|
|
179
185
|
const parent = node.parent;
|
|
180
186
|
if (!parent)
|
|
181
187
|
return false;
|
|
182
|
-
if (
|
|
188
|
+
if (isNameFieldOnParent(node, ["class_declaration"]))
|
|
183
189
|
return true;
|
|
190
|
+
// Extension names are wrapped in a user_type node
|
|
191
|
+
// (`extension Container { ... }` -> name: (user_type (type_identifier))).
|
|
184
192
|
if (parent.type === "user_type" &&
|
|
185
193
|
parent.parent?.type === "class_declaration" &&
|
|
186
194
|
parent.parent.childForFieldName("name")?.id === parent.id)
|
|
187
195
|
return true;
|
|
188
|
-
if (
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
196
|
+
if (isNameFieldOnParent(node, [
|
|
197
|
+
"protocol_declaration",
|
|
198
|
+
"enum_entry",
|
|
199
|
+
"function_declaration",
|
|
200
|
+
"typealias_declaration",
|
|
201
|
+
"associatedtype_declaration",
|
|
202
|
+
"parameter",
|
|
203
|
+
"protocol_function_declaration",
|
|
204
|
+
"protocol_property_declaration",
|
|
205
|
+
]))
|
|
197
206
|
return true;
|
|
198
207
|
if (parent.type === "macro_declaration" && node.type === "simple_identifier")
|
|
199
208
|
return true;
|
|
@@ -206,30 +215,27 @@ export const SWIFT_DEF = {
|
|
|
206
215
|
return true;
|
|
207
216
|
if (parent.type === "subscript_declaration" && node.type === "subscript")
|
|
208
217
|
return true;
|
|
209
|
-
|
|
210
|
-
return true;
|
|
211
|
-
if (parent.type === "protocol_function_declaration" && parent.childForFieldName("name")?.id === node.id)
|
|
212
|
-
return true;
|
|
213
|
-
if (parent.type === "protocol_property_declaration" && parent.childForFieldName("name")?.id === node.id)
|
|
214
|
-
return true;
|
|
215
|
-
if (parent.type === "pattern" &&
|
|
218
|
+
return (parent.type === "pattern" &&
|
|
216
219
|
parent.childForFieldName("bound_identifier")?.id === node.id &&
|
|
217
|
-
(parent.parent?.type === "property_declaration" || parent.parent?.type === "protocol_property_declaration"))
|
|
218
|
-
return true;
|
|
219
|
-
return false;
|
|
220
|
+
(parent.parent?.type === "property_declaration" || parent.parent?.type === "protocol_property_declaration"));
|
|
220
221
|
},
|
|
221
222
|
scopeDeclarationNames: "all",
|
|
222
|
-
createsFunctionScope: (
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
223
|
+
createsFunctionScope: nodeTypeIn([
|
|
224
|
+
"function_declaration",
|
|
225
|
+
"init_declaration",
|
|
226
|
+
"deinit_declaration",
|
|
227
|
+
"subscript_declaration",
|
|
228
|
+
]),
|
|
229
|
+
createsBlockScope: nodeTypeIn([
|
|
230
|
+
"function_body",
|
|
231
|
+
"class_body",
|
|
232
|
+
"protocol_body",
|
|
233
|
+
"enum_class_body",
|
|
234
|
+
"catch_block",
|
|
235
|
+
"willset_didset_block",
|
|
236
|
+
]),
|
|
232
237
|
supportsCrossModuleSymbols: true,
|
|
238
|
+
membersAreImplicitlyInScope: true,
|
|
233
239
|
exportScopeBlockers: ["function_body", "lambda_literal"],
|
|
234
240
|
};
|
|
235
241
|
registerLanguage(SWIFT_DEF);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../src/languages/definitions/swift.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../src/languages/definitions/swift.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,aAAa,CAAC;AA4NtE,eAAO,MAAM,cAAc,EAAE,kBAa5B,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,kBAoBrB,CAAC"}
|