@zzzen/pyright-internal 1.2.0-dev.20231126 → 1.2.0-dev.20231210
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/analyzerFileInfo.d.ts +4 -3
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +15 -14
- package/dist/analyzer/backgroundAnalysisProgram.js +38 -38
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +59 -52
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +4 -1
- package/dist/analyzer/checker.js +189 -42
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/circularDependency.d.ts +3 -2
- package/dist/analyzer/circularDependency.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +36 -36
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/commentUtils.js +7 -0
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +14 -5
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +2 -1
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +58 -47
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +5 -3
- package/dist/analyzer/declaration.js +3 -2
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/declarationUtils.d.ts +3 -2
- package/dist/analyzer/declarationUtils.js +14 -12
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/enums.js +1 -1
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +29 -25
- package/dist/analyzer/importResolver.js +300 -301
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importResult.d.ts +5 -4
- package/dist/analyzer/importResult.js.map +1 -1
- package/dist/analyzer/importStatementUtils.d.ts +5 -4
- package/dist/analyzer/importStatementUtils.js +23 -22
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +3 -3
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.js +16 -14
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeReport.d.ts +7 -6
- package/dist/analyzer/packageTypeReport.js +4 -4
- package/dist/analyzer/packageTypeReport.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +68 -64
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parentDirectoryCache.d.ts +7 -6
- package/dist/analyzer/parentDirectoryCache.js +9 -10
- package/dist/analyzer/parentDirectoryCache.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -1
- package/dist/analyzer/parseTreeUtils.js +6 -3
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +79 -14
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +27 -26
- package/dist/analyzer/program.js +162 -156
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +3 -3
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +27 -13
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pyTypedUtils.d.ts +3 -2
- package/dist/analyzer/pyTypedUtils.js +4 -5
- package/dist/analyzer/pyTypedUtils.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.d.ts +7 -6
- package/dist/analyzer/pythonPathUtils.js +21 -23
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/service.d.ts +24 -23
- package/dist/analyzer/service.js +187 -183
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +4 -5
- package/dist/analyzer/sourceFile.js +68 -56
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.js +3 -3
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +11 -10
- package/dist/analyzer/sourceMapper.js +59 -62
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/sourceMapperUtils.d.ts +2 -1
- package/dist/analyzer/sourceMapperUtils.js +2 -2
- package/dist/analyzer/sourceMapperUtils.js.map +1 -1
- package/dist/analyzer/tracePrinter.d.ts +3 -2
- package/dist/analyzer/tracePrinter.js +21 -23
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.d.ts +2 -1
- package/dist/analyzer/typeDocStringUtils.js +14 -17
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +298 -231
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -1
- package/dist/analyzer/typeEvaluatorTypes.js +1 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +3 -3
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +2 -0
- package/dist/analyzer/typePrinter.js +48 -8
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.d.ts +2 -1
- package/dist/analyzer/typeStubWriter.js +2 -2
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +5 -3
- package/dist/analyzer/typeUtils.js +32 -17
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +2 -0
- package/dist/analyzer/typeVarContext.js +27 -0
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typedDicts.js +6 -36
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +8 -12
- package/dist/analyzer/types.js +13 -20
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysis.d.ts +1 -2
- package/dist/backgroundAnalysis.js +6 -4
- package/dist/backgroundAnalysis.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +22 -20
- package/dist/backgroundAnalysisBase.js +76 -55
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +1 -1
- package/dist/backgroundThreadBase.js +20 -11
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/commandController.js +1 -2
- package/dist/commands/commandController.js.map +1 -1
- package/dist/commands/commands.d.ts +0 -1
- package/dist/commands/commands.js +0 -1
- package/dist/commands/commands.js.map +1 -1
- package/dist/commands/createTypeStub.js +3 -2
- package/dist/commands/createTypeStub.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +21 -20
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/commands/quickActionCommand.js +5 -5
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/configOptions.d.ts +15 -13
- package/dist/common/configOptions.js +120 -30
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/diagnostic.d.ts +6 -9
- package/dist/common/diagnostic.js +2 -2
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/diagnosticSink.d.ts +2 -1
- package/dist/common/diagnosticSink.js.map +1 -1
- package/dist/common/editAction.d.ts +6 -5
- package/dist/common/editAction.js +2 -2
- package/dist/common/editAction.js.map +1 -1
- package/dist/common/envVarUtils.d.ts +2 -1
- package/dist/common/envVarUtils.js +20 -28
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.d.ts +19 -19
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileSystem.d.ts +29 -28
- package/dist/common/fileWatcher.d.ts +3 -2
- package/dist/common/fileWatcher.js.map +1 -1
- package/dist/common/fullAccessHost.d.ts +8 -7
- package/dist/common/fullAccessHost.js +21 -16
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/host.d.ts +7 -6
- package/dist/common/host.js +1 -1
- package/dist/common/host.js.map +1 -1
- package/dist/common/logTracker.d.ts +2 -1
- package/dist/common/logTracker.js +4 -4
- package/dist/common/logTracker.js.map +1 -1
- package/dist/common/pathUtils.d.ts +1 -28
- package/dist/common/pathUtils.js +17 -366
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +7 -3
- package/dist/common/realFileSystem.js +78 -60
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProviderExtensions.d.ts +2 -1
- package/dist/common/serviceProviderExtensions.js +5 -2
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/common/textEditTracker.d.ts +2 -1
- package/dist/common/textEditTracker.js +28 -28
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/textRange.d.ts +2 -1
- package/dist/common/textRange.js.map +1 -1
- package/dist/common/uri/baseUri.d.ts +51 -0
- package/dist/common/uri/baseUri.js +194 -0
- package/dist/common/uri/baseUri.js.map +1 -0
- package/dist/common/uri/emptyUri.d.ts +32 -0
- package/dist/common/uri/emptyUri.js +122 -0
- package/dist/common/uri/emptyUri.js.map +1 -0
- package/dist/common/uri/fileUri.d.ts +36 -0
- package/dist/common/uri/fileUri.js +180 -0
- package/dist/common/uri/fileUri.js.map +1 -0
- package/dist/common/uri/memoization.d.ts +3 -0
- package/dist/common/uri/memoization.js +72 -0
- package/dist/common/uri/memoization.js.map +1 -0
- package/dist/common/uri/uri.d.ts +50 -0
- package/dist/common/uri/uri.js +104 -0
- package/dist/common/uri/uri.js.map +1 -0
- package/dist/common/uri/uriUtils.d.ts +39 -0
- package/dist/common/uri/uriUtils.js +362 -0
- package/dist/common/uri/uriUtils.js.map +1 -0
- package/dist/common/uri/webUri.d.ts +36 -0
- package/dist/common/uri/webUri.js +207 -0
- package/dist/common/uri/webUri.js.map +1 -0
- package/dist/common/workspaceEditUtils.d.ts +8 -8
- package/dist/common/workspaceEditUtils.js +34 -37
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +19 -22
- package/dist/languageServerBase.js +91 -95
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.d.ts +2 -1
- package/dist/languageService/analyzerServiceExecutor.js +14 -16
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +11 -9
- package/dist/languageService/autoImporter.js +45 -44
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.d.ts +3 -2
- package/dist/languageService/callHierarchyProvider.js +23 -35
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/codeActionProvider.d.ts +2 -1
- package/dist/languageService/codeActionProvider.js +8 -24
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +7 -6
- package/dist/languageService/completionProvider.js +32 -30
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.d.ts +2 -1
- package/dist/languageService/completionProviderUtils.js +1 -1
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/definitionProvider.d.ts +4 -3
- package/dist/languageService/definitionProvider.js +26 -24
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.d.ts +3 -2
- package/dist/languageService/documentHighlightProvider.js +3 -3
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +8 -7
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.d.ts +5 -4
- package/dist/languageService/documentSymbolProvider.js +9 -11
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +4 -3
- package/dist/languageService/hoverProvider.js +6 -5
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/navigationUtils.d.ts +2 -1
- package/dist/languageService/navigationUtils.js +2 -3
- package/dist/languageService/navigationUtils.js.map +1 -1
- package/dist/languageService/quickActions.d.ts +2 -2
- package/dist/languageService/quickActions.js +3 -83
- package/dist/languageService/quickActions.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +10 -9
- package/dist/languageService/referencesProvider.js +28 -28
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.d.ts +4 -3
- package/dist/languageService/renameProvider.js +17 -18
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.d.ts +3 -2
- package/dist/languageService/signatureHelpProvider.js +4 -4
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.d.ts +2 -1
- package/dist/languageService/symbolIndexer.js +1 -1
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +10 -4
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.d.ts +4 -3
- package/dist/languageService/workspaceSymbolProvider.js +10 -11
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +13 -9
- package/dist/localization/localize.js +7 -4
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +0 -4
- package/dist/localization/package.nls.de.json +0 -4
- package/dist/localization/package.nls.en-us.json +9 -6
- package/dist/localization/package.nls.es.json +2 -6
- package/dist/localization/package.nls.fr.json +0 -4
- package/dist/localization/package.nls.it.json +0 -4
- package/dist/localization/package.nls.ja.json +0 -4
- package/dist/localization/package.nls.ko.json +0 -4
- package/dist/localization/package.nls.pl.json +0 -4
- package/dist/localization/package.nls.pt-br.json +0 -4
- package/dist/localization/package.nls.qps-ploc.json +0 -4
- package/dist/localization/package.nls.ru.json +0 -4
- package/dist/localization/package.nls.tr.json +0 -4
- package/dist/localization/package.nls.zh-cn.json +0 -4
- package/dist/localization/package.nls.zh-tw.json +0 -4
- package/dist/pyright.js +18 -17
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +13 -13
- package/dist/pyrightFileSystem.js +39 -44
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +29 -28
- package/dist/readonlyAugmentedFileSystem.js +68 -61
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +22 -21
- package/dist/server.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +39 -30
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +38 -29
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/completions.test.js +7 -3
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/config.test.js +24 -22
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/documentSymbolCollector.test.js +3 -2
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/filesystem.test.js +37 -35
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/fourSlashParser.test.js +4 -4
- package/dist/tests/fourSlashParser.test.js.map +1 -1
- package/dist/tests/fourslash/fourslash.d.ts +1 -2
- package/dist/tests/fourslash/hover.docstring.alias.fourslash.js +27 -11
- package/dist/tests/fourslash/hover.docstring.alias.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js +2 -2
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.d.ts +4 -5
- package/dist/tests/harness/fourslash/testLanguageService.js +9 -15
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -2
- package/dist/tests/harness/fourslash/testState.Consts.js +0 -1
- package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +4 -4
- package/dist/tests/harness/fourslash/testState.js +92 -52
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/testAccessHost.d.ts +3 -2
- package/dist/tests/harness/testAccessHost.js +2 -1
- package/dist/tests/harness/testAccessHost.js.map +1 -1
- package/dist/tests/harness/testHost.js +13 -11
- package/dist/tests/harness/testHost.js.map +1 -1
- package/dist/tests/harness/vfs/factory.d.ts +3 -2
- package/dist/tests/harness/vfs/factory.js +5 -4
- package/dist/tests/harness/vfs/factory.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +32 -31
- package/dist/tests/harness/vfs/filesystem.js +47 -49
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/harness/vfs/pathValidation.js +1 -10
- package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
- package/dist/tests/importResolver.test.js +81 -58
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +10 -9
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/ipythonMode.test.js +12 -11
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/logger.test.js +2 -1
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +2 -1
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/pathUtils.test.js +3 -138
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/pyrightFileSystem.test.js +76 -25
- package/dist/tests/pyrightFileSystem.test.js.map +1 -1
- package/dist/tests/service.test.js +37 -42
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js +3 -2
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +8 -7
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +13 -6
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/testState.test.js +13 -9
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testStateUtils.d.ts +2 -5
- package/dist/tests/testStateUtils.js +27 -64
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/testUtils.d.ts +3 -5
- package/dist/tests/testUtils.js +15 -64
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/textEditUtil.test.js +4 -3
- package/dist/tests/textEditUtil.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +23 -19
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +21 -12
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +84 -70
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +26 -21
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +36 -31
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +4 -3
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/tests/uri.test.d.ts +1 -0
- package/dist/tests/uri.test.js +695 -0
- package/dist/tests/uri.test.js.map +1 -0
- package/dist/tests/workspaceEditUtils.test.js +28 -28
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/tests/zipfs.test.js +11 -11
- package/dist/tests/zipfs.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +13 -14
- package/dist/workspaceFactory.js +54 -55
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +2 -2
- package/dist/common/uriParser.d.ts +0 -24
- package/dist/common/uriParser.js +0 -45
- package/dist/common/uriParser.js.map +0 -1
@@ -0,0 +1,36 @@
|
|
1
|
+
import { BaseUri } from './baseUri';
|
2
|
+
import { Uri } from './uri';
|
3
|
+
export declare class WebUri extends BaseUri {
|
4
|
+
private readonly _scheme;
|
5
|
+
private readonly _authority;
|
6
|
+
private readonly _path;
|
7
|
+
private readonly _query;
|
8
|
+
private readonly _fragment;
|
9
|
+
private readonly _originalString;
|
10
|
+
private constructor();
|
11
|
+
get scheme(): string;
|
12
|
+
get isCaseSensitive(): boolean;
|
13
|
+
get root(): Uri;
|
14
|
+
get fileName(): string;
|
15
|
+
get lastExtension(): string;
|
16
|
+
static createWebUri(scheme: string, authority: string, path: string, query: string, fragment: string, originalString: string | undefined): WebUri;
|
17
|
+
toString(): string;
|
18
|
+
toUserVisibleString(): string;
|
19
|
+
static isWebUri(uri: any): uri is WebUri;
|
20
|
+
static fromJsonObj(obj: WebUri): WebUri;
|
21
|
+
matchesRegex(regex: RegExp): boolean;
|
22
|
+
addPath(extra: string): Uri;
|
23
|
+
isRoot(): boolean;
|
24
|
+
isChild(parent: Uri): boolean;
|
25
|
+
isLocal(): boolean;
|
26
|
+
startsWith(other: Uri | undefined): boolean;
|
27
|
+
getPathLength(): number;
|
28
|
+
getPath(): string;
|
29
|
+
getFilePath(): string;
|
30
|
+
combinePaths(...paths: string[]): Uri;
|
31
|
+
getDirectory(): Uri;
|
32
|
+
protected getPathComponentsImpl(): string[];
|
33
|
+
protected getRootPath(): string;
|
34
|
+
protected getComparablePath(): string;
|
35
|
+
private static _createKey;
|
36
|
+
}
|
@@ -0,0 +1,207 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*
|
3
|
+
* webUri.ts
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
5
|
+
* Licensed under the MIT license.
|
6
|
+
*
|
7
|
+
* URI class that represents a URI that isn't 'file' schemed.
|
8
|
+
* This can be URIs like:
|
9
|
+
* - http://www.microsoft.com/file.txt
|
10
|
+
* - untitled:Untitled-1
|
11
|
+
* - vscode:extension/ms-python.python
|
12
|
+
* - vscode-vfs://github.com/microsoft/debugpy/debugpy/launcher/debugAdapter.py
|
13
|
+
*/
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
15
|
+
if (k2 === undefined) k2 = k;
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
19
|
+
}
|
20
|
+
Object.defineProperty(o, k2, desc);
|
21
|
+
}) : (function(o, m, k, k2) {
|
22
|
+
if (k2 === undefined) k2 = k;
|
23
|
+
o[k2] = m[k];
|
24
|
+
}));
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
27
|
+
}) : function(o, v) {
|
28
|
+
o["default"] = v;
|
29
|
+
});
|
30
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
31
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
32
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
33
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
34
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
35
|
+
};
|
36
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
37
|
+
if (mod && mod.__esModule) return mod;
|
38
|
+
var result = {};
|
39
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
40
|
+
__setModuleDefault(result, mod);
|
41
|
+
return result;
|
42
|
+
};
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
44
|
+
exports.WebUri = void 0;
|
45
|
+
const debug = __importStar(require("../debug"));
|
46
|
+
const pathUtils_1 = require("../pathUtils");
|
47
|
+
const baseUri_1 = require("./baseUri");
|
48
|
+
const memoization_1 = require("./memoization");
|
49
|
+
class WebUri extends baseUri_1.BaseUri {
|
50
|
+
constructor(key, _scheme, _authority, _path, _query, _fragment, _originalString) {
|
51
|
+
super(key);
|
52
|
+
this._scheme = _scheme;
|
53
|
+
this._authority = _authority;
|
54
|
+
this._path = _path;
|
55
|
+
this._query = _query;
|
56
|
+
this._fragment = _fragment;
|
57
|
+
this._originalString = _originalString;
|
58
|
+
}
|
59
|
+
get scheme() {
|
60
|
+
return this._scheme;
|
61
|
+
}
|
62
|
+
get isCaseSensitive() {
|
63
|
+
// Web URIs are always case sensitive
|
64
|
+
return true;
|
65
|
+
}
|
66
|
+
get root() {
|
67
|
+
const rootPath = this.getRootPath();
|
68
|
+
if (rootPath !== this._path) {
|
69
|
+
return WebUri.createWebUri(this._scheme, this._authority, rootPath, '', '', undefined);
|
70
|
+
}
|
71
|
+
return this;
|
72
|
+
}
|
73
|
+
get fileName() {
|
74
|
+
// Path should already be normalized, just get the last on a split of '/'.
|
75
|
+
const components = this._path.split('/');
|
76
|
+
return components[components.length - 1];
|
77
|
+
}
|
78
|
+
get lastExtension() {
|
79
|
+
const basename = this.fileName;
|
80
|
+
const index = basename.lastIndexOf('.');
|
81
|
+
if (index >= 0) {
|
82
|
+
return basename.slice(index);
|
83
|
+
}
|
84
|
+
return '';
|
85
|
+
}
|
86
|
+
static createWebUri(scheme, authority, path, query, fragment, originalString) {
|
87
|
+
const key = WebUri._createKey(scheme, authority, path, query, fragment);
|
88
|
+
return new WebUri(key, scheme, authority, path, query, fragment, originalString);
|
89
|
+
}
|
90
|
+
toString() {
|
91
|
+
if (!this._originalString) {
|
92
|
+
return `${this._scheme}://${this._authority}${this._path}${this._query ? '?' + this._query : ''}${this._fragment ? '#' + this._fragment : ''}`;
|
93
|
+
}
|
94
|
+
return this._originalString;
|
95
|
+
}
|
96
|
+
toUserVisibleString() {
|
97
|
+
return this.toString();
|
98
|
+
}
|
99
|
+
static isWebUri(uri) {
|
100
|
+
return (uri === null || uri === void 0 ? void 0 : uri._scheme) !== undefined && (uri === null || uri === void 0 ? void 0 : uri._key) !== undefined;
|
101
|
+
}
|
102
|
+
static fromJsonObj(obj) {
|
103
|
+
return WebUri.createWebUri(obj._scheme, obj._authority, obj._path, obj._query, obj._fragment, obj._originalString);
|
104
|
+
}
|
105
|
+
matchesRegex(regex) {
|
106
|
+
return regex.test(this._path);
|
107
|
+
}
|
108
|
+
addPath(extra) {
|
109
|
+
const newPath = this._path + extra;
|
110
|
+
return WebUri.createWebUri(this._scheme, this._authority, newPath, this._query, this._fragment, undefined);
|
111
|
+
}
|
112
|
+
isRoot() {
|
113
|
+
return this._path === this.getRootPath() && this._path.length > 0;
|
114
|
+
}
|
115
|
+
isChild(parent) {
|
116
|
+
if (!WebUri.isWebUri(parent)) {
|
117
|
+
return false;
|
118
|
+
}
|
119
|
+
return parent._path.length < this._path.length && this.startsWith(parent);
|
120
|
+
}
|
121
|
+
isLocal() {
|
122
|
+
return false;
|
123
|
+
}
|
124
|
+
startsWith(other) {
|
125
|
+
if (!other || !WebUri.isWebUri(other)) {
|
126
|
+
return false;
|
127
|
+
}
|
128
|
+
if (other.isEmpty() !== this.isEmpty()) {
|
129
|
+
return false;
|
130
|
+
}
|
131
|
+
if (this.scheme !== other.scheme) {
|
132
|
+
return false;
|
133
|
+
}
|
134
|
+
if (this._path.length >= other._path.length) {
|
135
|
+
// Make sure the other ends with a / when comparing longer paths, otherwise we might
|
136
|
+
// say that /a/food is a child of /a/foo.
|
137
|
+
const otherPath = this._path.length > other._path.length && !(0, pathUtils_1.hasTrailingDirectorySeparator)(other._path)
|
138
|
+
? `${other._path}/`
|
139
|
+
: other._path;
|
140
|
+
return this._path.startsWith(otherPath);
|
141
|
+
}
|
142
|
+
return false;
|
143
|
+
}
|
144
|
+
getPathLength() {
|
145
|
+
return this._path.length;
|
146
|
+
}
|
147
|
+
getPath() {
|
148
|
+
return this._path;
|
149
|
+
}
|
150
|
+
getFilePath() {
|
151
|
+
debug.fail(`${this} is not a file based URI.`);
|
152
|
+
}
|
153
|
+
combinePaths(...paths) {
|
154
|
+
// Resolve and combine paths, never want URIs with '..' in the middle.
|
155
|
+
let combined = this.normalizeSlashes((0, pathUtils_1.resolvePaths)(this._path, ...paths));
|
156
|
+
// Make sure to remove any trailing directory chars.
|
157
|
+
if ((0, pathUtils_1.hasTrailingDirectorySeparator)(combined) && combined.length > 1) {
|
158
|
+
combined = combined.slice(0, combined.length - 1);
|
159
|
+
}
|
160
|
+
if (combined !== this._path) {
|
161
|
+
return WebUri.createWebUri(this._scheme, this._authority, combined, '', '', undefined);
|
162
|
+
}
|
163
|
+
return this;
|
164
|
+
}
|
165
|
+
getDirectory() {
|
166
|
+
const index = this._path.lastIndexOf('/');
|
167
|
+
if (index > 0) {
|
168
|
+
return WebUri.createWebUri(this._scheme, this._authority, this._path.slice(0, index), this._query, this._fragment, undefined);
|
169
|
+
}
|
170
|
+
else {
|
171
|
+
return this;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
getPathComponentsImpl() {
|
175
|
+
// Get the root path and the rest of the path components.
|
176
|
+
const rootPath = this.getRootPath();
|
177
|
+
const otherPaths = this._path.slice(rootPath.length).split('/');
|
178
|
+
return this.reducePathComponents([rootPath, ...otherPaths]).map((component) => this.normalizeSlashes(component));
|
179
|
+
}
|
180
|
+
getRootPath() {
|
181
|
+
const rootLength = (0, pathUtils_1.getRootLength)(this._path, '/');
|
182
|
+
return this._path.slice(0, rootLength);
|
183
|
+
}
|
184
|
+
getComparablePath() {
|
185
|
+
return (0, pathUtils_1.normalizeSlashes)(this._path);
|
186
|
+
}
|
187
|
+
static _createKey(scheme, authority, path, query, fragment) {
|
188
|
+
return `${scheme}://${authority}${path}${query ? '?' + query : ''}${fragment ? '#' + fragment : ''}`;
|
189
|
+
}
|
190
|
+
}
|
191
|
+
exports.WebUri = WebUri;
|
192
|
+
__decorate([
|
193
|
+
(0, memoization_1.cacheProperty)()
|
194
|
+
], WebUri.prototype, "root", null);
|
195
|
+
__decorate([
|
196
|
+
(0, memoization_1.cacheProperty)()
|
197
|
+
], WebUri.prototype, "fileName", null);
|
198
|
+
__decorate([
|
199
|
+
(0, memoization_1.cacheProperty)()
|
200
|
+
], WebUri.prototype, "lastExtension", null);
|
201
|
+
__decorate([
|
202
|
+
(0, memoization_1.cacheMethodWithNoArgs)()
|
203
|
+
], WebUri.prototype, "getDirectory", null);
|
204
|
+
__decorate([
|
205
|
+
(0, memoization_1.cacheStaticFunc)()
|
206
|
+
], WebUri, "createWebUri", null);
|
207
|
+
//# sourceMappingURL=webUri.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"webUri.js","sourceRoot":"","sources":["../../../../src/common/uri/webUri.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,gDAAkC;AAClC,4CAA4G;AAC5G,uCAAoC;AACpC,+CAAsF;AAGtF,MAAa,MAAO,SAAQ,iBAAO;IAC/B,YACI,GAAW,EACM,OAAe,EACf,UAAkB,EAClB,KAAa,EACb,MAAc,EACd,SAAiB,EACjB,eAAmC;QAEpD,KAAK,CAAC,GAAG,CAAC,CAAC;QAPM,YAAO,GAAP,OAAO,CAAQ;QACf,eAAU,GAAV,UAAU,CAAQ;QAClB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAQ;QACjB,oBAAe,GAAf,eAAe,CAAoB;IAGxD,CAAC;IAED,IAAa,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,eAAe;QACf,qCAAqC;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,IAAa,IAAI;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;YACzB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;SAC1F;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,IAAa,QAAQ;QACjB,0EAA0E;QAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAGD,IAAa,aAAa;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAGM,AAAP,MAAM,CAAC,YAAY,CACf,MAAc,EACd,SAAiB,EACjB,IAAY,EACZ,KAAa,EACb,QAAgB,EAChB,cAAkC;QAElC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxE,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACrF,CAAC;IAEQ,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,OAAO,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAC3F,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAC5C,EAAE,CAAC;SACN;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACQ,mBAAmB;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAQ;QACpB,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,MAAK,SAAS,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAK,SAAS,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC1B,OAAO,MAAM,CAAC,YAAY,CACtB,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,eAAe,CACtB,CAAC;IACN,CAAC;IAEQ,YAAY,CAAC,KAAa;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAEQ,OAAO,CAAC,KAAa;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnC,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/G,CAAC;IAEQ,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACtE,CAAC;IAEQ,OAAO,CAAC,MAAW;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC1B,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IAEQ,OAAO;QACZ,OAAO,KAAK,CAAC;IACjB,CAAC;IAEQ,UAAU,CAAC,KAAsB;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE;YACpC,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC9B,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;YACzC,oFAAoF;YACpF,yCAAyC;YACzC,MAAM,SAAS,GACX,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAA,yCAA6B,EAAC,KAAK,CAAC,KAAK,CAAC;gBACjF,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG;gBACnB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAC3C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAEQ,OAAO;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEQ,WAAW;QAChB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,2BAA2B,CAAC,CAAC;IACnD,CAAC;IAEQ,YAAY,CAAC,GAAG,KAAe;QACpC,sEAAsE;QACtE,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAA,wBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QAEzE,oDAAoD;QACpD,IAAI,IAAA,yCAA6B,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACrD;QACD,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;YACzB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;SAC1F;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAGQ,YAAY;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,OAAO,MAAM,CAAC,YAAY,CACtB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAC1B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,SAAS,CACZ,CAAC;SACL;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAEkB,qBAAqB;QACpC,yDAAyD;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC1E,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CACnC,CAAC;IACN,CAAC;IAEkB,WAAW;QAC1B,MAAM,UAAU,GAAG,IAAA,yBAAa,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEkB,iBAAiB;QAChC,OAAO,IAAA,4BAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY,EAAE,KAAa,EAAE,QAAgB;QACtG,OAAO,GAAG,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzG,CAAC;CACJ;AAvMD,wBAuMC;AAhLG;IADC,IAAA,2BAAa,GAAE;kCAOf;AAGD;IADC,IAAA,2BAAa,GAAE;sCAKf;AAGD;IADC,IAAA,2BAAa,GAAE;2CAQf;AAoHQ;IADR,IAAA,mCAAqB,GAAE;0CAevB;AA/HM;IADN,IAAA,6BAAe,GAAE;gCAWjB"}
|
@@ -2,18 +2,18 @@ import { ChangeAnnotation, TextEdit, WorkspaceEdit } from 'vscode-languageserver
|
|
2
2
|
import { AnalyzerService } from '../analyzer/service';
|
3
3
|
import { FileEditAction, FileEditActions, TextEditAction } from '../common/editAction';
|
4
4
|
import { EditableProgram, SourceFileInfo } from './extensibility';
|
5
|
-
import { ReadOnlyFileSystem } from './fileSystem';
|
6
5
|
import { TextRange } from './textRange';
|
7
6
|
import { TextRangeCollection } from './textRangeCollection';
|
7
|
+
import { Uri } from './uri/uri';
|
8
8
|
export declare function convertToTextEdits(editActions: TextEditAction[]): TextEdit[];
|
9
|
-
export declare function convertToFileTextEdits(
|
10
|
-
export declare function convertToWorkspaceEdit(
|
11
|
-
export declare function convertToWorkspaceEdit(
|
12
|
-
export declare function convertToWorkspaceEdit(
|
9
|
+
export declare function convertToFileTextEdits(fileUri: Uri, editActions: TextEditAction[]): FileEditAction[];
|
10
|
+
export declare function convertToWorkspaceEdit(edits: FileEditAction[]): WorkspaceEdit;
|
11
|
+
export declare function convertToWorkspaceEdit(edits: FileEditActions): WorkspaceEdit;
|
12
|
+
export declare function convertToWorkspaceEdit(edits: FileEditActions, changeAnnotations: {
|
13
13
|
[id: string]: ChangeAnnotation;
|
14
14
|
}, defaultAnnotationId: string): WorkspaceEdit;
|
15
|
-
export declare function appendToWorkspaceEdit(
|
15
|
+
export declare function appendToWorkspaceEdit(edits: FileEditAction[], workspaceEdit: WorkspaceEdit): void;
|
16
16
|
export declare function applyTextEditsToString(edits: TextEditAction[], lines: TextRangeCollection<TextRange>, originalText: string): string;
|
17
|
-
export declare function applyWorkspaceEdit(program: EditableProgram, edits: WorkspaceEdit, filesChanged:
|
17
|
+
export declare function applyWorkspaceEdit(program: EditableProgram, edits: WorkspaceEdit, filesChanged: Map<string, Uri>): void;
|
18
18
|
export declare function applyDocumentChanges(program: EditableProgram, fileInfo: SourceFileInfo, edits: TextEdit[]): void;
|
19
|
-
export declare function generateWorkspaceEdit(originalService: AnalyzerService, clonedService: AnalyzerService, filesChanged:
|
19
|
+
export declare function generateWorkspaceEdit(originalService: AnalyzerService, clonedService: AnalyzerService, filesChanged: Map<string, Uri>): WorkspaceEdit;
|
@@ -10,12 +10,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.generateWorkspaceEdit = exports.applyDocumentChanges = exports.applyWorkspaceEdit = exports.applyTextEditsToString = exports.appendToWorkspaceEdit = exports.convertToWorkspaceEdit = exports.convertToFileTextEdits = exports.convertToTextEdits = void 0;
|
11
11
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
12
12
|
const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
|
13
|
-
const pathUtils_1 = require("../common/pathUtils");
|
14
13
|
const collectionUtils_1 = require("./collectionUtils");
|
15
14
|
const core_1 = require("./core");
|
16
15
|
const debug_1 = require("./debug");
|
17
16
|
const positionUtils_1 = require("./positionUtils");
|
18
17
|
const textRange_1 = require("./textRange");
|
18
|
+
const uri_1 = require("./uri/uri");
|
19
19
|
function convertToTextEdits(editActions) {
|
20
20
|
return editActions.map((editAction) => ({
|
21
21
|
range: editAction.range,
|
@@ -23,22 +23,22 @@ function convertToTextEdits(editActions) {
|
|
23
23
|
}));
|
24
24
|
}
|
25
25
|
exports.convertToTextEdits = convertToTextEdits;
|
26
|
-
function convertToFileTextEdits(
|
27
|
-
return editActions.map((a) => ({
|
26
|
+
function convertToFileTextEdits(fileUri, editActions) {
|
27
|
+
return editActions.map((a) => ({ fileUri, ...a }));
|
28
28
|
}
|
29
29
|
exports.convertToFileTextEdits = convertToFileTextEdits;
|
30
|
-
function convertToWorkspaceEdit(
|
30
|
+
function convertToWorkspaceEdit(edits, changeAnnotations, defaultAnnotationId = 'default') {
|
31
31
|
if ((0, core_1.isArray)(edits)) {
|
32
|
-
return _convertToWorkspaceEditWithChanges(
|
32
|
+
return _convertToWorkspaceEditWithChanges(edits);
|
33
33
|
}
|
34
|
-
return _convertToWorkspaceEditWithDocumentChanges(
|
34
|
+
return _convertToWorkspaceEditWithDocumentChanges(edits, changeAnnotations, defaultAnnotationId);
|
35
35
|
}
|
36
36
|
exports.convertToWorkspaceEdit = convertToWorkspaceEdit;
|
37
|
-
function appendToWorkspaceEdit(
|
37
|
+
function appendToWorkspaceEdit(edits, workspaceEdit) {
|
38
38
|
edits.forEach((edit) => {
|
39
|
-
const uri =
|
40
|
-
workspaceEdit.changes[uri] = workspaceEdit.changes[uri] || [];
|
41
|
-
workspaceEdit.changes[uri].push({ range: edit.range, newText: edit.replacementText });
|
39
|
+
const uri = edit.fileUri;
|
40
|
+
workspaceEdit.changes[uri.toString()] = workspaceEdit.changes[uri.toString()] || [];
|
41
|
+
workspaceEdit.changes[uri.toString()].push({ range: edit.range, newText: edit.replacementText });
|
42
42
|
});
|
43
43
|
}
|
44
44
|
exports.appendToWorkspaceEdit = appendToWorkspaceEdit;
|
@@ -69,28 +69,28 @@ exports.applyTextEditsToString = applyTextEditsToString;
|
|
69
69
|
function applyWorkspaceEdit(program, edits, filesChanged) {
|
70
70
|
if (edits.changes) {
|
71
71
|
for (const kv of Object.entries(edits.changes)) {
|
72
|
-
const
|
73
|
-
const fileInfo = program.getSourceFileInfo(
|
72
|
+
const fileUri = uri_1.Uri.parse(kv[0], program.configOptions.projectRoot.isCaseSensitive);
|
73
|
+
const fileInfo = program.getSourceFileInfo(fileUri);
|
74
74
|
if (!fileInfo || !fileInfo.isTracked) {
|
75
75
|
// We don't allow non user file being modified.
|
76
76
|
continue;
|
77
77
|
}
|
78
78
|
applyDocumentChanges(program, fileInfo, kv[1]);
|
79
|
-
filesChanged.
|
79
|
+
filesChanged.set(fileUri.key, fileUri);
|
80
80
|
}
|
81
81
|
}
|
82
82
|
// For now, we don't support annotations.
|
83
83
|
if (edits.documentChanges) {
|
84
84
|
for (const change of edits.documentChanges) {
|
85
85
|
if (vscode_languageserver_1.TextDocumentEdit.is(change)) {
|
86
|
-
const
|
87
|
-
const fileInfo = program.getSourceFileInfo(
|
86
|
+
const fileUri = uri_1.Uri.parse(change.textDocument.uri, program.configOptions.projectRoot.isCaseSensitive);
|
87
|
+
const fileInfo = program.getSourceFileInfo(fileUri);
|
88
88
|
if (!fileInfo || !fileInfo.isTracked) {
|
89
89
|
// We don't allow non user file being modified.
|
90
90
|
continue;
|
91
91
|
}
|
92
92
|
applyDocumentChanges(program, fileInfo, change.edits);
|
93
|
-
filesChanged.
|
93
|
+
filesChanged.set(fileUri.key, fileUri);
|
94
94
|
}
|
95
95
|
// For now, we don't support other kinds of text changes.
|
96
96
|
// But if we want to add support for those in future, we should add them here.
|
@@ -102,21 +102,20 @@ function applyDocumentChanges(program, fileInfo, edits) {
|
|
102
102
|
var _a, _b, _c, _d;
|
103
103
|
if (!fileInfo.isOpenByClient) {
|
104
104
|
const fileContent = fileInfo.sourceFile.getFileContent();
|
105
|
-
program.setFileOpened(fileInfo.sourceFile.
|
105
|
+
program.setFileOpened(fileInfo.sourceFile.getUri(), 0, fileContent !== null && fileContent !== void 0 ? fileContent : '', {
|
106
106
|
isTracked: fileInfo.isTracked,
|
107
107
|
ipythonMode: fileInfo.sourceFile.getIPythonMode(),
|
108
|
-
|
109
|
-
realFilePath: fileInfo.sourceFile.getRealFilePath(),
|
108
|
+
chainedFileUri: (_a = fileInfo.chainedSourceFile) === null || _a === void 0 ? void 0 : _a.sourceFile.getUri(),
|
110
109
|
});
|
111
110
|
}
|
112
111
|
const version = (_b = fileInfo.sourceFile.getClientVersion()) !== null && _b !== void 0 ? _b : 0;
|
113
|
-
const
|
112
|
+
const fileUri = fileInfo.sourceFile.getUri();
|
113
|
+
const filePath = fileUri.getFilePath();
|
114
114
|
const sourceDoc = vscode_languageserver_textdocument_1.TextDocument.create(filePath, 'python', version, (_c = fileInfo.sourceFile.getOpenFileContents()) !== null && _c !== void 0 ? _c : '');
|
115
|
-
program.setFileOpened(
|
115
|
+
program.setFileOpened(fileUri, version + 1, vscode_languageserver_textdocument_1.TextDocument.applyEdits(sourceDoc, edits), {
|
116
116
|
isTracked: fileInfo.isTracked,
|
117
117
|
ipythonMode: fileInfo.sourceFile.getIPythonMode(),
|
118
|
-
|
119
|
-
realFilePath: fileInfo.sourceFile.getRealFilePath(),
|
118
|
+
chainedFileUri: (_d = fileInfo.chainedSourceFile) === null || _d === void 0 ? void 0 : _d.sourceFile.getUri(),
|
120
119
|
});
|
121
120
|
}
|
122
121
|
exports.applyDocumentChanges = applyDocumentChanges;
|
@@ -127,9 +126,9 @@ function generateWorkspaceEdit(originalService, clonedService, filesChanged) {
|
|
127
126
|
// doing minimal changes using vscode's differ (https://github.com/microsoft/vscode/blob/main/src/vs/base/common/diff/diff.ts)
|
128
127
|
// to support annotation.
|
129
128
|
const edits = { changes: {} };
|
130
|
-
for (const
|
131
|
-
const original = originalService.backgroundAnalysisProgram.program.getBoundSourceFile(
|
132
|
-
const final = clonedService.backgroundAnalysisProgram.program.getBoundSourceFile(
|
129
|
+
for (const uri of filesChanged.values()) {
|
130
|
+
const original = originalService.backgroundAnalysisProgram.program.getBoundSourceFile(uri);
|
131
|
+
const final = clonedService.backgroundAnalysisProgram.program.getBoundSourceFile(uri);
|
133
132
|
if (!original || !final) {
|
134
133
|
// Both must exist.
|
135
134
|
continue;
|
@@ -138,7 +137,7 @@ function generateWorkspaceEdit(originalService, clonedService, filesChanged) {
|
|
138
137
|
if (!parseResults) {
|
139
138
|
continue;
|
140
139
|
}
|
141
|
-
edits.changes[
|
140
|
+
edits.changes[uri.toString()] = [
|
142
141
|
{
|
143
142
|
range: (0, positionUtils_1.convertTextRangeToRange)(parseResults.parseTree, parseResults.tokenizerOutput.lines),
|
144
143
|
newText: (_a = final.getFileContent()) !== null && _a !== void 0 ? _a : '',
|
@@ -148,14 +147,14 @@ function generateWorkspaceEdit(originalService, clonedService, filesChanged) {
|
|
148
147
|
return edits;
|
149
148
|
}
|
150
149
|
exports.generateWorkspaceEdit = generateWorkspaceEdit;
|
151
|
-
function _convertToWorkspaceEditWithChanges(
|
150
|
+
function _convertToWorkspaceEditWithChanges(edits) {
|
152
151
|
const workspaceEdit = {
|
153
152
|
changes: {},
|
154
153
|
};
|
155
|
-
appendToWorkspaceEdit(
|
154
|
+
appendToWorkspaceEdit(edits, workspaceEdit);
|
156
155
|
return workspaceEdit;
|
157
156
|
}
|
158
|
-
function _convertToWorkspaceEditWithDocumentChanges(
|
157
|
+
function _convertToWorkspaceEditWithDocumentChanges(editActions, changeAnnotations, defaultAnnotationId = 'default') {
|
159
158
|
const workspaceEdit = {
|
160
159
|
documentChanges: [],
|
161
160
|
changeAnnotations: changeAnnotations,
|
@@ -165,8 +164,7 @@ function _convertToWorkspaceEditWithDocumentChanges(fs, editActions, changeAnnot
|
|
165
164
|
for (const operation of editActions.fileOperations) {
|
166
165
|
switch (operation.kind) {
|
167
166
|
case 'create':
|
168
|
-
workspaceEdit.documentChanges.push(vscode_languageserver_1.CreateFile.create((
|
169
|
-
/* options */ undefined, defaultAnnotationId));
|
167
|
+
workspaceEdit.documentChanges.push(vscode_languageserver_1.CreateFile.create(operation.fileUri.toString(), /* options */ undefined, defaultAnnotationId));
|
170
168
|
break;
|
171
169
|
case 'rename':
|
172
170
|
case 'delete':
|
@@ -176,9 +174,9 @@ function _convertToWorkspaceEditWithDocumentChanges(fs, editActions, changeAnnot
|
|
176
174
|
}
|
177
175
|
}
|
178
176
|
// Text edit's file path must refer to original file paths unless it is a new file just created.
|
179
|
-
const mapPerFile = (0, collectionUtils_1.createMapFromItems)(editActions.edits, (e) => e.
|
177
|
+
const mapPerFile = (0, collectionUtils_1.createMapFromItems)(editActions.edits, (e) => e.fileUri.key);
|
180
178
|
for (const [key, value] of mapPerFile) {
|
181
|
-
workspaceEdit.documentChanges.push(vscode_languageserver_1.TextDocumentEdit.create({ uri:
|
179
|
+
workspaceEdit.documentChanges.push(vscode_languageserver_1.TextDocumentEdit.create({ uri: key, version: null }, Array.from(value.map((v) => ({
|
182
180
|
range: v.range,
|
183
181
|
newText: v.replacementText,
|
184
182
|
annotationId: defaultAnnotationId,
|
@@ -189,12 +187,11 @@ function _convertToWorkspaceEditWithDocumentChanges(fs, editActions, changeAnnot
|
|
189
187
|
case 'create':
|
190
188
|
break;
|
191
189
|
case 'rename':
|
192
|
-
workspaceEdit.documentChanges.push(vscode_languageserver_1.RenameFile.create((
|
190
|
+
workspaceEdit.documentChanges.push(vscode_languageserver_1.RenameFile.create(operation.oldFileUri.toString(), operation.newFileUri.toString(),
|
193
191
|
/* options */ undefined, defaultAnnotationId));
|
194
192
|
break;
|
195
193
|
case 'delete':
|
196
|
-
workspaceEdit.documentChanges.push(vscode_languageserver_1.DeleteFile.create((
|
197
|
-
/* options */ undefined, defaultAnnotationId));
|
194
|
+
workspaceEdit.documentChanges.push(vscode_languageserver_1.DeleteFile.create(operation.fileUri.toString(), /* options */ undefined, defaultAnnotationId));
|
198
195
|
break;
|
199
196
|
default:
|
200
197
|
(0, debug_1.assertNever)(operation);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"workspaceEditUtils.js","sourceRoot":"","sources":["../../../src/common/workspaceEditUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,iEAQ+B;AAE/B,2FAAkE;AAGlE,
|
1
|
+
{"version":3,"file":"workspaceEditUtils.js","sourceRoot":"","sources":["../../../src/common/workspaceEditUtils.ts"],"names":[],"mappings":"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"}
|
@@ -22,23 +22,23 @@ import { Host } from './common/host';
|
|
22
22
|
import { ProgressReporter } from './common/progressReporter';
|
23
23
|
import { ServiceProvider } from './common/serviceProvider';
|
24
24
|
import { DocumentRange, Position, Range } from './common/textRange';
|
25
|
-
import {
|
25
|
+
import { Uri } from './common/uri/uri';
|
26
26
|
import { DefinitionFilter } from './languageService/definitionProvider';
|
27
27
|
import { CollectionResult } from './languageService/documentSymbolCollector';
|
28
28
|
import { ParseResults } from './parser/parser';
|
29
29
|
import { InitStatus, Workspace, WorkspaceFactory } from './workspaceFactory';
|
30
30
|
export interface ServerSettings {
|
31
|
-
venvPath?:
|
32
|
-
pythonPath?:
|
33
|
-
typeshedPath?:
|
34
|
-
stubPath?:
|
31
|
+
venvPath?: Uri | undefined;
|
32
|
+
pythonPath?: Uri | undefined;
|
33
|
+
typeshedPath?: Uri | undefined;
|
34
|
+
stubPath?: Uri | undefined;
|
35
35
|
openFilesOnly?: boolean | undefined;
|
36
36
|
typeCheckingMode?: string | undefined;
|
37
37
|
useLibraryCodeForTypes?: boolean | undefined;
|
38
38
|
disableLanguageServices?: boolean | undefined;
|
39
39
|
disableOrganizeImports?: boolean | undefined;
|
40
40
|
autoSearchPaths?: boolean | undefined;
|
41
|
-
extraPaths?:
|
41
|
+
extraPaths?: Uri[] | undefined;
|
42
42
|
watchForSourceChanges?: boolean | undefined;
|
43
43
|
watchForLibraryChanges?: boolean | undefined;
|
44
44
|
watchForConfigChanges?: boolean | undefined;
|
@@ -67,21 +67,20 @@ export interface WindowInterface {
|
|
67
67
|
showInformationMessage(message: string, ...actions: MessageAction[]): Promise<MessageAction | undefined>;
|
68
68
|
}
|
69
69
|
export interface LanguageServerInterface {
|
70
|
-
readonly
|
70
|
+
readonly rootUri: Uri;
|
71
71
|
readonly console: ConsoleInterface;
|
72
72
|
readonly window: WindowInterface;
|
73
73
|
readonly supportAdvancedEdits: boolean;
|
74
74
|
getWorkspaces(): Promise<Workspace[]>;
|
75
|
-
getWorkspaceForFile(
|
75
|
+
getWorkspaceForFile(fileUri: Uri): Promise<Workspace>;
|
76
76
|
getSettings(workspace: Workspace): Promise<ServerSettings>;
|
77
77
|
createBackgroundAnalysis(serviceId: string): BackgroundAnalysisBase | undefined;
|
78
78
|
reanalyze(): void;
|
79
79
|
restart(): void;
|
80
|
-
decodeTextDocumentUri(uriString: string): string;
|
81
80
|
}
|
82
81
|
export interface ServerOptions {
|
83
82
|
productName: string;
|
84
|
-
rootDirectory:
|
83
|
+
rootDirectory: Uri;
|
85
84
|
version: string;
|
86
85
|
cancellationProvider: CancellationProvider;
|
87
86
|
serviceProvider: ServiceProvider;
|
@@ -177,26 +176,24 @@ export declare abstract class LanguageServerBase implements LanguageServerInterf
|
|
177
176
|
private _lastFileWatcherRegistration;
|
178
177
|
private _initialized;
|
179
178
|
private _workspaceFoldersChangedDisposable;
|
180
|
-
|
179
|
+
rootUri: Uri;
|
181
180
|
protected client: ClientCapabilities;
|
182
181
|
protected defaultClientConfig: any;
|
183
182
|
protected readonly workspaceFactory: WorkspaceFactory;
|
184
183
|
protected readonly openFileMap: Map<string, TextDocument>;
|
185
184
|
protected readonly fs: FileSystem;
|
186
185
|
protected readonly documentsWithDiagnostics: Set<string>;
|
187
|
-
|
188
|
-
constructor(serverOptions: ServerOptions, connection: Connection, uriParserFactory?: (fs: FileSystem) => UriParser);
|
186
|
+
constructor(serverOptions: ServerOptions, connection: Connection);
|
189
187
|
get console(): ConsoleInterface;
|
190
188
|
get window(): RemoteWindow;
|
191
189
|
get supportAdvancedEdits(): boolean;
|
192
190
|
dispose(): void;
|
193
|
-
decodeTextDocumentUri(uriString: string): string;
|
194
191
|
abstract createBackgroundAnalysis(serviceId: string): BackgroundAnalysisBase | undefined;
|
195
192
|
abstract getSettings(workspace: Workspace): Promise<ServerSettings>;
|
196
193
|
createAnalyzerService(name: string, services?: WorkspaceServices, libraryReanalysisTimeProvider?: () => number): AnalyzerService;
|
197
194
|
getWorkspaces(): Promise<Workspace[]>;
|
198
|
-
getWorkspaceForFile(
|
199
|
-
getContainingWorkspacesForFile(
|
195
|
+
getWorkspaceForFile(fileUri: Uri, pythonPath?: Uri): Promise<Workspace>;
|
196
|
+
getContainingWorkspacesForFile(fileUri: Uri): Promise<Workspace[]>;
|
200
197
|
reanalyze(): void;
|
201
198
|
restart(): void;
|
202
199
|
updateSettingsForAllWorkspaces(): void;
|
@@ -205,8 +202,8 @@ export declare abstract class LanguageServerBase implements LanguageServerInterf
|
|
205
202
|
protected abstract executeCommand(params: ExecuteCommandParams, token: CancellationToken): Promise<any>;
|
206
203
|
protected abstract isLongRunningCommand(command: string): boolean;
|
207
204
|
protected abstract executeCodeAction(params: CodeActionParams, token: CancellationToken): Promise<(Command | CodeAction)[] | undefined | null>;
|
208
|
-
protected isPythonPathImmutable(
|
209
|
-
protected getConfiguration(scopeUri:
|
205
|
+
protected isPythonPathImmutable(fileUri: Uri): boolean;
|
206
|
+
protected getConfiguration(scopeUri: Uri | undefined, section: string): Promise<any>;
|
210
207
|
protected isOpenFilesOnly(diagnosticMode: string): boolean;
|
211
208
|
protected getSeverityOverrides(value: string | boolean): DiagnosticSeverityOverrides | undefined;
|
212
209
|
protected getDiagnosticRuleName(value: string): DiagnosticRule | undefined;
|
@@ -220,8 +217,8 @@ export declare abstract class LanguageServerBase implements LanguageServerInterf
|
|
220
217
|
protected onDefinition(params: TextDocumentPositionParams, token: CancellationToken): Promise<Definition | DefinitionLink[] | undefined | null>;
|
221
218
|
protected onDeclaration(params: TextDocumentPositionParams, token: CancellationToken): Promise<Declaration | DeclarationLink[] | undefined | null>;
|
222
219
|
protected onTypeDefinition(params: TextDocumentPositionParams, token: CancellationToken): Promise<Definition | DefinitionLink[] | undefined | null>;
|
223
|
-
protected getDefinitions(params: TextDocumentPositionParams, token: CancellationToken, filter: DefinitionFilter, getDefinitionsFunc: (workspace: Workspace,
|
224
|
-
protected onReferences(params: ReferenceParams, token: CancellationToken, workDoneReporter: WorkDoneProgressReporter, resultReporter: ResultProgressReporter<Location[]> | undefined, createDocumentRange?: (
|
220
|
+
protected getDefinitions(params: TextDocumentPositionParams, token: CancellationToken, filter: DefinitionFilter, getDefinitionsFunc: (workspace: Workspace, fileUri: Uri, position: Position, filter: DefinitionFilter, token: CancellationToken) => DocumentRange[] | undefined): Promise<Location[] | undefined>;
|
221
|
+
protected onReferences(params: ReferenceParams, token: CancellationToken, workDoneReporter: WorkDoneProgressReporter, resultReporter: ResultProgressReporter<Location[]> | undefined, createDocumentRange?: (uri: Uri, result: CollectionResult, parseResults: ParseResults) => DocumentRange, convertToLocation?: (fs: ReadOnlyFileSystem, ranges: DocumentRange) => Location | undefined): Promise<Location[] | null | undefined>;
|
225
222
|
protected onDocumentSymbol(params: DocumentSymbolParams, token: CancellationToken): Promise<DocumentSymbol[] | SymbolInformation[] | null | undefined>;
|
226
223
|
protected onWorkspaceSymbol(params: WorkspaceSymbolParams, token: CancellationToken, resultReporter: ResultProgressReporter<SymbolInformation[]> | undefined): Promise<SymbolInformation[] | WorkspaceSymbol[] | null | undefined>;
|
227
224
|
protected onHover(params: HoverParams, token: CancellationToken): Promise<import("vscode-languageserver-types").Hover | null>;
|
@@ -249,11 +246,11 @@ export declare abstract class LanguageServerBase implements LanguageServerInterf
|
|
249
246
|
protected onAnalysisCompletedHandler(fs: FileSystem, results: AnalysisResults): void;
|
250
247
|
protected onWorkspaceCreated(workspace: Workspace): void;
|
251
248
|
protected onWorkspaceRemoved(workspace: Workspace): void;
|
252
|
-
protected createAnalyzerServiceForWorkspace(name: string,
|
249
|
+
protected createAnalyzerServiceForWorkspace(name: string, uri: Uri, kinds: string[], services?: WorkspaceServices): AnalyzerService;
|
253
250
|
protected recordUserInteractionTime(): void;
|
254
251
|
protected getDocumentationUrlForDiagnostic(diag: AnalyzerDiagnostic): string | undefined;
|
255
252
|
protected abstract createProgressReporter(): ProgressReporter;
|
256
|
-
protected canNavigateToFile(path:
|
253
|
+
protected canNavigateToFile(path: Uri, fs: FileSystem): boolean;
|
257
254
|
protected getProgressReporter(reporter: WorkDoneProgressReporter, title: string, token: CancellationToken): Promise<{
|
258
255
|
reporter: WorkDoneProgressReporter;
|
259
256
|
source: AbstractCancellationTokenSource;
|