@zzzen/pyright-internal 1.2.0-dev.20260809 → 1.2.0-dev.20260823
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/analyzerNodeInfo.d.ts +119 -24
- package/dist/analyzer/analyzerNodeInfo.js +408 -89
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.d.ts +6 -3
- package/dist/analyzer/binder.js +157 -70
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +5 -2
- package/dist/analyzer/checker.js +92 -34
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +2 -1
- package/dist/analyzer/codeFlowEngine.js +12 -10
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.d.ts +2 -1
- package/dist/analyzer/codeFlowUtils.js +2 -3
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +47 -7
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +18 -8
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.d.ts +6 -4
- package/dist/analyzer/dataClasses.js +119 -75
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declarationUtils.d.ts +2 -1
- package/dist/analyzer/declarationUtils.js +2 -2
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.d.ts +5 -4
- package/dist/analyzer/decorators.js +38 -21
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/enums.d.ts +5 -4
- package/dist/analyzer/enums.js +11 -10
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +1 -1
- package/dist/analyzer/importResolver.js +5 -3
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.d.ts +3 -1
- package/dist/analyzer/importStatementUtils.js +14 -7
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.d.ts +2 -1
- package/dist/analyzer/namedTuples.js +3 -4
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.d.ts +3 -2
- package/dist/analyzer/operations.js +8 -8
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +2 -2
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +13 -11
- package/dist/analyzer/parseTreeUtils.js +62 -36
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.d.ts +7 -2
- package/dist/analyzer/parseTreeWalker.js +29 -175
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.d.ts +4 -3
- package/dist/analyzer/patternMatching.js +47 -43
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +12 -0
- package/dist/analyzer/program.js +235 -29
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.d.ts +4 -3
- package/dist/analyzer/properties.js +7 -8
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +14 -2
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/scope.d.ts +3 -0
- package/dist/analyzer/scope.js +10 -0
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/scopeUtils.d.ts +4 -3
- package/dist/analyzer/scopeUtils.js +8 -8
- package/dist/analyzer/scopeUtils.js.map +1 -1
- package/dist/analyzer/sentinel.d.ts +2 -1
- package/dist/analyzer/sentinel.js +2 -3
- package/dist/analyzer/sentinel.js.map +1 -1
- package/dist/analyzer/service.js +28 -10
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceEnumerator.d.ts +5 -0
- package/dist/analyzer/sourceEnumerator.js +57 -3
- package/dist/analyzer/sourceEnumerator.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +12 -6
- package/dist/analyzer/sourceFile.js +73 -50
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -0
- package/dist/analyzer/sourceFileInfoUtils.js +8 -0
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +4 -1
- package/dist/analyzer/sourceMapper.js +14 -8
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/symbol.d.ts +4 -1
- package/dist/analyzer/symbol.js +8 -0
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/testWalker.js +2 -1
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.d.ts +2 -1
- package/dist/analyzer/tracePrinter.js +2 -2
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/tuples.d.ts +3 -2
- package/dist/analyzer/tuples.js +5 -5
- package/dist/analyzer/tuples.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.d.ts +6 -2
- package/dist/analyzer/typeCacheUtils.js +16 -37
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.d.ts +5 -7
- package/dist/analyzer/typeDocStringUtils.js +229 -132
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +2 -0
- package/dist/analyzer/typeEvaluator.js +1280 -302
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +3 -2
- package/dist/analyzer/typeGuards.js +37 -33
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +12 -9
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +3 -1
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +4 -3
- package/dist/analyzer/typedDicts.js +15 -14
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +11 -1
- package/dist/analyzer/types.js +48 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/collectionUtils.js +15 -6
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/commandLineOptions.d.ts +1 -0
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/configOptions.d.ts +4 -1
- package/dist/common/configOptions.js +68 -12
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/envVarUtils.d.ts +1 -0
- package/dist/common/envVarUtils.js +41 -10
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.d.ts +3 -1
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/extraPathGlob.d.ts +12 -0
- package/dist/common/extraPathGlob.js +315 -0
- package/dist/common/extraPathGlob.js.map +1 -0
- package/dist/common/host.d.ts +2 -0
- package/dist/common/host.js.map +1 -1
- package/dist/common/languageServerInterface.d.ts +2 -1
- package/dist/common/languageServerInterface.js.map +1 -1
- package/dist/common/pathConsts.d.ts +1 -0
- package/dist/common/pathConsts.js +11 -1
- package/dist/common/pathConsts.js.map +1 -1
- package/dist/common/processUtils.d.ts +4 -2
- package/dist/common/processUtils.js +3 -0
- package/dist/common/processUtils.js.map +1 -1
- package/dist/common/stringUtils.d.ts +6 -0
- package/dist/common/stringUtils.js +87 -5
- package/dist/common/stringUtils.js.map +1 -1
- package/dist/common/textEditTracker.d.ts +3 -1
- package/dist/common/textEditTracker.js +8 -6
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/textRangeCollection.d.ts +1 -0
- package/dist/common/textRangeCollection.js +32 -1
- package/dist/common/textRangeCollection.js.map +1 -1
- package/dist/common/uri/uriUtils.d.ts +3 -0
- package/dist/common/uri/uriUtils.js +65 -15
- package/dist/common/uri/uriUtils.js.map +1 -1
- package/dist/fileSystemMapping.d.ts +10 -0
- package/dist/fileSystemMapping.js +176 -0
- package/dist/fileSystemMapping.js.map +1 -0
- package/dist/languageService/analyzerServiceExecutor.js +2 -1
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +1 -0
- package/dist/languageService/autoImporter.js +32 -5
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.d.ts +7 -0
- package/dist/languageService/callHierarchyProvider.js +97 -11
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +30 -8
- package/dist/languageService/completionProvider.js +298 -93
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +7 -6
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +2 -1
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +3 -1
- package/dist/languageService/documentSymbolCollector.js +78 -14
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +3 -2
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/fileWatcherDynamicFeature.js +28 -1
- package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +2 -1
- package/dist/languageService/hoverProvider.js +48 -16
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.d.ts +3 -1
- package/dist/languageService/importSorter.js +4 -2
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/importStatementCandidates.js +4 -2
- package/dist/languageService/importStatementCandidates.js.map +1 -1
- package/dist/languageService/quickActions.js +2 -1
- package/dist/languageService/quickActions.js.map +1 -1
- package/dist/languageService/referencesProvider.js +12 -5
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.d.ts +3 -0
- package/dist/languageService/signatureHelpProvider.js +56 -18
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.d.ts +2 -1
- package/dist/languageService/symbolIndexer.js +7 -7
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +1 -1
- package/dist/languageService/tooltipUtils.js +103 -35
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.js +3 -2
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +12 -0
- package/dist/localization/localize.js +14 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +11 -0
- package/dist/localization/package.nls.de.json +11 -0
- package/dist/localization/package.nls.en-us.json +18 -0
- package/dist/localization/package.nls.es.json +11 -0
- package/dist/localization/package.nls.fr.json +11 -0
- package/dist/localization/package.nls.it.json +11 -0
- package/dist/localization/package.nls.ja.json +11 -0
- package/dist/localization/package.nls.ko.json +11 -0
- package/dist/localization/package.nls.pl.json +11 -0
- package/dist/localization/package.nls.pt-br.json +11 -0
- package/dist/localization/package.nls.qps-ploc.json +11 -0
- package/dist/localization/package.nls.ru.json +11 -0
- package/dist/localization/package.nls.tr.json +11 -0
- package/dist/localization/package.nls.zh-cn.json +12 -1
- package/dist/localization/package.nls.zh-tw.json +13 -2
- package/dist/parser/parseNodes.d.ts +85 -80
- package/dist/parser/parseNodes.js +182 -159
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parseTreeUtils.d.ts +3 -0
- package/dist/parser/parseTreeUtils.js +209 -0
- package/dist/parser/parseTreeUtils.js.map +1 -0
- package/dist/parser/parser.d.ts +16 -6
- package/dist/parser/parser.js +210 -144
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringAnnotationInfo.d.ts +16 -0
- package/dist/parser/stringAnnotationInfo.js +26 -0
- package/dist/parser/stringAnnotationInfo.js.map +1 -0
- package/dist/readonlyAugmentedFileSystem.d.ts +2 -9
- package/dist/readonlyAugmentedFileSystem.js +17 -144
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/tests/analyzerNodeInfo.test.d.ts +1 -0
- package/dist/tests/analyzerNodeInfo.test.js +113 -0
- package/dist/tests/analyzerNodeInfo.test.js.map +1 -0
- package/dist/tests/collectionUtils.test.js +46 -0
- package/dist/tests/collectionUtils.test.js.map +1 -1
- package/dist/tests/completions.test.js +34 -0
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/config.test.js +131 -6
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/extraPathGlob.test.d.ts +1 -0
- package/dist/tests/extraPathGlob.test.js +434 -0
- package/dist/tests/extraPathGlob.test.js.map +1 -0
- package/dist/tests/fileSystemMapping.test.d.ts +1 -0
- package/dist/tests/fileSystemMapping.test.js +458 -0
- package/dist/tests/fileSystemMapping.test.js.map +1 -0
- package/dist/tests/fourslash/completions.call.typedDict.fourslash.js +23 -0
- package/dist/tests/fourslash/completions.call.typedDict.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js +14 -0
- package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js +7 -0
- package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js +41 -0
- package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js.map +1 -0
- package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js +2 -0
- package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js +5 -0
- package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.stringLiteral.fourslash.js +4 -0
- package/dist/tests/fourslash/completions.stringLiteral.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js +48 -0
- package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js.map +1 -0
- package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +8 -2
- package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +5 -2
- package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js +2 -2
- package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +1 -1
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/hoverProvider.test.js +38 -0
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +6 -3
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/ipythonMode.test.js +38 -0
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +88 -0
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/parser.test.js +60 -3
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/positionUtils.test.js +23 -0
- package/dist/tests/positionUtils.test.js.map +1 -1
- package/dist/tests/pyrightFileSystem.test.js +41 -0
- package/dist/tests/pyrightFileSystem.test.js.map +1 -1
- package/dist/tests/service.test.js +77 -0
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/sourceEnumeratorSymlink.test.d.ts +1 -0
- package/dist/tests/sourceEnumeratorSymlink.test.js +203 -0
- package/dist/tests/sourceEnumeratorSymlink.test.js.map +1 -0
- package/dist/tests/stringUtils.test.js +84 -0
- package/dist/tests/stringUtils.test.js.map +1 -1
- package/dist/tests/symlinkAliasInvalidation.test.d.ts +1 -0
- package/dist/tests/symlinkAliasInvalidation.test.js +471 -0
- package/dist/tests/symlinkAliasInvalidation.test.js.map +1 -0
- package/dist/tests/testUtils.d.ts +2 -0
- package/dist/tests/testUtils.js +7 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/textEditUtil.test.js +2 -2
- package/dist/tests/textEditUtil.test.js.map +1 -1
- package/dist/tests/textRangeCollection.test.d.ts +1 -0
- package/dist/tests/textRangeCollection.test.js +137 -0
- package/dist/tests/textRangeCollection.test.js.map +1 -0
- package/dist/tests/typeCacheUtils.test.d.ts +1 -0
- package/dist/tests/typeCacheUtils.test.js +69 -0
- package/dist/tests/typeCacheUtils.test.js.map +1 -0
- package/dist/tests/typeEvaluator1.test.js +24 -3
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +8 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +12 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +33 -1
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +29 -0
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +318 -4
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/tests/typeServer/typeCache.test.d.ts +1 -0
- package/dist/tests/typeServer/typeCache.test.js +69 -0
- package/dist/tests/typeServer/typeCache.test.js.map +1 -0
- package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +18 -0
- package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -1
- package/dist/tests/types.test.d.ts +1 -0
- package/dist/{analyzer/parseTreeCleaner.js → tests/types.test.js} +23 -25
- package/dist/tests/types.test.js.map +1 -0
- package/dist/tests/uri.test.js +51 -0
- package/dist/tests/uri.test.js.map +1 -1
- package/dist/typeServer/notebookDocumentHandler.d.ts +9 -2
- package/dist/typeServer/notebookDocumentHandler.js +16 -6
- package/dist/typeServer/notebookDocumentHandler.js.map +1 -1
- package/dist/typeServer/programWrapper.d.ts +1 -0
- package/dist/typeServer/programWrapper.js +28 -15
- package/dist/typeServer/programWrapper.js.map +1 -1
- package/dist/typeServer/protocol/tspSupplemental.d.ts +1 -1
- package/dist/typeServer/protocol/tspSupplemental.js +2 -2
- package/dist/typeServer/server.d.ts +13 -2
- package/dist/typeServer/server.js +36 -23
- package/dist/typeServer/server.js.map +1 -1
- package/dist/typeServer/typeCache.d.ts +8 -4
- package/dist/typeServer/typeCache.js +33 -5
- package/dist/typeServer/typeCache.js.map +1 -1
- package/dist/typeServer/typeEvalUtils.d.ts +2 -1
- package/dist/typeServer/typeEvalUtils.js +7 -3
- package/dist/typeServer/typeEvalUtils.js.map +1 -1
- package/dist/typeServer/typeServerFileSystem.d.ts +10 -9
- package/dist/typeServer/typeServerFileSystem.js +16 -12
- package/dist/typeServer/typeServerFileSystem.js.map +1 -1
- package/package.json +7 -5
- package/dist/analyzer/parseTreeCleaner.d.ts +0 -8
- package/dist/analyzer/parseTreeCleaner.js.map +0 -1
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* extraPathGlob.ts
|
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
|
5
|
+
* Licensed under the MIT license.
|
|
6
|
+
*
|
|
7
|
+
* Expands glob patterns in `extraPaths` entries into concrete directory URIs.
|
|
8
|
+
*
|
|
9
|
+
* The behavior is specified in `docs/import-resolution.md` (see "Extra Path Glob
|
|
10
|
+
* Expansion"). In short:
|
|
11
|
+
* - Each raw entry may contain the wildcards `*`, `**`, or `?`, using the same
|
|
12
|
+
* syntax as `include`/`exclude`/`ignore`. Only directories are matched.
|
|
13
|
+
* - A glob entry is expanded, in place, to the directories it matches, sorted
|
|
14
|
+
* in ascending order using a case-sensitive, platform-independent comparison.
|
|
15
|
+
* - De-duplication precedence is: an explicit (non-wildcard) entry always wins
|
|
16
|
+
* and keeps its own position, even relative to an earlier glob; among globs,
|
|
17
|
+
* the earlier glob wins. Two literal entries that resolve to the same path
|
|
18
|
+
* keep the first occurrence.
|
|
19
|
+
* - Symbolic links are not resolved (the matched path is used as-is so it maps
|
|
20
|
+
* to the intended module name), but symbolic-link cycles are guarded against.
|
|
21
|
+
* - A glob that matches no directory contributes nothing; this is not an error.
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.containsWildcard = containsWildcard;
|
|
25
|
+
exports.getExtraPathWatchTargets = getExtraPathWatchTargets;
|
|
26
|
+
exports.extraPathWatchTargetCovers = extraPathWatchTargetCovers;
|
|
27
|
+
exports.expandExtraPaths = expandExtraPaths;
|
|
28
|
+
const pathUtils_1 = require("./pathUtils");
|
|
29
|
+
const uri_1 = require("./uri/uri");
|
|
30
|
+
const uriUtils_1 = require("./uri/uriUtils");
|
|
31
|
+
// Returns true if the entry contains a glob wildcard character.
|
|
32
|
+
function containsWildcard(entry) {
|
|
33
|
+
return (0, uriUtils_1.containsWildcardCharacter)(entry);
|
|
34
|
+
}
|
|
35
|
+
// Reconstructs a `Uri` from an `extraPaths` file-spec string. Settings-origin entries
|
|
36
|
+
// are kept as plain strings so wildcard characters (`*`, `**`, `?`) survive verbatim; a
|
|
37
|
+
// `Uri` built from such a string keeps the wildcards as literal path components (parsing
|
|
38
|
+
// a full URI string, or treating a path string as a file path, as appropriate).
|
|
39
|
+
function fileSpecToUri(fileSpec, caseDetector) {
|
|
40
|
+
return uri_1.Uri.maybeUri(fileSpec) ? uri_1.Uri.parse(fileSpec, caseDetector) : uri_1.Uri.file(fileSpec, caseDetector);
|
|
41
|
+
}
|
|
42
|
+
// Derives file-watch targets from `extraPaths` file specs whose paths may still contain
|
|
43
|
+
// wildcard characters. Entries are kept as strings so `*`, `**`, and `?` survive; a spec
|
|
44
|
+
// with no wildcard produces no target (its fixed directory is already covered by the
|
|
45
|
+
// expanded search paths).
|
|
46
|
+
function getExtraPathWatchTargets(fileSpecs, caseDetector) {
|
|
47
|
+
const targets = [];
|
|
48
|
+
for (const fileSpec of fileSpecs) {
|
|
49
|
+
const uri = fileSpecToUri(fileSpec, caseDetector);
|
|
50
|
+
// Derive the non-wildcard root with the exact same `getWildcardRoot` helper that
|
|
51
|
+
// `_expandGlobEntry` uses to expand the glob. The watch root and the expansion root
|
|
52
|
+
// MUST stay byte-identical or the watcher would be rooted differently than the
|
|
53
|
+
// directories the glob actually covers; sharing one implementation prevents that drift.
|
|
54
|
+
const root = (0, uriUtils_1.getWildcardRoot)(uri, '');
|
|
55
|
+
const components = Array.from(uri.getPathComponents());
|
|
56
|
+
const rootLength = Array.from(root.getPathComponents()).length;
|
|
57
|
+
// No wildcard component: the spec's fixed directory is already covered by the
|
|
58
|
+
// expanded search paths, so it contributes no glob watch target.
|
|
59
|
+
if (rootLength >= components.length) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
targets.push({ root, dirPattern: components.slice(rootLength).join('/') });
|
|
63
|
+
}
|
|
64
|
+
return targets;
|
|
65
|
+
}
|
|
66
|
+
// Returns true when `folder` is one of the directories the watch target's glob
|
|
67
|
+
// matches (or a directory beneath one), i.e. the folder is already covered by the
|
|
68
|
+
// glob watcher and does not need its own folder watcher.
|
|
69
|
+
function extraPathWatchTargetCovers(target, folder) {
|
|
70
|
+
return folder.matchesRegex((0, uriUtils_1.getFileSpec)(target.root, target.dirPattern).regExp);
|
|
71
|
+
}
|
|
72
|
+
// Expands an ordered list of raw `extraPaths` entries into resolved directory
|
|
73
|
+
// URIs, applying glob expansion and the de-duplication precedence described at
|
|
74
|
+
// the top of this file. `baseUri` is the directory that relative entries resolve
|
|
75
|
+
// against (the config file's directory for config entries, or the project root
|
|
76
|
+
// for the setting).
|
|
77
|
+
function expandExtraPaths(fs, baseUri, entries, console) {
|
|
78
|
+
// Ignore empty or whitespace-only entries. Such entries would otherwise
|
|
79
|
+
// resolve to the base directory (for '') or a nonexistent path, silently
|
|
80
|
+
// polluting the search-path list; they are always user mistakes.
|
|
81
|
+
const cleaned = entries.filter((entry) => entry.trim().length > 0);
|
|
82
|
+
// Extra-path URIs share the workspace's case sensitivity (consistent with the glob matcher
|
|
83
|
+
// below, which also derives case sensitivity from `baseUri`).
|
|
84
|
+
const caseDetector = { isCaseSensitive: () => baseUri.isCaseSensitive };
|
|
85
|
+
// Phase 1: resolve every literal entry and claim its normalized key so that an
|
|
86
|
+
// explicit entry always wins over any glob-produced duplicate, regardless of
|
|
87
|
+
// where the literal appears in the list.
|
|
88
|
+
const claimedByExplicit = new Set();
|
|
89
|
+
const literalByIndex = cleaned.map((entry) => {
|
|
90
|
+
if (containsWildcard(entry)) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
// A URI-form entry is an absolute location; parse it directly. Resolving it against the
|
|
94
|
+
// base directory would corrupt the scheme (`resolvePaths` would treat it as a path).
|
|
95
|
+
const uri = uri_1.Uri.maybeUri(entry) ? uri_1.Uri.parse(entry, caseDetector) : baseUri.resolvePaths(entry);
|
|
96
|
+
claimedByExplicit.add(_normalizedKey(uri));
|
|
97
|
+
return uri;
|
|
98
|
+
});
|
|
99
|
+
// Phase 2: emit entries in order. Literals keep their position; globs expand
|
|
100
|
+
// in place, dropping any directory already owned by an explicit entry or
|
|
101
|
+
// already emitted by an earlier entry (an earlier glob or a literal).
|
|
102
|
+
const result = [];
|
|
103
|
+
const emitted = new Set();
|
|
104
|
+
cleaned.forEach((entry, index) => {
|
|
105
|
+
const literal = literalByIndex[index];
|
|
106
|
+
if (literal) {
|
|
107
|
+
const key = _normalizedKey(literal);
|
|
108
|
+
if (!emitted.has(key)) {
|
|
109
|
+
emitted.add(key);
|
|
110
|
+
result.push(literal);
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Globs are only supported for plain paths. A wildcard inside a URI-form entry can't be
|
|
115
|
+
// filesystem-walked, so skip it (only pure paths reach the glob matcher).
|
|
116
|
+
if (uri_1.Uri.maybeUri(entry)) {
|
|
117
|
+
console?.info(`Skipping glob expansion for non-path extra path "${entry}".`);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
for (const match of _expandGlobEntry(fs, baseUri, entry, console)) {
|
|
121
|
+
const key = _normalizedKey(match);
|
|
122
|
+
if (claimedByExplicit.has(key) || emitted.has(key)) {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
emitted.add(key);
|
|
126
|
+
result.push(match);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
// Threshold above which a `**` extra-path glob is treated as pathologically broad. Crossing it
|
|
132
|
+
// emits a one-time warning to the output window; expansion still proceeds.
|
|
133
|
+
const _largeGlobScanThreshold = 10000;
|
|
134
|
+
// Hard ceiling on the number of directories a single glob entry may scan. Unlike
|
|
135
|
+
// `_largeGlobScanThreshold` (which only warns), crossing this aborts further traversal of the
|
|
136
|
+
// entry so a pathological layout (e.g. a deep symlink DAG whose aliases each re-expand a shared
|
|
137
|
+
// subtree) cannot turn config load into an unbounded synchronous walk. Whatever matched before the
|
|
138
|
+
// ceiling is still returned.
|
|
139
|
+
const _largeGlobScanHardLimit = 100000;
|
|
140
|
+
// Expands a single glob entry into the directories it matches, sorted ascending.
|
|
141
|
+
function _expandGlobEntry(fs, baseUri, entry, console) {
|
|
142
|
+
const absolute = baseUri.resolvePaths(entry);
|
|
143
|
+
// Enumeration requires synchronous file-system access, which is only available
|
|
144
|
+
// for file URIs. Non-file schemes contribute nothing.
|
|
145
|
+
if (absolute.scheme !== '' && absolute.scheme !== 'file') {
|
|
146
|
+
console?.info(`Skipping glob expansion for non-file extra path "${entry}".`);
|
|
147
|
+
return [];
|
|
148
|
+
}
|
|
149
|
+
const wildcardRoot = (0, uriUtils_1.getWildcardRoot)(baseUri, entry);
|
|
150
|
+
const absoluteComponents = Array.from(absolute.getPathComponents());
|
|
151
|
+
const rootComponents = Array.from(wildcardRoot.getPathComponents());
|
|
152
|
+
const rawTail = absoluteComponents.slice(rootComponents.length);
|
|
153
|
+
if (rawTail.length === 0) {
|
|
154
|
+
return [];
|
|
155
|
+
}
|
|
156
|
+
// Collapse runs of consecutive `**` into a single `**`. Multiple adjacent
|
|
157
|
+
// `**` segments (e.g. `packages/**/**/src`) are semantically identical to a
|
|
158
|
+
// single `**` but would otherwise multiply the traversal fan-out.
|
|
159
|
+
const tail = [];
|
|
160
|
+
for (const component of rawTail) {
|
|
161
|
+
if (component === '**' && tail[tail.length - 1] === '**') {
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
tail.push(component);
|
|
165
|
+
}
|
|
166
|
+
const caseSensitive = baseUri.isCaseSensitive;
|
|
167
|
+
const matches = new Map();
|
|
168
|
+
// Guards against symbolic-link cycles: tracks the real path of each directory
|
|
169
|
+
// on the current traversal path so we never descend into a directory that is
|
|
170
|
+
// already an ancestor of itself.
|
|
171
|
+
const activePath = new Set();
|
|
172
|
+
// Memoizes (logical directory, tailIndex) pairs already processed so a diamond
|
|
173
|
+
// directory layout or broad `**` glob over a large tree cannot trigger
|
|
174
|
+
// combinatorial re-traversal of the same subtree. The key is the *logical*
|
|
175
|
+
// path (not the real path) so distinct symlink aliases pointing at the same
|
|
176
|
+
// target are each still emitted; cycle-breaking uses the real path via
|
|
177
|
+
// `activePath` below.
|
|
178
|
+
const visited = new Set();
|
|
179
|
+
// Emit a one-time warning when a `**` glob traverses a pathologically large tree; expansion
|
|
180
|
+
// still proceeds (mirrors how the include/exclude source scan reports issues). A separate hard
|
|
181
|
+
// limit (`_largeGlobScanHardLimit`) actually bounds the walk by aborting past a ceiling.
|
|
182
|
+
let directoriesScanned = 0;
|
|
183
|
+
let warnedLargeScan = false;
|
|
184
|
+
let abortedLargeScan = false;
|
|
185
|
+
// Processes the remaining tail at `dirUri` without moving to a new directory.
|
|
186
|
+
const visit = (dirUri, tailIndex) => {
|
|
187
|
+
if (abortedLargeScan) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (tailIndex === tail.length) {
|
|
191
|
+
matches.set(_normalizedKey(dirUri), dirUri);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const component = tail[tailIndex];
|
|
195
|
+
if (component === '**') {
|
|
196
|
+
// `**` matches zero or more path segments: try the rest of the tail at
|
|
197
|
+
// the current directory (consuming zero segments), and also descend into
|
|
198
|
+
// each subdirectory while keeping `**` at the same position.
|
|
199
|
+
visit(dirUri, tailIndex + 1);
|
|
200
|
+
for (const subDir of (0, uriUtils_1.getFileSystemEntriesWithSymlinkedDirectories)(fs, dirUri).directories) {
|
|
201
|
+
descend(subDir, tailIndex);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else if (containsWildcard(component)) {
|
|
205
|
+
const segmentRegex = _segmentToRegex(component, caseSensitive);
|
|
206
|
+
for (const subDir of (0, uriUtils_1.getFileSystemEntriesWithSymlinkedDirectories)(fs, dirUri).directories) {
|
|
207
|
+
if (segmentRegex.test(subDir.fileName)) {
|
|
208
|
+
descend(subDir, tailIndex + 1);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
const next = dirUri.combinePaths(component);
|
|
214
|
+
if ((0, uriUtils_1.isDirectory)(fs, next)) {
|
|
215
|
+
descend(next, tailIndex + 1);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
// Enters a (potentially new) directory, guarding against symbolic-link cycles,
|
|
220
|
+
// then processes the tail at that directory.
|
|
221
|
+
const descend = (dirUri, tailIndex) => {
|
|
222
|
+
if (abortedLargeScan) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const realPath = (0, uriUtils_1.tryRealpath)(fs, dirUri);
|
|
226
|
+
if (!realPath) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (activePath.has(realPath.key)) {
|
|
230
|
+
console?.info(`Skipping recursive symlink "${dirUri.toUserVisibleString()}".`);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const memoKey = `${_normalizedKey(dirUri)}:${tailIndex}`;
|
|
234
|
+
if (visited.has(memoKey)) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
visited.add(memoKey);
|
|
238
|
+
directoriesScanned++;
|
|
239
|
+
if (!warnedLargeScan && directoriesScanned > _largeGlobScanThreshold) {
|
|
240
|
+
warnedLargeScan = true;
|
|
241
|
+
console?.warn(`Expanding the "extraPaths" glob "${entry}" has scanned more than ${_largeGlobScanThreshold} ` +
|
|
242
|
+
`directories, which can slow analysis. Consider narrowing the pattern (for example, avoid a bare "**").`);
|
|
243
|
+
}
|
|
244
|
+
if (directoriesScanned > _largeGlobScanHardLimit) {
|
|
245
|
+
abortedLargeScan = true;
|
|
246
|
+
console?.warn(`Expanding the "extraPaths" glob "${entry}" exceeded the hard limit of ${_largeGlobScanHardLimit} ` +
|
|
247
|
+
`directories and was aborted to protect analysis performance. Narrow the pattern (for example, ` +
|
|
248
|
+
`avoid a bare "**" over a large or symlinked tree).`);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
activePath.add(realPath.key);
|
|
252
|
+
try {
|
|
253
|
+
visit(dirUri, tailIndex);
|
|
254
|
+
}
|
|
255
|
+
finally {
|
|
256
|
+
activePath.delete(realPath.key);
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
descend(wildcardRoot, 0);
|
|
260
|
+
// Sort using an ordinal comparison (code-unit order via the `<`/`>` operators,
|
|
261
|
+
// not `localeCompare`) of a stable path key so the expanded directory order is
|
|
262
|
+
// deterministic and identical across locales, encodings, and operating systems.
|
|
263
|
+
// Locale-aware collation would reorder these entries by the user's culture
|
|
264
|
+
// (e.g. case-insensitively), which must not influence import resolution.
|
|
265
|
+
return Array.from(matches.values()).sort((a, b) => {
|
|
266
|
+
const keyA = _sortKey(a);
|
|
267
|
+
const keyB = _sortKey(b);
|
|
268
|
+
if (keyA < keyB) {
|
|
269
|
+
return -1;
|
|
270
|
+
}
|
|
271
|
+
if (keyA > keyB) {
|
|
272
|
+
return 1;
|
|
273
|
+
}
|
|
274
|
+
// The NFC-normalized keys tie. This happens only for byte-distinct sibling
|
|
275
|
+
// directories whose names are NFC-equal (e.g. an NFD and an NFC spelling of
|
|
276
|
+
// the same name that both exist on disk). Break the tie by the raw decoded
|
|
277
|
+
// path so the result is a deterministic total order rather than falling back
|
|
278
|
+
// to (OS-dependent) directory-enumeration order.
|
|
279
|
+
const rawA = (0, pathUtils_1.normalizeSlashes)(a.getFilePath(), '/');
|
|
280
|
+
const rawB = (0, pathUtils_1.normalizeSlashes)(b.getFilePath(), '/');
|
|
281
|
+
return rawA < rawB ? -1 : rawA > rawB ? 1 : 0;
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
// Converts a single glob path segment (which may contain `*` or `?`, but not
|
|
285
|
+
// `**`) into an anchored regular expression that matches a directory name. The
|
|
286
|
+
// per-segment translation is shared with `include`/`exclude` matching (see
|
|
287
|
+
// `getWildcardSegmentRegexFragment`) so the two glob engines stay consistent.
|
|
288
|
+
function _segmentToRegex(segment, caseSensitive) {
|
|
289
|
+
const pattern = (0, uriUtils_1.getWildcardSegmentRegexFragment)(segment);
|
|
290
|
+
return new RegExp(`^${pattern}$`, caseSensitive ? undefined : 'i');
|
|
291
|
+
}
|
|
292
|
+
// Produces a case-sensitive key for a URI used for de-duplication. It is
|
|
293
|
+
// intentionally case-sensitive (even on case-insensitive file systems) because
|
|
294
|
+
// directory case affects the resolved module name. (Ordering uses `_sortKey`.)
|
|
295
|
+
function _normalizedKey(uri) {
|
|
296
|
+
const text = uri.toString();
|
|
297
|
+
if (text.length > 1 && text.endsWith('/')) {
|
|
298
|
+
return text.slice(0, -1);
|
|
299
|
+
}
|
|
300
|
+
return text;
|
|
301
|
+
}
|
|
302
|
+
// Produces the ordinal sort key for an expanded glob match. Uses the *decoded*
|
|
303
|
+
// file path (not the percent-encoded `uri.toString()`) so the order reflects the
|
|
304
|
+
// actual path characters and matches the spec's "sort by normalized path"
|
|
305
|
+
// contract: e.g. `Z` (U+005A) sorts before `é` (U+00E9), whereas the encoded form
|
|
306
|
+
// `%C3%A9` (leading `%`, U+0025) would sort ahead of every ASCII letter. Slashes
|
|
307
|
+
// are normalized to `/` and the string is Unicode-normalized to NFC so that a
|
|
308
|
+
// name stored as NFD (e.g. on macOS) and the same name as NFC (e.g. on Linux)
|
|
309
|
+
// yield an identical key, keeping the order stable across operating systems and
|
|
310
|
+
// normalization forms. Case is preserved (the sort, like de-duplication, is
|
|
311
|
+
// case-sensitive). Only file-scheme directories reach this function.
|
|
312
|
+
function _sortKey(uri) {
|
|
313
|
+
return (0, pathUtils_1.normalizeSlashes)(uri.getFilePath(), '/').normalize('NFC');
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=extraPathGlob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraPathGlob.js","sourceRoot":"","sources":["../../../../../src/common/extraPathGlob.ts"],"names":[],"mappings":"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"}
|
package/dist/common/host.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export interface ProcessSpawnOptions {
|
|
|
24
24
|
cwd?: string;
|
|
25
25
|
env?: Record<string, string | undefined>;
|
|
26
26
|
stdio?: any;
|
|
27
|
+
windowsHide?: boolean;
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
30
|
* Minimal abstraction over a spawned child process.
|
|
@@ -38,6 +39,7 @@ export interface SpawnedProcess {
|
|
|
38
39
|
readonly stdin: any;
|
|
39
40
|
readonly stderr: any;
|
|
40
41
|
on(event: string, listener: (...args: any[]) => void): void;
|
|
42
|
+
kill?(signal?: number | string): void;
|
|
41
43
|
}
|
|
42
44
|
export interface Host {
|
|
43
45
|
readonly kind: HostKind;
|
package/dist/common/host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../../src/common/host.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAUH,IAAkB,QAIjB;AAJD,WAAkB,QAAQ;IACtB,mDAAU,CAAA;IACV,yDAAa,CAAA;IACb,+CAAQ,CAAA;AACZ,CAAC,EAJiB,QAAQ,wBAAR,QAAQ,QAIzB;
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../../src/common/host.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAUH,IAAkB,QAIjB;AAJD,WAAkB,QAAQ;IACtB,mDAAU,CAAA;IACV,yDAAa,CAAA;IACb,+CAAQ,CAAA;AACZ,CAAC,EAJiB,QAAQ,wBAAR,QAAQ,QAIzB;AA4ED,MAAa,YAAY;IACrB,IAAI,IAAI;QACJ,iCAAyB;IAC7B,CAAC;IAED,oBAAoB,CAAC,UAAgB,EAAE,aAA4B,EAAE,GAAS;QAC1E,aAAa,EAAE,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAEtD,OAAO;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,SAAS;SACpB,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,UAAgB,EAAE,aAA4B;QAC3D,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,iBAAiB,CAAC,aAA4B;QAC1C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,SAAS,CACX,UAA2B,EAC3B,UAAe,EACf,IAAc,EACd,GAAQ,EACR,KAAwB;QAExB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,UAA2B,EAC3B,IAAY,EACZ,IAAc,EACd,GAAQ,EACR,KAAwB;QAExB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,KAAe,EAAE,QAA6B;QACrE,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AA7CD,oCA6CC"}
|
|
@@ -21,7 +21,8 @@ export interface ServerSettings {
|
|
|
21
21
|
disableTaggedHints?: boolean | undefined;
|
|
22
22
|
disableOrganizeImports?: boolean | undefined;
|
|
23
23
|
autoSearchPaths?: boolean | undefined;
|
|
24
|
-
|
|
24
|
+
useDefaultExcludes?: boolean | undefined;
|
|
25
|
+
extraPathFileSpecs?: string[] | undefined;
|
|
25
26
|
watchForSourceChanges?: boolean | undefined;
|
|
26
27
|
watchForLibraryChanges?: boolean | undefined;
|
|
27
28
|
watchForConfigChanges?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languageServerInterface.js","sourceRoot":"","sources":["../../../../../src/common/languageServerInterface.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"languageServerInterface.js","sourceRoot":"","sources":["../../../../../src/common/languageServerInterface.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AA6DH,IAAiB,eAAe,CAS/B;AATD,WAAiB,eAAe;IAC5B,SAAgB,EAAE,CAAC,GAAQ;QACvB,OAAO,CACH,CAAC,CAAC,GAAG;YACL,GAAG,CAAC,gBAAgB,KAAK,SAAS;YAClC,GAAG,CAAC,kBAAkB,KAAK,SAAS;YACpC,GAAG,CAAC,sBAAsB,KAAK,SAAS,CAC3C,CAAC;IACN,CAAC;IAPe,kBAAE,KAOjB,CAAA;AACL,CAAC,EATgB,eAAe,+BAAf,eAAe,QAS/B;AA2CD,IAAiB,aAAa,CAI7B;AAJD,WAAiB,aAAa;IAC1B,SAAgB,EAAE,CAAC,GAAQ;QACvB,OAAO,GAAG,CAAC,sBAAsB,KAAK,SAAS,IAAI,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IAFe,gBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,aAAa,6BAAb,aAAa,QAI7B;AAMD,IAAiB,cAAc,CAI9B;AAJD,WAAiB,cAAc;IAC3B,SAAgB,EAAE,CAAC,GAAQ;QACvB,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC;IAClD,CAAC;IAFe,iBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,cAAc,8BAAd,cAAc,QAI9B"}
|
|
@@ -11,3 +11,4 @@ export declare const requirementsFileName = "requirements.txt";
|
|
|
11
11
|
export declare const pyprojectTomlName = "pyproject.toml";
|
|
12
12
|
export declare const dotPythonVersionName = ".python-version";
|
|
13
13
|
export declare const configFileName = "pyrightconfig.json";
|
|
14
|
+
export declare const defaultExcludes: readonly ["**/node_modules", "**/__pycache__", "**/.*", "**/__editable__.*"];
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Path-related constants.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.configFileName = exports.dotPythonVersionName = exports.pyprojectTomlName = exports.requirementsFileName = exports.defaultStubsDirectory = exports.stubsSuffix = exports.src = exports.distPackages = exports.sitePackages = exports.lib64 = exports.libAlternate = exports.lib = exports.typeshedFallback = void 0;
|
|
10
|
+
exports.defaultExcludes = exports.configFileName = exports.dotPythonVersionName = exports.pyprojectTomlName = exports.requirementsFileName = exports.defaultStubsDirectory = exports.stubsSuffix = exports.src = exports.distPackages = exports.sitePackages = exports.lib64 = exports.libAlternate = exports.lib = exports.typeshedFallback = void 0;
|
|
11
11
|
exports.typeshedFallback = 'typeshed-fallback';
|
|
12
12
|
exports.lib = 'lib';
|
|
13
13
|
exports.libAlternate = 'Lib';
|
|
@@ -21,4 +21,14 @@ exports.requirementsFileName = 'requirements.txt';
|
|
|
21
21
|
exports.pyprojectTomlName = 'pyproject.toml';
|
|
22
22
|
exports.dotPythonVersionName = '.python-version';
|
|
23
23
|
exports.configFileName = 'pyrightconfig.json';
|
|
24
|
+
// Default exclude glob patterns applied when the user has not specified any
|
|
25
|
+
// `exclude` entries. These skip directories that commonly hold dependencies or
|
|
26
|
+
// build artifacts, avoiding long scan times.
|
|
27
|
+
// Frozen (`as const`) so this shared cross-package constant can't be mutated by a consumer.
|
|
28
|
+
exports.defaultExcludes = [
|
|
29
|
+
'**/node_modules', // Node.js dependencies
|
|
30
|
+
'**/__pycache__', // Python bytecode cache
|
|
31
|
+
'**/.*', // hidden files/directories (dotfiles)
|
|
32
|
+
'**/__editable__.*', // PEP 660 strict editable-install shadow tree (a build artifact)
|
|
33
|
+
];
|
|
24
34
|
//# sourceMappingURL=pathConsts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathConsts.js","sourceRoot":"","sources":["../../../../../src/common/pathConsts.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEU,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AACvC,QAAA,GAAG,GAAG,KAAK,CAAC;AACZ,QAAA,YAAY,GAAG,KAAK,CAAC;AACrB,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,YAAY,GAAG,eAAe,CAAC;AAC/B,QAAA,YAAY,GAAG,eAAe,CAAC;AAC/B,QAAA,GAAG,GAAG,KAAK,CAAC;AACZ,QAAA,WAAW,GAAG,QAAQ,CAAC;AACvB,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAC1C,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AACrC,QAAA,oBAAoB,GAAG,iBAAiB,CAAC;AACzC,QAAA,cAAc,GAAG,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"pathConsts.js","sourceRoot":"","sources":["../../../../../src/common/pathConsts.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEU,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AACvC,QAAA,GAAG,GAAG,KAAK,CAAC;AACZ,QAAA,YAAY,GAAG,KAAK,CAAC;AACrB,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,YAAY,GAAG,eAAe,CAAC;AAC/B,QAAA,YAAY,GAAG,eAAe,CAAC;AAC/B,QAAA,GAAG,GAAG,KAAK,CAAC;AACZ,QAAA,WAAW,GAAG,QAAQ,CAAC;AACvB,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAC1C,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AACrC,QAAA,oBAAoB,GAAG,iBAAiB,CAAC;AACzC,QAAA,cAAc,GAAG,oBAAoB,CAAC;AAEnD,4EAA4E;AAC5E,+EAA+E;AAC/E,6CAA6C;AAC7C,4FAA4F;AAC/E,QAAA,eAAe,GAAG;IAC3B,iBAAiB,EAAE,uBAAuB;IAC1C,gBAAgB,EAAE,wBAAwB;IAC1C,OAAO,EAAE,sCAAsC;IAC/C,mBAAmB,EAAE,iEAAiE;CAChF,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import * as child_process from 'child_process';
|
|
2
1
|
export declare function terminateProcessTree(pid: number): void;
|
|
3
|
-
export declare function terminateChild(child:
|
|
2
|
+
export declare function terminateChild(child: {
|
|
3
|
+
readonly pid?: number;
|
|
4
|
+
readonly exitCode: number | null;
|
|
5
|
+
}): void;
|
|
@@ -58,6 +58,9 @@ function terminateProcessTree(pid) {
|
|
|
58
58
|
// Ignore.
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
+
// Accepts both Node's ChildProcess and the host abstraction's SpawnedProcess
|
|
62
|
+
// (both expose `pid` and `exitCode`), so callers routing through a Host don't
|
|
63
|
+
// need to cast back to a concrete child-process type.
|
|
61
64
|
function terminateChild(child) {
|
|
62
65
|
try {
|
|
63
66
|
if (child.pid && child.exitCode === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processUtils.js","sourceRoot":"","sources":["../../../../../src/common/processUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,oDAYC;
|
|
1
|
+
{"version":3,"file":"processUtils.js","sourceRoot":"","sources":["../../../../../src/common/processUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,oDAYC;AAKD,wCAQC;AAlCD;;;;;;GAMG;AACH,6DAA+C;AAE/C,SAAgB,oBAAoB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC/B,2EAA2E;YAC3E,aAAa,CAAC,QAAQ,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,mDAAmD;YACnD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,UAAU;IACd,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,sDAAsD;AACtD,SAAgB,cAAc,CAAC,KAAkE;IAC7F,IAAI,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,UAAU;IACd,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { Comparison } from './core';
|
|
2
2
|
export declare function isPatternInSymbol(typedValue: string, symbolName: string): boolean;
|
|
3
3
|
export declare function hashString(contents: string): number;
|
|
4
|
+
export interface StringFingerprint {
|
|
5
|
+
readonly primary: number;
|
|
6
|
+
readonly secondary: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function getStringFingerprint(contents: string): StringFingerprint;
|
|
9
|
+
export declare function areStringFingerprintsEqual(left: StringFingerprint, right: StringFingerprint): boolean;
|
|
4
10
|
/**
|
|
5
11
|
* Compare two strings using a case-insensitive ordinal comparison.
|
|
6
12
|
*
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.isPatternInSymbol = isPatternInSymbol;
|
|
12
12
|
exports.hashString = hashString;
|
|
13
|
+
exports.getStringFingerprint = getStringFingerprint;
|
|
14
|
+
exports.areStringFingerprintsEqual = areStringFingerprintsEqual;
|
|
13
15
|
exports.compareStringsCaseInsensitive = compareStringsCaseInsensitive;
|
|
14
16
|
exports.compareStringsCaseSensitive = compareStringsCaseSensitive;
|
|
15
17
|
exports.getStringComparer = getStringComparer;
|
|
@@ -24,20 +26,86 @@ const core_1 = require("./core");
|
|
|
24
26
|
// name. Characters must appear in order.
|
|
25
27
|
// Return true if all typed characters are in symbol
|
|
26
28
|
function isPatternInSymbol(typedValue, symbolName) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
// This function is extremely hot: it runs against the entire symbol index
|
|
30
|
+
// during auto-import and completion filtering. The original implementation
|
|
31
|
+
// eagerly allocated two fully lower-cased copies of both strings up front
|
|
32
|
+
// (via toLocaleLowerCase), even when an early character mismatch would
|
|
33
|
+
// immediately reject the match.
|
|
34
|
+
//
|
|
35
|
+
// Fast path: scan character-by-character with charCodeAt (no allocation) and
|
|
36
|
+
// fold case via a precomputed Latin-1 table (built at module init from
|
|
37
|
+
// toLocaleLowerCase, so it preserves the original's exact locale-sensitive
|
|
38
|
+
// behavior) while BOTH current characters fold to a single length-preserving
|
|
39
|
+
// Latin-1 code unit. The overwhelming majority of Python symbol names and typed
|
|
40
|
+
// queries are ASCII/Latin-1 identifiers, so this avoids the two
|
|
41
|
+
// toLocaleLowerCase allocations entirely for the common case. Folds that would
|
|
42
|
+
// change a string's length fall back to the exact original algorithm below.
|
|
43
|
+
const typedLength = typedValue.length;
|
|
44
|
+
const symbolLength = symbolName.length;
|
|
31
45
|
let typedPos = 0;
|
|
32
46
|
let symbolPos = 0;
|
|
33
47
|
while (typedPos < typedLength && symbolPos < symbolLength) {
|
|
34
|
-
|
|
48
|
+
const typedCode = typedValue.charCodeAt(typedPos);
|
|
49
|
+
const symbolCode = symbolName.charCodeAt(symbolPos);
|
|
50
|
+
// Fold each current character via the precomputed table. Any code point
|
|
51
|
+
// outside Latin-1 (index > 0xff) is not in the table and always needs the
|
|
52
|
+
// fallback; a Latin-1 code point maps to NEEDS_FALLBACK when its case fold
|
|
53
|
+
// is not a single length-preserving Latin-1 code unit under the active
|
|
54
|
+
// locale (see the table comment below).
|
|
55
|
+
const typedFold = typedCode <= 0xff ? latin1LowerCaseTable[typedCode] : NEEDS_FALLBACK;
|
|
56
|
+
const symbolFold = symbolCode <= 0xff ? latin1LowerCaseTable[symbolCode] : NEEDS_FALLBACK;
|
|
57
|
+
if (typedFold === NEEDS_FALLBACK || symbolFold === NEEDS_FALLBACK) {
|
|
58
|
+
// We hit a character whose case folding can change string length or is
|
|
59
|
+
// locale-sensitive in a way the per-character table cannot represent
|
|
60
|
+
// (e.g. non-Latin-1 code points like the ligature fi, Greek, CJK, a
|
|
61
|
+
// combining mark, or Turkish dotted capital İ). Fall back to the exact
|
|
62
|
+
// original algorithm: lower-case both FULL strings and match over the
|
|
63
|
+
// lower-cased strings from the start. Restarting (rather than resuming
|
|
64
|
+
// at typedPos/symbolPos over original indices) is required for
|
|
65
|
+
// correctness, because toLocaleLowerCase can produce a different number
|
|
66
|
+
// of code units than the original string.
|
|
67
|
+
const typedLower = typedValue.toLocaleLowerCase();
|
|
68
|
+
const symbolLower = symbolName.toLocaleLowerCase();
|
|
69
|
+
const typedLowerLength = typedLower.length;
|
|
70
|
+
const symbolLowerLength = symbolLower.length;
|
|
71
|
+
let tp = 0;
|
|
72
|
+
let sp = 0;
|
|
73
|
+
while (tp < typedLowerLength && sp < symbolLowerLength) {
|
|
74
|
+
if (typedLower[tp] === symbolLower[sp]) {
|
|
75
|
+
tp += 1;
|
|
76
|
+
}
|
|
77
|
+
sp += 1;
|
|
78
|
+
}
|
|
79
|
+
return tp === typedLowerLength;
|
|
80
|
+
}
|
|
81
|
+
if (typedFold === symbolFold) {
|
|
35
82
|
typedPos += 1;
|
|
36
83
|
}
|
|
37
84
|
symbolPos += 1;
|
|
38
85
|
}
|
|
39
86
|
return typedPos === typedLength;
|
|
40
87
|
}
|
|
88
|
+
// Sentinel marking a Latin-1 code point whose case fold cannot be represented as a
|
|
89
|
+
// single length-preserving Latin-1 code unit under the active locale, so matches
|
|
90
|
+
// involving it must take the full-string toLocaleLowerCase fallback.
|
|
91
|
+
const NEEDS_FALLBACK = -1;
|
|
92
|
+
// Case-folding lookup table for the Latin-1 range (0x00-0xff). Each entry holds the
|
|
93
|
+
// lower-cased code point produced by String.prototype.toLocaleLowerCase for that
|
|
94
|
+
// code unit under the process locale at module-init time. This preserves the exact
|
|
95
|
+
// behavior of the original toLocaleLowerCase-based implementation — including any
|
|
96
|
+
// locale-sensitive ASCII casing such as the Turkish/Azeri dotless-i rule — while
|
|
97
|
+
// avoiding a per-call allocation. Entries whose fold is not a single code unit
|
|
98
|
+
// (length-changing folds) map to NEEDS_FALLBACK so those matches take the slow path.
|
|
99
|
+
// Building the table once assumes the process locale is stable for its lifetime,
|
|
100
|
+
// which holds for the language server.
|
|
101
|
+
const latin1LowerCaseTable = (() => {
|
|
102
|
+
const table = new Int32Array(256);
|
|
103
|
+
for (let i = 0; i < 256; i++) {
|
|
104
|
+
const lower = String.fromCharCode(i).toLocaleLowerCase();
|
|
105
|
+
table[i] = lower.length === 1 ? lower.charCodeAt(0) : NEEDS_FALLBACK;
|
|
106
|
+
}
|
|
107
|
+
return table;
|
|
108
|
+
})();
|
|
41
109
|
// This is a simple, non-cryptographic hash function for text.
|
|
42
110
|
function hashString(contents) {
|
|
43
111
|
let hash = 0;
|
|
@@ -46,6 +114,20 @@ function hashString(contents) {
|
|
|
46
114
|
}
|
|
47
115
|
return hash;
|
|
48
116
|
}
|
|
117
|
+
// Computes the legacy string hash and an independent FNV-1a component in one pass.
|
|
118
|
+
function getStringFingerprint(contents) {
|
|
119
|
+
let primary = 0;
|
|
120
|
+
let secondary = 0x811c9dc5;
|
|
121
|
+
for (let i = 0; i < contents.length; i++) {
|
|
122
|
+
const codeUnit = contents.charCodeAt(i);
|
|
123
|
+
primary = ((primary << 5) - primary + codeUnit) | 0;
|
|
124
|
+
secondary = Math.imul(secondary ^ codeUnit, 0x01000193);
|
|
125
|
+
}
|
|
126
|
+
return { primary, secondary };
|
|
127
|
+
}
|
|
128
|
+
function areStringFingerprintsEqual(left, right) {
|
|
129
|
+
return left.primary === right.primary && left.secondary === right.secondary;
|
|
130
|
+
}
|
|
49
131
|
/**
|
|
50
132
|
* Compare two strings using a case-insensitive ordinal comparison.
|
|
51
133
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stringUtils.js","sourceRoot":"","sources":["../../../../../src/common/stringUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAOH,
|
|
1
|
+
{"version":3,"file":"stringUtils.js","sourceRoot":"","sources":["../../../../../src/common/stringUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CancellationToken } from 'vscode-languageserver';
|
|
2
|
+
import { AnalyzerNodeInfoReader } from '../analyzer/analyzerNodeInfo';
|
|
2
3
|
import { ImportGroup, ImportNameInfo, ImportStatements, ModuleNameInfo } from '../analyzer/importStatementUtils';
|
|
3
4
|
import { ImportAsNode, ImportFromAsNode, ImportFromNode, ParseNode } from '../parser/parseNodes';
|
|
4
5
|
import { ParseFileResults } from '../parser/parser';
|
|
@@ -6,11 +7,12 @@ import { FileEditAction } from './editAction';
|
|
|
6
7
|
import { Range, TextRange } from './textRange';
|
|
7
8
|
import { Uri } from './uri/uri';
|
|
8
9
|
export declare class TextEditTracker {
|
|
10
|
+
private readonly _nodeInfo;
|
|
9
11
|
private _mergeOnlyDuplications;
|
|
10
12
|
private readonly _nodesRemoved;
|
|
11
13
|
private readonly _results;
|
|
12
14
|
private readonly _pendingNodeToRemove;
|
|
13
|
-
constructor(_mergeOnlyDuplications?: boolean);
|
|
15
|
+
constructor(_nodeInfo: AnalyzerNodeInfoReader, _mergeOnlyDuplications?: boolean);
|
|
14
16
|
addEdits(...edits: FileEditAction[]): void;
|
|
15
17
|
addEdit(fileUri: Uri, range: Range, replacementText: string): void;
|
|
16
18
|
addEditWithTextRange(parseFileResults: ParseFileResults, range: TextRange, replacementText: string): void;
|