@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
|
@@ -14,12 +14,7 @@ export const cFamilyControlSplitPoints = [
|
|
|
14
14
|
"switch_statement",
|
|
15
15
|
"case_statement",
|
|
16
16
|
];
|
|
17
|
-
export const
|
|
18
|
-
(preproc_include path: (string_literal) @mod) @stmt
|
|
19
|
-
(preproc_include path: (system_lib_string) @mod) @stmt
|
|
20
|
-
(preproc_include path: (identifier) @mod) @stmt
|
|
21
|
-
`;
|
|
22
|
-
export const cFamilyIncludeBindingsQuery = `
|
|
17
|
+
export const cFamilyIncludeQuery = `
|
|
23
18
|
(preproc_include path: (string_literal) @from) @stmt
|
|
24
19
|
(preproc_include path: (system_lib_string) @from) @stmt
|
|
25
20
|
(preproc_include path: (identifier) @from) @stmt
|
|
@@ -111,16 +106,16 @@ export function createCFamilyLanguageDefinition(options) {
|
|
|
111
106
|
comments: ["comment"],
|
|
112
107
|
},
|
|
113
108
|
graph: {
|
|
114
|
-
imports:
|
|
109
|
+
imports: cFamilyIncludeQuery,
|
|
115
110
|
exports: joinQueryPatterns([
|
|
116
111
|
...cFamilyCoreExportQueries(graphFunctionNameQuery),
|
|
117
|
-
...(options.
|
|
112
|
+
...(options.extraSymbolQueries ?? []),
|
|
118
113
|
]),
|
|
119
114
|
locals: joinQueryPatterns([
|
|
120
115
|
...cFamilyCoreLocalQueries(graphFunctionNameQuery),
|
|
121
|
-
...(options.
|
|
116
|
+
...(options.extraSymbolQueries ?? []),
|
|
122
117
|
]),
|
|
123
|
-
importBindings:
|
|
118
|
+
importBindings: cFamilyIncludeQuery,
|
|
124
119
|
},
|
|
125
120
|
nodeTypes: options.nodeTypes,
|
|
126
121
|
classifyDefinition: options.classifyDefinition,
|
|
@@ -129,10 +124,15 @@ export function createCFamilyLanguageDefinition(options) {
|
|
|
129
124
|
createsFunctionScope: options.createsFunctionScope,
|
|
130
125
|
createsBlockScope: (node) => node.type === "compound_statement",
|
|
131
126
|
supportsCrossModuleSymbols: true,
|
|
132
|
-
// A name declared inside a function body
|
|
133
|
-
//
|
|
134
|
-
|
|
127
|
+
// A name declared inside a function body or a class/struct/union body is not a module
|
|
128
|
+
// export. C and C++ spell that type body `field_declaration_list`, not `class_body`.
|
|
129
|
+
// The exports query cannot anchor on `translation_unit` because include guards nest
|
|
130
|
+
// every header declaration.
|
|
131
|
+
exportScopeBlockers: ["compound_statement", "field_declaration_list"],
|
|
135
132
|
usesQueryDrivenLocals: options.usesQueryDrivenLocals || false,
|
|
133
|
+
...(options.membersAreImplicitlyInScope !== undefined
|
|
134
|
+
? { membersAreImplicitlyInScope: options.membersAreImplicitlyInScope }
|
|
135
|
+
: {}),
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
138
|
export function isWithin(node, ancestor) {
|
|
@@ -159,6 +159,44 @@ export function findAncestor(node, types) {
|
|
|
159
159
|
export function isInParameterList(node) {
|
|
160
160
|
return !!findAncestor(node, cFamilyParameterListTypes);
|
|
161
161
|
}
|
|
162
|
+
/** True when `node` sits inside the `name` field of a parent of one of the listed types. */
|
|
163
|
+
export function isSpecifierNameField(node, specifierTypes) {
|
|
164
|
+
const parent = node.parent;
|
|
165
|
+
return !!parent && specifierTypes.includes(parent.type) && isInField(node, parent, "name");
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Declarator-chain and preprocessor declaration checks shared by C and C++: parameter, field,
|
|
169
|
+
* initializer, typedef, function, and plain declarations name their declarator, and enumerator
|
|
170
|
+
* and preprocessor definitions carry a `name` field.
|
|
171
|
+
*/
|
|
172
|
+
export function cFamilyIsDeclarationName(node) {
|
|
173
|
+
if (isInAncestorDeclarator(node, new Set(["parameter_declaration"])) ||
|
|
174
|
+
isInAncestorDeclarator(node, new Set(["field_declaration"])) ||
|
|
175
|
+
isInAncestorDeclarator(node, new Set(["init_declarator"])) ||
|
|
176
|
+
isInAncestorDeclarator(node, new Set(["type_definition"])))
|
|
177
|
+
return true;
|
|
178
|
+
if (isInAncestorDeclarator(node, new Set(["function_definition"])) && !isInParameterList(node))
|
|
179
|
+
return true;
|
|
180
|
+
if (isInAncestorDeclarator(node, new Set(["declaration"])) && !isInParameterList(node))
|
|
181
|
+
return true;
|
|
182
|
+
return isSpecifierNameField(node, ["enumerator", "preproc_def", "preproc_function_def"]);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Container-walk classification shared by C and C++: a name inside a function body is a
|
|
186
|
+
* function, one inside a declaration with a function declarator is a function, and
|
|
187
|
+
* `typedef int (*Comparator)(int, int);` wraps the typedef name in a declarator chain, so the
|
|
188
|
+
* direct-parent checks above cannot see it.
|
|
189
|
+
*/
|
|
190
|
+
export function cFamilyContainerClassifyDefinition(node) {
|
|
191
|
+
const container = findAncestor(node, cFamilyContainerTypes);
|
|
192
|
+
if (container?.type === "function_definition")
|
|
193
|
+
return "function";
|
|
194
|
+
if (container?.type === "declaration" && isFunctionDeclarator(node))
|
|
195
|
+
return "function";
|
|
196
|
+
if (container?.type === "type_definition")
|
|
197
|
+
return "type";
|
|
198
|
+
return "variable";
|
|
199
|
+
}
|
|
162
200
|
function resolveDeclaratorRoot(ancestor) {
|
|
163
201
|
let declaratorNode = ancestor.childForFieldName("declarator");
|
|
164
202
|
if (!declaratorNode)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c-family.js","sourceRoot":"","sources":["../../../src/languages/definitions/c-family.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC3C,qBAAqB;IACrB,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,gBAAgB;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"c-family.js","sourceRoot":"","sources":["../../../src/languages/definitions/c-family.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/c.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"c.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/c.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,KAAK,0CAqChB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
-
import {
|
|
2
|
+
import { nodeTypeIn } from "./shared.js";
|
|
3
|
+
import { cFamilyBlock, cFamilyContainerClassifyDefinition, cFamilyFunctionBlock, cFamilyTypeIdentifierBlock, cFamilyIsDeclarationName, createCFamilyLanguageDefinition, isInField, isSpecifierNameField, } from "./c-family.js";
|
|
3
4
|
export const C_DEF = createCFamilyLanguageDefinition({
|
|
4
5
|
id: "c",
|
|
5
6
|
extensions: [".c", ".h", ".i"],
|
|
@@ -14,13 +15,7 @@ export const C_DEF = createCFamilyLanguageDefinition({
|
|
|
14
15
|
cFamilyBlock("preproc_def", "name: (identifier) @chunk.name", "macro"),
|
|
15
16
|
cFamilyBlock("preproc_function_def", "name: (identifier) @chunk.name", "macro"),
|
|
16
17
|
],
|
|
17
|
-
|
|
18
|
-
`(union_specifier name: (type_identifier) @name)`,
|
|
19
|
-
`(enumerator name: (identifier) @name)`,
|
|
20
|
-
`(preproc_def name: (identifier) @name)`,
|
|
21
|
-
`(preproc_function_def name: (identifier) @name)`,
|
|
22
|
-
],
|
|
23
|
-
extraLocalQueries: [
|
|
18
|
+
extraSymbolQueries: [
|
|
24
19
|
`(union_specifier name: (type_identifier) @name)`,
|
|
25
20
|
`(enumerator name: (identifier) @name)`,
|
|
26
21
|
`(preproc_def name: (identifier) @name)`,
|
|
@@ -41,42 +36,11 @@ export const C_DEF = createCFamilyLanguageDefinition({
|
|
|
41
36
|
return "class";
|
|
42
37
|
if (parent.type === "type_definition" && isInField(node, parent, "declarator"))
|
|
43
38
|
return "type";
|
|
44
|
-
|
|
45
|
-
if (container?.type === "function_definition")
|
|
46
|
-
return "function";
|
|
47
|
-
if (container?.type === "declaration" && isFunctionDeclarator(node))
|
|
48
|
-
return "function";
|
|
49
|
-
// `typedef int (*Comparator)(int, int);` and `typedef int *IntPtr;` wrap the typedef name in a
|
|
50
|
-
// declarator chain, so the direct-parent check above cannot see it.
|
|
51
|
-
if (container?.type === "type_definition")
|
|
52
|
-
return "type";
|
|
53
|
-
return "variable";
|
|
54
|
-
},
|
|
55
|
-
isDeclarationName: (node) => {
|
|
56
|
-
const parent = node.parent;
|
|
57
|
-
if (!parent)
|
|
58
|
-
return false;
|
|
59
|
-
if ((parent.type === "struct_specifier" || parent.type === "union_specifier" || parent.type === "enum_specifier") &&
|
|
60
|
-
isInField(node, parent, "name"))
|
|
61
|
-
return true;
|
|
62
|
-
if (isInAncestorDeclarator(node, new Set(["parameter_declaration"])) ||
|
|
63
|
-
isInAncestorDeclarator(node, new Set(["field_declaration"])) ||
|
|
64
|
-
isInAncestorDeclarator(node, new Set(["init_declarator"])) ||
|
|
65
|
-
isInAncestorDeclarator(node, new Set(["type_definition"])))
|
|
66
|
-
return true;
|
|
67
|
-
if (isInAncestorDeclarator(node, new Set(["function_definition"])) && !isInParameterList(node))
|
|
68
|
-
return true;
|
|
69
|
-
if (isInAncestorDeclarator(node, new Set(["declaration"])) && !isInParameterList(node))
|
|
70
|
-
return true;
|
|
71
|
-
if (parent.type === "enumerator" && isInField(node, parent, "name"))
|
|
72
|
-
return true;
|
|
73
|
-
if (parent.type === "preproc_def" && isInField(node, parent, "name"))
|
|
74
|
-
return true;
|
|
75
|
-
if (parent.type === "preproc_function_def" && isInField(node, parent, "name"))
|
|
76
|
-
return true;
|
|
77
|
-
return false;
|
|
39
|
+
return cFamilyContainerClassifyDefinition(node);
|
|
78
40
|
},
|
|
79
|
-
|
|
41
|
+
isDeclarationName: (node) => isSpecifierNameField(node, ["struct_specifier", "union_specifier", "enum_specifier"]) ||
|
|
42
|
+
cFamilyIsDeclarationName(node),
|
|
43
|
+
createsFunctionScope: nodeTypeIn(["function_definition"]),
|
|
80
44
|
});
|
|
81
45
|
registerLanguage(C_DEF);
|
|
82
46
|
//# sourceMappingURL=c.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c.js","sourceRoot":"","sources":["../../../src/languages/definitions/c.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"c.js","sourceRoot":"","sources":["../../../src/languages/definitions/c.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,kCAAkC,EAClC,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,EAC/B,SAAS,EACT,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,KAAK,GAAG,+BAA+B,CAAC;IACnD,EAAE,EAAE,GAAG;IACP,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9B,sBAAsB,EAAE,KAAK;IAC7B,qBAAqB,EAAE,IAAI;IAC3B,MAAM,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC7B,oBAAoB,CAAC,iBAAiB,CAAC;QACvC,0BAA0B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;QACxD,0BAA0B,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACtD,0BAA0B,CAAC,gBAAgB,EAAE,MAAM,CAAC;QACpD,YAAY,CAAC,iBAAiB,EAAE,2CAA2C,EAAE,MAAM,CAAC;QACpF,YAAY,CAAC,aAAa,EAAE,gCAAgC,EAAE,OAAO,CAAC;QACtE,YAAY,CAAC,sBAAsB,EAAE,gCAAgC,EAAE,OAAO,CAAC;KAChF;IACD,kBAAkB,EAAE;QAClB,iDAAiD;QACjD,uCAAuC;QACvC,wCAAwC;QACxC,iDAAiD;KAClD;IACD,SAAS,EAAE;QACT,UAAU,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;QACjE,kBAAkB,EAAE,CAAC,kBAAkB,CAAC;QACxC,gBAAgB,EAAE,kBAAkB;KACrC;IACD,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,OAAO,UAAU,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,MAAM,CAAC;QACpD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,OAAO,CAAC;QAC5F,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC;QAC9F,OAAO,kCAAkC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,oBAAoB,CAAC,IAAI,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QACrF,wBAAwB,CAAC,IAAI,CAAC;IAChC,oBAAoB,EAAE,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH,gBAAgB,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/cpp.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/cpp.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,OAAO,0CAyFlB,CAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
-
import {
|
|
2
|
+
import { nodeTypeIn } from "./shared.js";
|
|
3
|
+
import { cFamilyBlock, cFamilyContainerClassifyDefinition, cFamilyControlSplitPoints, cFamilyFunctionBlock, cFamilyIsDeclarationName, cFamilyTypeIdentifierBlock, createCFamilyLanguageDefinition, findAncestor, isInField, isSpecifierNameField, } from "./c-family.js";
|
|
3
4
|
export const CPP_DEF = createCFamilyLanguageDefinition({
|
|
4
5
|
id: "cpp",
|
|
5
|
-
|
|
6
|
+
// Module-interface units use `.cppm`/`.ixx`/`.mxx` by convention; without them a declared
|
|
7
|
+
// `export module foo;` is never discovered, so a first-party `import foo;` stays external.
|
|
8
|
+
extensions: [".cc", ".cpp", ".cxx", ".c++", ".hpp", ".hh", ".hxx", ".ipp", ".tpp", ".inl", ".cppm", ".ixx", ".mxx"],
|
|
6
9
|
includeFieldIdentifier: true,
|
|
7
10
|
usesQueryDrivenLocals: true,
|
|
11
|
+
membersAreImplicitlyInScope: true,
|
|
8
12
|
blocks: (functionNameQuery) => [
|
|
9
13
|
cFamilyFunctionBlock(functionNameQuery),
|
|
10
14
|
cFamilyTypeIdentifierBlock("class_specifier", "class"),
|
|
@@ -15,7 +19,7 @@ export const CPP_DEF = createCFamilyLanguageDefinition({
|
|
|
15
19
|
cFamilyBlock("type_definition", "declarator: (type_identifier) @chunk.name", "type"),
|
|
16
20
|
],
|
|
17
21
|
splitPoints: [...cFamilyControlSplitPoints, "try_statement", "catch_clause"],
|
|
18
|
-
|
|
22
|
+
extraSymbolQueries: [
|
|
19
23
|
`(class_specifier name: (type_identifier) @name)`,
|
|
20
24
|
`(class_specifier name: (template_type name: (type_identifier) @name))`,
|
|
21
25
|
`(union_specifier name: (type_identifier) @name)`,
|
|
@@ -31,23 +35,6 @@ export const CPP_DEF = createCFamilyLanguageDefinition({
|
|
|
31
35
|
`(class_specifier body: (field_declaration_list (declaration declarator: (function_declarator declarator: (destructor_name) @name))))`,
|
|
32
36
|
`(module_declaration name: (module_name) @name)`,
|
|
33
37
|
],
|
|
34
|
-
extraLocalQueries: [
|
|
35
|
-
`(class_specifier name: (type_identifier) @name)`,
|
|
36
|
-
`(class_specifier name: (template_type name: (type_identifier) @name))`,
|
|
37
|
-
`(enum_specifier name: (type_identifier) @name)`,
|
|
38
|
-
`(union_specifier name: (type_identifier) @name)`,
|
|
39
|
-
`(enumerator name: (identifier) @name)`,
|
|
40
|
-
`(namespace_definition name: (namespace_identifier) @name)`,
|
|
41
|
-
`(namespace_definition name: (nested_namespace_specifier (namespace_identifier) @name))`,
|
|
42
|
-
`(alias_declaration name: (type_identifier) @name)`,
|
|
43
|
-
`(concept_definition name: (identifier) @name)`,
|
|
44
|
-
`(preproc_def name: (identifier) @name)`,
|
|
45
|
-
`(preproc_function_def name: (identifier) @name)`,
|
|
46
|
-
`(class_specifier body: (field_declaration_list (field_declaration declarator: (function_declarator declarator: (field_identifier) @name))))`,
|
|
47
|
-
`(class_specifier body: (field_declaration_list (field_declaration declarator: (reference_declarator (function_declarator declarator: (operator_name) @name)))))`,
|
|
48
|
-
`(class_specifier body: (field_declaration_list (declaration declarator: (function_declarator declarator: (destructor_name) @name))))`,
|
|
49
|
-
`(module_declaration name: (module_name) @name)`,
|
|
50
|
-
],
|
|
51
38
|
nodeTypes: {
|
|
52
39
|
identifier: ["identifier", "field_identifier", "type_identifier", "namespace_identifier"],
|
|
53
40
|
propertyIdentifier: ["field_identifier", "identifier"],
|
|
@@ -74,27 +61,14 @@ export const CPP_DEF = createCFamilyLanguageDefinition({
|
|
|
74
61
|
if (parent.type === "alias_declaration" ||
|
|
75
62
|
(parent.type === "type_definition" && isInField(node, parent, "declarator")))
|
|
76
63
|
return "type";
|
|
77
|
-
|
|
78
|
-
if (container?.type === "function_definition")
|
|
79
|
-
return "function";
|
|
80
|
-
if (container?.type === "declaration" && isFunctionDeclarator(node))
|
|
81
|
-
return "function";
|
|
82
|
-
// `typedef int (*Comparator)(int, int);` wraps the typedef name in a declarator chain, so the
|
|
83
|
-
// direct-parent check above cannot see it.
|
|
84
|
-
if (container?.type === "type_definition")
|
|
85
|
-
return "type";
|
|
86
|
-
return "variable";
|
|
64
|
+
return cFamilyContainerClassifyDefinition(node);
|
|
87
65
|
},
|
|
88
66
|
isDeclarationName: (node) => {
|
|
67
|
+
if (isSpecifierNameField(node, ["class_specifier", "struct_specifier", "union_specifier", "enum_specifier"]))
|
|
68
|
+
return true;
|
|
89
69
|
const parent = node.parent;
|
|
90
70
|
if (!parent)
|
|
91
71
|
return false;
|
|
92
|
-
if ((parent.type === "class_specifier" ||
|
|
93
|
-
parent.type === "struct_specifier" ||
|
|
94
|
-
parent.type === "union_specifier" ||
|
|
95
|
-
parent.type === "enum_specifier") &&
|
|
96
|
-
isInField(node, parent, "name"))
|
|
97
|
-
return true;
|
|
98
72
|
if (parent.type === "namespace_definition" && isInField(node, parent, "name"))
|
|
99
73
|
return true;
|
|
100
74
|
if (parent.type === "module_declaration" && isInField(node, parent, "name"))
|
|
@@ -113,40 +87,20 @@ export const CPP_DEF = createCFamilyLanguageDefinition({
|
|
|
113
87
|
return true;
|
|
114
88
|
if (parent.type === "concept_definition" && isInField(node, parent, "name"))
|
|
115
89
|
return true;
|
|
116
|
-
if (isInAncestorDeclarator(node, new Set(["parameter_declaration"])) ||
|
|
117
|
-
isInAncestorDeclarator(node, new Set(["field_declaration"])) ||
|
|
118
|
-
isInAncestorDeclarator(node, new Set(["init_declarator"])) ||
|
|
119
|
-
isInAncestorDeclarator(node, new Set(["type_definition"])))
|
|
120
|
-
return true;
|
|
121
|
-
if (isInAncestorDeclarator(node, new Set(["function_definition"])) && !isInParameterList(node))
|
|
122
|
-
return true;
|
|
123
|
-
if (isInAncestorDeclarator(node, new Set(["declaration"])) && !isInParameterList(node))
|
|
124
|
-
return true;
|
|
125
90
|
if (parent.type === "qualified_identifier" &&
|
|
126
91
|
parent.parent?.type === "using_declaration" &&
|
|
127
92
|
isInField(node, parent, "name"))
|
|
128
93
|
return true;
|
|
129
|
-
|
|
130
|
-
return true;
|
|
131
|
-
if (parent.type === "preproc_def" && isInField(node, parent, "name"))
|
|
132
|
-
return true;
|
|
133
|
-
if (parent.type === "preproc_function_def" && isInField(node, parent, "name"))
|
|
134
|
-
return true;
|
|
135
|
-
return false;
|
|
94
|
+
return cFamilyIsDeclarationName(node);
|
|
136
95
|
},
|
|
137
|
-
createsFunctionScope: (
|
|
96
|
+
createsFunctionScope: nodeTypeIn(["function_definition", "lambda_expression"]),
|
|
138
97
|
});
|
|
139
|
-
const
|
|
140
|
-
(import_declaration name: (module_name) @mod) @stmt
|
|
141
|
-
(import_declaration header: (string_literal) @mod) @stmt
|
|
142
|
-
(import_declaration header: (system_lib_string) @mod) @stmt
|
|
143
|
-
`;
|
|
144
|
-
const cppModuleBindingQuery = `
|
|
98
|
+
const cppModuleQuery = `
|
|
145
99
|
(import_declaration name: (module_name) @from) @stmt
|
|
146
100
|
(import_declaration header: (string_literal) @from) @stmt
|
|
147
101
|
(import_declaration header: (system_lib_string) @from) @stmt
|
|
148
102
|
`;
|
|
149
|
-
CPP_DEF.graph.imports +=
|
|
150
|
-
CPP_DEF.graph.importBindings +=
|
|
103
|
+
CPP_DEF.graph.imports += cppModuleQuery;
|
|
104
|
+
CPP_DEF.graph.importBindings += cppModuleQuery;
|
|
151
105
|
registerLanguage(CPP_DEF);
|
|
152
106
|
//# sourceMappingURL=cpp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../src/languages/definitions/cpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../src/languages/definitions/cpp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOtD,eAAO,MAAM,UAAU,EAAE,kBAuJxB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { registerLanguage } from "../registry.js";
|
|
2
|
+
import { classifyByParentType, isNameFieldOnParent, nodeTypeIn } from "./shared.js";
|
|
2
3
|
import { CSHARP_IDENTIFIER_FORMAT_SOURCE, hasNonAsciiCodePoint } from "../../util/identifiers.js";
|
|
3
4
|
const CSHARP_IDENTIFIER_FORMAT_PATTERN = new RegExp(`[${CSHARP_IDENTIFIER_FORMAT_SOURCE}]`, "gu");
|
|
4
5
|
export const CSHARP_DEF = {
|
|
@@ -59,9 +60,11 @@ export const CSHARP_DEF = {
|
|
|
59
60
|
comments: ["comment"],
|
|
60
61
|
},
|
|
61
62
|
graph: {
|
|
63
|
+
// Path node is `identifier` | `qualified_name` | `alias_qualified_name` (`global::System`).
|
|
64
|
+
// An identifier/qualified_name alternation misses `alias_qualified_name`, so keep `(_)`.
|
|
62
65
|
imports: `
|
|
63
|
-
(using_directive !name (_) @
|
|
64
|
-
(using_directive name: (identifier) (_) @
|
|
66
|
+
(using_directive !name (_) @from) @stmt
|
|
67
|
+
(using_directive name: (identifier) (_) @from) @stmt
|
|
65
68
|
`,
|
|
66
69
|
exports: `
|
|
67
70
|
(class_declaration name: (identifier) @name)
|
|
@@ -80,6 +83,8 @@ export const CSHARP_DEF = {
|
|
|
80
83
|
(class_declaration name: (identifier) @name)
|
|
81
84
|
(record_declaration name: (identifier) @name)
|
|
82
85
|
(record_declaration (parameter_list (parameter name: (identifier) @name)))
|
|
86
|
+
(method_declaration (parameter_list (parameter name: (identifier) @name)))
|
|
87
|
+
(constructor_declaration (parameter_list (parameter name: (identifier) @name)))
|
|
83
88
|
(struct_declaration name: (identifier) @name)
|
|
84
89
|
(interface_declaration name: (identifier) @name)
|
|
85
90
|
(enum_declaration name: (identifier) @name)
|
|
@@ -91,6 +96,8 @@ export const CSHARP_DEF = {
|
|
|
91
96
|
(variable_declarator name: (identifier) @name)
|
|
92
97
|
(declaration_pattern name: (identifier) @name)
|
|
93
98
|
`,
|
|
99
|
+
// extern alias has no path node in the grammar, so there is no @from.
|
|
100
|
+
// using path node: identifier | qualified_name | alias_qualified_name — keep `(_)`.
|
|
94
101
|
importBindings: `
|
|
95
102
|
(using_directive name: (identifier) @alias (_) @from) @stmt
|
|
96
103
|
(using_directive !name (_) @from) @stmt
|
|
@@ -102,56 +109,43 @@ export const CSHARP_DEF = {
|
|
|
102
109
|
memberExpression: "member_access_expression",
|
|
103
110
|
},
|
|
104
111
|
supportsCrossModuleSymbols: true,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
p.type === "destructor_declaration" ||
|
|
143
|
-
p.type === "local_function_statement" ||
|
|
144
|
-
p.type === "property_declaration") &&
|
|
145
|
-
p.childForFieldName("name")?.id === node.id)
|
|
146
|
-
return true;
|
|
147
|
-
if (p.type === "variable_declarator" && p.childForFieldName("name")?.id === node.id)
|
|
148
|
-
return true;
|
|
149
|
-
if (p.type === "parameter" && p.childForFieldName("name")?.id === node.id)
|
|
150
|
-
return true;
|
|
151
|
-
if (p.type === "declaration_pattern" && p.childForFieldName("name")?.id === node.id)
|
|
152
|
-
return true;
|
|
153
|
-
return false;
|
|
154
|
-
},
|
|
112
|
+
membersAreImplicitlyInScope: true,
|
|
113
|
+
classifyDefinition: classifyByParentType({
|
|
114
|
+
method_declaration: "method",
|
|
115
|
+
constructor_declaration: "method",
|
|
116
|
+
destructor_declaration: "method",
|
|
117
|
+
local_function_statement: "method",
|
|
118
|
+
class_declaration: "class",
|
|
119
|
+
record_declaration: "class",
|
|
120
|
+
struct_declaration: "class",
|
|
121
|
+
interface_declaration: "interface",
|
|
122
|
+
enum_declaration: "type",
|
|
123
|
+
delegate_declaration: "type",
|
|
124
|
+
}),
|
|
125
|
+
createsFunctionScope: nodeTypeIn([
|
|
126
|
+
"method_declaration",
|
|
127
|
+
"constructor_declaration",
|
|
128
|
+
"destructor_declaration",
|
|
129
|
+
"local_function_statement",
|
|
130
|
+
]),
|
|
131
|
+
createsBlockScope: nodeTypeIn(["block", "declaration_list"]),
|
|
132
|
+
isDeclarationName: (node) => isNameFieldOnParent(node, [
|
|
133
|
+
"class_declaration",
|
|
134
|
+
"record_declaration",
|
|
135
|
+
"struct_declaration",
|
|
136
|
+
"interface_declaration",
|
|
137
|
+
"enum_declaration",
|
|
138
|
+
"delegate_declaration",
|
|
139
|
+
"enum_member_declaration",
|
|
140
|
+
"method_declaration",
|
|
141
|
+
"constructor_declaration",
|
|
142
|
+
"destructor_declaration",
|
|
143
|
+
"local_function_statement",
|
|
144
|
+
"property_declaration",
|
|
145
|
+
"variable_declarator",
|
|
146
|
+
"parameter",
|
|
147
|
+
"declaration_pattern",
|
|
148
|
+
]),
|
|
155
149
|
normalizeIdentifier: (name) => {
|
|
156
150
|
const withoutVerbatimPrefix = name.startsWith("@") ? name.slice(1) : name;
|
|
157
151
|
return hasNonAsciiCodePoint(withoutVerbatimPrefix)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.js","sourceRoot":"","sources":["../../../src/languages/definitions/csharp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAElG,MAAM,gCAAgC,GAAG,IAAI,MAAM,CAAC,IAAI,+BAA+B,GAAG,EAAE,IAAI,CAAC,CAAC;AAElG,MAAM,CAAC,MAAM,UAAU,GAAuB;IAC5C,EAAE,EAAE,QAAQ;IACZ,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,SAAS,EAAE;QACT,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,OAAO;aACnB;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,QAAQ;aACpB;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,OAAO;aACnB;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,WAAW;aACvB;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,MAAM;aAClB;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,QAAQ;aACpB;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,WAAW;aACvB;YACD;gBACE,IAAI,EAAE,mCAAmC;gBACzC,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,WAAW;aACvB;SACF;QACD,WAAW,EAAE;YACX,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,iBAAiB;YACjB,kBAAkB;YAClB,eAAe;SAChB;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,KAAK,EAAE;QACL,OAAO,EAAE;;;KAGR;QACD,OAAO,EAAE;;;;;;;;;;;;KAYR;QACD,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"csharp.js","sourceRoot":"","sources":["../../../src/languages/definitions/csharp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-like.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/css-like.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"css-like.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/css-like.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAetD,wBAAgB,gBAAgB,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAUlE;AAED,wBAAgB,YAAY,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAO1D;AAED,wBAAgB,gBAAgB,IAAI,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAI/E"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
import { graphCapture } from "../graph-captures.js";
|
|
2
|
+
const from = graphCapture("from");
|
|
3
|
+
const stmt = graphCapture("stmt");
|
|
4
|
+
const cssLikeImportQuery = `
|
|
5
|
+
(import_statement (string_value) ${from}) ${stmt}
|
|
6
|
+
`;
|
|
7
|
+
const cssLikeLocalsQuery = `
|
|
8
|
+
(class_selector (class_name) @name)
|
|
9
|
+
(id_selector (id_name) @name)
|
|
10
|
+
`;
|
|
1
11
|
export function cssLikeStructure() {
|
|
2
12
|
return {
|
|
3
13
|
blocks: [
|
|
@@ -11,17 +21,10 @@ export function cssLikeStructure() {
|
|
|
11
21
|
}
|
|
12
22
|
export function cssLikeGraph() {
|
|
13
23
|
return {
|
|
14
|
-
imports:
|
|
15
|
-
(import_statement (string_value) @mod) @stmt
|
|
16
|
-
`,
|
|
24
|
+
imports: cssLikeImportQuery,
|
|
17
25
|
exports: "",
|
|
18
|
-
locals:
|
|
19
|
-
|
|
20
|
-
(id_selector (id_name) @name)
|
|
21
|
-
`,
|
|
22
|
-
importBindings: `
|
|
23
|
-
(import_statement (string_value) @from) @stmt
|
|
24
|
-
`,
|
|
26
|
+
locals: cssLikeLocalsQuery,
|
|
27
|
+
importBindings: cssLikeImportQuery,
|
|
25
28
|
};
|
|
26
29
|
}
|
|
27
30
|
export function cssLikeNodeTypes() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-like.js","sourceRoot":"","sources":["../../../src/languages/definitions/css-like.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"css-like.js","sourceRoot":"","sources":["../../../src/languages/definitions/css-like.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAElC,MAAM,kBAAkB,GAAG;yCACc,IAAI,KAAK,IAAI;KACjD,CAAC;AAEN,MAAM,kBAAkB,GAAG;;;KAGtB,CAAC;AAEN,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE;YACvC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE;YAC/C,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE;SACxD;QACD,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,kBAAkB;QAC1B,cAAc,EAAE,kBAAkB;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,UAAU,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/go.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/languages/definitions/go.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,MAAM,EAAE,kBAkGpB,CAAC"}
|