@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.
Files changed (143) hide show
  1. package/dist/analyzer/aliasDeclarationUtils.js +15 -0
  2. package/dist/analyzer/aliasDeclarationUtils.js.map +1 -1
  3. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
  4. package/dist/analyzer/backgroundAnalysisProgram.js +1 -1
  5. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  6. package/dist/analyzer/cacheManager.d.ts +4 -0
  7. package/dist/analyzer/cacheManager.js +13 -0
  8. package/dist/analyzer/cacheManager.js.map +1 -1
  9. package/dist/analyzer/checker.d.ts +2 -1
  10. package/dist/analyzer/checker.js +77 -27
  11. package/dist/analyzer/checker.js.map +1 -1
  12. package/dist/analyzer/codeFlowEngine.js +17 -11
  13. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  14. package/dist/analyzer/dataClasses.js +10 -0
  15. package/dist/analyzer/dataClasses.js.map +1 -1
  16. package/dist/analyzer/patternMatching.js +18 -3
  17. package/dist/analyzer/patternMatching.js.map +1 -1
  18. package/dist/analyzer/program.d.ts +1 -1
  19. package/dist/analyzer/program.js +24 -28
  20. package/dist/analyzer/program.js.map +1 -1
  21. package/dist/analyzer/properties.js +0 -1
  22. package/dist/analyzer/properties.js.map +1 -1
  23. package/dist/analyzer/protocols.js +18 -3
  24. package/dist/analyzer/protocols.js.map +1 -1
  25. package/dist/analyzer/service.d.ts +2 -1
  26. package/dist/analyzer/service.js +15 -20
  27. package/dist/analyzer/service.js.map +1 -1
  28. package/dist/analyzer/sourceFile.d.ts +2 -2
  29. package/dist/analyzer/sourceFile.js +2 -2
  30. package/dist/analyzer/sourceFile.js.map +1 -1
  31. package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -0
  32. package/dist/analyzer/sourceFileInfoUtils.js +17 -1
  33. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  34. package/dist/analyzer/typeEvaluator.js +149 -84
  35. package/dist/analyzer/typeEvaluator.js.map +1 -1
  36. package/dist/analyzer/typeEvaluatorTypes.d.ts +0 -2
  37. package/dist/analyzer/typeEvaluatorTypes.js +0 -3
  38. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  39. package/dist/analyzer/typeStubWriter.js +2 -0
  40. package/dist/analyzer/typeStubWriter.js.map +1 -1
  41. package/dist/analyzer/typeUtils.js +40 -1
  42. package/dist/analyzer/typeUtils.js.map +1 -1
  43. package/dist/analyzer/typedDicts.js +27 -0
  44. package/dist/analyzer/typedDicts.js.map +1 -1
  45. package/dist/analyzer/types.d.ts +5 -1
  46. package/dist/analyzer/types.js +3 -1
  47. package/dist/analyzer/types.js.map +1 -1
  48. package/dist/commands/dumpFileDebugInfoCommand.js +4 -4
  49. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  50. package/dist/commands/quickActionCommand.js +2 -2
  51. package/dist/commands/quickActionCommand.js.map +1 -1
  52. package/dist/common/configOptions.d.ts +1 -0
  53. package/dist/common/configOptions.js +5 -1
  54. package/dist/common/configOptions.js.map +1 -1
  55. package/dist/common/console.d.ts +1 -0
  56. package/dist/common/console.js +19 -1
  57. package/dist/common/console.js.map +1 -1
  58. package/dist/common/diagnosticRules.d.ts +2 -1
  59. package/dist/common/diagnosticRules.js +1 -0
  60. package/dist/common/diagnosticRules.js.map +1 -1
  61. package/dist/common/extensibility.d.ts +2 -2
  62. package/dist/common/extensibility.js.map +1 -1
  63. package/dist/common/extensions.js +3 -1
  64. package/dist/common/extensions.js.map +1 -1
  65. package/dist/common/fileBasedCancellationUtils.js +4 -0
  66. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  67. package/dist/languageServerBase.d.ts +21 -46
  68. package/dist/languageServerBase.js +110 -152
  69. package/dist/languageServerBase.js.map +1 -1
  70. package/dist/languageService/analyzerServiceExecutor.d.ts +4 -3
  71. package/dist/languageService/analyzerServiceExecutor.js +9 -7
  72. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  73. package/dist/languageService/codeActionProvider.d.ts +2 -2
  74. package/dist/languageService/codeActionProvider.js +4 -4
  75. package/dist/languageService/codeActionProvider.js.map +1 -1
  76. package/dist/languageService/completionProvider.js +4 -6
  77. package/dist/languageService/completionProvider.js.map +1 -1
  78. package/dist/languageService/definitionProvider.js +1 -1
  79. package/dist/languageService/definitionProvider.js.map +1 -1
  80. package/dist/languageService/documentSymbolCollector.d.ts +2 -1
  81. package/dist/languageService/documentSymbolCollector.js +23 -2
  82. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  83. package/dist/languageService/hoverProvider.d.ts +2 -1
  84. package/dist/languageService/hoverProvider.js +21 -5
  85. package/dist/languageService/hoverProvider.js.map +1 -1
  86. package/dist/languageService/referencesProvider.d.ts +3 -2
  87. package/dist/languageService/referencesProvider.js +4 -4
  88. package/dist/languageService/referencesProvider.js.map +1 -1
  89. package/dist/languageService/signatureHelpProvider.js +9 -7
  90. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  91. package/dist/localization/localize.d.ts +14 -6
  92. package/dist/localization/localize.js +5 -4
  93. package/dist/localization/localize.js.map +1 -1
  94. package/dist/localization/package.nls.en-us.json +7 -6
  95. package/dist/parser/parser.js +4 -2
  96. package/dist/parser/parser.js.map +1 -1
  97. package/dist/server.d.ts +3 -2
  98. package/dist/server.js +1 -4
  99. package/dist/server.js.map +1 -1
  100. package/dist/tests/cacheManager.test.d.ts +1 -0
  101. package/dist/tests/cacheManager.test.js +69 -0
  102. package/dist/tests/cacheManager.test.js.map +1 -0
  103. package/dist/tests/checker.test.js +2 -2
  104. package/dist/tests/completions.test.js +42 -2
  105. package/dist/tests/completions.test.js.map +1 -1
  106. package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.d.ts +7 -0
  107. package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.js +45 -0
  108. package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.js.map +1 -0
  109. package/dist/tests/harness/fourslash/testLanguageService.d.ts +7 -6
  110. package/dist/tests/harness/fourslash/testLanguageService.js +14 -13
  111. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  112. package/dist/tests/harness/fourslash/testState.d.ts +5 -4
  113. package/dist/tests/harness/fourslash/testState.js +14 -13
  114. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  115. package/dist/tests/hoverProvider.test.js +50 -0
  116. package/dist/tests/hoverProvider.test.js.map +1 -1
  117. package/dist/tests/moveSymbol.misc.test.js +1 -1
  118. package/dist/tests/moveSymbol.misc.test.js.map +1 -1
  119. package/dist/tests/service.test.js +4 -4
  120. package/dist/tests/service.test.js.map +1 -1
  121. package/dist/tests/signatureHelp.test.js +2 -2
  122. package/dist/tests/signatureHelp.test.js.map +1 -1
  123. package/dist/tests/sourceFile.test.js +3 -3
  124. package/dist/tests/sourceFile.test.js.map +1 -1
  125. package/dist/tests/typeEvaluator1.test.js +4 -0
  126. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  127. package/dist/tests/typeEvaluator2.test.js +10 -2
  128. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  129. package/dist/tests/typeEvaluator3.test.js +6 -2
  130. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  131. package/dist/tests/typeEvaluator4.test.js +6 -2
  132. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  133. package/dist/tests/typeEvaluator5.test.js +12 -0
  134. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  135. package/dist/tests/workspaceEditUtils.test.js +2 -2
  136. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  137. package/dist/workspaceFactory.d.ts +72 -0
  138. package/dist/workspaceFactory.js +421 -0
  139. package/dist/workspaceFactory.js.map +1 -0
  140. package/package.json +4 -4
  141. package/dist/workspaceMap.d.ts +0 -14
  142. package/dist/workspaceMap.js +0 -172
  143. package/dist/workspaceMap.js.map +0 -1
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspaceMap.js","sourceRoot":"","sources":["../../src/workspaceMap.ts"],"names":[],"mappings":"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"}