@zzzen/pyright-internal 1.2.0-dev.20230108 → 1.2.0-dev.20230115

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 (93) hide show
  1. package/dist/analyzer/analyzerFileInfo.js +14 -1
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/backgroundAnalysisProgram.d.ts +3 -3
  4. package/dist/analyzer/backgroundAnalysisProgram.js +4 -4
  5. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  6. package/dist/analyzer/checker.d.ts +1 -1
  7. package/dist/analyzer/checker.js +128 -42
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/codeFlowEngine.js +7 -7
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/constraintSolver.js +4 -2
  12. package/dist/analyzer/constraintSolver.js.map +1 -1
  13. package/dist/analyzer/dataClasses.js +6 -1
  14. package/dist/analyzer/dataClasses.js.map +1 -1
  15. package/dist/analyzer/program.js +13 -12
  16. package/dist/analyzer/program.js.map +1 -1
  17. package/dist/analyzer/service.d.ts +3 -2
  18. package/dist/analyzer/service.js +14 -12
  19. package/dist/analyzer/service.js.map +1 -1
  20. package/dist/analyzer/sourceFile.d.ts +3 -2
  21. package/dist/analyzer/sourceFile.js +4 -4
  22. package/dist/analyzer/sourceFile.js.map +1 -1
  23. package/dist/analyzer/typeCacheUtils.d.ts +2 -1
  24. package/dist/analyzer/typeCacheUtils.js +5 -1
  25. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  26. package/dist/analyzer/typeEvaluator.js +395 -330
  27. package/dist/analyzer/typeEvaluator.js.map +1 -1
  28. package/dist/analyzer/typeEvaluatorTypes.d.ts +18 -12
  29. package/dist/analyzer/typeEvaluatorTypes.js +15 -15
  30. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  31. package/dist/analyzer/typeGuards.js +25 -2
  32. package/dist/analyzer/typeGuards.js.map +1 -1
  33. package/dist/analyzer/typeUtils.d.ts +7 -0
  34. package/dist/analyzer/typeUtils.js +10 -3
  35. package/dist/analyzer/typeUtils.js.map +1 -1
  36. package/dist/analyzer/types.d.ts +3 -0
  37. package/dist/analyzer/types.js +10 -2
  38. package/dist/analyzer/types.js.map +1 -1
  39. package/dist/backgroundAnalysisBase.d.ts +4 -1
  40. package/dist/backgroundAnalysisBase.js +1 -1
  41. package/dist/backgroundAnalysisBase.js.map +1 -1
  42. package/dist/backgroundThreadBase.d.ts +5 -2
  43. package/dist/backgroundThreadBase.js.map +1 -1
  44. package/dist/commands/createTypeStub.js +3 -0
  45. package/dist/commands/createTypeStub.js.map +1 -1
  46. package/dist/common/configOptions.d.ts +1 -0
  47. package/dist/common/configOptions.js +4 -0
  48. package/dist/common/configOptions.js.map +1 -1
  49. package/dist/common/diagnosticRules.d.ts +1 -0
  50. package/dist/common/diagnosticRules.js +1 -0
  51. package/dist/common/diagnosticRules.js.map +1 -1
  52. package/dist/common/fileSystem.d.ts +1 -0
  53. package/dist/common/fileSystem.js.map +1 -1
  54. package/dist/languageServerBase.js +2 -2
  55. package/dist/languageServerBase.js.map +1 -1
  56. package/dist/languageService/documentSymbolCollector.d.ts +12 -4
  57. package/dist/languageService/documentSymbolCollector.js +103 -22
  58. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  59. package/dist/languageService/documentSymbolProvider.js +6 -0
  60. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  61. package/dist/languageService/indentationUtils.d.ts +1 -1
  62. package/dist/languageService/indentationUtils.js +73 -28
  63. package/dist/languageService/indentationUtils.js.map +1 -1
  64. package/dist/languageService/referencesProvider.d.ts +5 -4
  65. package/dist/languageService/referencesProvider.js +15 -10
  66. package/dist/languageService/referencesProvider.js.map +1 -1
  67. package/dist/languageService/renameModuleProvider.js +11 -11
  68. package/dist/languageService/renameModuleProvider.js.map +1 -1
  69. package/dist/localization/localize.d.ts +3 -0
  70. package/dist/localization/localize.js +3 -0
  71. package/dist/localization/localize.js.map +1 -1
  72. package/dist/localization/package.nls.en-us.json +3 -0
  73. package/dist/parser/tokenizer.js +6 -2
  74. package/dist/parser/tokenizer.js.map +1 -1
  75. package/dist/tests/checker.test.js +16 -0
  76. package/dist/tests/checker.test.js.map +1 -1
  77. package/dist/tests/documentSymbolCollector.test.js +86 -5
  78. package/dist/tests/documentSymbolCollector.test.js.map +1 -1
  79. package/dist/tests/fourslash/rename.init.fourslash.d.ts +1 -0
  80. package/dist/tests/fourslash/rename.init.fourslash.js +23 -0
  81. package/dist/tests/fourslash/rename.init.fourslash.js.map +1 -0
  82. package/dist/tests/harness/fourslash/testState.d.ts +2 -2
  83. package/dist/tests/harness/fourslash/testState.js +9 -6
  84. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  85. package/dist/tests/indentationUtils.ptvs.test.js +12 -12
  86. package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
  87. package/dist/tests/indentationUtils.test.js +65 -7
  88. package/dist/tests/indentationUtils.test.js.map +1 -1
  89. package/dist/tests/typeEvaluator1.test.js +8 -0
  90. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  91. package/dist/tests/typeEvaluator3.test.js +6 -2
  92. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  93. package/package.json +3 -3
@@ -28,7 +28,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
28
28
  return result;
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.DocumentSymbolCollector = void 0;
31
+ exports.DocumentSymbolCollector = exports.DocumentSymbolCollectorUseCase = void 0;
32
32
  const AnalyzerNodeInfo = __importStar(require("../analyzer/analyzerNodeInfo"));
33
33
  const declaration_1 = require("../analyzer/declaration");
34
34
  const declarationUtils_1 = require("../analyzer/declarationUtils");
@@ -42,38 +42,56 @@ const typeUtils_1 = require("../analyzer/typeUtils");
42
42
  const cancellationUtils_1 = require("../common/cancellationUtils");
43
43
  const collectionUtils_1 = require("../common/collectionUtils");
44
44
  const debug_1 = require("../common/debug");
45
+ var DocumentSymbolCollectorUseCase;
46
+ (function (DocumentSymbolCollectorUseCase) {
47
+ DocumentSymbolCollectorUseCase[DocumentSymbolCollectorUseCase["Rename"] = 0] = "Rename";
48
+ DocumentSymbolCollectorUseCase[DocumentSymbolCollectorUseCase["Reference"] = 1] = "Reference";
49
+ })(DocumentSymbolCollectorUseCase = exports.DocumentSymbolCollectorUseCase || (exports.DocumentSymbolCollectorUseCase = {}));
45
50
  // This walker looks for symbols that are semantically equivalent
46
51
  // to the requested symbol.
47
52
  class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
48
- constructor(_symbolName, _declarations, _evaluator, _cancellationToken, _startingNode, _treatModuleInImportAndFromImportSame = false, _skipUnreachableCode = true) {
53
+ constructor(symbolNames, _declarations, _evaluator, _cancellationToken, _startingNode, _treatModuleInImportAndFromImportSame = false, _skipUnreachableCode = true, _useCase = DocumentSymbolCollectorUseCase.Reference) {
49
54
  super();
50
- this._symbolName = _symbolName;
51
55
  this._declarations = _declarations;
52
56
  this._evaluator = _evaluator;
53
57
  this._cancellationToken = _cancellationToken;
54
58
  this._startingNode = _startingNode;
55
59
  this._treatModuleInImportAndFromImportSame = _treatModuleInImportAndFromImportSame;
56
60
  this._skipUnreachableCode = _skipUnreachableCode;
61
+ this._useCase = _useCase;
57
62
  this._results = [];
58
63
  this._dunderAllNameNodes = new Set();
64
+ this._symbolNames = new Set();
65
+ // Start with the symbols passed in
66
+ symbolNames.forEach((s) => this._symbolNames.add(s));
59
67
  // Don't report strings in __all__ right away, that will
60
68
  // break the assumption on the result ordering.
61
69
  this._setDunderAllNodes(this._startingNode);
70
+ // Check if one of our symbols is __init__ and we
71
+ // have a class declaration in the list and we are
72
+ // computing symbols for references and not rename.
73
+ const initDeclaration = _declarations.find((d) => d.type === 5 /* Function */ && d.node.name.value === '__init__');
74
+ if (initDeclaration && _useCase === DocumentSymbolCollectorUseCase.Reference) {
75
+ const classDeclaration = _declarations.find((d) => d.type === 6 /* Class */);
76
+ if (classDeclaration) {
77
+ this._initFunction = initDeclaration.node;
78
+ this._symbolNames.add(classDeclaration.node.name.value);
79
+ }
80
+ }
62
81
  }
63
- static collectFromNode(node, evaluator, cancellationToken, startingNode, treatModuleInImportAndFromImportSame = false, skipUnreachableCode = true) {
64
- const symbolName = node.value;
82
+ static collectFromNode(node, evaluator, cancellationToken, startingNode, treatModuleInImportAndFromImportSame = false, skipUnreachableCode = true, useCase = DocumentSymbolCollectorUseCase.Reference) {
65
83
  const declarations = this.getDeclarationsForNode(node, evaluator,
66
- /* resolveLocalName */ true, cancellationToken);
84
+ /* resolveLocalName */ true, useCase, cancellationToken);
67
85
  startingNode = startingNode !== null && startingNode !== void 0 ? startingNode : (0, parseTreeUtils_1.getModuleNode)(node);
68
86
  if (!startingNode) {
69
87
  return [];
70
88
  }
71
- const collector = new DocumentSymbolCollector(symbolName, declarations, evaluator, cancellationToken, startingNode, treatModuleInImportAndFromImportSame, skipUnreachableCode);
89
+ const collector = new DocumentSymbolCollector([node.value], declarations, evaluator, cancellationToken, startingNode, treatModuleInImportAndFromImportSame, skipUnreachableCode, useCase);
72
90
  return collector.collect();
73
91
  }
74
- static getDeclarationsForNode(node, evaluator, resolveLocalName, token, sourceMapper) {
92
+ static getDeclarationsForNode(node, evaluator, resolveLocalName, useCase, token, sourceMapper) {
75
93
  (0, cancellationUtils_1.throwIfCancellationRequested)(token);
76
- const declarations = this._getDeclarationsForNode(node, evaluator);
94
+ const declarations = this._getDeclarationsForNode(node, useCase, evaluator);
77
95
  const resolvedDeclarations = [];
78
96
  declarations.forEach((decl) => {
79
97
  const resolvedDecl = evaluator.resolveAliasDeclaration(decl, resolveLocalName);
@@ -103,14 +121,14 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
103
121
  visitName(node) {
104
122
  (0, cancellationUtils_1.throwIfCancellationRequested)(this._cancellationToken);
105
123
  // No need to do any more work if the symbol name doesn't match.
106
- if (node.value !== this._symbolName) {
124
+ if (!this._symbolNames.has(node.value)) {
107
125
  return false;
108
126
  }
109
127
  if (this._declarations.length > 0) {
110
- const declarations = DocumentSymbolCollector._getDeclarationsForNode(node, this._evaluator, this._skipUnreachableCode);
128
+ const declarations = DocumentSymbolCollector._getDeclarationsForNode(node, this._useCase, this._evaluator, this._skipUnreachableCode);
111
129
  if (declarations && declarations.length > 0) {
112
130
  // Does this name share a declaration with the symbol of interest?
113
- if (declarations.some((decl) => this._resultsContainsDeclaration(decl))) {
131
+ if (declarations.some((decl) => this._resultsContainsDeclaration(decl, node))) {
114
132
  this._addResult(node);
115
133
  }
116
134
  }
@@ -132,7 +150,34 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
132
150
  const range = node.nodeType === 38 /* Name */ ? node : (0, parseTreeUtils_1.getStringNodeValueRange)(node);
133
151
  this._results.push({ node, range });
134
152
  }
135
- _resultsContainsDeclaration(declaration) {
153
+ _isDeclarationAllowed(resolvedDecl, referenceNode) {
154
+ var _a;
155
+ // Declaration is allowed if:
156
+ // Matches one of our declarations.
157
+ // and --
158
+ // That match is the right kind.
159
+ const match = this._declarations.find((decl) => (0, declarationUtils_1.areDeclarationsSame)(decl, resolvedDecl, this._treatModuleInImportAndFromImportSame,
160
+ /* skipRangeForAliases */ true));
161
+ if (match) {
162
+ // Special case for __init__ being one of our symbol names and we have a classname as the other.
163
+ if (this._initFunction) {
164
+ // If this is a method, must be an __init__ reference.
165
+ if (match.type === 5 /* Function */) {
166
+ return true;
167
+ }
168
+ else if (match.type === 6 /* Class */) {
169
+ // If this is a class type match, only match on class calls.
170
+ // Meaning something like so:
171
+ // a = ClassA()
172
+ return ((_a = referenceNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 9 /* Call */;
173
+ }
174
+ return false;
175
+ }
176
+ return true;
177
+ }
178
+ return false;
179
+ }
180
+ _resultsContainsDeclaration(declaration, referenceNode) {
136
181
  // Resolve the declaration.
137
182
  const resolvedDecl = this._evaluator.resolveAliasDeclaration(declaration, /* resolveLocalNames */ false);
138
183
  if (!resolvedDecl) {
@@ -140,8 +185,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
140
185
  }
141
186
  // The reference results declarations are already resolved, so we don't
142
187
  // need to call resolveAliasDeclaration on them.
143
- if (this._declarations.some((decl) => (0, declarationUtils_1.areDeclarationsSame)(decl, resolvedDecl, this._treatModuleInImportAndFromImportSame,
144
- /* skipRangeForAliases */ true))) {
188
+ if (this._isDeclarationAllowed(resolvedDecl, referenceNode)) {
145
189
  return true;
146
190
  }
147
191
  // We didn't find the declaration using local-only alias resolution. Attempt
@@ -150,8 +194,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
150
194
  if (!resolvedDeclNonlocal || resolvedDeclNonlocal === resolvedDecl) {
151
195
  return false;
152
196
  }
153
- return this._declarations.some((decl) => (0, declarationUtils_1.areDeclarationsSame)(decl, resolvedDeclNonlocal, this._treatModuleInImportAndFromImportSame,
154
- /* skipRangeForAliases */ true));
197
+ return this._isDeclarationAllowed(resolvedDeclNonlocal, referenceNode);
155
198
  }
156
199
  _getResolveAliasDeclaration(declaration) {
157
200
  // TypeEvaluator.resolveAliasDeclaration only resolve alias in AliasDeclaration in the form of
@@ -185,14 +228,14 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
185
228
  return;
186
229
  }
187
230
  dunderAllInfo.stringNodes.forEach((stringNode) => {
188
- if (stringNode.value !== this._symbolName) {
231
+ if (!this._symbolNames.has(stringNode.value)) {
189
232
  return;
190
233
  }
191
234
  const symbolInScope = moduleScope.lookUpSymbolRecursive(stringNode.value);
192
235
  if (!symbolInScope) {
193
236
  return;
194
237
  }
195
- if (!symbolInScope.symbol.getDeclarations().some((d) => this._resultsContainsDeclaration(d))) {
238
+ if (!symbolInScope.symbol.getDeclarations().some((d) => this._resultsContainsDeclaration(d, stringNode))) {
196
239
  return;
197
240
  }
198
241
  this._dunderAllNameNodes.add(stringNode);
@@ -208,14 +251,48 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
208
251
  }
209
252
  declarations.push(itemToAdd);
210
253
  }
211
- static _getDeclarationsForNode(node, evaluator, skipUnreachableCode = true) {
254
+ static _getDeclarationsForInitNode(node, evaluator) {
212
255
  var _a;
256
+ const parent = ParseTreeUtils.getEnclosingClassOrFunction(node.parent);
257
+ // See what type of __init__ we're at.
258
+ if ((parent === null || parent === void 0 ? void 0 : parent.nodeType) === 10 /* Class */) {
259
+ // This is a def for '__init__'. We should include the class name too.
260
+ return this._getDeclarationsForNonModuleNameNode(parent.name, evaluator);
261
+ }
262
+ else if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 35 /* MemberAccess */ &&
263
+ ((node.parent.leftExpression.nodeType === 9 /* Call */ &&
264
+ node.parent.leftExpression.leftExpression.nodeType === 38 /* Name */ &&
265
+ node.parent.leftExpression.leftExpression.value === 'super') ||
266
+ (node.parent.leftExpression.nodeType === 38 /* Name */ &&
267
+ node.parent.leftExpression.value === 'super'))) {
268
+ // We're on the 'super().__init__' call.
269
+ const decls = evaluator.getDeclarationsForNameNode(node, /* skipUnreachableCode */ true);
270
+ if (decls && decls.length > 0 && decls[0].node.parent) {
271
+ // Parent node of the decl should be the class
272
+ const classNode = ParseTreeUtils.getEnclosingClass(decls[0].node.parent);
273
+ if (classNode) {
274
+ return this._getDeclarationsForNonModuleNameNode(classNode.name, evaluator);
275
+ }
276
+ }
277
+ }
278
+ return [];
279
+ }
280
+ static _getDeclarationsForNode(node, useCase, evaluator, skipUnreachableCode = true) {
281
+ var _a;
282
+ let result = [];
213
283
  // This can handle symbols brought in by wildcard (import *) as long as the declarations that the symbol collector
214
284
  // compares against point to the actual alias declaration, not one that uses local name (ex, import alias)
215
285
  if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 37 /* ModuleName */) {
216
- return this._getDeclarationsForNonModuleNameNode(node, evaluator, skipUnreachableCode);
286
+ result = this._getDeclarationsForNonModuleNameNode(node, evaluator, skipUnreachableCode);
287
+ // Special case for __init__. Might be __init__ on a class.
288
+ if (node.value === '__init__' && useCase === DocumentSymbolCollectorUseCase.Reference && node.parent) {
289
+ result.push(...this._getDeclarationsForInitNode(node, evaluator));
290
+ }
291
+ }
292
+ else {
293
+ result = this._getDeclarationsForModuleNameNode(node, evaluator);
217
294
  }
218
- return this._getDeclarationsForModuleNameNode(node, evaluator);
295
+ return result;
219
296
  }
220
297
  static _getDeclarationsForNonModuleNameNode(node, evaluator, skipUnreachableCode = true) {
221
298
  var _a, _b;
@@ -254,6 +331,10 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
254
331
  if (!classResults) {
255
332
  continue;
256
333
  }
334
+ // Skip init and new as being overloads. They're not really overloads.
335
+ if (methodDecl.node.name.value === '__init__' || methodDecl.node.name.value === '__new__') {
336
+ continue;
337
+ }
257
338
  for (const mroClass of classResults.classType.details.mro) {
258
339
  if ((0, types_1.isInstantiableClass)(mroClass)) {
259
340
  const currentMember = (0, typeUtils_1.lookUpClassMember)(mroClass, methodDecl.node.name.value);
@@ -1 +1 @@
1
- {"version":3,"file":"documentSymbolCollector.js","sourceRoot":"","sources":["../../../src/languageService/documentSymbolCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documentSymbolCollector.js","sourceRoot":"","sources":["../../../src/languageService/documentSymbolCollector.ts"],"names":[],"mappings":"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"}
@@ -194,6 +194,12 @@ function appendDocumentSymbolsRecursive(indexSymbolData, symbolList, token) {
194
194
  if (symbolData.alias) {
195
195
  continue;
196
196
  }
197
+ // It's possible for a name to be '' under certain error
198
+ // conditions (such as a decorator with no associated function
199
+ // or class).
200
+ if (!symbolData.name) {
201
+ continue;
202
+ }
197
203
  const children = [];
198
204
  appendDocumentSymbolsRecursive(symbolData.children, children, token);
199
205
  const symbolInfo = {
@@ -1 +1 @@
1
- {"version":3,"file":"documentSymbolProvider.js","sourceRoot":"","sources":["../../../src/languageService/documentSymbolProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documentSymbolProvider.js","sourceRoot":"","sources":["../../../src/languageService/documentSymbolProvider.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { TextRange } from '../common/textRange';
2
2
  import { TextRangeCollection } from '../common/textRangeCollection';
3
3
  import { ParseResults } from '../parser/parser';
4
4
  import { Token } from '../parser/tokenizerTypes';
5
- export declare function getIndentation(parseResults: ParseResults, offset: number, preferDedent?: boolean): number;
5
+ export declare function getNewlineIndentation(parseResults: ParseResults, newlineOffset: number, preferDedent?: boolean): number;
6
6
  export declare function reindentSpan(parseResults: ParseResults, span: TextRange, indentation: number, indentFirstToken?: boolean): string;
7
7
  export declare function findPreviousNonWhitespaceToken(tokens: TextRangeCollection<Token>, offset: number): Token | undefined;
8
8
  export declare function getIndentationFromText(parseResults: ParseResults, line: number, uptoLineOffset?: number): {
@@ -7,18 +7,18 @@
7
7
  * Provides code to get indentation and re-indent code to the given indentation.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.createIndentationString = exports.getIndentationFromText = exports.findPreviousNonWhitespaceToken = exports.reindentSpan = exports.getIndentation = void 0;
10
+ exports.createIndentationString = exports.getIndentationFromText = exports.findPreviousNonWhitespaceToken = exports.reindentSpan = exports.getNewlineIndentation = void 0;
11
11
  const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
12
12
  const collectionUtils_1 = require("../common/collectionUtils");
13
13
  const positionUtils_1 = require("../common/positionUtils");
14
14
  const textRange_1 = require("../common/textRange");
15
15
  const tokenizer_1 = require("../parser/tokenizer");
16
16
  const insertionPointUtils_1 = require("./insertionPointUtils");
17
- function getIndentation(parseResults, offset, preferDedent) {
17
+ function getNewlineIndentation(parseResults, newlineOffset, preferDedent) {
18
18
  // ex)
19
19
  // a = """
20
20
  // | <= here
21
- const strIndent = _tryHandleStringLiterals(parseResults, offset);
21
+ const strIndent = _tryHandleStringLiterals(parseResults, newlineOffset);
22
22
  if (strIndent !== undefined) {
23
23
  return strIndent;
24
24
  }
@@ -28,14 +28,14 @@ function getIndentation(parseResults, offset, preferDedent) {
28
28
  // or
29
29
  // a = (1 +
30
30
  // | <= here
31
- const exprIndent = _tryHandleMultilineConstructs(parseResults, offset);
31
+ const exprIndent = _tryHandleMultilineConstructs(parseResults, newlineOffset);
32
32
  if (exprIndent !== undefined) {
33
33
  return exprIndent;
34
34
  }
35
- preferDedent = preferDedent !== null && preferDedent !== void 0 ? preferDedent : _shouldDedentAfterKeyword(parseResults, offset);
36
- return Math.max(_getIndentation(parseResults, offset, preferDedent).indentation, 0);
35
+ preferDedent = preferDedent !== null && preferDedent !== void 0 ? preferDedent : _shouldDedentAfterKeyword(parseResults, newlineOffset);
36
+ return Math.max(_getIndentation(parseResults, newlineOffset, preferDedent).indentation, 0);
37
37
  }
38
- exports.getIndentation = getIndentation;
38
+ exports.getNewlineIndentation = getNewlineIndentation;
39
39
  function reindentSpan(parseResults, span, indentation, indentFirstToken = true) {
40
40
  let indentDelta = 0;
41
41
  const texts = [];
@@ -213,6 +213,7 @@ function _getIndentationFromIndentToken(tokens, index) {
213
213
  }
214
214
  function _tryHandleMultilineConstructs(parseResults, offset) {
215
215
  const tokens = parseResults.tokenizerOutput.tokens;
216
+ const lines = parseResults.tokenizerOutput.lines;
216
217
  // Make sure we use next token to get line delta.
217
218
  // This is just to handle how tokenizer associates new lines to which token.
218
219
  // ex) a = 1 + \
@@ -222,8 +223,6 @@ function _tryHandleMultilineConstructs(parseResults, offset) {
222
223
  if (index < 0) {
223
224
  return undefined;
224
225
  }
225
- const lines = parseResults.tokenizerOutput.lines;
226
- const tabSize = _getTabSize(parseResults);
227
226
  for (let i = index; i > 0; i--) {
228
227
  const token = _getTokenAtIndex(tokens, i);
229
228
  if (textRange_1.TextRange.getEnd(token) < offset) {
@@ -234,26 +233,9 @@ function _tryHandleMultilineConstructs(parseResults, offset) {
234
233
  const previousTokenSpan = previousToken ? (0, positionUtils_1.convertTextRangeToRange)(previousToken, lines) : undefined;
235
234
  if (tokenSpan &&
236
235
  previousTokenSpan &&
237
- previousTokenSpan.end.line < tokenSpan.start.line &&
236
+ previousTokenSpan.start.line < tokenSpan.start.line &&
238
237
  previousToken.type !== 2 /* NewLine */) {
239
- const indentationResult = _getIndentation(parseResults, previousToken.start, /* preferDedent */ false);
240
- const currentPosition = (0, positionUtils_1.convertOffsetToPosition)(offset, lines);
241
- // Handle multiline constructs (explicit or implicit)
242
- // ex) def foo \
243
- // | <= here
244
- // or
245
- // i = \
246
- // \
247
- // | <= here
248
- // or
249
- // a = (
250
- // | <= here
251
- const lineDelta = currentPosition.line -
252
- (indentationResult.token
253
- ? (0, positionUtils_1.convertOffsetToPosition)(indentationResult.token.start, lines).line
254
- : previousTokenSpan.start.line);
255
- const indentation = _getFirstNonBlankLineIndentationFromText(parseResults, currentPosition.line, previousTokenSpan.start.line);
256
- return indentation + (lineDelta === 1 ? tabSize : 0);
238
+ return _getIndentationForNextLine(parseResults, previousToken, token, offset);
257
239
  }
258
240
  }
259
241
  return undefined;
@@ -289,6 +271,69 @@ function _tryHandleStringLiterals(parseResults, offset) {
289
271
  const current = (0, positionUtils_1.convertOffsetToPosition)(offset, lines);
290
272
  return _getFirstNonBlankLineIndentationFromText(parseResults, current.line, begin.line);
291
273
  }
274
+ function _getIndentationForNextLine(parseResults, prevToken, nextToken, offset) {
275
+ // Get the last token on the same line as the previous token
276
+ const lines = parseResults.tokenizerOutput.lines;
277
+ const lineIndex = (0, positionUtils_1.convertOffsetToPosition)(prevToken.start, lines).line;
278
+ const line = lines.getItemAt(lineIndex);
279
+ const tabSize = _getTabSize(parseResults);
280
+ let token = prevToken;
281
+ // Go backwards through tokens up until the front of the line
282
+ let whitespaceOnly = true;
283
+ while (token && token.start >= line.start) {
284
+ if (token.type === 13 /* OpenParenthesis */ && whitespaceOnly) {
285
+ const baseIndentation = _getIndentation(parseResults, token.start, false).indentation;
286
+ // In PEP 8, this should be this case here:
287
+ // # Add 4 spaces (an extra level of indentation) to distinguish arguments from the rest.
288
+ // def long_function_name(
289
+ // var_one, var_two, var_three,
290
+ // var_four):
291
+ // print(var_one)
292
+ //
293
+ const node = (0, parseTreeUtils_1.findNodeByOffset)(parseResults.parseTree, token.start - 1);
294
+ const funcNode = (0, parseTreeUtils_1.getFirstAncestorOrSelfOfKind)(node, 28 /* Function */);
295
+ if (funcNode &&
296
+ funcNode.nodeType === 28 /* Function */ &&
297
+ (0, positionUtils_1.convertOffsetToPosition)(funcNode.start, lines).line === lineIndex) {
298
+ return baseIndentation + tabSize * 2;
299
+ }
300
+ // Not inside a function, just need one tab. See this in PEP 8
301
+ // # Hanging indents should add a level.
302
+ // foo = long_function_name(
303
+ // var_one, var_two,
304
+ // var_three, var_four)
305
+ return baseIndentation + tabSize;
306
+ }
307
+ else if (token.type === 13 /* OpenParenthesis */) {
308
+ // In PEP 8, this should be this case here:
309
+ // # Aligned with opening delimiter.
310
+ // def long_function_name(var_one, var_two,
311
+ // var_three, var_four)
312
+ return token.start - line.start + 1; // + 1 is to accomodate for the paranthesis.
313
+ }
314
+ else if (token.type === 15 /* OpenBracket */ && whitespaceOnly) {
315
+ // Special case for openbracket, just use the indentation of the current line plus one tab
316
+ return _getIndentation(parseResults, token.start, false).indentation + tabSize;
317
+ }
318
+ else if (token.type === 15 /* OpenBracket */) {
319
+ return token.start - line.start + 1; // + 1 is to accomodate for the bracket
320
+ }
321
+ else if (token.type === 17 /* OpenCurlyBrace */ && whitespaceOnly) {
322
+ // Special case for opencurlybrace, just use the indentation of the current line plus one tab
323
+ return _getIndentation(parseResults, token.start, false).indentation + tabSize;
324
+ }
325
+ else if (token.type === 17 /* OpenCurlyBrace */) {
326
+ return token.start - line.start + 1; // + 1 is to accomodate for the curlybrace
327
+ }
328
+ else if (!_isWhitespaceToken(token.type)) {
329
+ // Found a non whitespace token before we returned.
330
+ whitespaceOnly = false;
331
+ }
332
+ token = findPreviousNonWhitespaceToken(parseResults.tokenizerOutput.tokens, token.start - 1);
333
+ }
334
+ // No parenthesis found
335
+ return _getFirstNonBlankLineIndentationFromText(parseResults, (0, positionUtils_1.convertOffsetToPosition)(offset, parseResults.tokenizerOutput.lines).line, lineIndex);
336
+ }
292
337
  function _getFirstNonBlankLineIndentationFromText(parseResults, currentLine, endingLine) {
293
338
  endingLine = Math.max(endingLine, 0);
294
339
  for (let i = currentLine; i >= endingLine; i--) {
@@ -1 +1 @@
1
- {"version":3,"file":"indentationUtils.js","sourceRoot":"","sources":["../../../src/languageService/indentationUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indentationUtils.js","sourceRoot":"","sources":["../../../src/languageService/indentationUtils.ts"],"names":[],"mappings":"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"}