@zzzen/pyright-internal 1.2.0-dev.20230423 → 1.2.0-dev.20230507
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/analyzerFileInfo.d.ts +4 -1
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +7 -4
- package/dist/analyzer/backgroundAnalysisProgram.js +22 -7
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +12 -7
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -0
- package/dist/analyzer/checker.js +58 -7
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constructors.d.ts +6 -0
- package/dist/analyzer/constructors.js +456 -0
- package/dist/analyzer/constructors.js.map +1 -0
- package/dist/analyzer/dataClasses.js +89 -2
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declarationUtils.d.ts +6 -1
- package/dist/analyzer/declarationUtils.js +10 -8
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/enums.js +54 -8
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +15 -15
- package/dist/analyzer/importResolver.js +477 -477
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.d.ts +2 -2
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.d.ts +1 -1
- package/dist/analyzer/namedTuples.js +30 -42
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.d.ts +16 -0
- package/dist/analyzer/operations.js +749 -0
- package/dist/analyzer/operations.js.map +1 -0
- package/dist/analyzer/packageTypeReport.d.ts +2 -1
- package/dist/analyzer/packageTypeReport.js +2 -1
- package/dist/analyzer/packageTypeReport.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.d.ts +1 -1
- package/dist/analyzer/packageTypeVerifier.js +27 -13
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +4 -2
- package/dist/analyzer/parseTreeUtils.js +32 -1
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +16 -0
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +29 -53
- package/dist/analyzer/program.js +1050 -1649
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.js +1 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +14 -35
- package/dist/analyzer/service.js +92 -121
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +14 -49
- package/dist/analyzer/sourceFile.js +271 -291
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.d.ts +2 -2
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +417 -1570
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +44 -9
- package/dist/analyzer/typeEvaluatorTypes.js +33 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +5 -9
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +3 -0
- package/dist/analyzer/typeUtils.js +66 -9
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +5 -5
- package/dist/analyzer/typeVarContext.js +7 -0
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typedDicts.js +2 -2
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +4 -2
- package/dist/analyzer/types.js +7 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +10 -11
- package/dist/backgroundAnalysisBase.js +87 -87
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +8 -8
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/commands/quickActionCommand.js +4 -1
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/cancellationUtils.d.ts +1 -1
- package/dist/common/cancellationUtils.js +9 -9
- package/dist/common/cancellationUtils.js.map +1 -1
- package/dist/common/commandLineOptions.d.ts +1 -2
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/configOptions.d.ts +2 -2
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/console.d.ts +5 -9
- package/dist/common/console.js +46 -33
- package/dist/common/console.js.map +1 -1
- package/dist/common/deferred.js +10 -10
- package/dist/common/deferred.js.map +1 -1
- package/dist/common/extensibility.d.ts +27 -5
- package/dist/common/extensibility.js +1 -1
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.js +5 -5
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/fileSystem.d.ts +12 -10
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fullAccessHost.d.ts +3 -3
- package/dist/common/fullAccessHost.js +6 -6
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/pathUtils.d.ts +13 -13
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/realFileSystem.js +12 -7
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/uriParser.d.ts +2 -2
- package/dist/common/uriParser.js +3 -3
- package/dist/common/uriParser.js.map +1 -1
- package/dist/common/workspaceEditUtils.d.ts +5 -5
- package/dist/common/workspaceEditUtils.js +7 -4
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +32 -31
- package/dist/languageServerBase.js +278 -345
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.js +0 -1
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.d.ts +16 -12
- package/dist/languageService/callHierarchyProvider.js +125 -41
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +10 -13
- package/dist/languageService/completionProvider.js +21 -10
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.d.ts +23 -9
- package/dist/languageService/definitionProvider.js +116 -91
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.d.ts +8 -3
- package/dist/languageService/documentHighlightProvider.js +17 -6
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +6 -7
- package/dist/languageService/documentSymbolCollector.js +21 -11
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +5 -3
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +4 -3
- package/dist/languageService/hoverProvider.js +30 -36
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/navigationUtils.d.ts +6 -0
- package/dist/languageService/navigationUtils.js +28 -0
- package/dist/languageService/navigationUtils.js.map +1 -0
- package/dist/languageService/quickActions.d.ts +2 -2
- package/dist/languageService/quickActions.js +12 -1
- package/dist/languageService/quickActions.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +13 -12
- package/dist/languageService/referencesProvider.js +102 -16
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.d.ts +17 -0
- package/dist/languageService/renameProvider.js +143 -0
- package/dist/languageService/renameProvider.js.map +1 -0
- package/dist/languageService/signatureHelpProvider.d.ts +19 -23
- package/dist/languageService/signatureHelpProvider.js +111 -18
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +17 -14
- package/dist/localization/localize.js +4 -6
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +5 -6
- package/dist/parser/characterStream.d.ts +3 -3
- package/dist/parser/characterStream.js +12 -12
- package/dist/parser/characterStream.js.map +1 -1
- package/dist/parser/parser.d.ts +1 -1
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +57 -54
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +1 -1
- package/dist/pyrightFileSystem.js +21 -21
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +6 -6
- package/dist/readonlyAugmentedFileSystem.js +28 -28
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +6 -6
- package/dist/server.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +1 -1
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +1 -1
- package/dist/tests/documentSymbolCollector.test.js +3 -3
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/fourslash/fourslash.d.ts +4 -4
- package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js +1 -1
- package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.d.ts +3 -3
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +11 -11
- package/dist/tests/harness/fourslash/testState.js +123 -113
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +8 -8
- package/dist/tests/harness/vfs/filesystem.js +68 -68
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +34 -0
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js +5 -1
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +2 -2
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/testStateUtils.d.ts +2 -2
- package/dist/tests/testStateUtils.js +39 -9
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +8 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +13 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +2 -2
- package/dist/tests/typeEvaluator4.test.js +9 -1
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +4 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +84 -0
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/package.json +4 -4
- package/dist/languageService/indentationUtils.d.ts +0 -16
- package/dist/languageService/indentationUtils.js +0 -727
- package/dist/languageService/indentationUtils.js.map +0 -1
- package/dist/languageService/insertionPointUtils.d.ts +0 -9
- package/dist/languageService/insertionPointUtils.js +0 -132
- package/dist/languageService/insertionPointUtils.js.map +0 -1
- package/dist/languageService/renameModuleProvider.d.ts +0 -65
- package/dist/languageService/renameModuleProvider.js +0 -939
- package/dist/languageService/renameModuleProvider.js.map +0 -1
- package/dist/tests/indentationUtils.ptvs.test.d.ts +0 -1
- package/dist/tests/indentationUtils.ptvs.test.js +0 -324
- package/dist/tests/indentationUtils.ptvs.test.js.map +0 -1
- package/dist/tests/indentationUtils.reindent.test.d.ts +0 -1
- package/dist/tests/indentationUtils.reindent.test.js +0 -372
- package/dist/tests/indentationUtils.reindent.test.js.map +0 -1
- package/dist/tests/indentationUtils.test.d.ts +0 -1
- package/dist/tests/indentationUtils.test.js +0 -502
- package/dist/tests/indentationUtils.test.js.map +0 -1
- package/dist/tests/insertionPointUtils.test.d.ts +0 -1
- package/dist/tests/insertionPointUtils.test.js +0 -154
- package/dist/tests/insertionPointUtils.test.js.map +0 -1
- package/dist/tests/moveSymbol.importAdder.test.d.ts +0 -1
- package/dist/tests/moveSymbol.importAdder.test.js +0 -298
- package/dist/tests/moveSymbol.importAdder.test.js.map +0 -1
- package/dist/tests/moveSymbol.insertion.test.d.ts +0 -1
- package/dist/tests/moveSymbol.insertion.test.js +0 -537
- package/dist/tests/moveSymbol.insertion.test.js.map +0 -1
- package/dist/tests/moveSymbol.misc.test.d.ts +0 -1
- package/dist/tests/moveSymbol.misc.test.js +0 -169
- package/dist/tests/moveSymbol.misc.test.js.map +0 -1
- package/dist/tests/moveSymbol.updateReference.test.d.ts +0 -1
- package/dist/tests/moveSymbol.updateReference.test.js +0 -1057
- package/dist/tests/moveSymbol.updateReference.test.js.map +0 -1
- package/dist/tests/renameModule.folder.test.d.ts +0 -1
- package/dist/tests/renameModule.folder.test.js +0 -229
- package/dist/tests/renameModule.folder.test.js.map +0 -1
- package/dist/tests/renameModule.fromImports.test.d.ts +0 -1
- package/dist/tests/renameModule.fromImports.test.js +0 -790
- package/dist/tests/renameModule.fromImports.test.js.map +0 -1
- package/dist/tests/renameModule.imports.test.d.ts +0 -1
- package/dist/tests/renameModule.imports.test.js +0 -380
- package/dist/tests/renameModule.imports.test.js.map +0 -1
- package/dist/tests/renameModule.misc.test.d.ts +0 -1
- package/dist/tests/renameModule.misc.test.js +0 -615
- package/dist/tests/renameModule.misc.test.js.map +0 -1
- package/dist/tests/renameModule.relativePath.test.d.ts +0 -1
- package/dist/tests/renameModule.relativePath.test.js +0 -231
- package/dist/tests/renameModule.relativePath.test.js.map +0 -1
- package/dist/tests/renameModuleTestUtils.d.ts +0 -4
- package/dist/tests/renameModuleTestUtils.js +0 -76
- 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 {};
|