@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
|
@@ -40,6 +40,83 @@ test('source enumeration reports symlinked include roots', () => {
|
|
|
40
40
|
assert_1.default.strictEqual(result.isComplete, true);
|
|
41
41
|
assert_1.default.deepStrictEqual(enumerator.getSymlinkedDirectoryRoots().map((uri) => uri.key), [uri_1.Uri.file('/workspaceLink', fs).key]);
|
|
42
42
|
});
|
|
43
|
+
test('source enumeration reports discovered config files', () => {
|
|
44
|
+
const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
|
|
45
|
+
fs.mkdirpSync('/projectRoot/pkgA');
|
|
46
|
+
fs.mkdirpSync('/projectRoot/pkgB');
|
|
47
|
+
fs.mkdirpSync('/projectRoot/pkgC');
|
|
48
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs), '{}');
|
|
49
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgA/pyrightconfig.json', fs), '{}');
|
|
50
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgB/pyproject.toml', fs), '[tool.pyright]\n');
|
|
51
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgC/module.py', fs), 'x = 1');
|
|
52
|
+
const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot')], [],
|
|
53
|
+
/* autoExcludeVenv */ false, fs, new console_1.NullConsole());
|
|
54
|
+
const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
|
|
55
|
+
assert_1.default.strictEqual(result.isComplete, true);
|
|
56
|
+
assert_1.default.deepStrictEqual(enumerator
|
|
57
|
+
.getDiscoveredConfigFiles()
|
|
58
|
+
.map((uri) => uri.key)
|
|
59
|
+
.sort(), [
|
|
60
|
+
uri_1.Uri.file('/projectRoot/pkgA/pyrightconfig.json', fs).key,
|
|
61
|
+
uri_1.Uri.file('/projectRoot/pkgB/pyproject.toml', fs).key,
|
|
62
|
+
uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs).key,
|
|
63
|
+
].sort());
|
|
64
|
+
});
|
|
65
|
+
test('source enumeration skips config files inside auto-excluded virtual environments', () => {
|
|
66
|
+
const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
|
|
67
|
+
fs.mkdirpSync('/projectRoot/env');
|
|
68
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs), '{}');
|
|
69
|
+
// `env` is marked as a virtual environment; with autoExcludeVenv it must not be scanned.
|
|
70
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/env/pyvenv.cfg', fs), '');
|
|
71
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/env/pyrightconfig.json', fs), '{}');
|
|
72
|
+
const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot')], [],
|
|
73
|
+
/* autoExcludeVenv */ true, fs, new console_1.NullConsole());
|
|
74
|
+
const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
|
|
75
|
+
assert_1.default.strictEqual(result.isComplete, true);
|
|
76
|
+
assert_1.default.deepStrictEqual(enumerator.getDiscoveredConfigFiles().map((uri) => uri.key), [uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs).key]);
|
|
77
|
+
});
|
|
78
|
+
test('explicit include does not rescue a directory detected as a virtual environment', () => {
|
|
79
|
+
const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
|
|
80
|
+
fs.mkdirpSync('/projectRoot/env');
|
|
81
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/module.py', fs), 'x = 1');
|
|
82
|
+
// `env` looks like a virtual environment. Even though the user explicitly includes it, the
|
|
83
|
+
// default virtual-environment exclusion takes precedence over `include` (default excludes trump
|
|
84
|
+
// includes, just like any other exclude), so it stays excluded.
|
|
85
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/env/pyvenv.cfg', fs), '');
|
|
86
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/env/module.py', fs), 'y = 1');
|
|
87
|
+
const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot'), (0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot/env')], [],
|
|
88
|
+
/* autoExcludeVenv */ true, fs, new console_1.NullConsole());
|
|
89
|
+
const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
|
|
90
|
+
assert_1.default.strictEqual(result.isComplete, true);
|
|
91
|
+
// The venv source file is not matched and the directory is reported as auto-excluded.
|
|
92
|
+
assert_1.default.ok(!result.matches.has(uri_1.Uri.file('/projectRoot/env/module.py', fs).key));
|
|
93
|
+
assert_1.default.deepStrictEqual([...new Set(result.autoExcludedDirs.map((uri) => uri.key))], [uri_1.Uri.file('/projectRoot/env', fs).key]);
|
|
94
|
+
});
|
|
95
|
+
test('source enumeration skips config files under excluded directories', () => {
|
|
96
|
+
const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
|
|
97
|
+
fs.mkdirpSync('/projectRoot/build');
|
|
98
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs), '{}');
|
|
99
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/build/pyrightconfig.json', fs), '{}');
|
|
100
|
+
const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot')], [(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/projectRoot', fs), 'build')],
|
|
101
|
+
/* autoExcludeVenv */ false, fs, new console_1.NullConsole());
|
|
102
|
+
const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
|
|
103
|
+
assert_1.default.strictEqual(result.isComplete, true);
|
|
104
|
+
assert_1.default.deepStrictEqual(enumerator.getDiscoveredConfigFiles().map((uri) => uri.key), [uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs).key]);
|
|
105
|
+
});
|
|
106
|
+
test('source enumeration skips config files matching an exclude file spec', () => {
|
|
107
|
+
const fs = new filesystem_1.TestFileSystem(/* ignoreCase */ false, { cwd: '/' });
|
|
108
|
+
fs.mkdirpSync('/projectRoot/pkgA');
|
|
109
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs), '{}');
|
|
110
|
+
// pkgA is not an excluded directory (it is still scanned for sources), but its config
|
|
111
|
+
// file is explicitly excluded, so it must not be surfaced as a discovered config root.
|
|
112
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgA/pyrightconfig.json', fs), '{}');
|
|
113
|
+
fs.writeFileSync(uri_1.Uri.file('/projectRoot/pkgA/module.py', fs), 'x = 1');
|
|
114
|
+
const enumerator = new sourceEnumerator_1.SourceEnumerator([(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/', fs), 'projectRoot')], [(0, uriUtils_1.getFileSpec)(uri_1.Uri.file('/projectRoot', fs), 'pkgA/pyrightconfig.json')],
|
|
115
|
+
/* autoExcludeVenv */ false, fs, new console_1.NullConsole());
|
|
116
|
+
const result = enumerator.enumerate(/* timeLimitInMs */ 1000);
|
|
117
|
+
assert_1.default.strictEqual(result.isComplete, true);
|
|
118
|
+
assert_1.default.deepStrictEqual(enumerator.getDiscoveredConfigFiles().map((uri) => uri.key), [uri_1.Uri.file('/projectRoot/pyrightconfig.json', fs).key]);
|
|
119
|
+
});
|
|
43
120
|
test('random library file changed, nested search paths', () => {
|
|
44
121
|
const state = (0, testState_1.parseAndGetTestState)('', '/projectRoot').state;
|
|
45
122
|
assert_1.default.strictEqual(state.workspace.service.test_shouldHandleLibraryFileWatchChanges(uri_1.Uri.file('/lib/.venv/site-packages/myFile.py', state.serviceProvider), [uri_1.Uri.file('/lib', state.serviceProvider), uri_1.Uri.file('/lib/.venv/site-packages', state.serviceProvider)]), true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.test.js","sourceRoot":"","sources":["../../../../../src/tests/service.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.test.js","sourceRoot":"","sources":["../../../../../src/tests/service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* sourceEnumeratorSymlink.test.ts
|
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
|
5
|
+
*
|
|
6
|
+
* Regression tests for SourceEnumerator symlink handling.
|
|
7
|
+
*
|
|
8
|
+
* A symlink that resolves outside every include root (e.g. a link to filesystem
|
|
9
|
+
* root "/" or "C:\") is not a recursive cycle, so the `_seenDirs` guard does not
|
|
10
|
+
* catch it. Before the fix, following such a link would enumerate directories
|
|
11
|
+
* that don't belong to the workspace -- in the worst case the entire disk --
|
|
12
|
+
* which made Pylance hang.
|
|
13
|
+
*
|
|
14
|
+
* Issue: https://github.com/microsoft/pylance-release/issues/6006
|
|
15
|
+
*
|
|
16
|
+
* Note: source enumeration is a sync-only code path, so there is no async
|
|
17
|
+
* counterpart to mirror here.
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
const sourceEnumerator_1 = require("../analyzer/sourceEnumerator");
|
|
21
|
+
const console_1 = require("../common/console");
|
|
22
|
+
const uri_1 = require("../common/uri/uri");
|
|
23
|
+
const uriUtils_1 = require("../common/uri/uriUtils");
|
|
24
|
+
const testHost_1 = require("./harness/testHost");
|
|
25
|
+
const caseSensitivityDetector = new testHost_1.TestCaseSensitivityDetector();
|
|
26
|
+
function makeUri(path) {
|
|
27
|
+
return uri_1.Uri.file(path, caseSensitivityDetector);
|
|
28
|
+
}
|
|
29
|
+
// Minimal in-memory filesystem that models directories, files, and symlinks
|
|
30
|
+
// well enough to drive SourceEnumerator. Paths use POSIX-style separators; all
|
|
31
|
+
// comparisons go through Uri so the model works on both Windows and POSIX hosts.
|
|
32
|
+
class MockFs {
|
|
33
|
+
constructor() {
|
|
34
|
+
// Real (symlink-resolved) nodes keyed by uri.key.
|
|
35
|
+
this._nodes = new Map();
|
|
36
|
+
// Symlink source uri.key -> target uri.
|
|
37
|
+
this._symlinks = new Map();
|
|
38
|
+
// Guards against runaway enumeration so a regression can't hang the suite.
|
|
39
|
+
this._readCount = 0;
|
|
40
|
+
}
|
|
41
|
+
addDir(path, children) {
|
|
42
|
+
this._nodes.set(makeUri(path).key, { type: 'dir', children });
|
|
43
|
+
}
|
|
44
|
+
addFile(path) {
|
|
45
|
+
this._nodes.set(makeUri(path).key, { type: 'file' });
|
|
46
|
+
}
|
|
47
|
+
addSymlink(path, target) {
|
|
48
|
+
this._symlinks.set(makeUri(path).key, makeUri(target));
|
|
49
|
+
}
|
|
50
|
+
realpath(uri) {
|
|
51
|
+
const target = this._symlinks.get(uri.key);
|
|
52
|
+
if (target) {
|
|
53
|
+
return this.realpath(target);
|
|
54
|
+
}
|
|
55
|
+
const parent = uri.getDirectory();
|
|
56
|
+
if (parent.key === uri.key) {
|
|
57
|
+
return uri;
|
|
58
|
+
}
|
|
59
|
+
const realParent = this.realpath(parent);
|
|
60
|
+
if (realParent.key === parent.key) {
|
|
61
|
+
return uri;
|
|
62
|
+
}
|
|
63
|
+
return this.realpath(realParent.combinePaths(uri.fileName));
|
|
64
|
+
}
|
|
65
|
+
asFileSystem() {
|
|
66
|
+
const self = this;
|
|
67
|
+
const fs = {
|
|
68
|
+
realpathSync(uri) {
|
|
69
|
+
const real = self.realpath(uri);
|
|
70
|
+
if (!self._nodes.has(real.key)) {
|
|
71
|
+
throw new Error(`ENOENT: ${uri.toString()}`);
|
|
72
|
+
}
|
|
73
|
+
return real;
|
|
74
|
+
},
|
|
75
|
+
existsSync(uri) {
|
|
76
|
+
return self._nodes.has(self.realpath(uri).key);
|
|
77
|
+
},
|
|
78
|
+
statSync(uri) {
|
|
79
|
+
const node = self._nodes.get(self.realpath(uri).key);
|
|
80
|
+
if (!node) {
|
|
81
|
+
throw new Error(`ENOENT: ${uri.toString()}`);
|
|
82
|
+
}
|
|
83
|
+
return self._makeStats(node.type);
|
|
84
|
+
},
|
|
85
|
+
readdirEntriesSync(uri) {
|
|
86
|
+
if (++self._readCount > 10000) {
|
|
87
|
+
throw new Error('Runaway enumeration: too many readdir calls');
|
|
88
|
+
}
|
|
89
|
+
const node = self._nodes.get(self.realpath(uri).key);
|
|
90
|
+
if (!node || node.type !== 'dir') {
|
|
91
|
+
throw new Error(`ENOTDIR: ${uri.toString()}`);
|
|
92
|
+
}
|
|
93
|
+
return node.children.map((name) => self._makeDirent(uri, name));
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
return fs;
|
|
97
|
+
}
|
|
98
|
+
_makeDirent(dirUri, name) {
|
|
99
|
+
const requestedChild = dirUri.combinePaths(name);
|
|
100
|
+
const isLink = this._symlinks.has(requestedChild.key);
|
|
101
|
+
const realNode = this._nodes.get(this.realpath(requestedChild).key);
|
|
102
|
+
const isDir = !isLink && realNode?.type === 'dir';
|
|
103
|
+
const isFile = !isLink && realNode?.type === 'file';
|
|
104
|
+
return {
|
|
105
|
+
name,
|
|
106
|
+
isFile: () => isFile,
|
|
107
|
+
isDirectory: () => isDir,
|
|
108
|
+
isSymbolicLink: () => isLink,
|
|
109
|
+
isBlockDevice: () => false,
|
|
110
|
+
isCharacterDevice: () => false,
|
|
111
|
+
isFIFO: () => false,
|
|
112
|
+
isSocket: () => false,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
_makeStats(type) {
|
|
116
|
+
return {
|
|
117
|
+
size: 0,
|
|
118
|
+
mtimeMs: 0,
|
|
119
|
+
ctimeMs: 0,
|
|
120
|
+
isFile: () => type === 'file',
|
|
121
|
+
isDirectory: () => type === 'dir',
|
|
122
|
+
isBlockDevice: () => false,
|
|
123
|
+
isCharacterDevice: () => false,
|
|
124
|
+
isSymbolicLink: () => false,
|
|
125
|
+
isFIFO: () => false,
|
|
126
|
+
isSocket: () => false,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function enumerate(includeRoots, mock) {
|
|
131
|
+
const includes = includeRoots.map((root) => (0, uriUtils_1.getFileSpec)(makeUri(root), '**'));
|
|
132
|
+
const enumerator = new sourceEnumerator_1.SourceEnumerator(includes,
|
|
133
|
+
/* excludes */ [],
|
|
134
|
+
/* autoExcludeVenv */ false, mock.asFileSystem(), new console_1.NullConsole());
|
|
135
|
+
const result = enumerator.enumerate(/* timeLimitInMs */ 0);
|
|
136
|
+
expect(result.isComplete).toBe(true);
|
|
137
|
+
return new Set(Array.from(result.matches.values()).map((u) => u.key));
|
|
138
|
+
}
|
|
139
|
+
test('symlink to filesystem root is not followed', () => {
|
|
140
|
+
const mock = new MockFs();
|
|
141
|
+
mock.addDir('/workspace', ['app.py', 'link']);
|
|
142
|
+
mock.addFile('/workspace/app.py');
|
|
143
|
+
mock.addSymlink('/workspace/link', '/');
|
|
144
|
+
// The filesystem root contains python files that must NOT be enumerated.
|
|
145
|
+
mock.addDir('/', ['secret.py', 'etc']);
|
|
146
|
+
mock.addFile('/secret.py');
|
|
147
|
+
mock.addDir('/etc', ['deep.py']);
|
|
148
|
+
mock.addFile('/etc/deep.py');
|
|
149
|
+
const matches = enumerate(['/workspace'], mock);
|
|
150
|
+
expect(matches.has(makeUri('/workspace/app.py').key)).toBe(true);
|
|
151
|
+
// Files under the symlink are recorded with the symlink path prefix. Without
|
|
152
|
+
// the containment guard the whole filesystem-root subtree would be pulled in.
|
|
153
|
+
expect(matches.has(makeUri('/workspace/link/secret.py').key)).toBe(false);
|
|
154
|
+
expect(matches.has(makeUri('/workspace/link/etc/deep.py').key)).toBe(false);
|
|
155
|
+
});
|
|
156
|
+
test('symlink to a sibling directory outside the workspace is skipped', () => {
|
|
157
|
+
const mock = new MockFs();
|
|
158
|
+
mock.addDir('/workspace', ['app.py', 'esc']);
|
|
159
|
+
mock.addFile('/workspace/app.py');
|
|
160
|
+
mock.addSymlink('/workspace/esc', '/other');
|
|
161
|
+
mock.addDir('/other', ['x.py']);
|
|
162
|
+
mock.addFile('/other/x.py');
|
|
163
|
+
const matches = enumerate(['/workspace'], mock);
|
|
164
|
+
expect(matches.has(makeUri('/workspace/app.py').key)).toBe(true);
|
|
165
|
+
// Recorded under the symlink path prefix; must not be pulled in.
|
|
166
|
+
expect(matches.has(makeUri('/workspace/esc/x.py').key)).toBe(false);
|
|
167
|
+
});
|
|
168
|
+
test('symlink within the workspace is followed', () => {
|
|
169
|
+
const mock = new MockFs();
|
|
170
|
+
mock.addDir('/workspace', ['sub', 'real']);
|
|
171
|
+
mock.addSymlink('/workspace/sub', '/workspace/real');
|
|
172
|
+
mock.addDir('/workspace/real', ['real.py']);
|
|
173
|
+
mock.addFile('/workspace/real/real.py');
|
|
174
|
+
const matches = enumerate(['/workspace'], mock);
|
|
175
|
+
// The real file must be discovered (via the real dir and/or the symlink; the
|
|
176
|
+
// recursive-cycle guard means only one of the two paths is recorded).
|
|
177
|
+
const viaReal = matches.has(makeUri('/workspace/real/real.py').key);
|
|
178
|
+
const viaLink = matches.has(makeUri('/workspace/sub/real.py').key);
|
|
179
|
+
expect(viaReal || viaLink).toBe(true);
|
|
180
|
+
});
|
|
181
|
+
test('symlink to a sibling include root is followed (multi-root)', () => {
|
|
182
|
+
const mock = new MockFs();
|
|
183
|
+
mock.addDir('/root1', ['link']);
|
|
184
|
+
mock.addSymlink('/root1/link', '/root2/pkg');
|
|
185
|
+
mock.addDir('/root2', ['pkg']);
|
|
186
|
+
mock.addDir('/root2/pkg', ['c.py']);
|
|
187
|
+
mock.addFile('/root2/pkg/c.py');
|
|
188
|
+
const matches = enumerate(['/root1', '/root2'], mock);
|
|
189
|
+
// The symlink resolves under the second include root, so it must be followed
|
|
190
|
+
// (recorded under the /root1/link symlink prefix).
|
|
191
|
+
expect(matches.has(makeUri('/root1/link/c.py').key)).toBe(true);
|
|
192
|
+
});
|
|
193
|
+
test('symlink back to the include root itself does not crash and stays bounded', () => {
|
|
194
|
+
const mock = new MockFs();
|
|
195
|
+
mock.addDir('/workspace', ['app.py', 'self']);
|
|
196
|
+
mock.addFile('/workspace/app.py');
|
|
197
|
+
// A link to the include root resolves to the root (startsWith equality) and is
|
|
198
|
+
// then caught by the recursive-cycle guard rather than the containment guard.
|
|
199
|
+
mock.addSymlink('/workspace/self', '/workspace');
|
|
200
|
+
const matches = enumerate(['/workspace'], mock);
|
|
201
|
+
expect(matches.has(makeUri('/workspace/app.py').key)).toBe(true);
|
|
202
|
+
});
|
|
203
|
+
//# sourceMappingURL=sourceEnumeratorSymlink.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceEnumeratorSymlink.test.js","sourceRoot":"","sources":["../../../../../src/tests/sourceEnumeratorSymlink.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,23 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
41
|
const assert = __importStar(require("assert"));
|
|
42
42
|
const utils = __importStar(require("../common/stringUtils"));
|
|
43
|
+
test('string fingerprint preserves the legacy hash and separates known collisions', () => {
|
|
44
|
+
const values = ['', 'plain text', '\0', '😀', 'value_Aa = 1\n', 'value_BB = 1\n'];
|
|
45
|
+
for (const value of values) {
|
|
46
|
+
assert.equal(utils.getStringFingerprint(value).primary, utils.hashString(value));
|
|
47
|
+
}
|
|
48
|
+
const first = utils.getStringFingerprint('value_Aa = 1\n');
|
|
49
|
+
const second = utils.getStringFingerprint('value_BB = 1\n');
|
|
50
|
+
const equalValue = { ...first };
|
|
51
|
+
assert.equal(first.primary, second.primary);
|
|
52
|
+
assert.notEqual(first.secondary, second.secondary);
|
|
53
|
+
assert.notStrictEqual(equalValue, first);
|
|
54
|
+
assert.equal(utils.areStringFingerprintsEqual(first, first), true);
|
|
55
|
+
assert.equal(utils.areStringFingerprintsEqual(first, equalValue), true);
|
|
56
|
+
assert.equal(utils.areStringFingerprintsEqual(first, second), false);
|
|
57
|
+
assert.equal(utils.areStringFingerprintsEqual(first, { ...first, primary: first.primary + 1 }), false);
|
|
58
|
+
assert.equal(utils.areStringFingerprintsEqual(first, { ...first, secondary: first.secondary + 1 }), false);
|
|
59
|
+
});
|
|
43
60
|
test('stringUtils isPatternInSymbol', () => {
|
|
44
61
|
assert.equal(utils.isPatternInSymbol('', 'abcd'), true);
|
|
45
62
|
assert.equal(utils.isPatternInSymbol('abcd', 'abcd'), true);
|
|
@@ -52,6 +69,73 @@ test('stringUtils isPatternInSymbol', () => {
|
|
|
52
69
|
assert.equal(utils.isPatternInSymbol('azcde', 'abcd'), false);
|
|
53
70
|
assert.equal(utils.isPatternInSymbol('acde', 'abcd'), false);
|
|
54
71
|
assert.equal(utils.isPatternInSymbol('zbcd', 'abcd'), false);
|
|
72
|
+
// A typed value longer than the symbol can never match (the loop exhausts the
|
|
73
|
+
// symbol before consuming all typed characters).
|
|
74
|
+
assert.equal(utils.isPatternInSymbol('abcd', 'abc'), false);
|
|
75
|
+
});
|
|
76
|
+
test('stringUtils isPatternInSymbol unicode/locale parity', () => {
|
|
77
|
+
// The fast path folds case for the Latin-1 range; verify it still matches the
|
|
78
|
+
// locale-aware original behavior for accented Latin-1 letters.
|
|
79
|
+
assert.equal(utils.isPatternInSymbol('café', 'CAFÉ'), true);
|
|
80
|
+
assert.equal(utils.isPatternInSymbol('é', 'CAFÉ'), true);
|
|
81
|
+
assert.equal(utils.isPatternInSymbol('É', 'e'), false);
|
|
82
|
+
// Characters whose toLocaleLowerCase() changes length must go through the
|
|
83
|
+
// full-string fallback. Turkish dotted capital I (U+0130) lower-cases to two
|
|
84
|
+
// code units ("i" + combining dot), so these must match the original exactly.
|
|
85
|
+
assert.equal(utils.isPatternInSymbol('İ', 'I'), false);
|
|
86
|
+
assert.equal(utils.isPatternInSymbol('İ', 'i'), false);
|
|
87
|
+
assert.equal(utils.isPatternInSymbol('istanbul', 'İstanbul'), true);
|
|
88
|
+
// A typed value that is longer in code units than the symbol can still match
|
|
89
|
+
// once both are lower-cased, because İ (U+0130) lower-cases to two code units
|
|
90
|
+
// ("i" + U+0307 combining dot). Typing that exact 2-unit sequence must match a
|
|
91
|
+
// symbol of "İ". This is the case a raw pre-lowercase length check would break.
|
|
92
|
+
assert.equal(utils.isPatternInSymbol('i\u0307', 'İ'), true);
|
|
93
|
+
assert.equal(utils.isPatternInSymbol('i\u0307', 'i'), false);
|
|
94
|
+
// Directly assert parity with the original toLocaleLowerCase-based algorithm
|
|
95
|
+
// over a spread of tricky inputs (ASCII, Latin-1, ligatures, ß, non-Latin-1),
|
|
96
|
+
// so any future edit that breaks exact behavior is caught here.
|
|
97
|
+
const reference = (typedValue, symbolName) => {
|
|
98
|
+
const typedLower = typedValue.toLocaleLowerCase();
|
|
99
|
+
const symbolLower = symbolName.toLocaleLowerCase();
|
|
100
|
+
let typedPos = 0;
|
|
101
|
+
let symbolPos = 0;
|
|
102
|
+
while (typedPos < typedLower.length && symbolPos < symbolLower.length) {
|
|
103
|
+
if (typedLower[typedPos] === symbolLower[symbolPos]) {
|
|
104
|
+
typedPos += 1;
|
|
105
|
+
}
|
|
106
|
+
symbolPos += 1;
|
|
107
|
+
}
|
|
108
|
+
return typedPos === typedLower.length;
|
|
109
|
+
};
|
|
110
|
+
const tokens = [
|
|
111
|
+
'',
|
|
112
|
+
'a',
|
|
113
|
+
'A',
|
|
114
|
+
'abc',
|
|
115
|
+
'ABC',
|
|
116
|
+
'aXbYc',
|
|
117
|
+
'café',
|
|
118
|
+
'CAFÉ',
|
|
119
|
+
'É',
|
|
120
|
+
'straße',
|
|
121
|
+
'STRASSE',
|
|
122
|
+
'İ',
|
|
123
|
+
'I',
|
|
124
|
+
'i',
|
|
125
|
+
'ı',
|
|
126
|
+
'i\u0307',
|
|
127
|
+
'İstanbul',
|
|
128
|
+
'istanbul',
|
|
129
|
+
'file',
|
|
130
|
+
'file',
|
|
131
|
+
'µm',
|
|
132
|
+
'MM',
|
|
133
|
+
];
|
|
134
|
+
for (const typed of tokens) {
|
|
135
|
+
for (const symbol of tokens) {
|
|
136
|
+
assert.equal(utils.isPatternInSymbol(typed, symbol), reference(typed, symbol), `mismatch for typed=${JSON.stringify(typed)} symbol=${JSON.stringify(symbol)}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
55
139
|
});
|
|
56
140
|
test('CoreCompareStringsCaseInsensitive1', () => {
|
|
57
141
|
assert.equal(utils.compareStringsCaseInsensitive('Hello', 'hello'), 0 /* core.Comparison.EqualTo */);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stringUtils.test.js","sourceRoot":"","sources":["../../../../../src/tests/stringUtils.test.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AAGjC,6DAA+C;AAE/C,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACvC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAExD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAE3D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAE3D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"stringUtils.test.js","sourceRoot":"","sources":["../../../../../src/tests/stringUtils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|