@zzzen/pyright-internal 1.2.0-dev.20230430 → 1.2.0-dev.20230514

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 (231) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +4 -1
  2. package/dist/analyzer/backgroundAnalysisProgram.js +12 -0
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/checker.d.ts +1 -0
  5. package/dist/analyzer/checker.js +89 -6
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/constraintSolver.js +14 -15
  8. package/dist/analyzer/constraintSolver.js.map +1 -1
  9. package/dist/analyzer/constructors.d.ts +6 -0
  10. package/dist/analyzer/constructors.js +513 -0
  11. package/dist/analyzer/constructors.js.map +1 -0
  12. package/dist/analyzer/dataClasses.js +86 -2
  13. package/dist/analyzer/dataClasses.js.map +1 -1
  14. package/dist/analyzer/docStringConversion.js +1 -1
  15. package/dist/analyzer/docStringConversion.js.map +1 -1
  16. package/dist/analyzer/enums.js +62 -8
  17. package/dist/analyzer/enums.js.map +1 -1
  18. package/dist/analyzer/importResolver.js +47 -29
  19. package/dist/analyzer/importResolver.js.map +1 -1
  20. package/dist/analyzer/importStatementUtils.d.ts +2 -2
  21. package/dist/analyzer/importStatementUtils.js.map +1 -1
  22. package/dist/analyzer/namedTuples.js +3 -6
  23. package/dist/analyzer/namedTuples.js.map +1 -1
  24. package/dist/analyzer/operations.d.ts +16 -0
  25. package/dist/analyzer/operations.js +749 -0
  26. package/dist/analyzer/operations.js.map +1 -0
  27. package/dist/analyzer/parseTreeUtils.d.ts +4 -2
  28. package/dist/analyzer/parseTreeUtils.js +32 -1
  29. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  30. package/dist/analyzer/patternMatching.js +16 -0
  31. package/dist/analyzer/patternMatching.js.map +1 -1
  32. package/dist/analyzer/program.d.ts +11 -33
  33. package/dist/analyzer/program.js +73 -735
  34. package/dist/analyzer/program.js.map +1 -1
  35. package/dist/analyzer/protocols.js +1 -1
  36. package/dist/analyzer/protocols.js.map +1 -1
  37. package/dist/analyzer/service.d.ts +5 -21
  38. package/dist/analyzer/service.js +26 -33
  39. package/dist/analyzer/service.js.map +1 -1
  40. package/dist/analyzer/sourceFile.d.ts +9 -41
  41. package/dist/analyzer/sourceFile.js +219 -238
  42. package/dist/analyzer/sourceFile.js.map +1 -1
  43. package/dist/analyzer/sourceFileInfoUtils.d.ts +3 -9
  44. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  45. package/dist/analyzer/symbol.d.ts +3 -1
  46. package/dist/analyzer/symbol.js +5 -0
  47. package/dist/analyzer/symbol.js.map +1 -1
  48. package/dist/analyzer/typeEvaluator.js +460 -1425
  49. package/dist/analyzer/typeEvaluator.js.map +1 -1
  50. package/dist/analyzer/typeEvaluatorTypes.d.ts +42 -7
  51. package/dist/analyzer/typeEvaluatorTypes.js +33 -1
  52. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  53. package/dist/analyzer/typeGuards.js +2 -8
  54. package/dist/analyzer/typeGuards.js.map +1 -1
  55. package/dist/analyzer/typePrinter.d.ts +3 -3
  56. package/dist/analyzer/typePrinter.js +247 -100
  57. package/dist/analyzer/typePrinter.js.map +1 -1
  58. package/dist/analyzer/typeUtils.d.ts +14 -7
  59. package/dist/analyzer/typeUtils.js +204 -49
  60. package/dist/analyzer/typeUtils.js.map +1 -1
  61. package/dist/analyzer/typeVarContext.d.ts +6 -7
  62. package/dist/analyzer/typeVarContext.js +21 -32
  63. package/dist/analyzer/typeVarContext.js.map +1 -1
  64. package/dist/analyzer/typedDicts.js +2 -2
  65. package/dist/analyzer/typedDicts.js.map +1 -1
  66. package/dist/analyzer/types.d.ts +7 -4
  67. package/dist/analyzer/types.js +20 -10
  68. package/dist/analyzer/types.js.map +1 -1
  69. package/dist/backgroundAnalysisBase.d.ts +1 -1
  70. package/dist/backgroundAnalysisBase.js +16 -0
  71. package/dist/backgroundAnalysisBase.js.map +1 -1
  72. package/dist/commands/dumpFileDebugInfoCommand.js +0 -1
  73. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  74. package/dist/common/extensibility.d.ts +28 -4
  75. package/dist/common/extensibility.js.map +1 -1
  76. package/dist/common/logTracker.d.ts +2 -0
  77. package/dist/common/logTracker.js +8 -1
  78. package/dist/common/logTracker.js.map +1 -1
  79. package/dist/common/lspUtils.d.ts +4 -1
  80. package/dist/common/lspUtils.js +38 -1
  81. package/dist/common/lspUtils.js.map +1 -1
  82. package/dist/common/pathUtils.d.ts +11 -11
  83. package/dist/common/pathUtils.js.map +1 -1
  84. package/dist/common/pythonVersion.d.ts +2 -1
  85. package/dist/common/pythonVersion.js +1 -0
  86. package/dist/common/pythonVersion.js.map +1 -1
  87. package/dist/common/workspaceEditUtils.d.ts +8 -8
  88. package/dist/common/workspaceEditUtils.js +10 -10
  89. package/dist/common/workspaceEditUtils.js.map +1 -1
  90. package/dist/languageServerBase.d.ts +3 -7
  91. package/dist/languageServerBase.js +41 -73
  92. package/dist/languageServerBase.js.map +1 -1
  93. package/dist/languageService/autoImporter.d.ts +50 -51
  94. package/dist/languageService/autoImporter.js +125 -210
  95. package/dist/languageService/autoImporter.js.map +1 -1
  96. package/dist/languageService/callHierarchyProvider.d.ts +1 -1
  97. package/dist/languageService/callHierarchyProvider.js +11 -37
  98. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  99. package/dist/languageService/completionProvider.d.ts +39 -81
  100. package/dist/languageService/completionProvider.js +572 -801
  101. package/dist/languageService/completionProvider.js.map +1 -1
  102. package/dist/languageService/documentHighlightProvider.js +1 -1
  103. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  104. package/dist/languageService/documentSymbolCollector.d.ts +6 -7
  105. package/dist/languageService/documentSymbolCollector.js +47 -28
  106. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  107. package/dist/languageService/documentSymbolProvider.d.ts +13 -35
  108. package/dist/languageService/documentSymbolProvider.js +52 -264
  109. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  110. package/dist/languageService/hoverProvider.d.ts +5 -6
  111. package/dist/languageService/hoverProvider.js +40 -132
  112. package/dist/languageService/hoverProvider.js.map +1 -1
  113. package/dist/languageService/referencesProvider.d.ts +6 -11
  114. package/dist/languageService/referencesProvider.js +23 -17
  115. package/dist/languageService/referencesProvider.js.map +1 -1
  116. package/dist/languageService/renameProvider.d.ts +16 -0
  117. package/dist/languageService/renameProvider.js +139 -0
  118. package/dist/languageService/renameProvider.js.map +1 -0
  119. package/dist/languageService/symbolIndexer.d.ts +31 -0
  120. package/dist/languageService/symbolIndexer.js +105 -0
  121. package/dist/languageService/symbolIndexer.js.map +1 -0
  122. package/dist/languageService/tooltipUtils.d.ts +8 -1
  123. package/dist/languageService/tooltipUtils.js +102 -1
  124. package/dist/languageService/tooltipUtils.js.map +1 -1
  125. package/dist/languageService/workspaceSymbolProvider.d.ts +17 -0
  126. package/dist/languageService/workspaceSymbolProvider.js +133 -0
  127. package/dist/languageService/workspaceSymbolProvider.js.map +1 -0
  128. package/dist/localization/localize.d.ts +33 -15
  129. package/dist/localization/localize.js +13 -7
  130. package/dist/localization/localize.js.map +1 -1
  131. package/dist/localization/package.nls.en-us.json +14 -7
  132. package/dist/parser/parser.js +3 -0
  133. package/dist/parser/parser.js.map +1 -1
  134. package/dist/pyright.js +26 -4
  135. package/dist/pyright.js.map +1 -1
  136. package/dist/tests/chainedSourceFiles.test.js +15 -20
  137. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  138. package/dist/tests/checker.test.js +14 -0
  139. package/dist/tests/checker.test.js.map +1 -1
  140. package/dist/tests/completions.test.js +11 -236
  141. package/dist/tests/completions.test.js.map +1 -1
  142. package/dist/tests/docStringConversion.test.js +36 -2
  143. package/dist/tests/docStringConversion.test.js.map +1 -1
  144. package/dist/tests/documentSymbolCollector.test.js +3 -3
  145. package/dist/tests/documentSymbolCollector.test.js.map +1 -1
  146. package/dist/tests/fourslash/completions.override2.fourslash.js +1 -16
  147. package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
  148. package/dist/tests/fourslash/fourslash.d.ts +4 -4
  149. package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js +1 -1
  150. package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js.map +1 -1
  151. package/dist/tests/harness/fourslash/testState.d.ts +17 -11
  152. package/dist/tests/harness/fourslash/testState.js +39 -50
  153. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  154. package/dist/tests/importResolver.test.js +81 -1
  155. package/dist/tests/importResolver.test.js.map +1 -1
  156. package/dist/tests/sourceFile.test.js +1 -1
  157. package/dist/tests/sourceFile.test.js.map +1 -1
  158. package/dist/tests/testStateUtils.d.ts +2 -2
  159. package/dist/tests/testStateUtils.js +38 -8
  160. package/dist/tests/testStateUtils.js.map +1 -1
  161. package/dist/tests/typeEvaluator2.test.js +13 -1
  162. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  163. package/dist/tests/typeEvaluator3.test.js +5 -1
  164. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  165. package/dist/tests/typeEvaluator4.test.js +9 -1
  166. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  167. package/dist/tests/typeEvaluator5.test.js +25 -9
  168. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  169. package/dist/tests/workspaceEditUtils.test.js +95 -6
  170. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  171. package/package.json +4 -4
  172. package/dist/languageService/importAdder.d.ts +0 -40
  173. package/dist/languageService/importAdder.js +0 -388
  174. package/dist/languageService/importAdder.js.map +0 -1
  175. package/dist/languageService/indentationUtils.d.ts +0 -16
  176. package/dist/languageService/indentationUtils.js +0 -727
  177. package/dist/languageService/indentationUtils.js.map +0 -1
  178. package/dist/languageService/insertionPointUtils.d.ts +0 -9
  179. package/dist/languageService/insertionPointUtils.js +0 -132
  180. package/dist/languageService/insertionPointUtils.js.map +0 -1
  181. package/dist/languageService/renameModuleProvider.d.ts +0 -65
  182. package/dist/languageService/renameModuleProvider.js +0 -939
  183. package/dist/languageService/renameModuleProvider.js.map +0 -1
  184. package/dist/tests/fourslash/completions.commitChars.fourslash.d.ts +0 -1
  185. package/dist/tests/fourslash/completions.commitChars.fourslash.js +0 -81
  186. package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +0 -1
  187. package/dist/tests/importAdder.test.d.ts +0 -1
  188. package/dist/tests/importAdder.test.js +0 -1325
  189. package/dist/tests/importAdder.test.js.map +0 -1
  190. package/dist/tests/indentationUtils.ptvs.test.d.ts +0 -1
  191. package/dist/tests/indentationUtils.ptvs.test.js +0 -324
  192. package/dist/tests/indentationUtils.ptvs.test.js.map +0 -1
  193. package/dist/tests/indentationUtils.reindent.test.d.ts +0 -1
  194. package/dist/tests/indentationUtils.reindent.test.js +0 -372
  195. package/dist/tests/indentationUtils.reindent.test.js.map +0 -1
  196. package/dist/tests/indentationUtils.test.d.ts +0 -1
  197. package/dist/tests/indentationUtils.test.js +0 -502
  198. package/dist/tests/indentationUtils.test.js.map +0 -1
  199. package/dist/tests/insertionPointUtils.test.d.ts +0 -1
  200. package/dist/tests/insertionPointUtils.test.js +0 -154
  201. package/dist/tests/insertionPointUtils.test.js.map +0 -1
  202. package/dist/tests/moveSymbol.importAdder.test.d.ts +0 -1
  203. package/dist/tests/moveSymbol.importAdder.test.js +0 -298
  204. package/dist/tests/moveSymbol.importAdder.test.js.map +0 -1
  205. package/dist/tests/moveSymbol.insertion.test.d.ts +0 -1
  206. package/dist/tests/moveSymbol.insertion.test.js +0 -537
  207. package/dist/tests/moveSymbol.insertion.test.js.map +0 -1
  208. package/dist/tests/moveSymbol.misc.test.d.ts +0 -1
  209. package/dist/tests/moveSymbol.misc.test.js +0 -169
  210. package/dist/tests/moveSymbol.misc.test.js.map +0 -1
  211. package/dist/tests/moveSymbol.updateReference.test.d.ts +0 -1
  212. package/dist/tests/moveSymbol.updateReference.test.js +0 -1071
  213. package/dist/tests/moveSymbol.updateReference.test.js.map +0 -1
  214. package/dist/tests/renameModule.folder.test.d.ts +0 -1
  215. package/dist/tests/renameModule.folder.test.js +0 -229
  216. package/dist/tests/renameModule.folder.test.js.map +0 -1
  217. package/dist/tests/renameModule.fromImports.test.d.ts +0 -1
  218. package/dist/tests/renameModule.fromImports.test.js +0 -790
  219. package/dist/tests/renameModule.fromImports.test.js.map +0 -1
  220. package/dist/tests/renameModule.imports.test.d.ts +0 -1
  221. package/dist/tests/renameModule.imports.test.js +0 -380
  222. package/dist/tests/renameModule.imports.test.js.map +0 -1
  223. package/dist/tests/renameModule.misc.test.d.ts +0 -1
  224. package/dist/tests/renameModule.misc.test.js +0 -615
  225. package/dist/tests/renameModule.misc.test.js.map +0 -1
  226. package/dist/tests/renameModule.relativePath.test.d.ts +0 -1
  227. package/dist/tests/renameModule.relativePath.test.js +0 -231
  228. package/dist/tests/renameModule.relativePath.test.js.map +0 -1
  229. package/dist/tests/renameModuleTestUtils.d.ts +0 -4
  230. package/dist/tests/renameModuleTestUtils.js +0 -76
  231. package/dist/tests/renameModuleTestUtils.js.map +0 -1
@@ -1,502 +0,0 @@
1
- "use strict";
2
- /*
3
- * indentationUtils.test.ts
4
- * Copyright (c) Microsoft Corporation.
5
- * Licensed under the MIT license.
6
- *
7
- * Unit tests for indentationUtils module.
8
- */
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- const assert_1 = __importDefault(require("assert"));
14
- const indentationUtils_1 = require("../languageService/indentationUtils");
15
- const testState_1 = require("./harness/fourslash/testState");
16
- test('top level indentation', () => {
17
- const code = `
18
- //// [|/*marker*/|]def foo(): pass
19
- `;
20
- testIndentation(code, 0);
21
- });
22
- test('multiple top level indentation', () => {
23
- const code = `
24
- //// def foo(): pass
25
- //// def foo(): pass
26
- //// [|/*marker*/|]
27
- `;
28
- testIndentation(code, 0);
29
- });
30
- test('sibling indentation', () => {
31
- const code = `
32
- //// def foo():
33
- //// i = 1
34
- //// [|/*marker*/|]
35
- `;
36
- testIndentation(code, 4);
37
- });
38
- test('first child indentation', () => {
39
- const code = `
40
- //// def foo():
41
- //// [|/*marker*/|]
42
- `;
43
- testIndentation(code, 4);
44
- });
45
- test('nested first child indentation', () => {
46
- const code = `
47
- //// class A:
48
- //// def foo(self):
49
- //// [|/*marker*/|]
50
- `;
51
- testIndentation(code, 8);
52
- });
53
- test('nested sibling indentation', () => {
54
- const code = `
55
- //// class A:
56
- //// def foo(self):
57
- //// i = 1
58
- //// [|/*marker*/|]
59
- `;
60
- testIndentation(code, 8);
61
- });
62
- test('sibling indentation next line', () => {
63
- const code = `
64
- //// def foo():
65
- //// i = 1
66
- //// [|/*marker*/|]
67
- `;
68
- testIndentation(code, 4);
69
- });
70
- test('sibling indentation next line after indentation point', () => {
71
- const code = `
72
- //// def foo():
73
- //// i = 1
74
- //// [|/*marker*/|]
75
- `;
76
- testIndentation(code, 4);
77
- });
78
- test('sibling indentation next line at 0 char position', () => {
79
- const code = `
80
- //// def foo():
81
- //// i = 1
82
- //// [|/*marker*/|]
83
- `;
84
- testIndentation(code, 4);
85
- });
86
- test('sibling indentation after blank line', () => {
87
- const code = `
88
- //// def foo():
89
- //// i = 1
90
- ////
91
- //// [|/*marker*/|]
92
- `;
93
- testIndentation(code, 4);
94
- });
95
- test('parent indentation after pass', () => {
96
- const code = `
97
- //// def foo():
98
- //// pass
99
- //// [|/*marker*/|]
100
- `;
101
- testIndentation(code, 0);
102
- });
103
- test('parent indentation after return', () => {
104
- const code = `
105
- //// def foo():
106
- //// return
107
- //// [|/*marker*/|]
108
- `;
109
- testIndentation(code, 0);
110
- });
111
- test('parent indentation after raise', () => {
112
- const code = `
113
- //// def foo():
114
- //// raise
115
- //// [|/*marker*/|]
116
- `;
117
- testIndentation(code, 0);
118
- });
119
- test('parent indentation after continue', () => {
120
- const code = `
121
- //// def foo():
122
- //// while True:
123
- //// continue
124
- //// [|/*marker*/|]
125
- `;
126
- testIndentation(code, 4);
127
- });
128
- test('parent indentation after break', () => {
129
- const code = `
130
- //// def foo():
131
- //// while True:
132
- //// break
133
- //// [|/*marker*/|]
134
- `;
135
- testIndentation(code, 4);
136
- });
137
- test('between statements', () => {
138
- const code = `
139
- //// def foo():
140
- //// while True:
141
- //// i = 10
142
- //// [|/*marker*/|]
143
- //// i = 10
144
- `;
145
- testIndentation(code, 8);
146
- });
147
- test('between statements with prefer dedent', () => {
148
- const code = `
149
- //// def foo():
150
- //// while True:
151
- //// i = 10
152
- //// [|/*marker*/|]
153
- //// i = 10
154
- `;
155
- testIndentation(code, 4, /*preferDedent*/ true);
156
- });
157
- test('single line multiple statements', () => {
158
- const code = `
159
- //// def foo():
160
- //// import os; import sys
161
- //// [|/*marker*/|]
162
- `;
163
- testIndentation(code, 4);
164
- });
165
- test('single line pass', () => {
166
- const code = `
167
- //// def foo(): pass
168
- //// [|/*marker*/|]
169
- `;
170
- testIndentation(code, 0);
171
- });
172
- test('single line return', () => {
173
- const code = `
174
- //// def foo(): return
175
- //// [|/*marker*/|]
176
- `;
177
- testIndentation(code, 0);
178
- });
179
- test('single line raise', () => {
180
- const code = `
181
- //// def foo(): raise
182
- //// [|/*marker*/|]
183
- `;
184
- testIndentation(code, 0);
185
- });
186
- test('single line continue', () => {
187
- const code = `
188
- //// def foo():
189
- //// while True: continue
190
- //// [|/*marker*/|]
191
- `;
192
- testIndentation(code, 4);
193
- });
194
- test('single line break', () => {
195
- const code = `
196
- //// def foo():
197
- //// while True: break
198
- //// [|/*marker*/|]
199
- `;
200
- testIndentation(code, 4);
201
- });
202
- test('first member', () => {
203
- const code = `
204
- //// def foo():
205
- //// [|/*marker*/|]
206
- //// i = 1
207
- `;
208
- testIndentation(code, 8);
209
- });
210
- test('inner first member', () => {
211
- const code = `
212
- //// def foo():
213
- //// def bar():
214
- //// [|/*marker*/|]
215
- //// i = 1
216
- `;
217
- testIndentation(code, 6);
218
- });
219
- test('single line comment', () => {
220
- const code = `
221
- //// def foo():
222
- //// # single line comment
223
- //// [|/*marker*/|]
224
-
225
- `;
226
- testIndentation(code, 4);
227
- });
228
- test('multiline string literals top', () => {
229
- const code = `
230
- //// def foo():
231
- //// """
232
- //// [|/*marker*/|]
233
- `;
234
- testIndentation(code, 4);
235
- });
236
- test('multiline string literals - multiple statements', () => {
237
- const code = `
238
- //// def foo():
239
- //// import os; a = """
240
- //// [|/*marker*/|]
241
- `;
242
- testIndentation(code, 4);
243
- });
244
- test('multiline string literals - blank lines', () => {
245
- const code = `
246
- //// def foo():
247
- //// """
248
- ////
249
- //// [|/*marker*/|]
250
- `;
251
- testIndentation(code, 4);
252
- });
253
- test('multiline string literals - first non blank line', () => {
254
- const code = `
255
- //// def foo():
256
- //// i = \\
257
- //// 1; a = """
258
- //// [|/*marker*/|]
259
- //// """
260
- `;
261
- testIndentation(code, 7);
262
- });
263
- test('multiline string literals - align to content', () => {
264
- const code = `
265
- //// def foo():
266
- //// """
267
- //// Hello
268
- //// [|/*marker*/|]
269
- //// """
270
- `;
271
- testIndentation(code, 8);
272
- });
273
- test('multiline string literals - align to content with multiple blank lines', () => {
274
- const code = `
275
- //// def foo():
276
- //// """
277
- //// Title
278
- //// 1. Second
279
- ////
280
- ////
281
- ////
282
- ////
283
- //// [|/*marker*/|]
284
- //// """
285
- `;
286
- testIndentation(code, 12);
287
- });
288
- test('explicit multiline construct', () => {
289
- const code = `
290
- //// def \\
291
- //// [|/*marker*/|]
292
- ////
293
- `;
294
- testIndentation(code, 0);
295
- });
296
- test('multiple explicit multiline construct', () => {
297
- const code = `
298
- //// def foo \\
299
- //// \\[|/*marker*/|]
300
- ////
301
- ////
302
- `;
303
- testIndentation(code, 8);
304
- });
305
- test('explicit multiline expression', () => {
306
- const code = `
307
- //// def foo():
308
- //// a = 1 + \\
309
- //// [|/*marker*/|]
310
- ////
311
- `;
312
- testIndentation(code, 4);
313
- });
314
- test('explicit multiline expression between lines', () => {
315
- const code = `
316
- //// def foo():
317
- //// a = 1 + \\
318
- //// [|/*marker*/|]
319
- //// b = 1
320
- `;
321
- testIndentation(code, 4);
322
- });
323
- test('implicit multiline constructs', () => {
324
- const code = `
325
- //// def foo(
326
- //// [|/*marker*/|]
327
- `;
328
- testIndentation(code, 8);
329
- });
330
- test('multiple implicit multiline constructs', () => {
331
- const code = `
332
- //// def foo(
333
- //// a,
334
- //// [|/*marker*/|]
335
- `;
336
- testIndentation(code, 9);
337
- });
338
- test('multiple implicit multiline constructs with multiple statements', () => {
339
- const code = `
340
- //// b = 1
341
- ////
342
- //// def foo(
343
- //// a,
344
- //// [|/*marker*/|]
345
- `;
346
- testIndentation(code, 9);
347
- });
348
- test('multiline list', () => {
349
- const code = `
350
- //// a = [
351
- //// 1,
352
- //// [|/*marker*/|]
353
- //// ]
354
- `;
355
- testIndentation(code, 7);
356
- });
357
- test('empty multiline list', () => {
358
- const code = `
359
- //// a = [
360
- //// [|/*marker*/|]
361
- //// ]
362
- `;
363
- testIndentation(code, 4);
364
- });
365
- test('empty multiline list 2', () => {
366
- const code = `
367
- //// [
368
- //// [|/*marker*/|]
369
- //// ]
370
- `;
371
- testIndentation(code, 4);
372
- });
373
- test('nested empty multiline list', () => {
374
- const code = `
375
- //// [
376
- //// [
377
- //// [|/*marker*/|]
378
- //// ]
379
- //// ]
380
- `;
381
- testIndentation(code, 8);
382
- });
383
- test('unfinished block', () => {
384
- const code = `
385
- //// def foo(a: Union[int, str]):
386
- //// while True:
387
- //// [|/*marker*/|]
388
- ////
389
- //// def bar() -> int:
390
- //// return 1
391
- `;
392
- testIndentation(code, 8);
393
- });
394
- test('func params', () => {
395
- const code = `
396
- //// def foo_bar(
397
- //// [|/*marker*/|]var1, var2):
398
- //// pass
399
- `;
400
- testIndentation(code, 8);
401
- });
402
- test('func params 2', () => {
403
- const code = `
404
- //// def foo_bar(var1,
405
- //// [|/*marker*/|]var2):
406
- //// pass
407
- `;
408
- testIndentation(code, 12);
409
- });
410
- test('func params call', () => {
411
- const code = `
412
- //// def foo_bar(var1, var2):
413
- //// pass
414
- //// a = foo_bar(
415
- //// [|/*marker*/|]var1, var2)
416
- `;
417
- testIndentation(code, 4);
418
- });
419
- test('nested func params call', () => {
420
- const code = `
421
- //// def foo_bar(var1, var2):
422
- //// print(
423
- //// [|/*marker*/|]var1)
424
- `;
425
- testIndentation(code, 8);
426
- });
427
- test('nested func params call 2', () => {
428
- const code = `
429
- //// def foo_bar(var1, var2):
430
- //// print(var1,
431
- //// [|/*marker*/|]var1)
432
- `;
433
- testIndentation(code, 10);
434
- });
435
- test('class func params', () => {
436
- const code = `
437
- //// class Test():
438
- //// def foo_bar(self, var1, var2):
439
- //// print(var1,
440
- //// [|/*marker*/|]var1)
441
- `;
442
- testIndentation(code, 14);
443
- });
444
- test('nested closures', () => {
445
- const code = `
446
- //// import pytest
447
- ////
448
- //// class TestStuff:
449
- //// @pytest.mark.parametrize(
450
- //// ["given", "expected"],
451
- //// [
452
- //// ("A", ["A"]),
453
- //// ("A ", ["A"]),
454
- //// (" A", ["A"]),
455
- //// [|/*marker*/|]
456
- //// ("A, B", ["A", "B"]),
457
- //// ("A,B", ["A", "B"]),
458
- //// (" A, B", ["A", "B"]),
459
- //// ("A B", ["A B"]),
460
- //// ],
461
- //// )
462
- //// def test(given, expected):
463
- //// pass
464
- `;
465
- testIndentation(code, 16);
466
- });
467
- test('nested closures 2', () => {
468
- const code = `
469
- //// import pytest
470
- ////
471
- //// class TestStuff:
472
- //// @pytest.mark.parametrize(
473
- //// ["given", "expected"]
474
- //// [|/*marker*/|]
475
- //// )
476
- //// def test(given, expected):
477
- //// pass
478
- `;
479
- testIndentation(code, 8);
480
- });
481
- test('nested closures 3', () => {
482
- const code = `
483
- //// import pytest
484
- ////
485
- //// class TestStuff:
486
- //// @pytest.mark.parametrize(
487
- //// ["given", "expected"
488
- //// [|/*marker*/|]
489
- //// )
490
- //// def test(given, expected):
491
- //// pass
492
- `;
493
- testIndentation(code, 9);
494
- });
495
- function testIndentation(code, indentation, preferDedent) {
496
- const state = (0, testState_1.parseAndGetTestState)(code).state;
497
- const marker = state.getMarkerByName('marker');
498
- const parseResults = state.program.getBoundSourceFile(marker.fileName).getParseResults();
499
- const actual = (0, indentationUtils_1.getNewlineIndentation)(parseResults, marker.position, preferDedent);
500
- assert_1.default.strictEqual(actual, indentation);
501
- }
502
- //# sourceMappingURL=indentationUtils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"indentationUtils.test.js","sourceRoot":"","sources":["../../../src/tests/indentationUtils.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,154 +0,0 @@
1
- "use strict";
2
- /*
3
- * insertionPointUtils.test.ts
4
- * Copyright (c) Microsoft Corporation.
5
- * Licensed under the MIT license.
6
- *
7
- * Unit tests for insertionPointUtils module.
8
- */
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- const assert_1 = __importDefault(require("assert"));
14
- const pathUtils_1 = require("../common/pathUtils");
15
- const insertionPointUtils_1 = require("../languageService/insertionPointUtils");
16
- const testState_1 = require("./harness/fourslash/testState");
17
- test('empty file', () => {
18
- const code = `
19
- //// [|/*marker*/|]
20
- `;
21
- testInsertionPoint(code, 'bar');
22
- });
23
- test('empty file with blank lines', () => {
24
- const code = `
25
- //// [|/*marker*/|]
26
- ////
27
- ////
28
- `;
29
- testInsertionPoint(code, 'bar');
30
- });
31
- test('empty file with comments', () => {
32
- const code = `
33
- //// # comment
34
- //// [|/*marker*/|]
35
- ////
36
- `;
37
- testInsertionPoint(code, 'bar');
38
- });
39
- test('insert symbol to module', () => {
40
- const code = `
41
- //// def foo(): pass[|/*marker*/|]
42
- `;
43
- testInsertionPoint(code, 'bar');
44
- });
45
- test('insert symbol to module before private symbol', () => {
46
- const code = `
47
- //// def foo(): pass[|/*marker*/|]
48
- //// def __private(): pass
49
- `;
50
- testInsertionPoint(code, 'bar');
51
- });
52
- test('insert private symbol to module', () => {
53
- const code = `
54
- //// def foo(): pass
55
- //// def __private(): pass[|/*marker*/|]
56
- `;
57
- testInsertionPoint(code, '__another');
58
- });
59
- test('no insertion on existing symbol', () => {
60
- const code = `
61
- //// [|/*marker*/|]def foo(): pass
62
- //// def __private(): pass
63
- `;
64
- testNoInsertionPoint(code, 'foo');
65
- });
66
- test('no insertion symbol with imported symbol with same name', () => {
67
- const code = `
68
- //// from os import path[|/*marker*/|]
69
- //// def __private(): pass
70
- `;
71
- testNoInsertionPoint(code, 'path');
72
- });
73
- test('insert symbol with imported symbol with same name', () => {
74
- const code = `
75
- //// from os import path[|/*marker*/|]
76
- //// def __private(): pass
77
- `;
78
- testInsertionPoint(code, 'path', {
79
- symbolDeclToIgnore: (0, pathUtils_1.normalizeSlashes)('\\typeshed-fallback\\stdlib\\os\\__init__.pyi'),
80
- });
81
- });
82
- test('insert symbol with before marker at the top', () => {
83
- const code = `
84
- //// [|/*marker*/|]
85
- //// [|/*before*/|]
86
- `;
87
- testInsertionPoint(code, 'path', {
88
- insertBeforeMarker: 'before',
89
- });
90
- });
91
- test('insert symbol with before marker at the top before symbols', () => {
92
- const code = `
93
- //// [|/*marker*/|]def [|/*before*/|]foo():
94
- //// pass
95
- `;
96
- testInsertionPoint(code, 'path', {
97
- insertBeforeMarker: 'before',
98
- });
99
- });
100
- test('insert symbol with before marker at the top before symbols 2', () => {
101
- const code = `
102
- //// [|/*marker*/|]def foo(a: [|/*before*/|]MyType):
103
- //// pass
104
- `;
105
- testInsertionPoint(code, 'path', {
106
- insertBeforeMarker: 'before',
107
- });
108
- });
109
- test('insert symbol before insert marker with other statements', () => {
110
- const code = `
111
- //// import os[|/*marker*/|]
112
- ////
113
- //// def [|/*before*/|]foo():
114
- //// pass
115
- `;
116
- testInsertionPoint(code, 'path', {
117
- insertBeforeMarker: 'before',
118
- });
119
- });
120
- test('insert symbol after comments', () => {
121
- const code = `
122
- //// a = 1 # comment [|/*marker*/|]
123
- ////
124
- `;
125
- testInsertionPoint(code, 'b');
126
- });
127
- test('insert symbol after comments at EOF', () => {
128
- const code = `
129
- //// a = 1 # comment [|/*marker*/|]
130
- `;
131
- testInsertionPoint(code, 'b');
132
- });
133
- function testInsertionPoint(code, symbolName, testOptions) {
134
- const state = (0, testState_1.parseAndGetTestState)(code).state;
135
- const marker = state.getMarkerByName('marker');
136
- const insertBefore = (testOptions === null || testOptions === void 0 ? void 0 : testOptions.insertBeforeMarker)
137
- ? state.getMarkerByName(testOptions.insertBeforeMarker).position
138
- : undefined;
139
- const options = {
140
- symbolDeclToIgnore: testOptions === null || testOptions === void 0 ? void 0 : testOptions.symbolDeclToIgnore,
141
- insertBefore,
142
- };
143
- const parseResults = state.program.getBoundSourceFile(marker.fileName).getParseResults();
144
- const actual = (0, insertionPointUtils_1.getInsertionPointForSymbolUnderModule)(state.program.evaluator, parseResults, symbolName, options);
145
- assert_1.default.strictEqual(actual, marker.position);
146
- }
147
- function testNoInsertionPoint(code, symbolName) {
148
- const state = (0, testState_1.parseAndGetTestState)(code).state;
149
- const marker = state.getMarkerByName('marker');
150
- const parseResults = state.program.getBoundSourceFile(marker.fileName).getParseResults();
151
- const actual = (0, insertionPointUtils_1.getInsertionPointForSymbolUnderModule)(state.program.evaluator, parseResults, symbolName);
152
- (0, assert_1.default)(!actual);
153
- }
154
- //# sourceMappingURL=insertionPointUtils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"insertionPointUtils.test.js","sourceRoot":"","sources":["../../../src/tests/insertionPointUtils.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};