@zzzen/pyright-internal 1.2.0-dev.20220710 → 1.2.0-dev.20220731

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 (166) hide show
  1. package/dist/analyzer/analysis.js +1 -1
  2. package/dist/analyzer/analysis.js.map +1 -1
  3. package/dist/analyzer/binder.js +14 -0
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.d.ts +1 -0
  6. package/dist/analyzer/checker.js +100 -46
  7. package/dist/analyzer/checker.js.map +1 -1
  8. package/dist/analyzer/codeFlowEngine.d.ts +0 -1
  9. package/dist/analyzer/codeFlowEngine.js +190 -196
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/codeFlowTypes.d.ts +1 -1
  12. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  13. package/dist/analyzer/constraintSolver.js +5 -3
  14. package/dist/analyzer/constraintSolver.js.map +1 -1
  15. package/dist/analyzer/dataClasses.js +13 -4
  16. package/dist/analyzer/dataClasses.js.map +1 -1
  17. package/dist/analyzer/enums.d.ts +13 -0
  18. package/dist/analyzer/enums.js +207 -0
  19. package/dist/analyzer/enums.js.map +1 -0
  20. package/dist/analyzer/importResolver.js +5 -4
  21. package/dist/analyzer/importResolver.js.map +1 -1
  22. package/dist/analyzer/importStatementUtils.d.ts +3 -1
  23. package/dist/analyzer/importStatementUtils.js +96 -19
  24. package/dist/analyzer/importStatementUtils.js.map +1 -1
  25. package/dist/analyzer/parseTreeUtils.d.ts +5 -0
  26. package/dist/analyzer/parseTreeUtils.js +111 -3
  27. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  28. package/dist/analyzer/patternMatching.js +3 -3
  29. package/dist/analyzer/patternMatching.js.map +1 -1
  30. package/dist/analyzer/properties.js +1 -1
  31. package/dist/analyzer/properties.js.map +1 -1
  32. package/dist/analyzer/service.d.ts +1 -1
  33. package/dist/analyzer/service.js +37 -37
  34. package/dist/analyzer/service.js.map +1 -1
  35. package/dist/analyzer/sourceFile.js +40 -9
  36. package/dist/analyzer/sourceFile.js.map +1 -1
  37. package/dist/analyzer/typeEvaluator.d.ts +1 -1
  38. package/dist/analyzer/typeEvaluator.js +733 -709
  39. package/dist/analyzer/typeEvaluator.js.map +1 -1
  40. package/dist/analyzer/typeEvaluatorTypes.d.ts +18 -16
  41. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  42. package/dist/analyzer/typeEvaluatorWithTracker.js +9 -7
  43. package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
  44. package/dist/analyzer/typeGuards.d.ts +2 -0
  45. package/dist/analyzer/typeGuards.js +43 -15
  46. package/dist/analyzer/typeGuards.js.map +1 -1
  47. package/dist/analyzer/typePrinter.js +7 -1
  48. package/dist/analyzer/typePrinter.js.map +1 -1
  49. package/dist/analyzer/typeUtils.d.ts +4 -3
  50. package/dist/analyzer/typeUtils.js +99 -38
  51. package/dist/analyzer/typeUtils.js.map +1 -1
  52. package/dist/analyzer/typedDicts.d.ts +1 -0
  53. package/dist/analyzer/typedDicts.js +24 -3
  54. package/dist/analyzer/typedDicts.js.map +1 -1
  55. package/dist/analyzer/types.d.ts +9 -0
  56. package/dist/analyzer/types.js +99 -0
  57. package/dist/analyzer/types.js.map +1 -1
  58. package/dist/backgroundAnalysisBase.d.ts +2 -1
  59. package/dist/backgroundAnalysisBase.js +7 -0
  60. package/dist/backgroundAnalysisBase.js.map +1 -1
  61. package/dist/backgroundThreadBase.js +1 -0
  62. package/dist/backgroundThreadBase.js.map +1 -1
  63. package/dist/commands/commandResult.js +1 -1
  64. package/dist/commands/commandResult.js.map +1 -1
  65. package/dist/common/chokidarFileWatcherProvider.d.ts +1 -2
  66. package/dist/common/chokidarFileWatcherProvider.js +0 -3
  67. package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
  68. package/dist/common/configOptions.d.ts +1 -0
  69. package/dist/common/configOptions.js +4 -0
  70. package/dist/common/configOptions.js.map +1 -1
  71. package/dist/common/diagnostic.d.ts +2 -1
  72. package/dist/common/diagnostic.js +2 -1
  73. package/dist/common/diagnostic.js.map +1 -1
  74. package/dist/common/diagnosticRules.d.ts +1 -0
  75. package/dist/common/diagnosticRules.js +1 -0
  76. package/dist/common/diagnosticRules.js.map +1 -1
  77. package/dist/common/diagnosticSink.d.ts +3 -0
  78. package/dist/common/diagnosticSink.js +15 -2
  79. package/dist/common/diagnosticSink.js.map +1 -1
  80. package/dist/common/editAction.d.ts +6 -0
  81. package/dist/common/editAction.js +15 -0
  82. package/dist/common/editAction.js.map +1 -1
  83. package/dist/common/fileSystem.d.ts +4 -1
  84. package/dist/common/fileSystem.js +6 -4
  85. package/dist/common/fileSystem.js.map +1 -1
  86. package/dist/common/realFileSystem.d.ts +2 -2
  87. package/dist/common/realFileSystem.js.map +1 -1
  88. package/dist/common/textEditUtils.d.ts +22 -2
  89. package/dist/common/textEditUtils.js +138 -1
  90. package/dist/common/textEditUtils.js.map +1 -1
  91. package/dist/common/uriParser.d.ts +2 -0
  92. package/dist/common/uriParser.js +11 -0
  93. package/dist/common/uriParser.js.map +1 -1
  94. package/dist/common/workspaceEditUtils.d.ts +1 -0
  95. package/dist/common/workspaceEditUtils.js +10 -6
  96. package/dist/common/workspaceEditUtils.js.map +1 -1
  97. package/dist/languageServerBase.d.ts +17 -16
  98. package/dist/languageServerBase.js +73 -59
  99. package/dist/languageServerBase.js.map +1 -1
  100. package/dist/languageService/codeActionProvider.d.ts +2 -2
  101. package/dist/languageService/codeActionProvider.js +1 -1
  102. package/dist/languageService/codeActionProvider.js.map +1 -1
  103. package/dist/languageService/completionProvider.d.ts +15 -11
  104. package/dist/languageService/completionProvider.js +75 -5
  105. package/dist/languageService/completionProvider.js.map +1 -1
  106. package/dist/languageService/renameModuleProvider.d.ts +1 -4
  107. package/dist/languageService/renameModuleProvider.js +10 -46
  108. package/dist/languageService/renameModuleProvider.js.map +1 -1
  109. package/dist/languageService/tooltipUtils.js +1 -3
  110. package/dist/languageService/tooltipUtils.js.map +1 -1
  111. package/dist/localization/localize.d.ts +13 -0
  112. package/dist/localization/localize.js +4 -0
  113. package/dist/localization/localize.js.map +1 -1
  114. package/dist/localization/package.nls.en-us.json +4 -0
  115. package/dist/parser/parser.js +9 -1
  116. package/dist/parser/parser.js.map +1 -1
  117. package/dist/pyright.js +3 -1
  118. package/dist/pyright.js.map +1 -1
  119. package/dist/pyrightFileSystem.d.ts +20 -2
  120. package/dist/pyrightFileSystem.js +29 -2
  121. package/dist/pyrightFileSystem.js.map +1 -1
  122. package/dist/server.js +4 -4
  123. package/dist/server.js.map +1 -1
  124. package/dist/tests/chainedSourceFiles.test.js +2 -0
  125. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  126. package/dist/tests/checker.test.js +9 -0
  127. package/dist/tests/checker.test.js.map +1 -1
  128. package/dist/tests/fourslash/completions.commitChars.fourslash.d.ts +1 -0
  129. package/dist/tests/fourslash/completions.commitChars.fourslash.js +59 -0
  130. package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +1 -0
  131. package/dist/tests/fourslash/completions.triggers.fourslash.d.ts +1 -0
  132. package/dist/tests/fourslash/completions.triggers.fourslash.js +29 -0
  133. package/dist/tests/fourslash/completions.triggers.fourslash.js.map +1 -0
  134. package/dist/tests/fourslash/fourslash.d.ts +1 -0
  135. package/dist/tests/fourslash/hover.init.fourslash.js +2 -2
  136. package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
  137. package/dist/tests/harness/fourslash/fourSlashParser.js +5 -1
  138. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  139. package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
  140. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  141. package/dist/tests/harness/fourslash/testState.js +18 -9
  142. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  143. package/dist/tests/pyrightFileSystem.test.js +28 -0
  144. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  145. package/dist/tests/renameModuleTestUtils.js +5 -87
  146. package/dist/tests/renameModuleTestUtils.js.map +1 -1
  147. package/dist/tests/testState.test.js +1 -1
  148. package/dist/tests/testState.test.js.map +1 -1
  149. package/dist/tests/testStateUtils.d.ts +8 -0
  150. package/dist/tests/testStateUtils.js +110 -0
  151. package/dist/tests/testStateUtils.js.map +1 -0
  152. package/dist/tests/testUtils.d.ts +2 -1
  153. package/dist/tests/testUtils.js +9 -6
  154. package/dist/tests/testUtils.js.map +1 -1
  155. package/dist/tests/typeEvaluator1.test.js +7 -7
  156. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  157. package/dist/tests/typeEvaluator2.test.js +16 -4
  158. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  159. package/dist/tests/typeEvaluator3.test.js +9 -1
  160. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  161. package/dist/tests/typeEvaluator4.test.js +16 -0
  162. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  163. package/dist/workspaceMap.d.ts +1 -0
  164. package/dist/workspaceMap.js +11 -1
  165. package/dist/workspaceMap.js.map +1 -1
  166. package/package.json +3 -3
@@ -6,8 +6,35 @@
6
6
  *
7
7
  * Language server command execution functionality.
8
8
  */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
9
28
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.convertTextEdits = void 0;
29
+ exports.TextEditTracker = exports.convertTextEdits = void 0;
30
+ const analyzerNodeInfo_1 = require("../analyzer/analyzerNodeInfo");
31
+ const importStatementUtils_1 = require("../analyzer/importStatementUtils");
32
+ const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
33
+ const debug = __importStar(require("../common/debug"));
34
+ const collectionUtils_1 = require("./collectionUtils");
35
+ const core_1 = require("./core");
36
+ const positionUtils_1 = require("./positionUtils");
37
+ const textRange_1 = require("./textRange");
11
38
  function convertTextEdits(uri, editActions) {
12
39
  if (!editActions) {
13
40
  return {};
@@ -26,4 +53,114 @@ function convertTextEdits(uri, editActions) {
26
53
  };
27
54
  }
28
55
  exports.convertTextEdits = convertTextEdits;
56
+ class TextEditTracker {
57
+ constructor() {
58
+ this._nodesRemoved = [];
59
+ this._results = new Map();
60
+ }
61
+ addEdits(...edits) {
62
+ edits.forEach((e) => this.addEdit(e.filePath, e.range, e.replacementText));
63
+ }
64
+ addEdit(filePath, range, replacementText) {
65
+ const edits = (0, collectionUtils_1.getOrAdd)(this._results, filePath, () => []);
66
+ if (replacementText === '') {
67
+ // If it is a deletion, merge with overlapping deletion edit if there is any.
68
+ const deletions = this.getDeletionsForSpan(edits, range);
69
+ if (deletions.length > 0) {
70
+ // Delete the existing ones.
71
+ this.removeEdits(edits, deletions);
72
+ // Extend range with deleted ones.
73
+ (0, textRange_1.extendRange)(range, deletions.map((d) => d.range));
74
+ }
75
+ }
76
+ // Don't put duplicated edit. It can happen if code has duplicated module import.
77
+ // ex) from a import b, b, c
78
+ // If we need to introduce new "from import" statement for "b", we will add new statement twice.
79
+ if (edits.some((e) => (0, textRange_1.rangesAreEqual)(e.range, range) && e.replacementText === replacementText)) {
80
+ return;
81
+ }
82
+ edits.push({ filePath, range, replacementText });
83
+ }
84
+ getDeletionsForSpan(filePathOrEdit, range) {
85
+ var _a;
86
+ if ((0, core_1.isString)(filePathOrEdit)) {
87
+ filePathOrEdit = (_a = this._results.get(filePathOrEdit)) !== null && _a !== void 0 ? _a : [];
88
+ }
89
+ return filePathOrEdit.filter((e) => e.replacementText === '' && (0, textRange_1.doRangesIntersect)(e.range, range));
90
+ }
91
+ removeEdits(filePathOrEdit, edits) {
92
+ var _a;
93
+ if ((0, core_1.isString)(filePathOrEdit)) {
94
+ filePathOrEdit = (_a = this._results.get(filePathOrEdit)) !== null && _a !== void 0 ? _a : [];
95
+ }
96
+ (0, collectionUtils_1.removeArrayElements)(filePathOrEdit, (f) => edits.findIndex((e) => e === f) >= 0);
97
+ }
98
+ removeNodes(...nodes) {
99
+ this._nodesRemoved.push(...nodes);
100
+ }
101
+ getEdits(token) {
102
+ this._processNodeRemoved(token);
103
+ const edits = [];
104
+ this._results.forEach((v) => (0, collectionUtils_1.appendArray)(edits, v));
105
+ return edits;
106
+ }
107
+ _processNodeRemoved(token) {
108
+ while (this._nodesRemoved.length > 0) {
109
+ const numberOfNodesBeforeProcessing = this._nodesRemoved.length;
110
+ const peekNodeToRemove = this._nodesRemoved[this._nodesRemoved.length - 1];
111
+ this._handleImportNameNode(peekNodeToRemove, token);
112
+ if (this._nodesRemoved.length === numberOfNodesBeforeProcessing) {
113
+ // It looks like we don't know how to handle the node,
114
+ // Please add code to handle the case.
115
+ debug.assert(`please add handler for ${peekNodeToRemove.node.nodeType}`);
116
+ // As a default behavior, we will just remove the node
117
+ this._nodesRemoved.pop();
118
+ const info = (0, analyzerNodeInfo_1.getFileInfo)(peekNodeToRemove.parseResults.parseTree);
119
+ this.addEdit(info.filePath, (0, positionUtils_1.convertTextRangeToRange)(peekNodeToRemove.node, info.lines), '');
120
+ }
121
+ }
122
+ }
123
+ _handleImportNameNode(peekNodeToRemove, token) {
124
+ const peekNode = peekNodeToRemove.node;
125
+ if (peekNode.nodeType !== 38 /* Name */) {
126
+ return false;
127
+ }
128
+ const module = peekNodeToRemove.parseResults.parseTree;
129
+ const info = (0, analyzerNodeInfo_1.getFileInfo)(module);
130
+ const importNode = (0, importStatementUtils_1.getContainingImportStatement)(ParseTreeUtils.findNodeByOffset(module, peekNode.start), token);
131
+ if (!importNode) {
132
+ return false;
133
+ }
134
+ const nameNodes = (0, importStatementUtils_1.getAllImportNames)(importNode);
135
+ // check various different cases
136
+ // 1. check whether all imported names in the import statement is not used.
137
+ const nodesRemoved = this._nodesRemoved.filter((nodeToRemove) => nameNodes.some((n) => textRange_1.TextRange.overlapsRange(nodeToRemove.node, n)));
138
+ if (nameNodes.length === nodesRemoved.length) {
139
+ this.addEdit(info.filePath, ParseTreeUtils.getFullStatementRange(importNode, peekNodeToRemove.parseResults.tokenizerOutput), '');
140
+ // Remove nodes that are handled from queue.
141
+ this._removeNodesHandled(nodesRemoved);
142
+ return true;
143
+ }
144
+ // 2. some of modules in the import statement is used.
145
+ const indices = [];
146
+ for (let i = 0; i < nameNodes.length; i++) {
147
+ const nameNode = nameNodes[i];
148
+ if (nodesRemoved.some((r) => textRange_1.TextRange.overlapsRange(r.node, nameNode))) {
149
+ indices.push(i);
150
+ }
151
+ }
152
+ if (indices.length === 0) {
153
+ // can't find module user wants to remove
154
+ return false;
155
+ }
156
+ const editSpans = (0, importStatementUtils_1.getTextRangeForImportNameDeletion)(nameNodes, ...indices);
157
+ editSpans.forEach((e) => this.addEdit(info.filePath, (0, positionUtils_1.convertTextRangeToRange)(e, info.lines), ''));
158
+ this._removeNodesHandled(nodesRemoved);
159
+ return true;
160
+ }
161
+ _removeNodesHandled(nodesRemoved) {
162
+ (0, collectionUtils_1.removeArrayElements)(this._nodesRemoved, (n) => nodesRemoved.some((r) => r === n));
163
+ }
164
+ }
165
+ exports.TextEditTracker = TextEditTracker;
29
166
  //# sourceMappingURL=textEditUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textEditUtils.js","sourceRoot":"","sources":["../../../src/common/textEditUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAMH,SAAgB,gBAAgB,CAAC,GAAW,EAAE,WAAyC;IACnF,IAAI,CAAC,WAAW,EAAE;QACd,OAAO,EAAE,CAAC;KACb;IAED,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAC/B,KAAK,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,OAAO,EAAE,UAAU,CAAC,eAAe;SACtC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,OAAO,EAAE;YACL,CAAC,GAAG,CAAC,EAAE,KAAK;SACf;KACJ,CAAC;AACN,CAAC;AAlBD,4CAkBC"}
1
+ {"version":3,"file":"textEditUtils.js","sourceRoot":"","sources":["../../../src/common/textEditUtils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Position } from 'vscode-languageserver';
2
2
  import { TextDocumentIdentifier } from 'vscode-languageserver-protocol';
3
+ import { URI } from 'vscode-uri';
3
4
  import { FileSystem } from './fileSystem';
4
5
  export declare class UriParser {
5
6
  protected readonly _fs: FileSystem;
@@ -9,4 +10,5 @@ export declare class UriParser {
9
10
  position: Position;
10
11
  };
11
12
  decodeTextDocumentUri(uriString: string): string;
13
+ isLocal(uri: URI | string | undefined): boolean;
12
14
  }
@@ -8,6 +8,8 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.UriParser = void 0;
11
+ const vscode_uri_1 = require("vscode-uri");
12
+ const core_1 = require("./core");
11
13
  const pathUtils_1 = require("./pathUtils");
12
14
  class UriParser {
13
15
  constructor(_fs) {
@@ -20,6 +22,15 @@ class UriParser {
20
22
  decodeTextDocumentUri(uriString) {
21
23
  return (0, pathUtils_1.convertUriToPath)(this._fs, uriString);
22
24
  }
25
+ isLocal(uri) {
26
+ if (!uri) {
27
+ return false;
28
+ }
29
+ if ((0, core_1.isString)(uri)) {
30
+ uri = vscode_uri_1.URI.parse(uri);
31
+ }
32
+ return uri.scheme === 'file';
33
+ }
23
34
  }
24
35
  exports.UriParser = UriParser;
25
36
  //# sourceMappingURL=uriParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uriParser.js","sourceRoot":"","sources":["../../../src/common/uriParser.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAMH,2CAA+C;AAE/C,MAAa,SAAS;IAClB,YAA+B,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IAAG,CAAC;IAE3C,0BAA0B,CAAC,YAAoC,EAAE,QAAkB;QACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC;IAEM,qBAAqB,CAAC,SAAiB;QAC1C,OAAO,IAAA,4BAAgB,EAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;CACJ;AAXD,8BAWC"}
1
+ {"version":3,"file":"uriParser.js","sourceRoot":"","sources":["../../../src/common/uriParser.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAIH,2CAAiC;AAEjC,iCAAkC;AAElC,2CAA+C;AAE/C,MAAa,SAAS;IAClB,YAA+B,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IAAG,CAAC;IAE3C,0BAA0B,CAAC,YAAoC,EAAE,QAAkB;QACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC;IAEM,qBAAqB,CAAC,SAAiB;QAC1C,OAAO,IAAA,4BAAgB,EAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO,CAAC,GAA6B;QACxC,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAA,eAAQ,EAAC,GAAG,CAAC,EAAE;YACf,GAAG,GAAG,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;QAED,OAAO,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;IACjC,CAAC;CACJ;AAvBD,8BAuBC"}
@@ -2,6 +2,7 @@ import { ChangeAnnotation, WorkspaceEdit } from 'vscode-languageserver';
2
2
  import { FileEditAction, FileEditActions } from '../common/editAction';
3
3
  import { FileSystem } from './fileSystem';
4
4
  export declare function convertWorkspaceEdits(fs: FileSystem, edits: FileEditAction[]): WorkspaceEdit;
5
+ export declare function AddToWorkspaceEdit(fs: FileSystem, workspaceEdit: WorkspaceEdit, edits: FileEditAction[]): void;
5
6
  export declare function convertWorkspaceDocumentEdits(fs: FileSystem, editActions: FileEditActions, changeAnnotations?: {
6
7
  [id: string]: ChangeAnnotation;
7
8
  }, defaultAnnotationId?: string): WorkspaceEdit;
@@ -7,23 +7,27 @@
7
7
  * Convert Pyright's FileEditActions to LanguageServer's WorkspaceEdits.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.convertWorkspaceDocumentEdits = exports.convertWorkspaceEdits = void 0;
10
+ exports.convertWorkspaceDocumentEdits = exports.AddToWorkspaceEdit = exports.convertWorkspaceEdits = void 0;
11
11
  const vscode_languageserver_1 = require("vscode-languageserver");
12
12
  const pathUtils_1 = require("../common/pathUtils");
13
13
  const collectionUtils_1 = require("./collectionUtils");
14
14
  const debug_1 = require("./debug");
15
15
  function convertWorkspaceEdits(fs, edits) {
16
- const workspaceEdits = {
16
+ const workspaceEdit = {
17
17
  changes: {},
18
18
  };
19
+ AddToWorkspaceEdit(fs, workspaceEdit, edits);
20
+ return workspaceEdit;
21
+ }
22
+ exports.convertWorkspaceEdits = convertWorkspaceEdits;
23
+ function AddToWorkspaceEdit(fs, workspaceEdit, edits) {
19
24
  edits.forEach((edit) => {
20
25
  const uri = (0, pathUtils_1.convertPathToUri)(fs, edit.filePath);
21
- workspaceEdits.changes[uri] = workspaceEdits.changes[uri] || [];
22
- workspaceEdits.changes[uri].push({ range: edit.range, newText: edit.replacementText });
26
+ workspaceEdit.changes[uri] = workspaceEdit.changes[uri] || [];
27
+ workspaceEdit.changes[uri].push({ range: edit.range, newText: edit.replacementText });
23
28
  });
24
- return workspaceEdits;
25
29
  }
26
- exports.convertWorkspaceEdits = convertWorkspaceEdits;
30
+ exports.AddToWorkspaceEdit = AddToWorkspaceEdit;
27
31
  function convertWorkspaceDocumentEdits(fs, editActions, changeAnnotations, defaultAnnotationId = 'default') {
28
32
  const workspaceEdit = {
29
33
  documentChanges: [],
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceEditUtils.js","sourceRoot":"","sources":["../../../src/common/workspaceEditUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,iEAO+B;AAG/B,mDAAuD;AACvD,uDAAuD;AACvD,mCAAsC;AAGtC,SAAgB,qBAAqB,CAAC,EAAc,EAAE,KAAuB;IACzE,MAAM,cAAc,GAAkB;QAClC,OAAO,EAAE,EAAE;KACd,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnB,MAAM,GAAG,GAAG,IAAA,4BAAgB,EAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,cAAc,CAAC,OAAQ,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,OAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAClE,cAAc,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AAC1B,CAAC;AAZD,sDAYC;AAED,SAAgB,6BAA6B,CACzC,EAAc,EACd,WAA4B,EAC5B,iBAEC,EACD,mBAAmB,GAAG,SAAS;IAE/B,MAAM,aAAa,GAAkB;QACjC,eAAe,EAAE,EAAE;QACnB,iBAAiB,EAAE,iBAAiB;KACvC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,oCAAkB,EAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE;QACnC,aAAa,CAAC,eAAgB,CAAC,IAAI,CAC/B,wCAAgB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAA,4BAAgB,EAAC,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YACvE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,eAAe;gBAC1B,YAAY,EAAE,mBAAmB;aACpC,CAAC,CAAC;SACN,CAAC,CACL,CAAC;KACL;IAED,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,cAAc,EAAE;QAChD,QAAQ,SAAS,CAAC,IAAI,EAAE;YACpB,KAAK,QAAQ;gBACT,aAAa,CAAC,eAAgB,CAAC,IAAI,CAC/B,kCAAU,CAAC,MAAM,CACb,IAAA,4BAAgB,EAAC,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC;gBACxC,aAAa,CAAC,SAAS,EACvB,mBAAmB,CACtB,CACJ,CAAC;gBACF,MAAM;YACV,KAAK,QAAQ;gBACT,aAAa,CAAC,eAAgB,CAAC,IAAI,CAC/B,kCAAU,CAAC,MAAM,CACb,IAAA,4BAAgB,EAAC,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,EAC3C,IAAA,4BAAgB,EAAC,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC;gBAC3C,aAAa,CAAC,SAAS,EACvB,mBAAmB,CACtB,CACJ,CAAC;gBACF,MAAM;YACV,KAAK,QAAQ;gBACT,aAAa,CAAC,eAAgB,CAAC,IAAI,CAC/B,kCAAU,CAAC,MAAM,CACb,IAAA,4BAAgB,EAAC,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC;gBACxC,aAAa,CAAC,SAAS,EACvB,mBAAmB,CACtB,CACJ,CAAC;gBACF,MAAM;YACV;gBACI,IAAA,mBAAW,EAAC,SAAS,CAAC,CAAC;SAC9B;KACJ;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AA9DD,sEA8DC"}
1
+ {"version":3,"file":"workspaceEditUtils.js","sourceRoot":"","sources":["../../../src/common/workspaceEditUtils.ts"],"names":[],"mappings":"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"}
@@ -16,13 +16,14 @@ import { Deferred } from './common/deferred';
16
16
  import { DiagnosticRule } from './common/diagnosticRules';
17
17
  import { FileDiagnostics } from './common/diagnosticSink';
18
18
  import { LanguageServiceExtension } from './common/extensibility';
19
- import { FileSystem, FileWatcherProvider } from './common/fileSystem';
19
+ import { FileSystem, FileWatcherHandler } from './common/fileSystem';
20
20
  import { Host } from './common/host';
21
21
  import { ProgressReporter } from './common/progressReporter';
22
22
  import { DocumentRange, Position, Range } from './common/textRange';
23
23
  import { UriParser } from './common/uriParser';
24
24
  import { CompletionOptions, CompletionResultsList } from './languageService/completionProvider';
25
25
  import { DefinitionFilter } from './languageService/definitionProvider';
26
+ import { PyrightFileSystem } from './pyrightFileSystem';
26
27
  import { WorkspaceMap } from './workspaceMap';
27
28
  export interface ServerSettings {
28
29
  venvPath?: string | undefined;
@@ -49,6 +50,7 @@ export interface ServerSettings {
49
50
  export declare enum WellKnownWorkspaceKinds {
50
51
  Default = "default",
51
52
  Regular = "regular",
53
+ Limited = "limited",
52
54
  Cloned = "cloned",
53
55
  Test = "test"
54
56
  }
@@ -63,6 +65,7 @@ export interface WorkspaceServiceInstance {
63
65
  disableWorkspaceSymbol: boolean;
64
66
  isInitialized: Deferred<boolean>;
65
67
  searchPathsToWatch: string[];
68
+ owns?(filePath: string): boolean;
66
69
  }
67
70
  export interface MessageAction {
68
71
  title: string;
@@ -86,7 +89,6 @@ export interface LanguageServerInterface {
86
89
  readonly rootPath: string;
87
90
  readonly console: ConsoleInterface;
88
91
  readonly window: WindowInterface;
89
- readonly fs: FileSystem;
90
92
  readonly supportAdvancedEdits: boolean;
91
93
  }
92
94
  export interface ServerOptions {
@@ -94,15 +96,19 @@ export interface ServerOptions {
94
96
  rootDirectory: string;
95
97
  version: string;
96
98
  workspaceMap: WorkspaceMap;
97
- fileSystem: FileSystem;
98
- fileWatcherProvider: FileWatcherProvider;
99
99
  cancellationProvider: CancellationProvider;
100
+ fileSystem: FileSystem;
101
+ fileWatcherHandler: FileWatcherHandler;
100
102
  extension?: LanguageServiceExtension;
101
103
  maxAnalysisTimeInForeground?: MaxAnalysisTime;
102
104
  disableChecker?: boolean;
103
105
  supportedCommands?: string[];
104
106
  supportedCodeActions?: string[];
105
107
  }
108
+ export interface WorkspaceServices {
109
+ fs: FileSystem;
110
+ backgroundAnalysis: BackgroundAnalysisBase | undefined;
111
+ }
106
112
  interface ClientCapabilities {
107
113
  hasConfigurationCapability: boolean;
108
114
  hasVisualStudioExtensionsCapability: boolean;
@@ -116,6 +122,7 @@ interface ClientCapabilities {
116
122
  hasGoToDeclarationCapability: boolean;
117
123
  hasDocumentChangeCapability: boolean;
118
124
  hasDocumentAnnotationCapability: boolean;
125
+ hasCompletionCommitCharCapability: boolean;
119
126
  hoverContentFormat: MarkupKind;
120
127
  completionDocFormat: MarkupKind;
121
128
  completionSupportsSnippet: boolean;
@@ -130,7 +137,6 @@ export declare abstract class LanguageServerBase implements LanguageServerInterf
130
137
  readonly console: ConsoleInterface;
131
138
  protected _defaultClientConfig: any;
132
139
  protected _workspaceMap: WorkspaceMap;
133
- protected _fileWatcherProvider: FileWatcherProvider;
134
140
  private _pendingFindAllRefsCancellationSource;
135
141
  private _pendingCommandCancellationSource;
136
142
  private _progressReporter;
@@ -138,7 +144,7 @@ export declare abstract class LanguageServerBase implements LanguageServerInterf
138
144
  private _lastFileWatcherRegistration;
139
145
  rootPath: string;
140
146
  protected client: ClientCapabilities;
141
- fs: FileSystem;
147
+ protected _serviceFS: PyrightFileSystem;
142
148
  protected _uriParser: UriParser;
143
149
  constructor(_serverOptions: ServerOptions, _connection: Connection, console: ConsoleInterface, uriParserFactory?: (fs: FileSystem) => UriParser);
144
150
  decodeTextDocumentUri(uriString: string): string;
@@ -158,7 +164,7 @@ export declare abstract class LanguageServerBase implements LanguageServerInterf
158
164
  protected setExtension(extension: any): void;
159
165
  get window(): RemoteWindow;
160
166
  get supportAdvancedEdits(): boolean;
161
- createAnalyzerService(name: string, libraryReanalysisTimeProvider?: () => number): AnalyzerService;
167
+ createAnalyzerService(name: string, services?: WorkspaceServices, libraryReanalysisTimeProvider?: () => number): AnalyzerService;
162
168
  getWorkspaceForFile(filePath: string): Promise<WorkspaceServiceInstance>;
163
169
  reanalyze(): void;
164
170
  restart(): void;
@@ -195,15 +201,10 @@ export declare abstract class LanguageServerBase implements LanguageServerInterf
195
201
  protected resolveWorkspaceCompletionItem(workspace: WorkspaceServiceInstance, filePath: string, item: CompletionItem, token: CancellationToken): void;
196
202
  protected getWorkspaceCompletionsForPosition(workspace: WorkspaceServiceInstance, filePath: string, position: Position, workspacePath: string, options: CompletionOptions, token: CancellationToken): Promise<CompletionResultsList | undefined>;
197
203
  updateSettingsForAllWorkspaces(): void;
198
- protected getCompletionOptions(params?: CompletionParams): {
199
- format: MarkupKind;
200
- snippet: boolean;
201
- lazyEdit: boolean;
202
- autoImport: boolean;
203
- };
204
- protected createWorkspaceServiceInstance(workspace: WorkspaceFolder | undefined, rootPath: string, kind?: string): WorkspaceServiceInstance;
205
- protected convertDiagnostics(fileDiagnostics: FileDiagnostics): PublishDiagnosticsParams[];
206
- protected onAnalysisCompletedHandler(results: AnalysisResults): void;
204
+ protected getCompletionOptions(workspace: WorkspaceServiceInstance, params?: CompletionParams): CompletionOptions;
205
+ protected createWorkspaceServiceInstance(workspace: WorkspaceFolder | undefined, rootPath: string, kind?: string, owns?: (filePath: string) => boolean, services?: WorkspaceServices): WorkspaceServiceInstance;
206
+ protected convertDiagnostics(fs: FileSystem, fileDiagnostics: FileDiagnostics): PublishDiagnosticsParams[];
207
+ protected onAnalysisCompletedHandler(fs: FileSystem, results: AnalysisResults): void;
207
208
  updateSettingsForWorkspace(workspace: WorkspaceServiceInstance, serverSettings?: ServerSettings): Promise<void>;
208
209
  updateOptionsAndRestartService(workspace: WorkspaceServiceInstance, serverSettings: ServerSettings, typeStubTargetImportName?: string): void;
209
210
  protected convertLogLevel(logLevelValue?: string): LogLevel;