@zzzen/pyright-internal 1.2.0-dev.20231119 → 1.2.0-dev.20231203
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzer/analysis.d.ts +1 -1
- package/dist/analyzer/analysis.js +5 -1
- package/dist/analyzer/analysis.js.map +1 -1
- package/dist/analyzer/analyzerFileInfo.d.ts +1 -1
- package/dist/analyzer/analyzerNodeInfo.d.ts +1 -1
- package/dist/analyzer/analyzerNodeInfo.js +1 -1
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.js +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +201 -194
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.js +1 -1
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.d.ts +4 -1
- package/dist/analyzer/checker.js +403 -248
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +1 -1
- package/dist/analyzer/codeFlowEngine.js +33 -26
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.d.ts +1 -1
- package/dist/analyzer/codeFlowTypes.js +23 -23
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js +39 -37
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/commentUtils.js +7 -0
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +51 -47
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +8 -8
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.js +25 -26
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +124 -109
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +2 -2
- package/dist/analyzer/declaration.js +10 -10
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/declarationUtils.js +41 -41
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +51 -51
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/enums.js +27 -27
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.js +4 -4
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +1 -1
- package/dist/analyzer/importResolver.js +21 -17
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importResult.js +1 -1
- package/dist/analyzer/importResult.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +31 -27
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +36 -32
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.js +94 -92
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeReport.d.ts +1 -1
- package/dist/analyzer/packageTypeReport.js +2 -2
- package/dist/analyzer/packageTypeReport.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +90 -90
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.js +14 -14
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parentDirectoryCache.d.ts +2 -2
- package/dist/analyzer/parseTreeCleaner.js +5 -1
- package/dist/analyzer/parseTreeCleaner.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -1
- package/dist/analyzer/parseTreeUtils.js +383 -379
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js +161 -157
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.d.ts +1 -1
- package/dist/analyzer/patternMatching.js +52 -50
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -1
- package/dist/analyzer/program.js +18 -14
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +53 -44
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +41 -27
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js +5 -1
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/regions.js +3 -3
- package/dist/analyzer/regions.js.map +1 -1
- package/dist/analyzer/scope.js +8 -8
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/scopeUtils.js +1 -1
- package/dist/analyzer/scopeUtils.js.map +1 -1
- package/dist/analyzer/service.js +5 -1
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.js +25 -21
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +2 -2
- package/dist/analyzer/sourceMapper.js +12 -8
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +40 -40
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/symbol.d.ts +1 -1
- package/dist/analyzer/symbol.js +26 -26
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/symbolUtils.js +1 -1
- package/dist/analyzer/symbolUtils.js.map +1 -1
- package/dist/analyzer/testWalker.js +5 -5
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.d.ts +1 -1
- package/dist/analyzer/tracePrinter.js +35 -31
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.js +5 -1
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +13 -9
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +1347 -1270
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +4 -2
- package/dist/analyzer/typeEvaluatorTypes.js +4 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +1 -1
- package/dist/analyzer/typeGuards.js +79 -65
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +1 -1
- package/dist/analyzer/typePrinter.js +80 -76
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +26 -22
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +139 -135
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +2 -0
- package/dist/analyzer/typeVarContext.js +36 -9
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typeWalker.js +10 -10
- package/dist/analyzer/typedDicts.js +76 -102
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +18 -18
- package/dist/analyzer/types.js +186 -191
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +2 -2
- package/dist/backgroundAnalysisBase.js +5 -1
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.js +5 -1
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/commandController.js +6 -7
- package/dist/commands/commandController.js.map +1 -1
- package/dist/commands/commandResult.js +1 -1
- package/dist/commands/commandResult.js.map +1 -1
- package/dist/commands/commands.d.ts +0 -1
- package/dist/commands/commands.js +1 -2
- package/dist/commands/commands.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +196 -196
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/commands/quickActionCommand.js +1 -1
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/charCodes.js +1 -1
- package/dist/common/charCodes.js.map +1 -1
- package/dist/common/chokidarFileWatcherProvider.js +5 -1
- package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
- package/dist/common/collectionUtils.d.ts +3 -3
- package/dist/common/collectionUtils.js +3 -3
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/commandLineOptions.d.ts +1 -1
- package/dist/common/commandLineOptions.js +5 -5
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/configOptions.d.ts +2 -1
- package/dist/common/configOptions.js +102 -10
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/console.js +7 -3
- package/dist/common/console.js.map +1 -1
- package/dist/common/core.d.ts +2 -2
- package/dist/common/core.js +6 -6
- package/dist/common/core.js.map +1 -1
- package/dist/common/diagnostic.d.ts +0 -4
- package/dist/common/diagnostic.js +6 -6
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/diagnosticRules.js +1 -1
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/diagnosticSink.js +12 -12
- package/dist/common/diagnosticSink.js.map +1 -1
- package/dist/common/editAction.d.ts +1 -1
- package/dist/common/editAction.js +2 -2
- package/dist/common/editAction.js.map +1 -1
- package/dist/common/envVarUtils.js +5 -1
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.js +1 -1
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.js +5 -1
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -0
- package/dist/common/fileSystem.js +2 -2
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fileWatcher.d.ts +2 -2
- package/dist/common/fullAccessHost.js +10 -6
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/host.d.ts +1 -1
- package/dist/common/host.js +2 -2
- package/dist/common/host.js.map +1 -1
- package/dist/common/lspUtils.js +7 -7
- package/dist/common/lspUtils.js.map +1 -1
- package/dist/common/memUtils.d.ts +1 -1
- package/dist/common/pathUtils.js +12 -8
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/pythonVersion.js +1 -1
- package/dist/common/pythonVersion.js.map +1 -1
- package/dist/common/realFileSystem.js +5 -1
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.d.ts +1 -1
- package/dist/common/serviceProvider.js +5 -1
- package/dist/common/serviceProvider.js.map +1 -1
- package/dist/common/serviceProviderExtensions.js +1 -1
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/common/stringUtils.js +5 -5
- package/dist/common/stringUtils.js.map +1 -1
- package/dist/common/textEditTracker.js +11 -7
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/textRange.js +3 -3
- package/dist/common/textRange.js.map +1 -1
- package/dist/languageServerBase.js +13 -13
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +3 -3
- package/dist/languageService/autoImporter.js +12 -8
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +27 -23
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/codeActionProvider.js +5 -19
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +166 -162
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.js +9 -9
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/definitionProvider.js +14 -10
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +7 -3
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +1 -1
- package/dist/languageService/documentSymbolCollector.js +21 -17
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +30 -26
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.js +1 -1
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/quickActions.d.ts +1 -2
- package/dist/languageService/quickActions.js +1 -77
- package/dist/languageService/quickActions.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +1 -1
- package/dist/languageService/referencesProvider.js +24 -20
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +8 -4
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +8 -4
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +20 -16
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.js +5 -1
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +19 -18
- package/dist/localization/localize.js +11 -8
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +0 -7
- package/dist/localization/package.nls.de.json +0 -7
- package/dist/localization/package.nls.en-us.json +11 -8
- package/dist/localization/package.nls.es.json +2 -9
- package/dist/localization/package.nls.fr.json +0 -7
- package/dist/localization/package.nls.it.json +0 -7
- package/dist/localization/package.nls.ja.json +0 -7
- package/dist/localization/package.nls.ko.json +0 -7
- package/dist/localization/package.nls.pl.json +0 -7
- package/dist/localization/package.nls.pt-br.json +0 -7
- package/dist/localization/package.nls.qps-ploc.json +0 -7
- package/dist/localization/package.nls.ru.json +0 -7
- package/dist/localization/package.nls.tr.json +0 -7
- package/dist/localization/package.nls.zh-cn.json +0 -7
- package/dist/localization/package.nls.zh-tw.json +0 -7
- package/dist/parser/characterStream.js +3 -3
- package/dist/parser/characterStream.js.map +1 -1
- package/dist/parser/characters.js +13 -9
- package/dist/parser/characters.js.map +1 -1
- package/dist/parser/parseNodes.d.ts +12 -12
- package/dist/parser/parseNodes.js +193 -193
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.js +563 -559
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringTokenUtils.js +47 -47
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.js +288 -288
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/parser/tokenizerTypes.js +35 -35
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/parser/unicode.d.ts +3 -3
- package/dist/pyright.js +21 -17
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +1 -0
- package/dist/pyrightFileSystem.js +2 -2
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +2 -1
- package/dist/readonlyAugmentedFileSystem.js +15 -5
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +5 -1
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +13 -1
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/collectionUtils.test.js +5 -1
- package/dist/tests/collectionUtils.test.js.map +1 -1
- package/dist/tests/common.test.js +5 -1
- package/dist/tests/common.test.js.map +1 -1
- package/dist/tests/debug.test.js +8 -4
- package/dist/tests/debug.test.js.map +1 -1
- package/dist/tests/deferred.test.js +5 -1
- package/dist/tests/deferred.test.js.map +1 -1
- package/dist/tests/diagnosticOverrides.test.js +5 -1
- package/dist/tests/diagnosticOverrides.test.js.map +1 -1
- package/dist/tests/docStringUtils.test.js +5 -1
- package/dist/tests/docStringUtils.test.js.map +1 -1
- package/dist/tests/filesystem.test.js +5 -1
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/fourSlashParser.test.js +5 -1
- package/dist/tests/fourSlashParser.test.js.map +1 -1
- package/dist/tests/fourSlashRunner.test.js +5 -1
- package/dist/tests/fourSlashRunner.test.js.map +1 -1
- package/dist/tests/fourslash/fourslash.d.ts +1 -2
- package/dist/tests/harness/fourslash/fourSlashParser.js +13 -13
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashTypes.js +11 -7
- package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
- package/dist/tests/harness/fourslash/runner.d.ts +1 -1
- package/dist/tests/harness/fourslash/runner.js +5 -1
- package/dist/tests/harness/fourslash/runner.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +5 -1
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -2
- package/dist/tests/harness/fourslash/testState.Consts.js +6 -3
- package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +18 -14
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/fourslash/testStateUtils.js +9 -5
- package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +5 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
- package/dist/tests/harness/testHost.js +5 -1
- package/dist/tests/harness/testHost.js.map +1 -1
- package/dist/tests/harness/utils.d.ts +13 -12
- package/dist/tests/harness/utils.js.map +1 -1
- package/dist/tests/harness/vfs/factory.js +6 -2
- package/dist/tests/harness/vfs/factory.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +4 -3
- package/dist/tests/harness/vfs/filesystem.js +11 -7
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/harness/vfs/pathValidation.js +30 -26
- package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +25 -25
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/ipythonMode.test.js +6 -6
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/localizer.test.js +5 -1
- package/dist/tests/localizer.test.js.map +1 -1
- package/dist/tests/logger.test.js +5 -1
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +10 -10
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/parser.test.js +13 -9
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/pathUtils.test.js +5 -1
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/pyrightFileSystem.test.js +48 -1
- package/dist/tests/pyrightFileSystem.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +5 -1
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +5 -1
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/stringUtils.test.js +10 -6
- package/dist/tests/stringUtils.test.js.map +1 -1
- package/dist/tests/symbolNameUtils.test.js +5 -1
- package/dist/tests/symbolNameUtils.test.js.map +1 -1
- package/dist/tests/testState.test.js +5 -1
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testUtils.js +11 -7
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/textRange.test.js +5 -1
- package/dist/tests/textRange.test.js.map +1 -1
- package/dist/tests/tokenizer.test.js +463 -459
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +22 -7
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +14 -6
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +23 -12
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +16 -4
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +13 -5
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +44 -40
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +5 -1
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/tests/zipfs.test.js +5 -1
- package/dist/tests/zipfs.test.js.map +1 -1
- package/dist/workspaceFactory.js +2 -2
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +2 -2
@@ -10,7 +10,11 @@
|
|
10
10
|
*/
|
11
11
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
12
12
|
if (k2 === undefined) k2 = k;
|
13
|
-
Object.
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
16
|
+
}
|
17
|
+
Object.defineProperty(o, k2, desc);
|
14
18
|
}) : (function(o, m, k, k2) {
|
15
19
|
if (k2 === undefined) k2 = k;
|
16
20
|
o[k2] = m[k];
|
@@ -252,17 +256,17 @@ class CompletionProvider {
|
|
252
256
|
}
|
253
257
|
isSimpleDefault(node) {
|
254
258
|
switch (node.nodeType) {
|
255
|
-
case 40 /* Number */:
|
256
|
-
case 11 /* Constant */:
|
257
|
-
case 35 /* MemberAccess */:
|
259
|
+
case 40 /* ParseNodeType.Number */:
|
260
|
+
case 11 /* ParseNodeType.Constant */:
|
261
|
+
case 35 /* ParseNodeType.MemberAccess */:
|
258
262
|
return true;
|
259
|
-
case 49 /* String */:
|
260
|
-
return (node.token.flags & 64 /* Format */) === 0;
|
261
|
-
case 48 /* StringList */:
|
263
|
+
case 49 /* ParseNodeType.String */:
|
264
|
+
return (node.token.flags & 64 /* StringTokenFlags.Format */) === 0;
|
265
|
+
case 48 /* ParseNodeType.StringList */:
|
262
266
|
return node.strings.every(this.isSimpleDefault);
|
263
|
-
case 55 /* UnaryOperation */:
|
267
|
+
case 55 /* ParseNodeType.UnaryOperation */:
|
264
268
|
return this.isSimpleDefault(node.expression);
|
265
|
-
case 7 /* BinaryOperation */:
|
269
|
+
case 7 /* ParseNodeType.BinaryOperation */:
|
266
270
|
return this.isSimpleDefault(node.leftExpression) && this.isSimpleDefault(node.rightExpression);
|
267
271
|
default:
|
268
272
|
return false;
|
@@ -291,7 +295,7 @@ class CompletionProvider {
|
|
291
295
|
symbolTable.forEach((symbol, name) => {
|
292
296
|
var _a;
|
293
297
|
let decl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(symbol);
|
294
|
-
if (decl && decl.type === 5 /* Function */) {
|
298
|
+
if (decl && decl.type === 5 /* DeclarationType.Function */) {
|
295
299
|
if (StringUtils.isPatternInSymbol(partialName.value, name)) {
|
296
300
|
const declaredType = (_a = this.evaluator.getTypeForDeclaration(decl)) === null || _a === void 0 ? void 0 : _a.type;
|
297
301
|
if (!declaredType) {
|
@@ -309,7 +313,7 @@ class CompletionProvider {
|
|
309
313
|
// For properties, we should override the "getter", which is typically
|
310
314
|
// the first declaration.
|
311
315
|
const typedDecls = symbol.getTypedDeclarations();
|
312
|
-
if (typedDecls.length > 0 && typedDecls[0].type === 5 /* Function */) {
|
316
|
+
if (typedDecls.length > 0 && typedDecls[0].type === 5 /* DeclarationType.Function */) {
|
313
317
|
decl = typedDecls[0];
|
314
318
|
}
|
315
319
|
}
|
@@ -375,12 +379,12 @@ class CompletionProvider {
|
|
375
379
|
if (parameter.name) {
|
376
380
|
results.push([
|
377
381
|
parameter,
|
378
|
-
parameter.category === 0 /* Simple */ && !!parameter.name && sawKeywordOnlySeparator,
|
382
|
+
parameter.category === 0 /* ParameterCategory.Simple */ && !!parameter.name && sawKeywordOnlySeparator,
|
379
383
|
]);
|
380
384
|
}
|
381
385
|
// All simple parameters after a `*` or `*args` parameter
|
382
386
|
// are considered keyword only.
|
383
|
-
if (parameter.category === 1 /* ArgsList */) {
|
387
|
+
if (parameter.category === 1 /* ParameterCategory.ArgsList */) {
|
384
388
|
sawKeywordOnlySeparator = true;
|
385
389
|
}
|
386
390
|
}
|
@@ -389,17 +393,17 @@ class CompletionProvider {
|
|
389
393
|
function convertToString(parameter) {
|
390
394
|
var _a;
|
391
395
|
const name = (_a = parameter[0].name) === null || _a === void 0 ? void 0 : _a.value;
|
392
|
-
if (parameter[0].category === 1 /* ArgsList */) {
|
396
|
+
if (parameter[0].category === 1 /* ParameterCategory.ArgsList */) {
|
393
397
|
return `*${name}`;
|
394
398
|
}
|
395
|
-
if (parameter[0].category === 2 /* KwargsDict */) {
|
399
|
+
if (parameter[0].category === 2 /* ParameterCategory.KwargsDict */) {
|
396
400
|
return `**${name}`;
|
397
401
|
}
|
398
402
|
return parameter[1] ? `${name}=${name}` : name;
|
399
403
|
}
|
400
404
|
}
|
401
405
|
createReplaceEdits(priorWord, node, text) {
|
402
|
-
const replaceOrInsertEndChar = (node === null || node === void 0 ? void 0 : node.nodeType) === 38 /* Name */
|
406
|
+
const replaceOrInsertEndChar = (node === null || node === void 0 ? void 0 : node.nodeType) === 38 /* ParseNodeType.Name */
|
403
407
|
? this.position.character - priorWord.length + node.value.length
|
404
408
|
: this.position.character;
|
405
409
|
const range = {
|
@@ -474,11 +478,11 @@ class CompletionProvider {
|
|
474
478
|
// Handle enum members specially. Enum members normally look like
|
475
479
|
// variables, but the are declared using assignment expressions
|
476
480
|
// within an enum class.
|
477
|
-
if (primaryDecl.type === 1 /* Variable */ &&
|
481
|
+
if (primaryDecl.type === 1 /* DeclarationType.Variable */ &&
|
478
482
|
detail.boundObjectOrClass &&
|
479
483
|
(0, types_1.isInstantiableClass)(detail.boundObjectOrClass) &&
|
480
484
|
types_1.ClassType.isEnumClass(detail.boundObjectOrClass) &&
|
481
|
-
((_c = primaryDecl.node.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 3 /* Assignment */) {
|
485
|
+
((_c = primaryDecl.node.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 3 /* ParseNodeType.Assignment */) {
|
482
486
|
itemKind = vscode_languageserver_1.CompletionItemKind.EnumMember;
|
483
487
|
}
|
484
488
|
this.addNameToCompletions((_d = detail.autoImportAlias) !== null && _d !== void 0 ? _d : name, itemKind, priorWord, completionMap, {
|
@@ -594,7 +598,7 @@ class CompletionProvider {
|
|
594
598
|
}
|
595
599
|
}
|
596
600
|
checkDecorator(node, value) {
|
597
|
-
return node.expression.nodeType === 38 /* Name */ && node.expression.value === value;
|
601
|
+
return node.expression.nodeType === 38 /* ParseNodeType.Name */ && node.expression.value === value;
|
598
602
|
}
|
599
603
|
addExtraCommitChar(item) {
|
600
604
|
// extra commit char is not supported.
|
@@ -738,16 +742,16 @@ class CompletionProvider {
|
|
738
742
|
let node = ParseTreeUtils.findNodeByOffset(this.parseResults.parseTree, offset);
|
739
743
|
// See if we're inside a string literal or an f-string statement.
|
740
744
|
const token = ParseTreeUtils.getTokenOverlapping(this.parseResults.tokenizerOutput.tokens, offset);
|
741
|
-
if ((token === null || token === void 0 ? void 0 : token.type) === 5 /* String */) {
|
745
|
+
if ((token === null || token === void 0 ? void 0 : token.type) === 5 /* TokenType.String */) {
|
742
746
|
const stringToken = token;
|
743
747
|
this._stringLiteralContainer = textRange_1.TextRange.contains(stringToken, offset)
|
744
748
|
? stringToken
|
745
|
-
: stringToken.flags & 65536 /* Unterminated */
|
749
|
+
: stringToken.flags & 65536 /* StringTokenFlags.Unterminated */
|
746
750
|
? stringToken
|
747
751
|
: undefined;
|
748
752
|
}
|
749
753
|
else if (node) {
|
750
|
-
const fStringContainer = ParseTreeUtils.getParentNodeOfType(node, 27 /* FormatString */);
|
754
|
+
const fStringContainer = ParseTreeUtils.getParentNodeOfType(node, 27 /* ParseNodeType.FormatString */);
|
751
755
|
if (fStringContainer) {
|
752
756
|
this._stringLiteralContainer = fStringContainer.token;
|
753
757
|
}
|
@@ -757,7 +761,7 @@ class CompletionProvider {
|
|
757
761
|
// node.
|
758
762
|
const initialNode = node;
|
759
763
|
const initialDepth = node ? ParseTreeUtils.getNodeDepth(node) : 0;
|
760
|
-
if (!initialNode || initialNode.nodeType !== 38 /* Name */) {
|
764
|
+
if (!initialNode || initialNode.nodeType !== 38 /* ParseNodeType.Name */) {
|
761
765
|
let curOffset = offset;
|
762
766
|
let sawComma = false;
|
763
767
|
while (curOffset >= 0) {
|
@@ -776,7 +780,7 @@ class CompletionProvider {
|
|
776
780
|
node = curNode;
|
777
781
|
// If we're at the end of a list with a hanging comma, handle the
|
778
782
|
// special case of "from x import y, ".
|
779
|
-
if (sawComma && ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 23 /* ImportFromAs */) {
|
783
|
+
if (sawComma && ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 23 /* ParseNodeType.ImportFromAs */) {
|
780
784
|
node = node.parent;
|
781
785
|
}
|
782
786
|
}
|
@@ -802,7 +806,7 @@ class CompletionProvider {
|
|
802
806
|
// precedence.
|
803
807
|
let errorNode = node;
|
804
808
|
while (errorNode) {
|
805
|
-
if (errorNode.nodeType === 0 /* Error */) {
|
809
|
+
if (errorNode.nodeType === 0 /* ParseNodeType.Error */) {
|
806
810
|
break;
|
807
811
|
}
|
808
812
|
errorNode = errorNode.parent;
|
@@ -812,31 +816,31 @@ class CompletionProvider {
|
|
812
816
|
let curNode = errorNode || node;
|
813
817
|
while (true) {
|
814
818
|
(0, cancellationUtils_1.throwIfCancellationRequested)(this.cancellationToken);
|
815
|
-
if (curNode.nodeType === 49 /* String */) {
|
819
|
+
if (curNode.nodeType === 49 /* ParseNodeType.String */) {
|
816
820
|
return this._getLiteralCompletions(curNode, offset, priorWord, priorText, postText);
|
817
821
|
}
|
818
|
-
if (curNode.nodeType === 48 /* StringList */ || curNode.nodeType === 27 /* FormatString */) {
|
822
|
+
if (curNode.nodeType === 48 /* ParseNodeType.StringList */ || curNode.nodeType === 27 /* ParseNodeType.FormatString */) {
|
819
823
|
return undefined;
|
820
824
|
}
|
821
|
-
if (curNode.nodeType === 37 /* ModuleName */) {
|
825
|
+
if (curNode.nodeType === 37 /* ParseNodeType.ModuleName */) {
|
822
826
|
return this._getImportModuleCompletions(curNode);
|
823
827
|
}
|
824
|
-
if (curNode.nodeType === 0 /* Error */) {
|
828
|
+
if (curNode.nodeType === 0 /* ParseNodeType.Error */) {
|
825
829
|
return this._getExpressionErrorCompletions(curNode, offset, priorWord, priorText, postText);
|
826
830
|
}
|
827
|
-
if (curNode.nodeType === 35 /* MemberAccess */) {
|
831
|
+
if (curNode.nodeType === 35 /* ParseNodeType.MemberAccess */) {
|
828
832
|
return this.getMemberAccessCompletions(curNode.leftExpression, priorWord);
|
829
833
|
}
|
830
|
-
if (curNode.nodeType === 15 /* Dictionary */) {
|
834
|
+
if (curNode.nodeType === 15 /* ParseNodeType.Dictionary */) {
|
831
835
|
const completionMap = new CompletionMap();
|
832
836
|
if (this._tryAddTypedDictKeysFromDictionary(curNode,
|
833
837
|
/* stringNode */ undefined, priorWord, priorText, postText, completionMap)) {
|
834
838
|
return completionMap;
|
835
839
|
}
|
836
840
|
}
|
837
|
-
const dictionaryEntry = ParseTreeUtils.getFirstAncestorOrSelfOfKind(curNode, 17 /* DictionaryKeyEntry */);
|
841
|
+
const dictionaryEntry = ParseTreeUtils.getFirstAncestorOrSelfOfKind(curNode, 17 /* ParseNodeType.DictionaryKeyEntry */);
|
838
842
|
if (dictionaryEntry) {
|
839
|
-
if (((_b = dictionaryEntry.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 15 /* Dictionary */) {
|
843
|
+
if (((_b = dictionaryEntry.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 15 /* ParseNodeType.Dictionary */) {
|
840
844
|
const dictionaryNode = dictionaryEntry.parent;
|
841
845
|
if (dictionaryNode.trailingCommaToken && dictionaryNode.trailingCommaToken.start < offset) {
|
842
846
|
const completionMap = new CompletionMap();
|
@@ -847,7 +851,7 @@ class CompletionProvider {
|
|
847
851
|
}
|
848
852
|
}
|
849
853
|
}
|
850
|
-
if (curNode.nodeType === 38 /* Name */) {
|
854
|
+
if (curNode.nodeType === 38 /* ParseNodeType.Name */) {
|
851
855
|
// This condition is little different than others since it does its own
|
852
856
|
// tree walk up to find context and let outer tree walk up to proceed if it can't find
|
853
857
|
// one to show completion.
|
@@ -856,19 +860,19 @@ class CompletionProvider {
|
|
856
860
|
return result;
|
857
861
|
}
|
858
862
|
}
|
859
|
-
if (curNode.nodeType === 31 /* List */ && this.options.triggerCharacter === '[') {
|
863
|
+
if (curNode.nodeType === 31 /* ParseNodeType.List */ && this.options.triggerCharacter === '[') {
|
860
864
|
// If this is an empty list, don't start putting completions up yet.
|
861
865
|
return undefined;
|
862
866
|
}
|
863
|
-
if (curNode.nodeType === 22 /* ImportFrom */) {
|
867
|
+
if (curNode.nodeType === 22 /* ParseNodeType.ImportFrom */) {
|
864
868
|
return this._getImportFromCompletions(curNode, priorWord);
|
865
869
|
}
|
866
870
|
if ((0, parseNodes_1.isExpressionNode)(curNode)) {
|
867
871
|
return this._getExpressionCompletions(curNode, priorWord, priorText, postText);
|
868
872
|
}
|
869
|
-
if (curNode.nodeType === 50 /* Suite */) {
|
873
|
+
if (curNode.nodeType === 50 /* ParseNodeType.Suite */) {
|
870
874
|
if (curNode.parent &&
|
871
|
-
curNode.parent.nodeType === 25 /* Except */ &&
|
875
|
+
curNode.parent.nodeType === 25 /* ParseNodeType.Except */ &&
|
872
876
|
!curNode.parent.name &&
|
873
877
|
curNode.parent.typeExpression &&
|
874
878
|
textRange_1.TextRange.getEnd(curNode.parent.typeExpression) < offset &&
|
@@ -877,7 +881,7 @@ class CompletionProvider {
|
|
877
881
|
return undefined;
|
878
882
|
}
|
879
883
|
if (curNode.parent &&
|
880
|
-
curNode.parent.nodeType === 10 /* Class */ &&
|
884
|
+
curNode.parent.nodeType === 10 /* ParseNodeType.Class */ &&
|
881
885
|
(!curNode.parent.name || !curNode.parent.name.value) &&
|
882
886
|
curNode.parent.arguments.length === 0 &&
|
883
887
|
offset <= curNode.parent.suite.start) {
|
@@ -886,13 +890,13 @@ class CompletionProvider {
|
|
886
890
|
}
|
887
891
|
return this._getStatementCompletions(curNode, priorWord, priorText, postText);
|
888
892
|
}
|
889
|
-
if (curNode.nodeType === 36 /* Module */) {
|
893
|
+
if (curNode.nodeType === 36 /* ParseNodeType.Module */) {
|
890
894
|
return this._getStatementCompletions(curNode, priorWord, priorText, postText);
|
891
895
|
}
|
892
|
-
if (curNode.nodeType === 41 /* Parameter */ &&
|
896
|
+
if (curNode.nodeType === 41 /* ParseNodeType.Parameter */ &&
|
893
897
|
curNode.length === 0 &&
|
894
898
|
curNode.parent &&
|
895
|
-
curNode.parent.nodeType === 30 /* Lambda */) {
|
899
|
+
curNode.parent.nodeType === 30 /* ParseNodeType.Lambda */) {
|
896
900
|
// lambda [<empty>] or lambda x, [<empty>]
|
897
901
|
return undefined;
|
898
902
|
}
|
@@ -912,14 +916,14 @@ class CompletionProvider {
|
|
912
916
|
if (!curNode.parent) {
|
913
917
|
return false;
|
914
918
|
}
|
915
|
-
if (curNode.parent.nodeType === 21 /* ImportAs */ && curNode.parent.alias === curNode) {
|
919
|
+
if (curNode.parent.nodeType === 21 /* ParseNodeType.ImportAs */ && curNode.parent.alias === curNode) {
|
916
920
|
// Are we within a "import Y as [Z]"?
|
917
921
|
return undefined;
|
918
922
|
}
|
919
|
-
if (curNode.parent.nodeType === 37 /* ModuleName */) {
|
923
|
+
if (curNode.parent.nodeType === 37 /* ParseNodeType.ModuleName */) {
|
920
924
|
// Are we within a "import Y as [<empty>]"?
|
921
925
|
if (curNode.parent.parent &&
|
922
|
-
curNode.parent.parent.nodeType === 21 /* ImportAs */ &&
|
926
|
+
curNode.parent.parent.nodeType === 21 /* ParseNodeType.ImportAs */ &&
|
923
927
|
!curNode.parent.parent.alias &&
|
924
928
|
textRange_1.TextRange.getEnd(curNode.parent.parent) < offset) {
|
925
929
|
return undefined;
|
@@ -928,13 +932,13 @@ class CompletionProvider {
|
|
928
932
|
// more specifically within the "Y"?
|
929
933
|
return this._getImportModuleCompletions(curNode.parent);
|
930
934
|
}
|
931
|
-
if (curNode.parent.nodeType === 23 /* ImportFromAs */) {
|
935
|
+
if (curNode.parent.nodeType === 23 /* ParseNodeType.ImportFromAs */) {
|
932
936
|
if (curNode.parent.alias === curNode) {
|
933
937
|
// Are we within a "from X import Y as [Z]"?
|
934
938
|
return undefined;
|
935
939
|
}
|
936
940
|
const parentNode = curNode.parent.parent;
|
937
|
-
if (parentNode && parentNode.nodeType === 22 /* ImportFrom */) {
|
941
|
+
if (parentNode && parentNode.nodeType === 22 /* ParseNodeType.ImportFrom */) {
|
938
942
|
// Are we within a "from X import Y as [<empty>]"?
|
939
943
|
if (!curNode.parent.alias && textRange_1.TextRange.getEnd(curNode.parent) < offset) {
|
940
944
|
return undefined;
|
@@ -946,36 +950,36 @@ class CompletionProvider {
|
|
946
950
|
}
|
947
951
|
return false;
|
948
952
|
}
|
949
|
-
if (curNode.parent.nodeType === 35 /* MemberAccess */ && curNode === curNode.parent.memberName) {
|
953
|
+
if (curNode.parent.nodeType === 35 /* ParseNodeType.MemberAccess */ && curNode === curNode.parent.memberName) {
|
950
954
|
return this.getMemberAccessCompletions(curNode.parent.leftExpression, priorWord);
|
951
955
|
}
|
952
|
-
if (curNode.parent.nodeType === 25 /* Except */ && curNode === curNode.parent.name) {
|
956
|
+
if (curNode.parent.nodeType === 25 /* ParseNodeType.Except */ && curNode === curNode.parent.name) {
|
953
957
|
return undefined;
|
954
958
|
}
|
955
|
-
if (curNode.parent.nodeType === 28 /* Function */ && curNode === curNode.parent.name) {
|
959
|
+
if (curNode.parent.nodeType === 28 /* ParseNodeType.Function */ && curNode === curNode.parent.name) {
|
956
960
|
if ((_a = curNode.parent.decorators) === null || _a === void 0 ? void 0 : _a.some((d) => this._isOverload(d))) {
|
957
961
|
return this._getMethodOverloadsCompletions(priorWord, curNode);
|
958
962
|
}
|
959
963
|
return undefined;
|
960
964
|
}
|
961
|
-
if (curNode.parent.nodeType === 41 /* Parameter */ && curNode === curNode.parent.name) {
|
965
|
+
if (curNode.parent.nodeType === 41 /* ParseNodeType.Parameter */ && curNode === curNode.parent.name) {
|
962
966
|
return undefined;
|
963
967
|
}
|
964
|
-
if (curNode.parent.nodeType === 10 /* Class */ && curNode === curNode.parent.name) {
|
968
|
+
if (curNode.parent.nodeType === 10 /* ParseNodeType.Class */ && curNode === curNode.parent.name) {
|
965
969
|
return undefined;
|
966
970
|
}
|
967
|
-
if (curNode.parent.nodeType === 26 /* For */ &&
|
971
|
+
if (curNode.parent.nodeType === 26 /* ParseNodeType.For */ &&
|
968
972
|
textRange_1.TextRange.contains(curNode.parent.targetExpression, curNode.start)) {
|
969
973
|
return undefined;
|
970
974
|
}
|
971
|
-
if (curNode.parent.nodeType === 33 /* ListComprehensionFor */ &&
|
975
|
+
if (curNode.parent.nodeType === 33 /* ParseNodeType.ListComprehensionFor */ &&
|
972
976
|
textRange_1.TextRange.contains(curNode.parent.targetExpression, curNode.start)) {
|
973
977
|
return undefined;
|
974
978
|
}
|
975
979
|
// For assignments that implicitly declare variables, remove itself (var decl) from completion.
|
976
|
-
if (curNode.parent.nodeType === 3 /* Assignment */ ||
|
977
|
-
curNode.parent.nodeType === 4 /* AssignmentExpression */) {
|
978
|
-
const leftNode = curNode.parent.nodeType === 4 /* AssignmentExpression */
|
980
|
+
if (curNode.parent.nodeType === 3 /* ParseNodeType.Assignment */ ||
|
981
|
+
curNode.parent.nodeType === 4 /* ParseNodeType.AssignmentExpression */) {
|
982
|
+
const leftNode = curNode.parent.nodeType === 4 /* ParseNodeType.AssignmentExpression */
|
979
983
|
? curNode.parent.name
|
980
984
|
: curNode.parent.leftExpression;
|
981
985
|
if (leftNode !== curNode || priorWord.length === 0) {
|
@@ -994,9 +998,9 @@ class CompletionProvider {
|
|
994
998
|
// Defining class variables.
|
995
999
|
// ex) class A:
|
996
1000
|
// variable = 1
|
997
|
-
if (curNode.parent.nodeType === 47 /* StatementList */ &&
|
998
|
-
((_b = curNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 50 /* Suite */ &&
|
999
|
-
((_c = curNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 10 /* Class */) {
|
1001
|
+
if (curNode.parent.nodeType === 47 /* ParseNodeType.StatementList */ &&
|
1002
|
+
((_b = curNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 50 /* ParseNodeType.Suite */ &&
|
1003
|
+
((_c = curNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 10 /* ParseNodeType.Class */) {
|
1000
1004
|
const completionList = this._getClassVariableCompletions(curNode);
|
1001
1005
|
if (completionList) {
|
1002
1006
|
return completionList;
|
@@ -1047,23 +1051,23 @@ class CompletionProvider {
|
|
1047
1051
|
// we can evaluate the left side of the member access expression
|
1048
1052
|
// to determine its type and offer suggestions based on it.
|
1049
1053
|
switch (node.category) {
|
1050
|
-
case 0 /* MissingIn */: {
|
1054
|
+
case 0 /* ErrorExpressionCategory.MissingIn */: {
|
1051
1055
|
return this._createSingleKeywordCompletion('in');
|
1052
1056
|
}
|
1053
|
-
case 1 /* MissingElse */: {
|
1057
|
+
case 1 /* ErrorExpressionCategory.MissingElse */: {
|
1054
1058
|
return this._createSingleKeywordCompletion('else');
|
1055
1059
|
}
|
1056
|
-
case 7 /* MissingMemberAccessName */:
|
1057
|
-
case 2 /* MissingExpression */: {
|
1060
|
+
case 7 /* ErrorExpressionCategory.MissingMemberAccessName */:
|
1061
|
+
case 2 /* ErrorExpressionCategory.MissingExpression */: {
|
1058
1062
|
// Don't show completion after random dots.
|
1059
1063
|
const tokenizerOutput = this.parseResults.tokenizerOutput;
|
1060
1064
|
const offset = (0, positionUtils_1.convertPositionToOffset)(this.position, tokenizerOutput.lines);
|
1061
1065
|
const index = ParseTreeUtils.getTokenIndexAtLeft(tokenizerOutput.tokens, offset);
|
1062
1066
|
const token = ParseTreeUtils.getTokenAtIndex(tokenizerOutput.tokens, index);
|
1063
1067
|
const prevToken = ParseTreeUtils.getTokenAtIndex(tokenizerOutput.tokens, index - 1);
|
1064
|
-
if (node.category === 2 /* MissingExpression */) {
|
1068
|
+
if (node.category === 2 /* ErrorExpressionCategory.MissingExpression */) {
|
1065
1069
|
// Skip dots on expressions.
|
1066
|
-
if ((token === null || token === void 0 ? void 0 : token.type) === 20 /* Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* Ellipsis */) {
|
1070
|
+
if ((token === null || token === void 0 ? void 0 : token.type) === 20 /* TokenType.Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* TokenType.Ellipsis */) {
|
1067
1071
|
break;
|
1068
1072
|
}
|
1069
1073
|
// ex) class MyType:
|
@@ -1075,16 +1079,16 @@ class CompletionProvider {
|
|
1075
1079
|
// since parser won't see "is" as partially written member name instead it will see it as
|
1076
1080
|
// expression statement with missing expression after "is" keyword.
|
1077
1081
|
// In such case, use "MyType." to get completion.
|
1078
|
-
if ((token === null || token === void 0 ? void 0 : token.type) !== 8 /* Keyword */ || textRange_1.TextRange.getEnd(token) !== offset) {
|
1082
|
+
if ((token === null || token === void 0 ? void 0 : token.type) !== 8 /* TokenType.Keyword */ || textRange_1.TextRange.getEnd(token) !== offset) {
|
1079
1083
|
return this._getExpressionCompletions(node, priorWord, priorText, postText);
|
1080
1084
|
}
|
1081
|
-
if ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) !== 20 /* Dot */) {
|
1085
|
+
if ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) !== 20 /* TokenType.Dot */) {
|
1082
1086
|
return this._getExpressionCompletions(node, priorWord, priorText, postText);
|
1083
1087
|
}
|
1084
1088
|
const previousOffset = textRange_1.TextRange.getEnd(prevToken);
|
1085
1089
|
const previousNode = ParseTreeUtils.findNodeByOffset(this.parseResults.parseTree, previousOffset);
|
1086
|
-
if ((previousNode === null || previousNode === void 0 ? void 0 : previousNode.nodeType) !== 0 /* Error */ ||
|
1087
|
-
previousNode.category !== 7 /* MissingMemberAccessName */) {
|
1090
|
+
if ((previousNode === null || previousNode === void 0 ? void 0 : previousNode.nodeType) !== 0 /* ParseNodeType.Error */ ||
|
1091
|
+
previousNode.category !== 7 /* ErrorExpressionCategory.MissingMemberAccessName */) {
|
1088
1092
|
return this._getExpressionCompletions(node, priorWord, priorText, postText);
|
1089
1093
|
}
|
1090
1094
|
else {
|
@@ -1092,28 +1096,28 @@ class CompletionProvider {
|
|
1092
1096
|
node = previousNode;
|
1093
1097
|
}
|
1094
1098
|
}
|
1095
|
-
else if (node.category === 7 /* MissingMemberAccessName */) {
|
1099
|
+
else if (node.category === 7 /* ErrorExpressionCategory.MissingMemberAccessName */) {
|
1096
1100
|
// Skip double dots on member access.
|
1097
|
-
if (((token === null || token === void 0 ? void 0 : token.type) === 20 /* Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* Ellipsis */) &&
|
1098
|
-
((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 20 /* Dot */ || (prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 19 /* Ellipsis */)) {
|
1101
|
+
if (((token === null || token === void 0 ? void 0 : token.type) === 20 /* TokenType.Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* TokenType.Ellipsis */) &&
|
1102
|
+
((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 20 /* TokenType.Dot */ || (prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 19 /* TokenType.Ellipsis */)) {
|
1099
1103
|
return undefined;
|
1100
1104
|
}
|
1101
1105
|
}
|
1102
1106
|
return this._getMissingMemberAccessNameCompletions(node, priorWord);
|
1103
1107
|
}
|
1104
|
-
case 4 /* MissingDecoratorCallName */: {
|
1108
|
+
case 4 /* ErrorExpressionCategory.MissingDecoratorCallName */: {
|
1105
1109
|
return this._getExpressionCompletions(node, priorWord, priorText, postText);
|
1106
1110
|
}
|
1107
|
-
case 11 /* MissingPattern */:
|
1108
|
-
case 3 /* MissingIndexOrSlice */: {
|
1111
|
+
case 11 /* ErrorExpressionCategory.MissingPattern */:
|
1112
|
+
case 3 /* ErrorExpressionCategory.MissingIndexOrSlice */: {
|
1109
1113
|
let completionResults = this._getLiteralCompletions(node, offset, priorWord, priorText, postText);
|
1110
1114
|
if (!completionResults) {
|
1111
1115
|
completionResults = this._getExpressionCompletions(node, priorWord, priorText, postText);
|
1112
1116
|
}
|
1113
1117
|
return completionResults;
|
1114
1118
|
}
|
1115
|
-
case 10 /* MissingFunctionParameterList */: {
|
1116
|
-
if (node.child && node.child.nodeType === 38 /* Name */) {
|
1119
|
+
case 10 /* ErrorExpressionCategory.MissingFunctionParameterList */: {
|
1120
|
+
if (node.child && node.child.nodeType === 38 /* ParseNodeType.Name */) {
|
1117
1121
|
if ((_a = node.decorators) === null || _a === void 0 ? void 0 : _a.some((d) => this._isOverload(d))) {
|
1118
1122
|
return this._getMethodOverloadsCompletions(priorWord, node.child);
|
1119
1123
|
}
|
@@ -1147,12 +1151,12 @@ class CompletionProvider {
|
|
1147
1151
|
var _a, _b, _c, _d;
|
1148
1152
|
// class T:
|
1149
1153
|
// f: |<= here
|
1150
|
-
const isTypeAnnotationOfClassVariable = ((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 54 /* TypeAnnotation */ &&
|
1151
|
-
parseNode.parent.valueExpression.nodeType === 38 /* Name */ &&
|
1154
|
+
const isTypeAnnotationOfClassVariable = ((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 54 /* ParseNodeType.TypeAnnotation */ &&
|
1155
|
+
parseNode.parent.valueExpression.nodeType === 38 /* ParseNodeType.Name */ &&
|
1152
1156
|
parseNode.parent.typeAnnotation === parseNode &&
|
1153
|
-
((_b = parseNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 47 /* StatementList */ &&
|
1154
|
-
((_c = parseNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 50 /* Suite */ &&
|
1155
|
-
((_d = parseNode.parent.parent.parent.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 10 /* Class */;
|
1157
|
+
((_b = parseNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 47 /* ParseNodeType.StatementList */ &&
|
1158
|
+
((_c = parseNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 50 /* ParseNodeType.Suite */ &&
|
1159
|
+
((_d = parseNode.parent.parent.parent.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 10 /* ParseNodeType.Class */;
|
1156
1160
|
if (!isTypeAnnotationOfClassVariable) {
|
1157
1161
|
return;
|
1158
1162
|
}
|
@@ -1165,7 +1169,7 @@ class CompletionProvider {
|
|
1165
1169
|
return undefined;
|
1166
1170
|
}
|
1167
1171
|
const classVariableName = parseNode.parent.valueExpression.value;
|
1168
|
-
const classMember = (0, typeUtils_1.lookUpClassMember)(classResults.classType, classVariableName, 16 /* SkipInstanceMembers */ | 1 /* SkipOriginalClass */);
|
1172
|
+
const classMember = (0, typeUtils_1.lookUpClassMember)(classResults.classType, classVariableName, 16 /* MemberAccessFlags.SkipInstanceMembers */ | 1 /* MemberAccessFlags.SkipOriginalClass */);
|
1169
1173
|
// First, see whether we can use semantic info to get variable type.
|
1170
1174
|
if (classMember) {
|
1171
1175
|
const memberType = this.evaluator.getTypeOfMember(classMember);
|
@@ -1206,9 +1210,9 @@ class CompletionProvider {
|
|
1206
1210
|
return;
|
1207
1211
|
}
|
1208
1212
|
const printFlags = (0, sourceMapper_1.isStubFile)(this.filePath)
|
1209
|
-
? 1 /* ForwardDeclarations */ |
|
1210
|
-
2 /* DoNotLimitStringLength */
|
1211
|
-
: 2 /* DoNotLimitStringLength */;
|
1213
|
+
? 1 /* ParseTreeUtils.PrintExpressionFlags.ForwardDeclarations */ |
|
1214
|
+
2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */
|
1215
|
+
: 2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */;
|
1212
1216
|
const text = `${ParseTreeUtils.printExpression(declWithTypeAnnotations[declWithTypeAnnotations.length - 1].typeAnnotationNode, printFlags)}`;
|
1213
1217
|
this.addNameToCompletions(text, vscode_languageserver_1.CompletionItemKind.Reference, priorWord, completionMap, {
|
1214
1218
|
sortText: this._makeSortText(SortCategory.LikelyKeyword, text),
|
@@ -1255,12 +1259,12 @@ class CompletionProvider {
|
|
1255
1259
|
if (!symbolTable) {
|
1256
1260
|
return undefined;
|
1257
1261
|
}
|
1258
|
-
const funcParensDisabled = ((_a = partialName.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 28 /* Function */ ? true : undefined;
|
1262
|
+
const funcParensDisabled = ((_a = partialName.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 28 /* ParseNodeType.Function */ ? true : undefined;
|
1259
1263
|
const completionMap = new CompletionMap();
|
1260
1264
|
const enclosingFunc = ParseTreeUtils.getEnclosingFunction(partialName);
|
1261
1265
|
symbolTable.forEach((symbol, name) => {
|
1262
1266
|
const decl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(symbol);
|
1263
|
-
if (!decl || decl.type !== 5 /* Function */) {
|
1267
|
+
if (!decl || decl.type !== 5 /* DeclarationType.Function */) {
|
1264
1268
|
return;
|
1265
1269
|
}
|
1266
1270
|
if (!decl.node.decorators.some((d) => this._isOverload(d))) {
|
@@ -1317,16 +1321,16 @@ class CompletionProvider {
|
|
1317
1321
|
ellipsisForDefault = false;
|
1318
1322
|
}
|
1319
1323
|
const printFlags = (0, sourceMapper_1.isStubFile)(this.filePath)
|
1320
|
-
? 1 /* ForwardDeclarations */ |
|
1321
|
-
2 /* DoNotLimitStringLength */
|
1322
|
-
: 2 /* DoNotLimitStringLength */;
|
1324
|
+
? 1 /* ParseTreeUtils.PrintExpressionFlags.ForwardDeclarations */ |
|
1325
|
+
2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */
|
1326
|
+
: 2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */;
|
1323
1327
|
const paramList = node.parameters
|
1324
1328
|
.map((param, index) => {
|
1325
1329
|
let paramString = '';
|
1326
|
-
if (param.category === 1 /* ArgsList */) {
|
1330
|
+
if (param.category === 1 /* ParameterCategory.ArgsList */) {
|
1327
1331
|
paramString += '*';
|
1328
1332
|
}
|
1329
|
-
else if (param.category === 2 /* KwargsDict */) {
|
1333
|
+
else if (param.category === 2 /* ParameterCategory.KwargsDict */) {
|
1330
1334
|
paramString += '**';
|
1331
1335
|
}
|
1332
1336
|
if (param.name) {
|
@@ -1343,7 +1347,7 @@ class CompletionProvider {
|
|
1343
1347
|
const useEllipsis = ellipsisForDefault !== null && ellipsisForDefault !== void 0 ? ellipsisForDefault : !this.isSimpleDefault(param.defaultValue);
|
1344
1348
|
paramString += useEllipsis ? '...' : ParseTreeUtils.printExpression(param.defaultValue, printFlags);
|
1345
1349
|
}
|
1346
|
-
if (!paramString && !param.name && param.category === 0 /* Simple */) {
|
1350
|
+
if (!paramString && !param.name && param.category === 0 /* ParameterCategory.Simple */) {
|
1347
1351
|
return '/';
|
1348
1352
|
}
|
1349
1353
|
return paramString;
|
@@ -1369,12 +1373,12 @@ class CompletionProvider {
|
|
1369
1373
|
const isIndexArgument = this._isIndexArgument(parseNode);
|
1370
1374
|
// If the user typed a "." as part of a number, don't present
|
1371
1375
|
// any completion options.
|
1372
|
-
if (!isIndexArgument && parseNode.nodeType === 40 /* Number */) {
|
1376
|
+
if (!isIndexArgument && parseNode.nodeType === 40 /* ParseNodeType.Number */) {
|
1373
1377
|
return undefined;
|
1374
1378
|
}
|
1375
1379
|
// Are we within a "with Y as []"?
|
1376
1380
|
// Don't add any completion options.
|
1377
|
-
if (((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 59 /* WithItem */ &&
|
1381
|
+
if (((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 59 /* ParseNodeType.WithItem */ &&
|
1378
1382
|
parseNode.parent === ((_b = parseNode.parent.target) === null || _b === void 0 ? void 0 : _b.parent)) {
|
1379
1383
|
return undefined;
|
1380
1384
|
}
|
@@ -1414,12 +1418,12 @@ class CompletionProvider {
|
|
1414
1418
|
_isIndexArgument(node) {
|
1415
1419
|
const currentNode = node.parent;
|
1416
1420
|
return (currentNode &&
|
1417
|
-
currentNode.nodeType === 1 /* Argument */ &&
|
1418
|
-
currentNode.argumentCategory === 0 /* Simple */ &&
|
1421
|
+
currentNode.nodeType === 1 /* ParseNodeType.Argument */ &&
|
1422
|
+
currentNode.argumentCategory === 0 /* ArgumentCategory.Simple */ &&
|
1419
1423
|
currentNode.parent &&
|
1420
|
-
currentNode.parent.nodeType === 24 /* Index */ &&
|
1424
|
+
currentNode.parent.nodeType === 24 /* ParseNodeType.Index */ &&
|
1421
1425
|
currentNode.parent.baseExpression &&
|
1422
|
-
currentNode.parent.baseExpression.nodeType === 38 /* Name */);
|
1426
|
+
currentNode.parent.baseExpression.nodeType === 38 /* ParseNodeType.Name */);
|
1423
1427
|
}
|
1424
1428
|
_addCallArgumentCompletions(parseNode, priorWord, priorText, postText, atArgument, completionMap) {
|
1425
1429
|
// If we're within the argument list of a call, add parameter names.
|
@@ -1478,21 +1482,21 @@ class CompletionProvider {
|
|
1478
1482
|
return [];
|
1479
1483
|
}
|
1480
1484
|
return node.entries.flatMap((entry) => {
|
1481
|
-
if (entry.nodeType !== 17 /* DictionaryKeyEntry */ || (excludeIds === null || excludeIds === void 0 ? void 0 : excludeIds.has(entry.keyExpression.id))) {
|
1485
|
+
if (entry.nodeType !== 17 /* ParseNodeType.DictionaryKeyEntry */ || (excludeIds === null || excludeIds === void 0 ? void 0 : excludeIds.has(entry.keyExpression.id))) {
|
1482
1486
|
return [];
|
1483
1487
|
}
|
1484
|
-
if (entry.keyExpression.nodeType === 48 /* StringList */) {
|
1488
|
+
if (entry.keyExpression.nodeType === 48 /* ParseNodeType.StringList */) {
|
1485
1489
|
return [entry.keyExpression.strings.map((s) => s.value).join('')];
|
1486
1490
|
}
|
1487
1491
|
return [];
|
1488
1492
|
});
|
1489
1493
|
function getDictionaryLikeNode(parseNode) {
|
1490
1494
|
// this method assumes the given parseNode is either a child of a dictionary or a dictionary itself
|
1491
|
-
if (parseNode.nodeType === 15 /* Dictionary */) {
|
1495
|
+
if (parseNode.nodeType === 15 /* ParseNodeType.Dictionary */) {
|
1492
1496
|
return parseNode;
|
1493
1497
|
}
|
1494
1498
|
let curNode = parseNode;
|
1495
|
-
while (curNode && curNode.nodeType !== 15 /* Dictionary */ && curNode.nodeType !== 45 /* Set */) {
|
1499
|
+
while (curNode && curNode.nodeType !== 15 /* ParseNodeType.Dictionary */ && curNode.nodeType !== 45 /* ParseNodeType.Set */) {
|
1496
1500
|
curNode = curNode.parent;
|
1497
1501
|
if (!curNode) {
|
1498
1502
|
return;
|
@@ -1518,7 +1522,7 @@ class CompletionProvider {
|
|
1518
1522
|
// Handle both overloaded and non-overloaded functions.
|
1519
1523
|
(0, typeUtils_1.doForEachSignature)(getItemType, (signature) => {
|
1520
1524
|
if (signature.details.parameters.length >= 1 &&
|
1521
|
-
signature.details.parameters[0].category === 0 /* Simple */) {
|
1525
|
+
signature.details.parameters[0].category === 0 /* ParameterCategory.Simple */) {
|
1522
1526
|
typesToCombine.push(types_1.FunctionType.getEffectiveParameterType(signature, 0));
|
1523
1527
|
}
|
1524
1528
|
});
|
@@ -1552,7 +1556,7 @@ class CompletionProvider {
|
|
1552
1556
|
return keys;
|
1553
1557
|
}
|
1554
1558
|
}
|
1555
|
-
if (indexNode.baseExpression.nodeType !== 38 /* Name */) {
|
1559
|
+
if (indexNode.baseExpression.nodeType !== 38 /* ParseNodeType.Name */) {
|
1556
1560
|
// This completion only supports simple name case
|
1557
1561
|
return [];
|
1558
1562
|
}
|
@@ -1560,7 +1564,7 @@ class CompletionProvider {
|
|
1560
1564
|
const declarations = (_a = this.evaluator.getDeclarationsForNameNode(indexNode.baseExpression)) !== null && _a !== void 0 ? _a : [];
|
1561
1565
|
const declaration = declarations.length > 0 ? declarations[0] : undefined;
|
1562
1566
|
if (!declaration ||
|
1563
|
-
(declaration.type !== 1 /* Variable */ && declaration.type !== 2 /* Parameter */)) {
|
1567
|
+
(declaration.type !== 1 /* DeclarationType.Variable */ && declaration.type !== 2 /* DeclarationType.Parameter */)) {
|
1564
1568
|
return [];
|
1565
1569
|
}
|
1566
1570
|
if (declaration.path !== this.filePath) {
|
@@ -1578,12 +1582,12 @@ class CompletionProvider {
|
|
1578
1582
|
const results = documentSymbolCollector_1.DocumentSymbolCollector.collectFromNode(this.program, indexNode.baseExpression, this.cancellationToken, startingNode);
|
1579
1583
|
const keys = new Set();
|
1580
1584
|
for (const result of results) {
|
1581
|
-
const node = ((_d = result.node.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 54 /* TypeAnnotation */ ? result.node.parent : result.node;
|
1582
|
-
if (((_e = node.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 3 /* Assignment */ ||
|
1583
|
-
((_f = node.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 4 /* AssignmentExpression */) {
|
1584
|
-
if (node.parent.rightExpression.nodeType === 15 /* Dictionary */) {
|
1585
|
+
const node = ((_d = result.node.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 54 /* ParseNodeType.TypeAnnotation */ ? result.node.parent : result.node;
|
1586
|
+
if (((_e = node.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 3 /* ParseNodeType.Assignment */ ||
|
1587
|
+
((_f = node.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 4 /* ParseNodeType.AssignmentExpression */) {
|
1588
|
+
if (node.parent.rightExpression.nodeType === 15 /* ParseNodeType.Dictionary */) {
|
1585
1589
|
const dictionary = node.parent.rightExpression;
|
1586
|
-
for (const entry of dictionary.entries.filter((e) => e.nodeType === 17 /* DictionaryKeyEntry */)) {
|
1590
|
+
for (const entry of dictionary.entries.filter((e) => e.nodeType === 17 /* ParseNodeType.DictionaryKeyEntry */)) {
|
1587
1591
|
const key = this.parseResults.text
|
1588
1592
|
.substr(entry.keyExpression.start, entry.keyExpression.length)
|
1589
1593
|
.trim();
|
@@ -1591,7 +1595,7 @@ class CompletionProvider {
|
|
1591
1595
|
keys.add(key);
|
1592
1596
|
}
|
1593
1597
|
}
|
1594
|
-
if (node.parent.rightExpression.nodeType === 9 /* Call */) {
|
1598
|
+
if (node.parent.rightExpression.nodeType === 9 /* ParseNodeType.Call */) {
|
1595
1599
|
const call = node.parent.rightExpression;
|
1596
1600
|
const type = this.evaluator.getType(call.leftExpression);
|
1597
1601
|
if (!type || !(0, types_1.isInstantiableClass)(type) || !types_1.ClassType.isBuiltIn(type, 'dict')) {
|
@@ -1606,9 +1610,9 @@ class CompletionProvider {
|
|
1606
1610
|
}
|
1607
1611
|
}
|
1608
1612
|
}
|
1609
|
-
if (((_j = node.parent) === null || _j === void 0 ? void 0 : _j.nodeType) === 24 /* Index */ &&
|
1613
|
+
if (((_j = node.parent) === null || _j === void 0 ? void 0 : _j.nodeType) === 24 /* ParseNodeType.Index */ &&
|
1610
1614
|
node.parent.items.length === 1 &&
|
1611
|
-
node.parent.items[0].valueExpression.nodeType !== 0 /* Error */ &&
|
1615
|
+
node.parent.items[0].valueExpression.nodeType !== 0 /* ParseNodeType.Error */ &&
|
1612
1616
|
!textRange_1.TextRange.containsRange(node.parent, invocationNode)) {
|
1613
1617
|
const indexArgument = node.parent.items[0];
|
1614
1618
|
const key = this.parseResults.text
|
@@ -1642,7 +1646,7 @@ class CompletionProvider {
|
|
1642
1646
|
}
|
1643
1647
|
// See if the type evaluator can determine the expected type for this node.
|
1644
1648
|
// ex) a: Literal["str"] = /* here */
|
1645
|
-
const nodeForExpectedType = parentAndChild.parent.nodeType === 3 /* Assignment */
|
1649
|
+
const nodeForExpectedType = parentAndChild.parent.nodeType === 3 /* ParseNodeType.Assignment */
|
1646
1650
|
? parentAndChild.parent.rightExpression === parentAndChild.child
|
1647
1651
|
? parentAndChild.child
|
1648
1652
|
: undefined
|
@@ -1662,16 +1666,16 @@ class CompletionProvider {
|
|
1662
1666
|
// If the dictionary is not yet filled in, it will appear as though it's
|
1663
1667
|
// a set initially.
|
1664
1668
|
let dictOrSet;
|
1665
|
-
if (nodeForKey.nodeType === 17 /* DictionaryKeyEntry */ &&
|
1669
|
+
if (nodeForKey.nodeType === 17 /* ParseNodeType.DictionaryKeyEntry */ &&
|
1666
1670
|
nodeForKey.keyExpression === parentAndChild.child &&
|
1667
|
-
((_a = nodeForKey.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 15 /* Dictionary */) {
|
1671
|
+
((_a = nodeForKey.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 15 /* ParseNodeType.Dictionary */) {
|
1668
1672
|
dictOrSet = nodeForKey.parent;
|
1669
1673
|
}
|
1670
|
-
else if ((nodeForKey === null || nodeForKey === void 0 ? void 0 : nodeForKey.nodeType) === 45 /* Set */) {
|
1674
|
+
else if ((nodeForKey === null || nodeForKey === void 0 ? void 0 : nodeForKey.nodeType) === 45 /* ParseNodeType.Set */) {
|
1671
1675
|
dictOrSet = nodeForKey;
|
1672
1676
|
}
|
1673
1677
|
if (dictOrSet) {
|
1674
|
-
if (this._tryAddTypedDictKeysFromDictionary(dictOrSet, parseNode.nodeType === 49 /* String */ ? parseNode : undefined, priorWord, priorText, postText, completionMap)) {
|
1678
|
+
if (this._tryAddTypedDictKeysFromDictionary(dictOrSet, parseNode.nodeType === 49 /* ParseNodeType.String */ ? parseNode : undefined, priorWord, priorText, postText, completionMap)) {
|
1675
1679
|
return true;
|
1676
1680
|
}
|
1677
1681
|
}
|
@@ -1679,8 +1683,8 @@ class CompletionProvider {
|
|
1679
1683
|
// a: DictType = { .... }
|
1680
1684
|
// a[/* here */] or a['/* here */'] or a[variable/*here*/]
|
1681
1685
|
const argument = parentAndChild.parent;
|
1682
|
-
if (argument.nodeType === 1 /* Argument */ && ((_b = argument.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 24 /* Index */) {
|
1683
|
-
const priorTextInString = parseNode.nodeType === 49 /* String */ ? priorText : '';
|
1686
|
+
if (argument.nodeType === 1 /* ParseNodeType.Argument */ && ((_b = argument.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 24 /* ParseNodeType.Index */) {
|
1687
|
+
const priorTextInString = parseNode.nodeType === 49 /* ParseNodeType.String */ ? priorText : '';
|
1684
1688
|
if (this._tryAddTypedDictKeysFromIndexer(argument.parent, priorWord, priorTextInString, postText, completionMap)) {
|
1685
1689
|
return true;
|
1686
1690
|
}
|
@@ -1696,7 +1700,7 @@ class CompletionProvider {
|
|
1696
1700
|
continue;
|
1697
1701
|
}
|
1698
1702
|
const stringLiteral = /^["|'].*["|']$/.test(key);
|
1699
|
-
if (parseNode.nodeType === 49 /* String */ && !stringLiteral) {
|
1703
|
+
if (parseNode.nodeType === 49 /* ParseNodeType.String */ && !stringLiteral) {
|
1700
1704
|
continue;
|
1701
1705
|
}
|
1702
1706
|
keyFound = true;
|
@@ -1717,8 +1721,8 @@ class CompletionProvider {
|
|
1717
1721
|
}
|
1718
1722
|
// if c == "/* here */"
|
1719
1723
|
const comparison = parentAndChild.parent;
|
1720
|
-
const supportedOperators = [2 /* Assign */, 12 /* Equals */, 28 /* NotEquals */];
|
1721
|
-
if (comparison.nodeType === 7 /* BinaryOperation */ && supportedOperators.includes(comparison.operator)) {
|
1724
|
+
const supportedOperators = [2 /* OperatorType.Assign */, 12 /* OperatorType.Equals */, 28 /* OperatorType.NotEquals */];
|
1725
|
+
if (comparison.nodeType === 7 /* ParseNodeType.BinaryOperation */ && supportedOperators.includes(comparison.operator)) {
|
1722
1726
|
const type = this.evaluator.getType(comparison.leftExpression);
|
1723
1727
|
if (type && (0, typeUtils_1.containsLiteralType)(type)) {
|
1724
1728
|
this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
|
@@ -1727,7 +1731,7 @@ class CompletionProvider {
|
|
1727
1731
|
}
|
1728
1732
|
// if c := "/* here */"
|
1729
1733
|
const assignmentExpression = parentAndChild.parent;
|
1730
|
-
if (assignmentExpression.nodeType === 4 /* AssignmentExpression */ &&
|
1734
|
+
if (assignmentExpression.nodeType === 4 /* ParseNodeType.AssignmentExpression */ &&
|
1731
1735
|
assignmentExpression.rightExpression === parentAndChild.child) {
|
1732
1736
|
const type = this.evaluator.getType(assignmentExpression.name);
|
1733
1737
|
if (type && (0, typeUtils_1.containsLiteralType)(type)) {
|
@@ -1739,11 +1743,11 @@ class CompletionProvider {
|
|
1739
1743
|
// match c:
|
1740
1744
|
// case /* here */
|
1741
1745
|
const caseNode = parentAndChild.parent;
|
1742
|
-
if (caseNode.nodeType === 64 /* Case */ &&
|
1743
|
-
caseNode.pattern.nodeType === 0 /* Error */ &&
|
1744
|
-
caseNode.pattern.category === 11 /* MissingPattern */ &&
|
1746
|
+
if (caseNode.nodeType === 64 /* ParseNodeType.Case */ &&
|
1747
|
+
caseNode.pattern.nodeType === 0 /* ParseNodeType.Error */ &&
|
1748
|
+
caseNode.pattern.category === 11 /* ErrorExpressionCategory.MissingPattern */ &&
|
1745
1749
|
caseNode.suite === parentAndChild.child &&
|
1746
|
-
((_c = caseNode.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 63 /* Match */) {
|
1750
|
+
((_c = caseNode.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 63 /* ParseNodeType.Match */) {
|
1747
1751
|
const type = this.evaluator.getType(caseNode.parent.subjectExpression);
|
1748
1752
|
if (type && (0, typeUtils_1.containsLiteralType)(type)) {
|
1749
1753
|
this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
|
@@ -1754,18 +1758,18 @@ class CompletionProvider {
|
|
1754
1758
|
// case "/* here */"
|
1755
1759
|
// case Sym/*here*/
|
1756
1760
|
const patternLiteral = parentAndChild.parent;
|
1757
|
-
if ((patternLiteral.nodeType === 67 /* PatternLiteral */ ||
|
1758
|
-
patternLiteral.nodeType === 69 /* PatternCapture */) &&
|
1759
|
-
((_d = patternLiteral.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 66 /* PatternAs */ &&
|
1760
|
-
((_e = patternLiteral.parent.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 64 /* Case */ &&
|
1761
|
-
((_f = patternLiteral.parent.parent.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 63 /* Match */) {
|
1761
|
+
if ((patternLiteral.nodeType === 67 /* ParseNodeType.PatternLiteral */ ||
|
1762
|
+
patternLiteral.nodeType === 69 /* ParseNodeType.PatternCapture */) &&
|
1763
|
+
((_d = patternLiteral.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 66 /* ParseNodeType.PatternAs */ &&
|
1764
|
+
((_e = patternLiteral.parent.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 64 /* ParseNodeType.Case */ &&
|
1765
|
+
((_f = patternLiteral.parent.parent.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 63 /* ParseNodeType.Match */) {
|
1762
1766
|
const type = this.evaluator.getType(patternLiteral.parent.parent.parent.subjectExpression);
|
1763
1767
|
if (type && (0, typeUtils_1.containsLiteralType)(type)) {
|
1764
1768
|
this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
|
1765
1769
|
return true;
|
1766
1770
|
}
|
1767
1771
|
}
|
1768
|
-
if (parseNode.nodeType === 49 /* String */) {
|
1772
|
+
if (parseNode.nodeType === 49 /* ParseNodeType.String */) {
|
1769
1773
|
const offset = (0, positionUtils_1.convertPositionToOffset)(this.position, this.parseResults.tokenizerOutput.lines);
|
1770
1774
|
const atArgument = parseNode.parent.start < offset && offset < textRange_1.TextRange.getEnd(parseNode);
|
1771
1775
|
this._addCallArgumentCompletions(parseNode, priorWord, priorText, postText, atArgument, completionMap);
|
@@ -1777,13 +1781,13 @@ class CompletionProvider {
|
|
1777
1781
|
if (!node.parent) {
|
1778
1782
|
return undefined;
|
1779
1783
|
}
|
1780
|
-
if (node.nodeType !== 49 /* String */) {
|
1784
|
+
if (node.nodeType !== 49 /* ParseNodeType.String */) {
|
1781
1785
|
return { parent: node.parent, child: node };
|
1782
1786
|
}
|
1783
1787
|
if (!node.parent.parent) {
|
1784
1788
|
return undefined;
|
1785
1789
|
}
|
1786
|
-
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 48 /* StringList */ || node.parent.strings.length > 1) {
|
1790
|
+
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 48 /* ParseNodeType.StringList */ || node.parent.strings.length > 1) {
|
1787
1791
|
return undefined;
|
1788
1792
|
}
|
1789
1793
|
return { parent: node.parent.parent, child: node.parent };
|
@@ -1879,9 +1883,9 @@ class CompletionProvider {
|
|
1879
1883
|
// permitted. For example, f"..{typedDict[|<= here ]}", we need to use
|
1880
1884
|
// single quotes. Note that this doesn't account for deeper nested
|
1881
1885
|
// f-strings.
|
1882
|
-
if (this._stringLiteralContainer.flags & 64 /* Format */) {
|
1886
|
+
if (this._stringLiteralContainer.flags & 64 /* StringTokenFlags.Format */) {
|
1883
1887
|
quoteCharacter =
|
1884
|
-
this._stringLiteralContainer.flags & 1 /* SingleQuote */ ? doubleQuote : singleQuote;
|
1888
|
+
this._stringLiteralContainer.flags & 1 /* StringTokenFlags.SingleQuote */ ? doubleQuote : singleQuote;
|
1885
1889
|
}
|
1886
1890
|
if (stringValue) {
|
1887
1891
|
filterText = stringValue;
|
@@ -2041,7 +2045,7 @@ class CompletionProvider {
|
|
2041
2045
|
scope = scope.parent;
|
2042
2046
|
}
|
2043
2047
|
// If this is a class scope, add symbols from parent classes.
|
2044
|
-
if (curNode.nodeType === 10 /* Class */) {
|
2048
|
+
if (curNode.nodeType === 10 /* ParseNodeType.Class */) {
|
2045
2049
|
const classType = this.evaluator.getTypeOfClass(curNode);
|
2046
2050
|
if (classType && (0, types_1.isInstantiableClass)(classType.classType)) {
|
2047
2051
|
classType.classType.details.mro.forEach((baseClass, index) => {
|
@@ -2053,7 +2057,7 @@ class CompletionProvider {
|
|
2053
2057
|
// Return only variables, not methods or classes.
|
2054
2058
|
return symbol
|
2055
2059
|
.getDeclarations()
|
2056
|
-
.some((decl) => decl.type === 1 /* Variable */);
|
2060
|
+
.some((decl) => decl.type === 1 /* DeclarationType.Variable */);
|
2057
2061
|
}, priorWord, node,
|
2058
2062
|
/* isInImport */ false,
|
2059
2063
|
/* boundObject */ undefined, completionMap);
|
@@ -2092,20 +2096,20 @@ class CompletionProvider {
|
|
2092
2096
|
}
|
2093
2097
|
_shouldShowAutoParensForClass(symbol, node) {
|
2094
2098
|
var _a, _b;
|
2095
|
-
if (symbol.getDeclarations().every((d) => d.type !== 6 /* Class */)) {
|
2099
|
+
if (symbol.getDeclarations().every((d) => d.type !== 6 /* DeclarationType.Class */)) {
|
2096
2100
|
// Not actually a class, so yes show parens.
|
2097
2101
|
return true;
|
2098
2102
|
}
|
2099
2103
|
// If an argument then show parens for classes if not a class argument.
|
2100
|
-
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 1 /* Argument */ && ((_b = node.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) !== 10 /* Class */) {
|
2104
|
+
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 1 /* ParseNodeType.Argument */ && ((_b = node.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) !== 10 /* ParseNodeType.Class */) {
|
2101
2105
|
return true;
|
2102
2106
|
}
|
2103
2107
|
// Otherwise only show when the class is being assigned to a variable.
|
2104
2108
|
const nodeIndex = ParseTreeUtils.getTokenIndexAtLeft(this.parseResults.tokenizerOutput.tokens, node.start);
|
2105
2109
|
const prevToken = ParseTreeUtils.getTokenAtIndex(this.parseResults.tokenizerOutput.tokens, nodeIndex);
|
2106
2110
|
return (prevToken &&
|
2107
|
-
prevToken.type === 9 /* Operator */ &&
|
2108
|
-
prevToken.operatorType === 2 /* Assign */);
|
2111
|
+
prevToken.type === 9 /* TokenType.Operator */ &&
|
2112
|
+
prevToken.operatorType === 2 /* OperatorType.Assign */);
|
2109
2113
|
}
|
2110
2114
|
_getAutoImportText(importName, importFrom, importAlias) {
|
2111
2115
|
const autoImportText = (0, tooltipUtils_1.getAutoImportText)(importName, importFrom, importAlias);
|
@@ -2171,21 +2175,21 @@ class CompletionProvider {
|
|
2171
2175
|
return vscode_languageserver_1.CompletionItemKind.Variable;
|
2172
2176
|
}
|
2173
2177
|
switch (resolvedDeclaration.type) {
|
2174
|
-
case 0 /* Intrinsic */:
|
2178
|
+
case 0 /* DeclarationType.Intrinsic */:
|
2175
2179
|
return resolvedDeclaration.intrinsicType === 'class'
|
2176
2180
|
? vscode_languageserver_1.CompletionItemKind.Class
|
2177
2181
|
: vscode_languageserver_1.CompletionItemKind.Variable;
|
2178
|
-
case 2 /* Parameter */:
|
2182
|
+
case 2 /* DeclarationType.Parameter */:
|
2179
2183
|
return vscode_languageserver_1.CompletionItemKind.Variable;
|
2180
|
-
case 3 /* TypeParameter */:
|
2184
|
+
case 3 /* DeclarationType.TypeParameter */:
|
2181
2185
|
return vscode_languageserver_1.CompletionItemKind.TypeParameter;
|
2182
|
-
case 1 /* Variable */:
|
2186
|
+
case 1 /* DeclarationType.Variable */:
|
2183
2187
|
return resolvedDeclaration.isConstant || resolvedDeclaration.isFinal
|
2184
2188
|
? vscode_languageserver_1.CompletionItemKind.Constant
|
2185
2189
|
: vscode_languageserver_1.CompletionItemKind.Variable;
|
2186
|
-
case 4 /* TypeAlias */:
|
2190
|
+
case 4 /* DeclarationType.TypeAlias */:
|
2187
2191
|
return vscode_languageserver_1.CompletionItemKind.Variable;
|
2188
|
-
case 5 /* Function */: {
|
2192
|
+
case 5 /* DeclarationType.Function */: {
|
2189
2193
|
if (this._isPossiblePropertyDeclaration(resolvedDeclaration)) {
|
2190
2194
|
const functionType = this.evaluator.getTypeOfFunction(resolvedDeclaration.node);
|
2191
2195
|
if (functionType &&
|
@@ -2195,26 +2199,26 @@ class CompletionProvider {
|
|
2195
2199
|
}
|
2196
2200
|
return resolvedDeclaration.isMethod ? vscode_languageserver_1.CompletionItemKind.Method : vscode_languageserver_1.CompletionItemKind.Function;
|
2197
2201
|
}
|
2198
|
-
case 6 /* Class */:
|
2199
|
-
case 7 /* SpecialBuiltInClass */:
|
2202
|
+
case 6 /* DeclarationType.Class */:
|
2203
|
+
case 7 /* DeclarationType.SpecialBuiltInClass */:
|
2200
2204
|
return vscode_languageserver_1.CompletionItemKind.Class;
|
2201
|
-
case 8 /* Alias */:
|
2205
|
+
case 8 /* DeclarationType.Alias */:
|
2202
2206
|
return vscode_languageserver_1.CompletionItemKind.Module;
|
2203
2207
|
}
|
2204
2208
|
}
|
2205
2209
|
_convertTypeToItemKind(type) {
|
2206
2210
|
switch (type.category) {
|
2207
|
-
case 7 /* Module */:
|
2211
|
+
case 7 /* TypeCategory.Module */:
|
2208
2212
|
return vscode_languageserver_1.CompletionItemKind.Module;
|
2209
|
-
case 6 /* Class */:
|
2213
|
+
case 6 /* TypeCategory.Class */:
|
2210
2214
|
return vscode_languageserver_1.CompletionItemKind.Class;
|
2211
|
-
case 4 /* Function */:
|
2212
|
-
case 5 /* OverloadedFunction */:
|
2215
|
+
case 4 /* TypeCategory.Function */:
|
2216
|
+
case 5 /* TypeCategory.OverloadedFunction */:
|
2213
2217
|
if ((0, typeUtils_1.isMaybeDescriptorInstance)(type, /* requireSetter */ false)) {
|
2214
2218
|
return vscode_languageserver_1.CompletionItemKind.Property;
|
2215
2219
|
}
|
2216
2220
|
return vscode_languageserver_1.CompletionItemKind.Function;
|
2217
|
-
case 9 /* TypeVar */:
|
2221
|
+
case 9 /* TypeCategory.TypeVar */:
|
2218
2222
|
return vscode_languageserver_1.CompletionItemKind.TypeParameter;
|
2219
2223
|
default:
|
2220
2224
|
return vscode_languageserver_1.CompletionItemKind.Variable;
|
@@ -2233,7 +2237,7 @@ class CompletionProvider {
|
|
2233
2237
|
// the "import" keyword as a completion.
|
2234
2238
|
if (!node.hasTrailingDot &&
|
2235
2239
|
node.parent &&
|
2236
|
-
node.parent.nodeType === 22 /* ImportFrom */ &&
|
2240
|
+
node.parent.nodeType === 22 /* ParseNodeType.ImportFrom */ &&
|
2237
2241
|
node.parent.missingImportKeyword) {
|
2238
2242
|
const keyword = 'import';
|
2239
2243
|
const completionItem = vscode_languageserver_1.CompletionItem.create(keyword);
|