@zzzen/pyright-internal 1.2.0-dev.20230312 → 1.2.0-dev.20230326
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/aliasDeclarationUtils.js +15 -0
- package/dist/analyzer/aliasDeclarationUtils.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/cacheManager.d.ts +4 -0
- package/dist/analyzer/cacheManager.js +13 -0
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.d.ts +2 -1
- package/dist/analyzer/checker.js +77 -27
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +17 -11
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/dataClasses.js +10 -0
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/patternMatching.js +18 -3
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -1
- package/dist/analyzer/program.js +24 -28
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +0 -1
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +18 -3
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +2 -1
- package/dist/analyzer/service.js +15 -20
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +2 -2
- package/dist/analyzer/sourceFile.js +2 -2
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -0
- package/dist/analyzer/sourceFileInfoUtils.js +17 -1
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +149 -84
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +0 -2
- package/dist/analyzer/typeEvaluatorTypes.js +0 -3
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +2 -0
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +40 -1
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +27 -0
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +5 -1
- package/dist/analyzer/types.js +3 -1
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +4 -4
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/commands/quickActionCommand.js +2 -2
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +5 -1
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/console.d.ts +1 -0
- package/dist/common/console.js +19 -1
- package/dist/common/console.js.map +1 -1
- package/dist/common/diagnosticRules.d.ts +2 -1
- package/dist/common/diagnosticRules.js +1 -0
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/extensibility.d.ts +2 -2
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/extensions.js +3 -1
- package/dist/common/extensions.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.js +4 -0
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +21 -46
- package/dist/languageServerBase.js +110 -152
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.d.ts +4 -3
- package/dist/languageService/analyzerServiceExecutor.js +9 -7
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/codeActionProvider.d.ts +2 -2
- package/dist/languageService/codeActionProvider.js +4 -4
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +4 -6
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +1 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +2 -1
- package/dist/languageService/documentSymbolCollector.js +23 -2
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +2 -1
- package/dist/languageService/hoverProvider.js +21 -5
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +3 -2
- package/dist/languageService/referencesProvider.js +4 -4
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +9 -7
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +14 -6
- package/dist/localization/localize.js +5 -4
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +7 -6
- package/dist/parser/parser.js +4 -2
- package/dist/parser/parser.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.js +1 -4
- package/dist/server.js.map +1 -1
- package/dist/tests/cacheManager.test.d.ts +1 -0
- package/dist/tests/cacheManager.test.js +69 -0
- package/dist/tests/cacheManager.test.js.map +1 -0
- package/dist/tests/checker.test.js +2 -2
- package/dist/tests/completions.test.js +42 -2
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.d.ts +7 -0
- package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.js +45 -0
- package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/testLanguageService.d.ts +7 -6
- package/dist/tests/harness/fourslash/testLanguageService.js +14 -13
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +5 -4
- package/dist/tests/harness/fourslash/testState.js +14 -13
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/hoverProvider.test.js +50 -0
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/moveSymbol.misc.test.js +1 -1
- package/dist/tests/moveSymbol.misc.test.js.map +1 -1
- package/dist/tests/service.test.js +4 -4
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js +2 -2
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +3 -3
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +4 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +10 -2
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +6 -2
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +6 -2
- 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/workspaceEditUtils.test.js +2 -2
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +72 -0
- package/dist/workspaceFactory.js +421 -0
- package/dist/workspaceFactory.js.map +1 -0
- package/package.json +4 -4
- package/dist/workspaceMap.d.ts +0 -14
- package/dist/workspaceMap.js +0 -172
- package/dist/workspaceMap.js.map +0 -1
package/dist/workspaceMap.js
DELETED
@@ -1,172 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
/*
|
3
|
-
* workspaceMap.ts
|
4
|
-
*
|
5
|
-
* Workspace management related functionality.
|
6
|
-
*/
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
8
|
-
exports.WorkspaceMap = void 0;
|
9
|
-
const languageServerBase_1 = require("./languageServerBase");
|
10
|
-
class WorkspaceMap extends Map {
|
11
|
-
constructor() {
|
12
|
-
super(...arguments);
|
13
|
-
this._defaultWorkspacePath = '<default>';
|
14
|
-
}
|
15
|
-
set(key, value) {
|
16
|
-
// Make sure to delete existing workspace if there is one.
|
17
|
-
this.delete(key);
|
18
|
-
return super.set(key, value);
|
19
|
-
}
|
20
|
-
delete(key) {
|
21
|
-
const workspace = this.get(key);
|
22
|
-
if (!workspace) {
|
23
|
-
return false;
|
24
|
-
}
|
25
|
-
// Make sure to unblock if there is someone waiting this workspace.
|
26
|
-
workspace.isInitialized.resolve();
|
27
|
-
// Properly dispose of the service instance.
|
28
|
-
workspace.serviceInstance.dispose();
|
29
|
-
return super.delete(key);
|
30
|
-
}
|
31
|
-
hasMultipleWorkspaces(kind) {
|
32
|
-
if (this.size === 0 || this.size === 1) {
|
33
|
-
return false;
|
34
|
-
}
|
35
|
-
let count = 0;
|
36
|
-
for (const kv of this) {
|
37
|
-
if (!kind || kv[1].kinds.some((k) => k === kind)) {
|
38
|
-
count++;
|
39
|
-
}
|
40
|
-
if (count > 1) {
|
41
|
-
return true;
|
42
|
-
}
|
43
|
-
}
|
44
|
-
return false;
|
45
|
-
}
|
46
|
-
getNonDefaultWorkspaces(kind) {
|
47
|
-
const workspaces = [];
|
48
|
-
this.forEach((workspace) => {
|
49
|
-
if (!workspace.path) {
|
50
|
-
return;
|
51
|
-
}
|
52
|
-
if (kind && !workspace.kinds.some((k) => k === kind)) {
|
53
|
-
return;
|
54
|
-
}
|
55
|
-
workspaces.push(workspace);
|
56
|
-
});
|
57
|
-
return workspaces;
|
58
|
-
}
|
59
|
-
// Returns the best workspace for a file. Waits for the workspace to be finished handling other events before
|
60
|
-
// returning the appropriate workspace.
|
61
|
-
async getWorkspaceForFile(ls, filePath) {
|
62
|
-
// Make sure we always have a default workspace.
|
63
|
-
const defaultWorkspace = this._createDefaultWorkspace(ls);
|
64
|
-
// Wait for all workspaces to be initialized before attempting to find the best workspace. Otherwise
|
65
|
-
// the list of files won't be complete and the `contains` check might fail.
|
66
|
-
await Promise.all([...this.values()].map((w) => w.isInitialized.promise));
|
67
|
-
// Find best match.
|
68
|
-
const workspace = this._getBestWorkspaceForFile(ls, filePath, defaultWorkspace);
|
69
|
-
// During the previous await we might have reset to being uninitialized again, wait before returning
|
70
|
-
await workspace.isInitialized.promise;
|
71
|
-
return workspace;
|
72
|
-
}
|
73
|
-
getContainingWorkspace(filePath) {
|
74
|
-
return this._getBestWorkspace(this.getNonDefaultWorkspaces(languageServerBase_1.WellKnownWorkspaceKinds.Regular).filter((w) => filePath.startsWith(w.path)));
|
75
|
-
}
|
76
|
-
getDefaultWorkspace() {
|
77
|
-
return this.get(this._defaultWorkspacePath);
|
78
|
-
}
|
79
|
-
_getBestWorkspaceForFile(ls, filePath, defaultWorkspace) {
|
80
|
-
let bestRootPath;
|
81
|
-
let bestInstance;
|
82
|
-
// The order of how we find the best matching workspace for the given file is
|
83
|
-
// 1. The given file is the workspace itself (ex, a file being a virtual workspace itself).
|
84
|
-
// 2. The given file matches the fileSpec of the service under the workspace
|
85
|
-
// (the file is a user file the workspace provides LSP service for).
|
86
|
-
// 3. The given file doesn't match anything but we have only 1 regular workspace
|
87
|
-
// (ex, open a library file from the workspace).
|
88
|
-
// 4. The given file doesn't match anything and there are multiple workspaces but one of workspaces
|
89
|
-
// contains the file (ex, open a library file already imported by a workspace).
|
90
|
-
// 5. If none of the above works, then it matches the default workspace.
|
91
|
-
this.forEach((workspace) => {
|
92
|
-
if (workspace.path) {
|
93
|
-
if (workspace.path !== filePath && !workspace.serviceInstance.isTracked(filePath)) {
|
94
|
-
return;
|
95
|
-
}
|
96
|
-
// Among workspaces that own the file, make sure we return the inner most one which
|
97
|
-
// we consider as the best workspace.
|
98
|
-
if (bestRootPath === undefined || workspace.path.startsWith(bestRootPath)) {
|
99
|
-
bestRootPath = workspace.path;
|
100
|
-
bestInstance = workspace;
|
101
|
-
}
|
102
|
-
}
|
103
|
-
});
|
104
|
-
// If there were multiple workspaces or we couldn't find any,
|
105
|
-
// use the default one.
|
106
|
-
if (bestInstance === undefined) {
|
107
|
-
const regularWorkspaces = this.getNonDefaultWorkspaces(languageServerBase_1.WellKnownWorkspaceKinds.Regular);
|
108
|
-
// If we have only 1 regular workspace, then use that.
|
109
|
-
if (regularWorkspaces.length === 1) {
|
110
|
-
bestInstance = regularWorkspaces[0];
|
111
|
-
}
|
112
|
-
else {
|
113
|
-
// If we have multiple workspaces, see whether we can at least find one that contains the file.
|
114
|
-
// the file might not be tracked (user file), but still belongs to a workspace as a library file or as an orphan file to the workspace.
|
115
|
-
const containingWorkspace = this._getBestWorkspace(regularWorkspaces.filter((w) => w.serviceInstance.contains(filePath)));
|
116
|
-
if (containingWorkspace) {
|
117
|
-
bestInstance = containingWorkspace;
|
118
|
-
}
|
119
|
-
else {
|
120
|
-
// If no workspace contains it, then it belongs to the default workspace.
|
121
|
-
bestInstance = defaultWorkspace;
|
122
|
-
}
|
123
|
-
}
|
124
|
-
}
|
125
|
-
return bestInstance;
|
126
|
-
}
|
127
|
-
_createDefaultWorkspace(ls) {
|
128
|
-
let defaultWorkspace = this.get(this._defaultWorkspacePath);
|
129
|
-
if (!defaultWorkspace) {
|
130
|
-
// Create a default workspace for files that are outside
|
131
|
-
// of all workspaces.
|
132
|
-
defaultWorkspace = {
|
133
|
-
workspaceName: '',
|
134
|
-
rootPath: '',
|
135
|
-
path: '',
|
136
|
-
uri: '',
|
137
|
-
serviceInstance: ls.createAnalyzerService(this._defaultWorkspacePath),
|
138
|
-
kinds: [languageServerBase_1.WellKnownWorkspaceKinds.Default],
|
139
|
-
disableLanguageServices: false,
|
140
|
-
disableOrganizeImports: false,
|
141
|
-
disableWorkspaceSymbol: false,
|
142
|
-
isInitialized: (0, languageServerBase_1.createInitStatus)(),
|
143
|
-
searchPathsToWatch: [],
|
144
|
-
};
|
145
|
-
this.set(this._defaultWorkspacePath, defaultWorkspace);
|
146
|
-
// Do not await this. let isInitialized.promise to await. Otherwise, ordering
|
147
|
-
// will get messed up. The very first call will run last.
|
148
|
-
ls.updateSettingsForWorkspace(defaultWorkspace, defaultWorkspace.isInitialized).ignoreErrors();
|
149
|
-
}
|
150
|
-
return defaultWorkspace;
|
151
|
-
}
|
152
|
-
_getBestWorkspace(workspaces) {
|
153
|
-
if (workspaces.length === 0) {
|
154
|
-
return undefined;
|
155
|
-
}
|
156
|
-
if (workspaces.length === 1) {
|
157
|
-
return workspaces[0];
|
158
|
-
}
|
159
|
-
// Best workspace is the inner most workspace.
|
160
|
-
return workspaces.reduce((previousWorkspace, currentWorkspace) => {
|
161
|
-
if (!previousWorkspace) {
|
162
|
-
return currentWorkspace;
|
163
|
-
}
|
164
|
-
if (currentWorkspace.path.startsWith(previousWorkspace.path)) {
|
165
|
-
return currentWorkspace;
|
166
|
-
}
|
167
|
-
return previousWorkspace;
|
168
|
-
}, workspaces[0]);
|
169
|
-
}
|
170
|
-
}
|
171
|
-
exports.WorkspaceMap = WorkspaceMap;
|
172
|
-
//# sourceMappingURL=workspaceMap.js.map
|
package/dist/workspaceMap.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"workspaceMap.js","sourceRoot":"","sources":["../../src/workspaceMap.ts"],"names":[],"mappings":"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"}
|