@lzehrung/codegraph 2.3.24 → 2.3.26
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/README.md +1 -1
- package/codegraph-skill/codegraph/SKILL.md +1 -1
- package/dist/bin/cli.js +3420 -1620
- package/dist/bin/query-index-worker.js +569 -229
- package/dist/cli/context.d.ts.map +1 -1
- package/dist/cli/context.js +7 -4
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/doctor.d.ts +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +8 -1
- package/dist/cli/doctor.js.map +1 -1
- package/dist/document-links/asciidoc.d.ts.map +1 -1
- package/dist/document-links/asciidoc.js +33 -0
- package/dist/document-links/asciidoc.js.map +1 -1
- package/dist/document-links/language-ids.d.ts +10 -0
- package/dist/document-links/language-ids.d.ts.map +1 -0
- package/dist/document-links/language-ids.js +15 -0
- package/dist/document-links/language-ids.js.map +1 -0
- package/dist/document-links/markdown.d.ts.map +1 -1
- package/dist/document-links/markdown.js +103 -21
- package/dist/document-links/markdown.js.map +1 -1
- package/dist/document-links/shared.d.ts.map +1 -1
- package/dist/document-links/shared.js +1 -0
- package/dist/document-links/shared.js.map +1 -1
- package/dist/document-links.d.ts +1 -3
- package/dist/document-links.d.ts.map +1 -1
- package/dist/document-links.js +1 -8
- package/dist/document-links.js.map +1 -1
- package/dist/duplicates/unit-cache.d.ts +1 -1
- package/dist/duplicates/unit-cache.d.ts.map +1 -1
- package/dist/duplicates/unit-cache.js +4 -1
- package/dist/duplicates/unit-cache.js.map +1 -1
- package/dist/duplicates/units.d.ts +1 -0
- package/dist/duplicates/units.d.ts.map +1 -1
- package/dist/duplicates/units.js +55 -10
- package/dist/duplicates/units.js.map +1 -1
- package/dist/graphs/edge-resolution.d.ts.map +1 -1
- package/dist/graphs/edge-resolution.js +3 -0
- package/dist/graphs/edge-resolution.js.map +1 -1
- package/dist/graphs/external/stdlib.d.ts.map +1 -1
- package/dist/graphs/external/stdlib.js +18 -11
- package/dist/graphs/external/stdlib.js.map +1 -1
- package/dist/graphs/specifiers.d.ts +3 -2
- package/dist/graphs/specifiers.d.ts.map +1 -1
- package/dist/graphs/specifiers.js +76 -39
- package/dist/graphs/specifiers.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +8 -2
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +10 -2
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/reports.d.ts.map +1 -1
- package/dist/indexer/build-cache/reports.js +29 -21
- package/dist/indexer/build-cache/reports.js.map +1 -1
- package/dist/indexer/expand-star-imports.d.ts.map +1 -1
- package/dist/indexer/expand-star-imports.js +8 -3
- package/dist/indexer/expand-star-imports.js.map +1 -1
- package/dist/indexer/imports/language-specific.d.ts.map +1 -1
- package/dist/indexer/imports/language-specific.js +166 -32
- 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 +4 -3
- package/dist/indexer/imports/native-captures.js.map +1 -1
- package/dist/indexer/imports/python.d.ts +2 -0
- package/dist/indexer/imports/python.d.ts.map +1 -1
- package/dist/indexer/imports/python.js +113 -8
- package/dist/indexer/imports/python.js.map +1 -1
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +25 -12
- 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 +153 -38
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/navigation-goto.js +1 -1
- package/dist/indexer/navigation-goto.js.map +1 -1
- package/dist/indexer/scope-types.d.ts +1 -1
- package/dist/indexer/scope-types.d.ts.map +1 -1
- package/dist/indexer/scope.d.ts.map +1 -1
- package/dist/indexer/scope.js +43 -2
- package/dist/indexer/scope.js.map +1 -1
- package/dist/languages/definitions/c-family.d.ts +5 -0
- package/dist/languages/definitions/c-family.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.js +27 -6
- 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 +5 -0
- 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 +41 -3
- 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 +52 -21
- package/dist/languages/definitions/csharp.js.map +1 -1
- package/dist/languages/definitions/go.d.ts.map +1 -1
- package/dist/languages/definitions/go.js +10 -7
- package/dist/languages/definitions/go.js.map +1 -1
- package/dist/languages/definitions/html-stub.d.ts +6 -7
- package/dist/languages/definitions/html-stub.d.ts.map +1 -1
- package/dist/languages/definitions/html-stub.js +6 -7
- package/dist/languages/definitions/html-stub.js.map +1 -1
- package/dist/languages/definitions/html.js +13 -13
- 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 +6 -0
- 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 +48 -30
- package/dist/languages/definitions/javascript.js.map +1 -1
- package/dist/languages/definitions/kotlin.d.ts.map +1 -1
- package/dist/languages/definitions/kotlin.js +49 -61
- package/dist/languages/definitions/kotlin.js.map +1 -1
- package/dist/languages/definitions/php.js +1 -1
- 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 +85 -20
- 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 +13 -11
- 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 +22 -5
- 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 +21 -17
- package/dist/languages/definitions/scss.js.map +1 -1
- package/dist/languages/definitions/sql.js +1 -1
- package/dist/languages/definitions/sql.js.map +1 -1
- package/dist/languages/definitions/swift.d.ts.map +1 -1
- package/dist/languages/definitions/swift.js +66 -16
- 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 +30 -9
- package/dist/languages/definitions/typescript.js.map +1 -1
- package/dist/languages/definitions/zig.d.ts.map +1 -1
- package/dist/languages/definitions/zig.js +26 -5
- package/dist/languages/definitions/zig.js.map +1 -1
- package/dist/languages/import-statement-parsers.d.ts +14 -1
- package/dist/languages/import-statement-parsers.d.ts.map +1 -1
- package/dist/languages/import-statement-parsers.js +473 -45
- package/dist/languages/import-statement-parsers.js.map +1 -1
- package/dist/languages/types.d.ts +11 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages.d.ts +1 -0
- package/dist/languages.d.ts.map +1 -1
- package/dist/languages.js +9 -2
- package/dist/languages.js.map +1 -1
- package/dist/native/backend-report-format.d.ts +4 -0
- package/dist/native/backend-report-format.d.ts.map +1 -0
- package/dist/native/backend-report-format.js +14 -0
- package/dist/native/backend-report-format.js.map +1 -0
- package/dist/native/contracts.d.ts +2 -0
- package/dist/native/contracts.d.ts.map +1 -1
- package/dist/util/comments.js +1 -1
- package/dist/util/comments.js.map +1 -1
- package/dist/util/member-access.d.ts +1 -1
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +5 -2
- package/dist/util/member-access.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/rust.d.ts +8 -1
- package/dist/util/resolution/rust.d.ts.map +1 -1
- package/dist/util/resolution/rust.js +521 -7
- package/dist/util/resolution/rust.js.map +1 -1
- package/dist/util/resolution-candidates.d.ts +1 -1
- package/dist/util/resolution-candidates.d.ts.map +1 -1
- package/dist/util/resolution-candidates.js +11 -8
- package/dist/util/resolution-candidates.js.map +1 -1
- package/dist/util/resolution.d.ts +5 -0
- package/dist/util/resolution.d.ts.map +1 -1
- package/dist/util/resolution.js +18 -7
- package/dist/util/resolution.js.map +1 -1
- package/dist/util/rust-test-modules.d.ts.map +1 -1
- package/dist/util/rust-test-modules.js +2 -5
- package/dist/util/rust-test-modules.js.map +1 -1
- package/dist/util/specifiers.d.ts +8 -0
- package/dist/util/specifiers.d.ts.map +1 -1
- package/dist/util/specifiers.js +33 -7
- package/dist/util/specifiers.js.map +1 -1
- package/package.json +3 -3
package/dist/indexer/imports.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { prepareSourceInput } from "../languages/file-prep.js";
|
|
2
2
|
import { loadNearestTsconfigFor, resolveImportSpecifier } from "../util/resolution.js";
|
|
3
3
|
import { loadWorkspaceConfig } from "../util/workspace.js";
|
|
4
|
-
import { collectModuleSpecifiersFromSource, } from "../graphs/specifiers.js";
|
|
4
|
+
import { collectModuleSpecifiersFromSource, mapNativeExecutionFallbackReason, } from "../graphs/specifiers.js";
|
|
5
5
|
import { isGraphOnlyLanguage } from "../document-links.js";
|
|
6
6
|
import { stripJsLikeComments } from "../util/comments.js";
|
|
7
7
|
import { assertNativeRequiredAvailable, getNativeQueryExecution, isNativeBindingLoadedForLanguage, isNativeRequiredUnavailableError, isNativeQueryAuthoritative, } from "../native/tree-sitter-native.js";
|
|
@@ -9,7 +9,7 @@ import { collectGraphOnlyImports } from "./imports/graph-only.js";
|
|
|
9
9
|
import { collectJsTextImports, collectJsTextValueRequireImports } from "./imports/js-text-imports.js";
|
|
10
10
|
import { applyStatementImportOverride, createStatementImportOverrideState, finalizeLanguageSpecificImports, } from "./imports/language-specific.js";
|
|
11
11
|
import { collectNativeCaptureImportBindings } from "./imports/native-captures.js";
|
|
12
|
-
import { collectPythonImportsFromSource } from "./imports/python.js";
|
|
12
|
+
import { collectPythonImportsFromNativeMatches, collectPythonImportsFromSource } from "./imports/python.js";
|
|
13
13
|
export async function collectImportsForFile(file, projectRoot, opts) {
|
|
14
14
|
let source = opts?.source;
|
|
15
15
|
let sup = opts?.sup;
|
|
@@ -48,13 +48,26 @@ export async function collectImportsForFile(file, projectRoot, opts) {
|
|
|
48
48
|
nativeExecution = getNativeQueryExecution(resolvedSource, resolvedSup, nativeMode);
|
|
49
49
|
resolvedNativeQueries = nativeExecution.results;
|
|
50
50
|
}
|
|
51
|
+
// The graph and binding consumers must agree on why extraction fell back, so both map the
|
|
52
|
+
// native execution reason with the same rule instead of labelling it per call site.
|
|
53
|
+
const nativeExecutionFallbackReason = nativeExecution?.fallbackReason
|
|
54
|
+
? mapNativeExecutionFallbackReason(resolvedSup.id, nativeExecution.fallbackReason, false, resolvedNativeQueries !== null)
|
|
55
|
+
: null;
|
|
51
56
|
if (resolvedSup.id === "python") {
|
|
52
|
-
|
|
57
|
+
const context = {
|
|
53
58
|
file,
|
|
54
59
|
projectRoot,
|
|
55
60
|
source: resolvedSource,
|
|
56
61
|
pushBinding: (binding) => imports.push(binding),
|
|
57
|
-
}
|
|
62
|
+
};
|
|
63
|
+
if (resolvedNativeQueries) {
|
|
64
|
+
await collectPythonImportsFromNativeMatches(context, resolvedNativeQueries.importBindings);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
await collectPythonImportsFromSource(context);
|
|
68
|
+
if (nativeExecutionFallbackReason)
|
|
69
|
+
reportFallback(nativeExecutionFallbackReason);
|
|
70
|
+
}
|
|
58
71
|
return imports;
|
|
59
72
|
}
|
|
60
73
|
let matchPath = opts?.matchPath;
|
|
@@ -63,8 +76,9 @@ export async function collectImportsForFile(file, projectRoot, opts) {
|
|
|
63
76
|
}
|
|
64
77
|
const workspaceConfig = opts?.workspaceConfig ?? (await loadWorkspaceConfig(projectRoot));
|
|
65
78
|
const resolvedImportCache = new Map();
|
|
66
|
-
const
|
|
67
|
-
|
|
79
|
+
const stylesheetLanguage = ["css", "scss", "less"].includes(resolvedSup.id);
|
|
80
|
+
const resolveFrom = async (from, phpImportType, resolutionKind) => {
|
|
81
|
+
const cacheKey = `${from}\0${phpImportType ?? ""}\0${resolutionKind ?? ""}`;
|
|
68
82
|
const cached = resolvedImportCache.get(cacheKey);
|
|
69
83
|
if (cached)
|
|
70
84
|
return await cached;
|
|
@@ -76,6 +90,8 @@ export async function collectImportsForFile(file, projectRoot, opts) {
|
|
|
76
90
|
resolveNodeModules: !!opts?.graphOptions?.resolveNodeModules,
|
|
77
91
|
...(resolutionHints ? { resolutionHints } : {}),
|
|
78
92
|
...(phpImportType ? { phpImportType } : {}),
|
|
93
|
+
...(resolutionKind ? { resolutionKind } : {}),
|
|
94
|
+
...(resolvedSup.id === "scss" && resolutionKind === "stylesheet" ? { allowScssPartialResolution: true } : {}),
|
|
79
95
|
});
|
|
80
96
|
return typeof result === "string" ? result.replace(/\\/g, "/") : result;
|
|
81
97
|
})();
|
|
@@ -87,7 +103,7 @@ export async function collectImportsForFile(file, projectRoot, opts) {
|
|
|
87
103
|
projectRoot,
|
|
88
104
|
source: resolvedSource,
|
|
89
105
|
languageId: resolvedSup.id,
|
|
90
|
-
resolveFrom,
|
|
106
|
+
resolveFrom: (from, phpImportType) => resolveFrom(from, phpImportType, stylesheetLanguage ? "stylesheet" : undefined),
|
|
91
107
|
pushBinding: (binding) => imports.push(binding),
|
|
92
108
|
getBindings: () => imports,
|
|
93
109
|
replaceBindings: (bindings) => imports.splice(0, imports.length, ...bindings),
|
|
@@ -116,10 +132,7 @@ export async function collectImportsForFile(file, projectRoot, opts) {
|
|
|
116
132
|
});
|
|
117
133
|
};
|
|
118
134
|
const nativeLanguageAvailable = isNativeBindingLoadedForLanguage(resolvedSup.id, nativeMode);
|
|
119
|
-
let nativeFallbackReason =
|
|
120
|
-
if (nativeExecution?.fallbackReason === "queryFailure") {
|
|
121
|
-
nativeFallbackReason = "query-error";
|
|
122
|
-
}
|
|
135
|
+
let nativeFallbackReason = nativeExecutionFallbackReason;
|
|
123
136
|
if (resolvedNativeQueries) {
|
|
124
137
|
try {
|
|
125
138
|
await collectNativeCaptureImportBindings({
|
|
@@ -176,7 +189,7 @@ export async function collectImportsForFile(file, projectRoot, opts) {
|
|
|
176
189
|
imports.push({
|
|
177
190
|
kind: "star",
|
|
178
191
|
from: specifier.spec,
|
|
179
|
-
resolved: await resolveFrom(specifier.spec),
|
|
192
|
+
resolved: await resolveFrom(specifier.spec, undefined, specifier.resolutionKind),
|
|
180
193
|
...(specifier.typeOnly ? { typeOnly: true } : {}),
|
|
181
194
|
});
|
|
182
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/indexer/imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAoB,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAwB,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EACL,iCAAiC,
|
|
1
|
+
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/indexer/imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locals-and-exports.d.ts","sourceRoot":"","sources":["../../src/indexer/locals-and-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAe,aAAa,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"locals-and-exports.d.ts","sourceRoot":"","sources":["../../src/indexer/locals-and-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAe,aAAa,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AA+VrF,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,aAAa,EAAO,EAC7B,IAAI,CAAC,EAAE;IACL,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACA,WAAW,CAqwBb"}
|
|
@@ -8,11 +8,23 @@ import { sliceText, toRange, unquote } from "../util/ast.js";
|
|
|
8
8
|
import { bindingKindToSymbolKind } from "./declarations.js";
|
|
9
9
|
import { buildScopeIndexFromSource } from "./scope.js";
|
|
10
10
|
import { SymbolKind } from "./types.js";
|
|
11
|
-
import { ECMASCRIPT_IDENTIFIER_SOURCE } from "../util/identifiers.js";
|
|
11
|
+
import { ECMASCRIPT_IDENTIFIER_SOURCE, XID_IDENTIFIER_SOURCE } from "../util/identifiers.js";
|
|
12
|
+
/**
|
|
13
|
+
* Matches one `exportScopeBlockers` entry against an ancestor node. A plain entry compares the
|
|
14
|
+
* node type; a `parent>node` entry also requires that parent type, which is how Python separates a
|
|
15
|
+
* function body from a class body when the grammar spells both `block`.
|
|
16
|
+
*/
|
|
17
|
+
function matchesExportScopeBlocker(node, blocker) {
|
|
18
|
+
const separator = blocker.indexOf(">");
|
|
19
|
+
if (separator < 0)
|
|
20
|
+
return node.type === blocker;
|
|
21
|
+
return node.type === blocker.slice(separator + 1) && node.parent?.type === blocker.slice(0, separator);
|
|
22
|
+
}
|
|
12
23
|
const JS_FALLBACK_DECLARATION_PATTERN = new RegExp(String.raw `\bexport\s+(?:const|let|var|function|class)\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})`, "gu");
|
|
13
24
|
const JS_FALLBACK_DEFAULT_PATTERN = new RegExp(String.raw `\bexport\s+default\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})`, "gu");
|
|
14
25
|
const JS_FALLBACK_EXPORT_ASSIGN_PATTERN = new RegExp(String.raw `\bexport\s*=\s*(${ECMASCRIPT_IDENTIFIER_SOURCE})`, "gu");
|
|
15
|
-
const JS_FALLBACK_REEXPORT_SPECIFIER_PATTERN = new RegExp(String.raw `^(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
|
|
26
|
+
const JS_FALLBACK_REEXPORT_SPECIFIER_PATTERN = new RegExp(String.raw `^(?:type\s+)?(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
|
|
27
|
+
const JS_FALLBACK_REEXPORT_TYPE_SPECIFIER_PATTERN = new RegExp(String.raw `^type\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
|
|
16
28
|
const JS_FALLBACK_REEXPORT_NAMESPACE_PATTERN = new RegExp(String.raw `\bexport\s*\*\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})\s+from\s*("|')([^"']*)\2`, "gu");
|
|
17
29
|
const JS_FALLBACK_CJS_FUNCTION_PATTERN = new RegExp(String.raw `(?:^|[;\n\r])\s*(?:exports|module\.exports)\.(${ECMASCRIPT_IDENTIFIER_SOURCE})\s*=\s*(function\b|\([^)]*\)\s*=>)`, "gu");
|
|
18
30
|
const JS_FALLBACK_CJS_OBJECT_FUNCTION_PATTERN = new RegExp(String.raw `(${ECMASCRIPT_IDENTIFIER_SOURCE})\s*:\s*(function\b|\([^)]*\)\s*=>)`, "gu");
|
|
@@ -71,6 +83,74 @@ function isTypeMemberDeclaration(node) {
|
|
|
71
83
|
}
|
|
72
84
|
return false;
|
|
73
85
|
}
|
|
86
|
+
const C_DECLARATOR_IDENTIFIER_PATTERN = new RegExp(`^${XID_IDENTIFIER_SOURCE}`, "u");
|
|
87
|
+
const C_DECLARATOR_QUALIFIER_PATTERN = /^(?:const|volatile|restrict|_Atomic)\b/;
|
|
88
|
+
function cDeclaratorDeclaredName(text) {
|
|
89
|
+
const masked = maskJsLikeCommentsAndStrings(text);
|
|
90
|
+
let index = 0;
|
|
91
|
+
while (index < masked.length) {
|
|
92
|
+
if (/[\s(*&]/.test(masked[index])) {
|
|
93
|
+
index += 1;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const rest = masked.slice(index);
|
|
97
|
+
const qualifier = C_DECLARATOR_QUALIFIER_PATTERN.exec(rest);
|
|
98
|
+
if (qualifier) {
|
|
99
|
+
index += qualifier[0].length;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const ident = C_DECLARATOR_IDENTIFIER_PATTERN.exec(rest);
|
|
103
|
+
if (!ident || rest.slice(ident[0].length).trimStart().startsWith("::"))
|
|
104
|
+
return undefined;
|
|
105
|
+
return { name: ident[0], start: index, end: index + ident[0].length };
|
|
106
|
+
}
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
function declaratorNameNode(node) {
|
|
110
|
+
let current = node;
|
|
111
|
+
while (current) {
|
|
112
|
+
if (current.type === "identifier" || current.type === "type_identifier")
|
|
113
|
+
return current;
|
|
114
|
+
const next = current.childForFieldName("declarator");
|
|
115
|
+
if (next) {
|
|
116
|
+
current = next;
|
|
117
|
+
}
|
|
118
|
+
else if (current.type === "parenthesized_declarator") {
|
|
119
|
+
current = current.namedChildren.find((child) => child.type !== "comment");
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
function declaratorCaptureName(capture, node) {
|
|
128
|
+
const fromNode = declaratorNameNode(node)?.text;
|
|
129
|
+
if (fromNode)
|
|
130
|
+
return fromNode;
|
|
131
|
+
if (capture.nodeType === "identifier" || capture.nodeType === "type_identifier")
|
|
132
|
+
return capture.text;
|
|
133
|
+
return cDeclaratorDeclaredName(capture.text)?.name;
|
|
134
|
+
}
|
|
135
|
+
function localExportDedupeKey(entry) {
|
|
136
|
+
return `${entry.exportedAs}\0${entry.target.localName}\0${entry.target.range.start.index ?? 0}\0${entry.target.range.end.index ?? 0}`;
|
|
137
|
+
}
|
|
138
|
+
function dedupeExportEntries(entries) {
|
|
139
|
+
const seen = new Set();
|
|
140
|
+
const out = [];
|
|
141
|
+
for (const entry of entries) {
|
|
142
|
+
if (entry.type !== "local") {
|
|
143
|
+
out.push(entry);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
const key = localExportDedupeKey(entry);
|
|
147
|
+
if (seen.has(key))
|
|
148
|
+
continue;
|
|
149
|
+
seen.add(key);
|
|
150
|
+
out.push(entry);
|
|
151
|
+
}
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
74
154
|
function appendJsLikeRegexFallbackExports(file, source, locals, exports) {
|
|
75
155
|
const maskedSource = maskJsLikeCommentsAndStrings(source);
|
|
76
156
|
JS_FALLBACK_DECLARATION_PATTERN.lastIndex = 0;
|
|
@@ -82,7 +162,7 @@ function appendJsLikeRegexFallbackExports(file, source, locals, exports) {
|
|
|
82
162
|
const reDecl = JS_FALLBACK_DECLARATION_PATTERN;
|
|
83
163
|
const reDefault = JS_FALLBACK_DEFAULT_PATTERN;
|
|
84
164
|
const reExportAssign = JS_FALLBACK_EXPORT_ASSIGN_PATTERN;
|
|
85
|
-
const reReexport = new RegExp(String.raw `\bexport\s
|
|
165
|
+
const reReexport = new RegExp(String.raw `\bexport\b\s*(type\s+)?\{\s*([^}]*)\}\s*from\s*("|')([^"']*)\3`, "gu");
|
|
86
166
|
const reReexportNs = JS_FALLBACK_REEXPORT_NAMESPACE_PATTERN;
|
|
87
167
|
const reStar = /\bexport\s*\*\s*from\s*("|')([^"']*)\1/gu;
|
|
88
168
|
const reCjsFn = JS_FALLBACK_CJS_FUNCTION_PATTERN;
|
|
@@ -124,7 +204,8 @@ function appendJsLikeRegexFallbackExports(file, source, locals, exports) {
|
|
|
124
204
|
}
|
|
125
205
|
}
|
|
126
206
|
while ((match = reReexport.exec(maskedSource))) {
|
|
127
|
-
const
|
|
207
|
+
const statementTypeOnly = Boolean(match[1]);
|
|
208
|
+
const list = match[2]
|
|
128
209
|
.split(",")
|
|
129
210
|
.map((item) => item.trim())
|
|
130
211
|
.filter(Boolean);
|
|
@@ -137,12 +218,14 @@ function appendJsLikeRegexFallbackExports(file, source, locals, exports) {
|
|
|
137
218
|
continue;
|
|
138
219
|
const srcName = entryMatch[1];
|
|
139
220
|
const alias = entryMatch[2] ?? srcName;
|
|
221
|
+
const typeOnly = statementTypeOnly || JS_FALLBACK_REEXPORT_TYPE_SPECIFIER_PATTERN.test(spec);
|
|
140
222
|
if (!exports.some((entry) => entry.type === "reexport" && entry.exportedAs === alias && entry.fromModule === from)) {
|
|
141
223
|
exports.push({
|
|
142
224
|
type: "reexport",
|
|
143
225
|
exportedAs: alias,
|
|
144
226
|
fromModule: from,
|
|
145
227
|
sourceSpecifier: srcName,
|
|
228
|
+
typeOnly,
|
|
146
229
|
});
|
|
147
230
|
}
|
|
148
231
|
}
|
|
@@ -394,14 +477,12 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
|
|
|
394
477
|
return SymbolKind.Class;
|
|
395
478
|
return SymbolKind.Variable;
|
|
396
479
|
};
|
|
397
|
-
const classifyLocalCapture = (
|
|
480
|
+
const classifyLocalCapture = (node) => {
|
|
398
481
|
if (node)
|
|
399
482
|
return toKind(support.classifyDefinition(node));
|
|
400
|
-
if ("name" in capture && capture.name === "tname") {
|
|
401
|
-
return SymbolKind.TypeAlias;
|
|
402
|
-
}
|
|
403
483
|
return SymbolKind.Variable;
|
|
404
484
|
};
|
|
485
|
+
// Declarator captures name the declared entity, never parameter or array-bound types.
|
|
405
486
|
const extractLocalsFromNativeQueries = () => {
|
|
406
487
|
if (!nativeQueries)
|
|
407
488
|
return false;
|
|
@@ -415,12 +496,31 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
|
|
|
415
496
|
const enrichmentTree = ensureTree();
|
|
416
497
|
for (const match of nativeQueries.locals) {
|
|
417
498
|
for (const capture of match.captures) {
|
|
418
|
-
if (capture.name !== "name" && capture.name !== "
|
|
499
|
+
if (capture.name !== "name" && capture.name !== "declarator")
|
|
419
500
|
continue;
|
|
420
501
|
const nativeRange = rangeFromNativeCapture(capture, ensureByteIndexMap());
|
|
421
502
|
const node = enrichmentTree?.rootNode.descendantForIndex(nativeRange.start.index ?? 0, nativeRange.end.index ?? 0) ??
|
|
422
503
|
undefined;
|
|
423
|
-
|
|
504
|
+
if (capture.name === "declarator") {
|
|
505
|
+
const namedNode = declaratorNameNode(node);
|
|
506
|
+
if (namedNode) {
|
|
507
|
+
pushLocal(namedNode.text, classifyLocalCapture(namedNode), toRange(namedNode), namedNode);
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
const extracted = cDeclaratorDeclaredName(capture.text);
|
|
511
|
+
if (!extracted)
|
|
512
|
+
continue;
|
|
513
|
+
if (capture.nodeType === "identifier" || capture.nodeType === "type_identifier") {
|
|
514
|
+
pushLocal(capture.text, SymbolKind.TypeAlias, nativeRange);
|
|
515
|
+
}
|
|
516
|
+
else {
|
|
517
|
+
pushLocal(extracted.name, SymbolKind.TypeAlias, rangeFromOffsets((nativeRange.start.index ?? 0) + extracted.start, (nativeRange.start.index ?? 0) + extracted.end));
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
pushLocal(capture.text, classifyLocalCapture(node), nativeRange, node);
|
|
523
|
+
}
|
|
424
524
|
capturedLocals = true;
|
|
425
525
|
}
|
|
426
526
|
}
|
|
@@ -432,9 +532,7 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
|
|
|
432
532
|
return false;
|
|
433
533
|
}
|
|
434
534
|
};
|
|
435
|
-
const
|
|
436
|
-
const usedNativeLocals = extractLocalsFromNativeQueries();
|
|
437
|
-
const usedQueryLocals = usedNativeLocals || extractLocalsFromJsQueries();
|
|
535
|
+
const usedQueryLocals = extractLocalsFromNativeQueries();
|
|
438
536
|
if (!usedQueryLocals) {
|
|
439
537
|
const scopeTree = ensureTree();
|
|
440
538
|
if (scopeTree) {
|
|
@@ -526,14 +624,44 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
|
|
|
526
624
|
return (node.childForFieldName("name") ?? node.childForFieldName("declaration")?.childForFieldName("name") ?? undefined);
|
|
527
625
|
};
|
|
528
626
|
const hasDefaultExport = () => exports.some((entry) => entry.type === "local" && entry.exportedAs === "default");
|
|
627
|
+
const excludedCaptures = [];
|
|
628
|
+
if (!treeForEnrichment) {
|
|
629
|
+
for (const match of matches) {
|
|
630
|
+
for (const capture of match.captures) {
|
|
631
|
+
if (capture.name === "export_scope" || capture.name === "private_declaration")
|
|
632
|
+
excludedCaptures.push(capture);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
// Native scope captures preserve C/C++ exclusions without an enrichment tree.
|
|
637
|
+
const isOutsideModuleScope = (capture) => {
|
|
638
|
+
if (!capture || !support.exportScopeBlockers.length)
|
|
639
|
+
return false;
|
|
640
|
+
let current = nodeForCapture(capture)?.parent ?? undefined;
|
|
641
|
+
while (current) {
|
|
642
|
+
const ancestor = current;
|
|
643
|
+
if (support.exportScopeBlockers.some((blocker) => matchesExportScopeBlocker(ancestor, blocker)))
|
|
644
|
+
return true;
|
|
645
|
+
current = ancestor.parent ?? undefined;
|
|
646
|
+
}
|
|
647
|
+
return excludedCaptures.some((scope) => capture.start.index >= scope.start.index && capture.end.index <= scope.end.index);
|
|
648
|
+
};
|
|
529
649
|
for (const match of matches) {
|
|
530
650
|
const map = capturesByName(match);
|
|
531
651
|
const stmtText = map["stmt"]?.text ?? "";
|
|
652
|
+
if (support.id === "c" || support.id === "cpp") {
|
|
653
|
+
const declarationNode = nodeForCapture(map["declaration"]);
|
|
654
|
+
const hasStaticStorageClass = declarationNode?.namedChildren.some((child) => child.type === "storage_class_specifier" && child.text === "static");
|
|
655
|
+
if (hasStaticStorageClass)
|
|
656
|
+
continue;
|
|
657
|
+
}
|
|
658
|
+
if (isOutsideModuleScope(map["name"] ?? map["src"]))
|
|
659
|
+
continue;
|
|
532
660
|
const isTypeOnly = support.isTypeOnly(stmtText);
|
|
533
661
|
if (support.id === "python") {
|
|
534
662
|
const leftText = map["left"]?.text ?? "";
|
|
535
663
|
const methodText = map["method"]?.text ?? "";
|
|
536
|
-
const isAllAssignment = leftText === "__all__";
|
|
664
|
+
const isAllAssignment = leftText === "__all__" && !methodText;
|
|
537
665
|
const isAllMethod = leftText === "__all__" && (methodText === "extend" || methodText === "append");
|
|
538
666
|
if (isAllAssignment || isAllMethod) {
|
|
539
667
|
hasPythonAll = true;
|
|
@@ -551,26 +679,6 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
|
|
|
551
679
|
});
|
|
552
680
|
}
|
|
553
681
|
}
|
|
554
|
-
if (isAllAssignment && map["stmt"]) {
|
|
555
|
-
const assignmentText = map["stmt"].text;
|
|
556
|
-
const hasTuple = /=\s*\(/.test(assignmentText);
|
|
557
|
-
if (!items.length || hasTuple) {
|
|
558
|
-
const strRe = /["']([^"']+)["']/g;
|
|
559
|
-
for (let submatch; (submatch = strRe.exec(assignmentText));) {
|
|
560
|
-
const name = submatch[1];
|
|
561
|
-
pythonAllExports.add(name);
|
|
562
|
-
const local = mergedLocals.find((def) => def.localName === name);
|
|
563
|
-
if (local &&
|
|
564
|
-
!exports.some((entry) => entry.type !== "exportStar" && "exportedAs" in entry && entry.exportedAs === name)) {
|
|
565
|
-
exports.push({
|
|
566
|
-
type: "local",
|
|
567
|
-
exportedAs: name,
|
|
568
|
-
target: local,
|
|
569
|
-
});
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
682
|
continue;
|
|
575
683
|
}
|
|
576
684
|
if (map["name"]) {
|
|
@@ -597,7 +705,7 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
|
|
|
597
705
|
fromModule: from,
|
|
598
706
|
moduleSpecifier: from,
|
|
599
707
|
sourceSpecifier: srcName,
|
|
600
|
-
typeOnly: isTypeOnly,
|
|
708
|
+
typeOnly: Boolean(map["type_kw"]) || isTypeOnly,
|
|
601
709
|
});
|
|
602
710
|
}
|
|
603
711
|
else if (/^\s*export\s*\*/.test(stmtText)) {
|
|
@@ -785,8 +893,15 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
|
|
|
785
893
|
}
|
|
786
894
|
continue;
|
|
787
895
|
}
|
|
788
|
-
|
|
789
|
-
|
|
896
|
+
const nameCapture = map["name"] ?? map["declarator"];
|
|
897
|
+
if (nameCapture) {
|
|
898
|
+
if (isOutsideModuleScope(nameCapture))
|
|
899
|
+
continue;
|
|
900
|
+
const nameText = map["declarator"]
|
|
901
|
+
? declaratorCaptureName(nameCapture, nodeForCapture(nameCapture))
|
|
902
|
+
: nameCapture.text;
|
|
903
|
+
if (!nameText)
|
|
904
|
+
continue;
|
|
790
905
|
const local = locals.find((def) => def.localName === nameText);
|
|
791
906
|
if (local) {
|
|
792
907
|
const isDefaultExport = /^\s*export\s+default\b/.test(stmtText);
|
|
@@ -926,6 +1041,6 @@ export function collectLocalsAndExportsFromSource(file, source, support, imports
|
|
|
926
1041
|
}
|
|
927
1042
|
}
|
|
928
1043
|
}
|
|
929
|
-
return { file, exports, imports, locals };
|
|
1044
|
+
return { file, exports: dedupeExportEntries(exports), imports, locals };
|
|
930
1045
|
}
|
|
931
1046
|
//# sourceMappingURL=locals-and-exports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locals-and-exports.js","sourceRoot":"","sources":["../../src/indexer/locals-and-exports.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"locals-and-exports.js","sourceRoot":"","sources":["../../src/indexer/locals-and-exports.ts"],"names":[],"mappings":"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"}
|