@zzzen/pyright-internal 1.2.0-dev.20260614 → 1.2.0-dev.20260628
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/analyzer/analysis.js +17 -7
- package/dist/analyzer/analysis.js.map +1 -1
- package/dist/analyzer/analyzerNodeInfo.d.ts +11 -0
- package/dist/analyzer/binder.js +31 -8
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +23 -8
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +6 -0
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/dataClasses.js +19 -8
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +1 -0
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/docStringUtils.d.ts +1 -0
- package/dist/analyzer/docStringUtils.js +78 -0
- package/dist/analyzer/docStringUtils.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +1 -0
- package/dist/analyzer/importResolver.js +107 -12
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +36 -8
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +17 -7
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/parseTreeCleaner.js +17 -7
- package/dist/analyzer/parseTreeCleaner.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +27 -9
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js +17 -7
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.js +44 -0
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -0
- package/dist/analyzer/program.js +44 -8
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js +34 -8
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/service.js +43 -11
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceEnumerator.js +6 -0
- package/dist/analyzer/sourceEnumerator.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +1 -0
- package/dist/analyzer/sourceFile.js +25 -7
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +11 -1
- package/dist/analyzer/sourceMapper.js +220 -19
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +91 -19
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +17 -7
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.js +17 -7
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.d.ts +8 -0
- package/dist/analyzer/typeDocStringUtils.js +101 -27
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +122 -89
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +71 -13
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +50 -8
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +17 -7
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -0
- package/dist/analyzer/typeUtils.js +9 -0
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeWalker.js +1 -1
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.js +19 -9
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/typeshedInfoProvider.js +17 -7
- package/dist/analyzer/typeshedInfoProvider.js.map +1 -1
- package/dist/backgroundAnalysisBase.js +17 -7
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.js +17 -7
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/common/chokidarFileWatcherProvider.js +17 -7
- package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
- package/dist/common/configOptions.js +17 -7
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/console.js +17 -7
- package/dist/common/console.js.map +1 -1
- package/dist/common/docStringService.d.ts +2 -0
- package/dist/common/docStringService.js +5 -1
- package/dist/common/docStringService.js.map +1 -1
- package/dist/common/envVarUtils.js +17 -7
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.d.ts +2 -0
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.js +17 -7
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/fullAccessHost.d.ts +4 -2
- package/dist/common/fullAccessHost.js +69 -16
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/host.d.ts +33 -2
- package/dist/common/host.js +4 -1
- package/dist/common/host.js.map +1 -1
- package/dist/common/languageInfoUtils.js +12 -12
- package/dist/common/memUtils.js +18 -7
- package/dist/common/memUtils.js.map +1 -1
- package/dist/common/pathUtils.js +17 -7
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/positionUtils.js +19 -0
- package/dist/common/positionUtils.js.map +1 -1
- package/dist/common/processUtils.js +17 -7
- package/dist/common/processUtils.js.map +1 -1
- package/dist/common/realFileSystem.js +19 -19
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.js +17 -7
- package/dist/common/serviceProvider.js.map +1 -1
- package/dist/common/streamUtils.d.ts +1 -1
- package/dist/common/textEditTracker.d.ts +1 -0
- package/dist/common/textEditTracker.js +31 -12
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/uri/fileUri.d.ts +1 -0
- package/dist/common/uri/fileUri.js +20 -0
- package/dist/common/uri/fileUri.js.map +1 -1
- package/dist/common/uri/memoization.js +5 -1
- package/dist/common/uri/memoization.js.map +1 -1
- package/dist/common/uri/uriMap.d.ts +4 -4
- package/dist/common/uri/uriMap.js +1 -0
- package/dist/common/uri/uriMap.js.map +1 -1
- package/dist/common/uri/uriUtils.d.ts +2 -0
- package/dist/common/uri/uriUtils.js +22 -0
- package/dist/common/uri/uriUtils.js.map +1 -1
- package/dist/common/workspaceEditUtils.d.ts +1 -0
- package/dist/common/workspaceEditUtils.js +10 -0
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.js +19 -4
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.js +17 -7
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +17 -7
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +11 -2
- package/dist/languageService/completionProvider.js +319 -65
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.d.ts +18 -0
- package/dist/languageService/completionProviderUtils.js +42 -0
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/definitionProvider.d.ts +1 -1
- package/dist/languageService/definitionProvider.js +69 -10
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +17 -7
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +18 -0
- package/dist/languageService/documentSymbolCollector.js +102 -15
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +1 -1
- package/dist/languageService/hoverProvider.js +98 -23
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importStatementCandidates.d.ts +16 -0
- package/dist/languageService/importStatementCandidates.js +100 -0
- package/dist/languageService/importStatementCandidates.js.map +1 -0
- package/dist/languageService/referencesProvider.d.ts +16 -9
- package/dist/languageService/referencesProvider.js +205 -39
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.d.ts +7 -2
- package/dist/languageService/renameProvider.js +45 -17
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +54 -16
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +17 -7
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +11 -0
- package/dist/languageService/tooltipUtils.js +67 -33
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.js +17 -7
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +8 -0
- package/dist/localization/localize.js +6 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +5 -0
- package/dist/parser/characters.js +17 -7
- package/dist/parser/characters.js.map +1 -1
- package/dist/parser/parseNodes.d.ts +4 -0
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +1 -0
- package/dist/parser/parser.js +91 -38
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringTokenUtils.js +23 -7
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.js +16 -15
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/parser/tokenizerTypes.d.ts +15 -14
- package/dist/parser/tokenizerTypes.js +22 -15
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/pyright.js +17 -7
- package/dist/pyright.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.js +13 -6
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tests/benchmarks/parserBenchmark.test.js +17 -7
- package/dist/tests/benchmarks/parserBenchmark.test.js.map +1 -1
- package/dist/tests/benchmarks/tokenizerBenchmark.test.js +17 -7
- package/dist/tests/benchmarks/tokenizerBenchmark.test.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +17 -7
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +21 -7
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/collectionUtils.test.js +17 -7
- package/dist/tests/collectionUtils.test.js.map +1 -1
- package/dist/tests/common.test.js +17 -7
- package/dist/tests/common.test.js.map +1 -1
- package/dist/tests/completionProviderUtils.test.d.ts +1 -0
- package/dist/tests/completionProviderUtils.test.js +56 -0
- package/dist/tests/completionProviderUtils.test.js.map +1 -0
- package/dist/tests/completions.test.js +118 -9
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/config.test.js +69 -0
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/debug.test.js +17 -7
- package/dist/tests/debug.test.js.map +1 -1
- package/dist/tests/deferred.test.js +18 -8
- package/dist/tests/deferred.test.js.map +1 -1
- package/dist/tests/diagnosticOverrides.test.js +17 -7
- package/dist/tests/diagnosticOverrides.test.js.map +1 -1
- package/dist/tests/diagnostics.test.js +35 -0
- package/dist/tests/diagnostics.test.js.map +1 -1
- package/dist/tests/docStringReturnExtraction.test.d.ts +1 -0
- package/dist/tests/docStringReturnExtraction.test.js +125 -0
- package/dist/tests/docStringReturnExtraction.test.js.map +1 -0
- package/dist/tests/envVarUtils.test.js +17 -7
- package/dist/tests/envVarUtils.test.js.map +1 -1
- package/dist/tests/filesystem.test.js +17 -7
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/fourSlashParser.test.js +17 -7
- package/dist/tests/fourSlashParser.test.js.map +1 -1
- package/dist/tests/fourSlashRunner.test.js +17 -7
- package/dist/tests/fourSlashRunner.test.js.map +1 -1
- package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.js +35 -0
- package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.js.map +1 -0
- package/dist/tests/fourslash/completions.inherited.function.docFromStub.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.inherited.function.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.js +86 -0
- package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.js.map +1 -0
- package/dist/tests/fourslash/completions.keywords.pythonVersion.fourslash.js +20 -0
- package/dist/tests/fourslash/completions.keywords.pythonVersion.fourslash.js.map +1 -1
- package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.js +122 -0
- package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.js.map +1 -0
- package/dist/tests/fourslash/diagnostics.missingModuleSource.nativeSubmodule.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/diagnostics.missingModuleSource.nativeSubmodule.fourslash.js +61 -0
- package/dist/tests/fourslash/diagnostics.missingModuleSource.nativeSubmodule.fourslash.js.map +1 -0
- package/dist/tests/fourslash/signature.complicated.fourslash.js +1 -5
- package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.posonly.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/signature.posonly.fourslash.js +58 -0
- package/dist/tests/fourslash/signature.posonly.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/fourSlashTypes.js +17 -7
- package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
- package/dist/tests/harness/fourslash/runner.js +17 -7
- package/dist/tests/harness/fourslash/runner.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +17 -7
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.Consts.js +17 -7
- package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +17 -7
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/fourslash/testStateUtils.js +17 -7
- package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +17 -7
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
- package/dist/tests/harness/testAccessHost.d.ts +1 -1
- package/dist/tests/harness/testAccessHost.js +1 -1
- package/dist/tests/harness/testAccessHost.js.map +1 -1
- package/dist/tests/harness/testHost.js +17 -7
- package/dist/tests/harness/testHost.js.map +1 -1
- package/dist/tests/harness/utils.d.ts +4 -4
- package/dist/tests/harness/utils.js.map +1 -1
- package/dist/tests/harness/vfs/factory.js +17 -7
- package/dist/tests/harness/vfs/factory.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.js +19 -11
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/harness/vfs/pathValidation.js +17 -7
- package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
- package/dist/tests/importResolver.test.js +137 -0
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +92 -0
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/languageServer.test.js +91 -0
- package/dist/tests/languageServer.test.js.map +1 -1
- package/dist/tests/localizer.test.js +17 -7
- package/dist/tests/localizer.test.js.map +1 -1
- package/dist/tests/logger.test.js +17 -7
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/lsp/languageServer.js +17 -7
- package/dist/tests/lsp/languageServer.js.map +1 -1
- package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -5
- package/dist/tests/lsp/languageServerTestUtils.js +77 -22
- package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
- package/dist/tests/parser.test.js +264 -7
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/pathUtils.test.js +17 -7
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/positionUtils.test.js +26 -0
- package/dist/tests/positionUtils.test.js.map +1 -1
- package/dist/tests/pyrightFileSystem.test.js +25 -0
- package/dist/tests/pyrightFileSystem.test.js.map +1 -1
- package/dist/tests/realTempFile.test.js +17 -7
- package/dist/tests/realTempFile.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js +73 -0
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +17 -7
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +192 -0
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/stringUtils.test.js +17 -7
- package/dist/tests/stringUtils.test.js.map +1 -1
- package/dist/tests/symbolNameUtils.test.js +17 -7
- package/dist/tests/symbolNameUtils.test.js.map +1 -1
- package/dist/tests/testState.test.js +17 -7
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testUtils.js +17 -7
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/textRange.test.js +17 -7
- package/dist/tests/textRange.test.js.map +1 -1
- package/dist/tests/tokenizer.test.js +17 -7
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +21 -7
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +23 -7
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +23 -7
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +45 -7
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +17 -7
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +17 -7
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +17 -7
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +40 -28
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +82 -7
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/tests/uri.test.js +17 -7
- package/dist/tests/uri.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +48 -7
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/tests/zipfs.test.js +17 -7
- package/dist/tests/zipfs.test.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/package.json +10 -10
- package/dist/tests/lsp/rspack.testserver.config.d.ts +0 -63
- package/dist/tests/lsp/rspack.testserver.config.js +0 -60
- package/dist/tests/lsp/rspack.testserver.config.js.map +0 -1
|
@@ -24,13 +24,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
24
24
|
}) : function(o, v) {
|
|
25
25
|
o["default"] = v;
|
|
26
26
|
});
|
|
27
|
-
var __importStar = (this && this.__importStar) || function (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
34
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
45
|
exports.ReferencesProvider = exports.FindReferencesTreeWalker = exports.ReferencesResult = void 0;
|
|
36
46
|
const declaration_1 = require("../analyzer/declaration");
|
|
@@ -50,7 +60,12 @@ const textRange_1 = require("../common/textRange");
|
|
|
50
60
|
const documentSymbolCollector_1 = require("./documentSymbolCollector");
|
|
51
61
|
const navigationUtils_1 = require("./navigationUtils");
|
|
52
62
|
class ReferencesResult {
|
|
53
|
-
constructor(requiresGlobalSearch, nodeAtOffset, symbolNames,
|
|
63
|
+
constructor(requiresGlobalSearch, nodeAtOffset, symbolNames,
|
|
64
|
+
// Invariant: this array only ever grows, and only via `mergeSeedDeclarations`. Its `length` is
|
|
65
|
+
// reused as a free monotonic "seed version" for the per-file watermark skip in
|
|
66
|
+
// `collectWorkspaceReferences`, so anything that appends here for a non-seed reason would
|
|
67
|
+
// silently bump that version and drop needed re-walks. Do not push to it from elsewhere.
|
|
68
|
+
declarations, useCase, providers, _reporter) {
|
|
54
69
|
this.requiresGlobalSearch = requiresGlobalSearch;
|
|
55
70
|
this.nodeAtOffset = nodeAtOffset;
|
|
56
71
|
this.symbolNames = symbolNames;
|
|
@@ -103,42 +118,39 @@ class ReferencesResult {
|
|
|
103
118
|
}
|
|
104
119
|
exports.ReferencesResult = ReferencesResult;
|
|
105
120
|
class FindReferencesTreeWalker {
|
|
106
|
-
constructor(_program, _fileUri, _referencesResult, _includeDeclaration, _cancellationToken, _createDocumentRange = FindReferencesTreeWalker.createDocumentRange) {
|
|
121
|
+
constructor(_program, _fileUri, _referencesResult, _includeDeclaration, _cancellationToken, _createDocumentRange = FindReferencesTreeWalker.createDocumentRange, _previousResultRanges) {
|
|
107
122
|
this._program = _program;
|
|
108
123
|
this._fileUri = _fileUri;
|
|
109
124
|
this._referencesResult = _referencesResult;
|
|
110
125
|
this._includeDeclaration = _includeDeclaration;
|
|
111
126
|
this._cancellationToken = _cancellationToken;
|
|
112
127
|
this._createDocumentRange = _createDocumentRange;
|
|
128
|
+
this._previousResultRanges = _previousResultRanges;
|
|
113
129
|
this._parseResults = this._program.getParseResults(this._fileUri);
|
|
114
130
|
}
|
|
115
131
|
findReferences(rootNode = this._parseResults?.parserOutput.parseTree) {
|
|
116
132
|
const results = [];
|
|
117
133
|
if (!this._parseResults) {
|
|
118
|
-
return results;
|
|
134
|
+
return { results, discoveredDeclarations: [] };
|
|
119
135
|
}
|
|
120
136
|
const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this._program, this._referencesResult.symbolNames, this._referencesResult.declarations, rootNode, this._cancellationToken, {
|
|
121
137
|
treatModuleInImportAndFromImportSame: true,
|
|
122
138
|
skipUnreachableCode: false,
|
|
123
139
|
useCase: this._referencesResult.useCase,
|
|
124
140
|
providers: this._referencesResult.providers,
|
|
141
|
+
previousResultRanges: this._previousResultRanges,
|
|
125
142
|
});
|
|
126
143
|
for (const result of collector.collect()) {
|
|
127
|
-
//
|
|
144
|
+
// `result.node` is inspected only here, while this file's parse tree is still live; we do
|
|
145
|
+
// not store it on the committed result so the tree can be dropped after this file is walked.
|
|
128
146
|
if (this._includeDeclaration || result.node !== this._referencesResult.nodeAtOffset) {
|
|
129
147
|
results.push({
|
|
130
|
-
node: result.node,
|
|
131
148
|
location: this._createDocumentRange(this._fileUri, result, this._parseResults),
|
|
132
|
-
|
|
133
|
-
? {
|
|
134
|
-
start: (0, positionUtils_1.convertOffsetToPosition)(result.node.parent.start, this._parseResults.tokenizerOutput.lines),
|
|
135
|
-
end: (0, positionUtils_1.convertOffsetToPosition)(textRange_1.TextRange.getEnd(result.node.parent), this._parseResults.tokenizerOutput.lines),
|
|
136
|
-
}
|
|
137
|
-
: undefined,
|
|
149
|
+
range: result.range,
|
|
138
150
|
});
|
|
139
151
|
}
|
|
140
152
|
}
|
|
141
|
-
return results;
|
|
153
|
+
return { results, discoveredDeclarations: collector.getSeedDeclarations() };
|
|
142
154
|
}
|
|
143
155
|
static createDocumentRange(fileUri, result, parseResults) {
|
|
144
156
|
return {
|
|
@@ -173,6 +185,9 @@ class ReferencesProvider {
|
|
|
173
185
|
? (range) => resultReporter.report((0, navigationUtils_1.convertDocumentRangesToLocation)(this._program.fileSystem, range, this._convertToLocation))
|
|
174
186
|
: (range) => (0, collectionUtils_1.appendArray)(locations, (0, navigationUtils_1.convertDocumentRangesToLocation)(this._program.fileSystem, range, this._convertToLocation));
|
|
175
187
|
const invokedFromUserFile = (0, sourceFileInfoUtils_1.isUserCode)(sourceFileInfo);
|
|
188
|
+
// A file participates in find-all-references when it is open in the editor, or the request
|
|
189
|
+
// originated from non-user code, or it is user code.
|
|
190
|
+
const isReferenceCandidateFile = (info) => info.isOpenByClient || !invokedFromUserFile || (0, sourceFileInfoUtils_1.isUserCode)(info);
|
|
176
191
|
const referencesResult = ReferencesProvider.getDeclarationForPosition(this._program, fileUri, position, reporter, extensibility_1.ReferenceUseCase.References, this._token);
|
|
177
192
|
if (!referencesResult) {
|
|
178
193
|
return;
|
|
@@ -181,22 +196,11 @@ class ReferencesProvider {
|
|
|
181
196
|
if (!referencesResult.requiresGlobalSearch) {
|
|
182
197
|
this.addReferencesToResult(sourceFileInfo.uri, includeDeclaration, referencesResult);
|
|
183
198
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
// See if the reference symbol's string is located somewhere within the file.
|
|
190
|
-
// If not, we can skip additional processing for the file.
|
|
191
|
-
const fileContents = curSourceFileInfo.contents;
|
|
192
|
-
if (!fileContents || referencesResult.symbolNames.some((s) => fileContents.indexOf(s) >= 0)) {
|
|
193
|
-
this.addReferencesToResult(curSourceFileInfo.uri, includeDeclaration, referencesResult);
|
|
194
|
-
}
|
|
195
|
-
// This operation can consume significant memory, so check
|
|
196
|
-
// for situations where we need to discard the type cache.
|
|
197
|
-
this._program.handleMemoryHighUsage();
|
|
198
|
-
}
|
|
199
|
-
}
|
|
199
|
+
// Collect references across the workspace. Some symbols are found as a group (protocol
|
|
200
|
+
// members and TypedDict keys that share a name), and the rest of the group only becomes
|
|
201
|
+
// known once their usages in other files are examined. A single workspace walk pulls in
|
|
202
|
+
// those related declarations so the result covers the entire group.
|
|
203
|
+
this.collectWorkspaceReferences(referencesResult, includeDeclaration, isReferenceCandidateFile);
|
|
200
204
|
// Make sure to include declarations regardless where they are defined
|
|
201
205
|
// if includeDeclaration is set.
|
|
202
206
|
if (includeDeclaration) {
|
|
@@ -233,13 +237,157 @@ class ReferencesProvider {
|
|
|
233
237
|
}
|
|
234
238
|
return dedupedLocations;
|
|
235
239
|
}
|
|
236
|
-
|
|
240
|
+
// Collects references in a single file without committing them to `referencesResult`, returning
|
|
241
|
+
// the per-file results plus any seed declarations the usage providers discovered while walking.
|
|
242
|
+
collectFileReferences(fileUri, includeDeclaration, referencesResult, previousResultRanges) {
|
|
237
243
|
const parseResults = this._program.getParseResults(fileUri);
|
|
238
244
|
if (!parseResults) {
|
|
239
|
-
return;
|
|
245
|
+
return { results: [], discoveredDeclarations: [] };
|
|
246
|
+
}
|
|
247
|
+
const refTreeWalker = new FindReferencesTreeWalker(this._program, fileUri, referencesResult, includeDeclaration, this._token, this._createDocumentRange, previousResultRanges);
|
|
248
|
+
return refTreeWalker.findReferences();
|
|
249
|
+
}
|
|
250
|
+
addReferencesToResult(fileUri, includeDeclaration, referencesResult) {
|
|
251
|
+
const collected = this.collectFileReferences(fileUri, includeDeclaration, referencesResult);
|
|
252
|
+
referencesResult.addResults(...collected.results);
|
|
253
|
+
}
|
|
254
|
+
// Walks the workspace to collect references into `referencesResult`. For ordinary symbols the seed
|
|
255
|
+
// declaration set cannot grow, so this is a single pass and results stream out per file as they are
|
|
256
|
+
// found.
|
|
257
|
+
//
|
|
258
|
+
// Seed-usage providers (protocol members, TypedDict keys) can reveal additional declarations
|
|
259
|
+
// only after a usage in one file is matched, and that declaration may live in a file walked
|
|
260
|
+
// before the one that reveals it. When such a provider is active we repeat the workspace walk
|
|
261
|
+
// until the declaration set stops growing. Results are not discarded between passes: each pass
|
|
262
|
+
// streams only that file's newly found locations (its delta) into `referencesResult`, which
|
|
263
|
+
// accumulates across passes (it is never cleared), so the running result is always exactly
|
|
264
|
+
// previous + deltas. This is the same `DocumentSymbolCollector` run that collects references, so
|
|
265
|
+
// growth costs no extra walk beyond the re-passes growth requires.
|
|
266
|
+
//
|
|
267
|
+
// Cost model: when nothing propagates -- ordinary symbols, or a seed symbol whose first pass
|
|
268
|
+
// discovers no new declarations -- this is a single workspace walk, identical to the non-seed path.
|
|
269
|
+
// When the seed grows we re-walk, but each later pass skips every file already processed at the
|
|
270
|
+
// current seed version: we keep a per-file watermark of the seed version it was last walked at
|
|
271
|
+
// (`referencesResult.declarations.length`, a free monotonically increasing version) and re-examine a
|
|
272
|
+
// file only after the seed grows past that watermark. A file is therefore re-collected only when new
|
|
273
|
+
// declarations could give it new matches, and a converged file is visited at most once more to
|
|
274
|
+
// confirm no new matches at the final seed -- not once per pass. We deliberately never pay the worst
|
|
275
|
+
// case up front: there is no eager pre-pass that scans the whole workspace just to harvest every
|
|
276
|
+
// declaration before collecting results. Work grows lazily, only when we discover more to search.
|
|
277
|
+
//
|
|
278
|
+
// The loop runs to a genuine fixpoint with no pass cap: the declaration set grows monotonically
|
|
279
|
+
// and is bounded by the finite set of declarations in the workspace, so convergence is guaranteed.
|
|
280
|
+
// A cap would risk emitting a silently incomplete rename/reference set (broken edit) on a deep
|
|
281
|
+
// cross-file chain; the only acceptable early exit is cancellation, which aborts the whole request
|
|
282
|
+
// rather than returning a partial result.
|
|
283
|
+
//
|
|
284
|
+
// NOTE: keep observable behavior in lockstep with AsyncReferencesProvider.collectWorkspaceReferences.
|
|
285
|
+
collectWorkspaceReferences(referencesResult, includeDeclaration, isCandidateFile) {
|
|
286
|
+
// Whether the seed can grow is the usage providers' policy, not this engine's. A provider that
|
|
287
|
+
// exposes `appendSeedDeclarationsAt` may contribute sibling declarations during the walk, so the
|
|
288
|
+
// result set is not final until the workspace-wide fixpoint settles. (Today's protocol/TypedDict
|
|
289
|
+
// providers expose it only for rename and leave it unbound for Find All References, but the engine
|
|
290
|
+
// no longer depends on that -- it just checks the hook.)
|
|
291
|
+
const canGrowSeed = referencesResult.providers.some((p) => p.appendSeedDeclarationsAt !== undefined);
|
|
292
|
+
// Per-file delta handle. When the seed can grow we re-walk files as the seed expands, and the same
|
|
293
|
+
// location can be re-found on several passes. To avoid re-reporting it, each file keeps the set of
|
|
294
|
+
// result ranges already found in it (keyed via `getResultRangeKey`) and hands that
|
|
295
|
+
// set to the collector as its read-only "previous result" (modeled on the semantic-tokens /
|
|
296
|
+
// pull-diagnostics delta APIs). The collector returns only that file's delta -- the locations new
|
|
297
|
+
// since the previous result -- without ever mutating the set; this provider then merges the delta
|
|
298
|
+
// back into the set (below) so the next re-walk yields just the seed-growth additions. Each delta is
|
|
299
|
+
// streamed straight into `referencesResult`, so the running result is exactly previous + deltas with
|
|
300
|
+
// no separate dedup pass. (The non-growing path needs no handle: each file is walked once, so its
|
|
301
|
+
// first results are final and stream immediately.)
|
|
302
|
+
const previousResultRangesByFile = canGrowSeed ? new Map() : undefined;
|
|
303
|
+
// Per-file watermark of the seed version (`referencesResult.declarations.length`) each file was
|
|
304
|
+
// last walked at. Lets later passes skip files already processed at the current seed version,
|
|
305
|
+
// re-collecting a file only after the seed grows past its watermark.
|
|
306
|
+
const lastWalkedSeedVersion = canGrowSeed ? new Map() : undefined;
|
|
307
|
+
// Design decision -- correctness over performance: this fixpoint walk is intentionally NOT
|
|
308
|
+
// capped for performance, and it never truncates the result to "go faster". Returning a
|
|
309
|
+
// broken/partial answer in the name of perf is the worst possible outcome here: a partial rename
|
|
310
|
+
// silently corrupts code, and a partial reference set misleads the user. The only acceptable way
|
|
311
|
+
// to stop early is user cancellation (`throwIfCancellationRequested` below); short of that we
|
|
312
|
+
// always run to a complete, correct result. If a large workspace makes this slow, the answer is
|
|
313
|
+
// for the user to cancel -- not for us to return a wrong answer.
|
|
314
|
+
//
|
|
315
|
+
// Growth is monotonic over the finite set of workspace declarations, so the loop is guaranteed to
|
|
316
|
+
// converge as long as `mergeSeedDeclarations` only reports growth when the deduped
|
|
317
|
+
// (`areDeclarationsSame`) declaration set actually increases.
|
|
318
|
+
let grew = true;
|
|
319
|
+
while (grew) {
|
|
320
|
+
(0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
|
|
321
|
+
grew = false;
|
|
322
|
+
for (const curSourceFileInfo of this._program.getSourceFileInfoList()) {
|
|
323
|
+
(0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
|
|
324
|
+
// "Find all references" will only include references from user code unless the file
|
|
325
|
+
// is explicitly opened in the editor or it is invoked from non user files.
|
|
326
|
+
if (!isCandidateFile(curSourceFileInfo)) {
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
const fileKey = curSourceFileInfo.uri.key;
|
|
330
|
+
// `referencesResult.declarations.length` is a free, monotonically increasing seed version
|
|
331
|
+
// (it only grows via mergeSeedDeclarations). Capture it before the walk so it reflects the
|
|
332
|
+
// seed this file is matched against. Unused (0) when the seed can't grow.
|
|
333
|
+
const seedVersion = canGrowSeed ? referencesResult.declarations.length : 0;
|
|
334
|
+
// Seed-version skip: a file re-processed at the same seed version yields identical results,
|
|
335
|
+
// so skip any file already walked (or examined) at the current version. A file with no
|
|
336
|
+
// watermark is always considered, so later seed/name growth still reaches it.
|
|
337
|
+
if (canGrowSeed && lastWalkedSeedVersion.get(fileKey) === seedVersion) {
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
// Record the seed version BEFORE matching this file, so the watermark reflects exactly the
|
|
341
|
+
// seed snapshot the entire walk of this file is matched against. collectFileReferences
|
|
342
|
+
// matches the whole file against the seed as it stands now; the seed only grows afterward
|
|
343
|
+
// (via mergeSeedDeclarations below), which bumps the global version past this watermark and
|
|
344
|
+
// triggers exactly one more re-walk of this file against the final seed. Recording it here --
|
|
345
|
+
// rather than after the walk -- guarantees a file is never matched against a seed newer than
|
|
346
|
+
// its watermark, so no single file can be matched against two different seed versions.
|
|
347
|
+
lastWalkedSeedVersion?.set(fileKey, seedVersion);
|
|
348
|
+
// See if the reference symbol's string is located somewhere within the file.
|
|
349
|
+
// If not, we can skip additional processing for the file.
|
|
350
|
+
const fileContents = curSourceFileInfo.contents;
|
|
351
|
+
if (fileContents && !referencesResult.symbolNames.some((s) => fileContents.indexOf(s) >= 0)) {
|
|
352
|
+
// No possible match at this seed version; re-examine only after the seed (and thus the
|
|
353
|
+
// symbol-name set) grows past the watermark recorded above.
|
|
354
|
+
continue;
|
|
355
|
+
}
|
|
356
|
+
// Per-file delta handle: reuse the same set across passes so the collector treats it as the
|
|
357
|
+
// previous result and returns only this file's seed-growth additions. Absent when the seed
|
|
358
|
+
// cannot grow (single walk).
|
|
359
|
+
const previousResultRanges = previousResultRangesByFile
|
|
360
|
+
? (0, collectionUtils_1.getOrAdd)(previousResultRangesByFile, fileKey, () => new Set())
|
|
361
|
+
: undefined;
|
|
362
|
+
const collected = this.collectFileReferences(curSourceFileInfo.uri, includeDeclaration, referencesResult, previousResultRanges);
|
|
363
|
+
if (canGrowSeed && mergeSeedDeclarations(referencesResult, collected.discoveredDeclarations)) {
|
|
364
|
+
grew = true;
|
|
365
|
+
}
|
|
366
|
+
// The collector returns only this file's delta: locations not in the previous-result set it
|
|
367
|
+
// was given (the whole result on a file's first walk, just the seed-growth additions on a
|
|
368
|
+
// re-walk). Appending each delta as it arrives builds the full result incrementally -- full
|
|
369
|
+
// result = previous result + streamed deltas -- so results stream out even while the seed is
|
|
370
|
+
// still growing, with no separate dedup pass.
|
|
371
|
+
referencesResult.addResults(...collected.results);
|
|
372
|
+
// Provider owns the delta merge: fold this file's newly collected ranges into its read-only
|
|
373
|
+
// previous-result set so the next seed-growth pass skips them. The collector returned only
|
|
374
|
+
// the delta and never touched the set.
|
|
375
|
+
if (previousResultRanges) {
|
|
376
|
+
for (const loc of collected.results) {
|
|
377
|
+
previousResultRanges.add((0, documentSymbolCollector_1.getResultRangeKey)(loc.range));
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
// This operation can consume significant memory, so check
|
|
381
|
+
// for situations where we need to discard the type cache.
|
|
382
|
+
this._program.handleMemoryHighUsage();
|
|
383
|
+
}
|
|
384
|
+
if (!canGrowSeed) {
|
|
385
|
+
// Single streaming pass; results were already committed above.
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
// Seed-growth path: the collector streamed each location exactly once -- as the per-file delta
|
|
389
|
+
// on the pass it was first found -- so once the seed stops growing there is nothing left to commit.
|
|
240
390
|
}
|
|
241
|
-
const refTreeWalker = new FindReferencesTreeWalker(this._program, fileUri, referencesResult, includeDeclaration, this._token, this._createDocumentRange);
|
|
242
|
-
referencesResult.addResults(...refTreeWalker.findReferences());
|
|
243
391
|
}
|
|
244
392
|
static getDeclarationForNode(program, fileUri, node, reporter, useCase, token) {
|
|
245
393
|
(0, cancellationUtils_1.throwIfCancellationRequested)(token);
|
|
@@ -285,6 +433,24 @@ class ReferencesProvider {
|
|
|
285
433
|
}
|
|
286
434
|
}
|
|
287
435
|
exports.ReferencesProvider = ReferencesProvider;
|
|
436
|
+
// Merges newly discovered seed declarations into `referencesResult`, also widening `symbolNames`
|
|
437
|
+
// with any new declaration names so later passes and the result loop scan the right files. Returns
|
|
438
|
+
// whether the declaration set actually grew.
|
|
439
|
+
function mergeSeedDeclarations(referencesResult, discovered) {
|
|
440
|
+
let grew = false;
|
|
441
|
+
for (const decl of discovered) {
|
|
442
|
+
const before = referencesResult.declarations.length;
|
|
443
|
+
(0, documentSymbolCollector_1.addDeclarationIfUnique)(referencesResult.declarations, decl);
|
|
444
|
+
if (referencesResult.declarations.length !== before) {
|
|
445
|
+
grew = true;
|
|
446
|
+
const name = (0, declarationUtils_1.getNameFromDeclaration)(decl);
|
|
447
|
+
if (name && !referencesResult.symbolNames.includes(name)) {
|
|
448
|
+
referencesResult.symbolNames.push(name);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
return grew;
|
|
453
|
+
}
|
|
288
454
|
function isVisibleOutside(evaluator, currentUri, node, declarations) {
|
|
289
455
|
const result = evaluator.lookUpSymbolRecursive(node, node.d.value, /* honorCodeFlow */ false);
|
|
290
456
|
if (result && !isExternallyVisible(result.symbol)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referencesProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/referencesProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"referencesProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/referencesProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { CancellationToken, WorkspaceEdit } from 'vscode-languageserver';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { Declaration } from '../analyzer/declaration';
|
|
3
|
+
import { ProgramView, SourceFileInfo } from '../common/extensibility';
|
|
4
|
+
import { Position, Range, TextRange } from '../common/textRange';
|
|
5
|
+
import { TextRangeCollection } from '../common/textRangeCollection';
|
|
4
6
|
import { Uri } from '../common/uri/uri';
|
|
5
7
|
import { ReferencesResult } from '../languageService/referencesProvider';
|
|
8
|
+
import { ParseNode } from '../parser/parseNodes';
|
|
9
|
+
export declare function assertRenameTargetsAreUserCode(getSourceFileInfo: (uri: Uri) => SourceFileInfo | undefined, declarations: readonly Declaration[], symbolName: string): void;
|
|
10
|
+
export declare function getRenameSymbolRange(nodeAtOffset: ParseNode, lines: TextRangeCollection<TextRange>): Range;
|
|
6
11
|
export declare class RenameProvider {
|
|
7
12
|
private _program;
|
|
8
13
|
private _fileUri;
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.RenameProvider = void 0;
|
|
12
|
+
exports.assertRenameTargetsAreUserCode = assertRenameTargetsAreUserCode;
|
|
13
|
+
exports.getRenameSymbolRange = getRenameSymbolRange;
|
|
14
|
+
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
12
15
|
const sourceFileInfoUtils_1 = require("../analyzer/sourceFileInfoUtils");
|
|
13
16
|
const cancellationUtils_1 = require("../common/cancellationUtils");
|
|
14
17
|
const debug_1 = require("../common/debug");
|
|
@@ -16,6 +19,36 @@ const extensibility_1 = require("../common/extensibility");
|
|
|
16
19
|
const positionUtils_1 = require("../common/positionUtils");
|
|
17
20
|
const workspaceEditUtils_1 = require("../common/workspaceEditUtils");
|
|
18
21
|
const referencesProvider_1 = require("../languageService/referencesProvider");
|
|
22
|
+
const localize_1 = require("../localization/localize");
|
|
23
|
+
// Rename must never modify non-user code (library or stub files). A rename group can grow during the
|
|
24
|
+
// multi-file workspace walk -- protocol members and TypedDict keys that share a name are renamed as a
|
|
25
|
+
// group, and the related declarations only become known once their usages in other files are examined.
|
|
26
|
+
// That growth can pull in a declaration that lives in non-user code. Editing only the user-code
|
|
27
|
+
// occurrences would leave the symbol partially renamed and the code inconsistent, so we abort loudly --
|
|
28
|
+
// naming the exact declaration(s) that block the rename and why -- instead of returning a partial edit.
|
|
29
|
+
//
|
|
30
|
+
// `getSourceFileInfo` is passed as a callback so this helper works for both the sync `ProgramView` and the
|
|
31
|
+
// async program snapshot without coupling to either type.
|
|
32
|
+
function assertRenameTargetsAreUserCode(getSourceFileInfo, declarations, symbolName) {
|
|
33
|
+
const nonUserDeclarations = declarations.filter((d) => !(0, sourceFileInfoUtils_1.isUserCode)(getSourceFileInfo(d.uri)));
|
|
34
|
+
if (nonUserDeclarations.length === 0) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const locations = nonUserDeclarations
|
|
38
|
+
.map((d) => ` - ${d.uri.toUserVisibleString()}:${d.range.start.line + 1}`)
|
|
39
|
+
.join('\n');
|
|
40
|
+
throw new vscode_languageserver_1.ResponseError(vscode_languageserver_1.LSPErrorCodes.RequestFailed, localize_1.Localizer.Rename.cannotRenameNonUserCode().format({ symbolName, locations }));
|
|
41
|
+
}
|
|
42
|
+
// Computes the prepareRename range for the symbol at the cursor. For a single parenthesized name
|
|
43
|
+
// (e.g. `(A)`), the parser widens the NameNode's range to span the surrounding parens (see
|
|
44
|
+
// `_parseTupleAtom`), while the identifier token keeps the bare-name extent. Use the token range so
|
|
45
|
+
// the rename prompt shows/replaces just the name rather than the parens (pylance-release #5372).
|
|
46
|
+
// Shared by the sync `RenameProvider` and the async aggregated rename provider to keep both paths
|
|
47
|
+
// identical.
|
|
48
|
+
function getRenameSymbolRange(nodeAtOffset, lines) {
|
|
49
|
+
const rangeSource = nodeAtOffset.nodeType === 38 /* ParseNodeType.Name */ ? nodeAtOffset.d.token : nodeAtOffset;
|
|
50
|
+
return (0, positionUtils_1.convertTextRangeToRange)(rangeSource, lines);
|
|
51
|
+
}
|
|
19
52
|
class RenameProvider {
|
|
20
53
|
constructor(_program, _fileUri, _position, _token) {
|
|
21
54
|
this._program = _program;
|
|
@@ -38,7 +71,7 @@ class RenameProvider {
|
|
|
38
71
|
return null;
|
|
39
72
|
}
|
|
40
73
|
// Return the range of the symbol.
|
|
41
|
-
return (
|
|
74
|
+
return getRenameSymbolRange(referencesResult.nodeAtOffset, this._parseResults.tokenizerOutput.lines);
|
|
42
75
|
}
|
|
43
76
|
renameSymbol(newName, isDefaultWorkspace, isUntitled) {
|
|
44
77
|
(0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
|
|
@@ -56,22 +89,17 @@ class RenameProvider {
|
|
|
56
89
|
referenceProvider.addReferencesToResult(this._fileUri, /* includeDeclaration */ true, referencesResult);
|
|
57
90
|
break;
|
|
58
91
|
case 'multiFileMode': {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
// This operation can consume significant memory, so check
|
|
72
|
-
// for situations where we need to discard the type cache.
|
|
73
|
-
this._program.handleMemoryHighUsage();
|
|
74
|
-
}
|
|
92
|
+
// Rename every reference across the workspace. Some symbols are renamed as a group
|
|
93
|
+
// (protocol members and TypedDict keys that share a name), and the rest of the group
|
|
94
|
+
// only becomes known once their usages in other files are examined. Collecting the
|
|
95
|
+
// whole workspace in one walk pulls in those related declarations so the rename
|
|
96
|
+
// covers the entire group.
|
|
97
|
+
referenceProvider.collectWorkspaceReferences(referencesResult, /* includeDeclaration */ true, (info) => (0, sourceFileInfoUtils_1.isUserCode)(info));
|
|
98
|
+
// The group may have grown (during the walk) to include a declaration that lives in
|
|
99
|
+
// non-user code. getRenameSymbolMode only verified the pre-walk seed was all user code,
|
|
100
|
+
// so re-assert the invariant now and abort loudly rather than silently renaming only
|
|
101
|
+
// the editable subset.
|
|
102
|
+
assertRenameTargetsAreUserCode((uri) => this._program.getSourceFileInfo(uri), referencesResult.declarations, referencesResult.symbolNames[0] ?? newName);
|
|
75
103
|
break;
|
|
76
104
|
}
|
|
77
105
|
case 'none':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renameProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/renameProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;
|
|
1
|
+
{"version":3,"file":"renameProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/renameProvider.ts"],"names":[],"mappings":"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"}
|