@zzzen/pyright-internal 1.2.0-dev.20230101 → 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.
- package/dist/analyzer/analyzerFileInfo.js +14 -1
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +3 -3
- package/dist/analyzer/backgroundAnalysisProgram.js +4 -4
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -1
- package/dist/analyzer/checker.js +145 -53
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +26 -11
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +4 -2
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/dataClasses.js +6 -1
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +2 -1
- package/dist/analyzer/importResolver.js +18 -3
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/patternMatching.js +2 -2
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -0
- package/dist/analyzer/program.js +54 -32
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/regions.js +14 -5
- package/dist/analyzer/regions.js.map +1 -1
- package/dist/analyzer/service.d.ts +3 -2
- package/dist/analyzer/service.js +14 -12
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +4 -3
- package/dist/analyzer/sourceFile.js +4 -4
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +2 -2
- package/dist/analyzer/sourceMapper.js +14 -5
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.d.ts +0 -1
- package/dist/analyzer/typeCacheUtils.js +3 -3
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.d.ts +2 -1
- package/dist/analyzer/typeDocStringUtils.js +18 -7
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +494 -423
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +20 -13
- package/dist/analyzer/typeEvaluatorTypes.js +15 -15
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +5 -1
- package/dist/analyzer/typeGuards.js +204 -44
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +8 -0
- package/dist/analyzer/typeUtils.js +15 -4
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +3 -0
- package/dist/analyzer/types.js +10 -2
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +4 -1
- package/dist/backgroundAnalysisBase.js +1 -1
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +5 -2
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/createTypeStub.js +3 -0
- package/dist/commands/createTypeStub.js.map +1 -1
- package/dist/commands/quickActionCommand.js +1 -1
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/collectionUtils.d.ts +1 -0
- package/dist/common/collectionUtils.js +9 -1
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +4 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/diagnosticRules.d.ts +1 -0
- package/dist/common/diagnosticRules.js +1 -0
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -0
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/textEditUtils.d.ts +3 -2
- package/dist/common/textEditUtils.js +11 -10
- package/dist/common/textEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +1 -1
- package/dist/languageServerBase.js +2 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +3 -0
- package/dist/languageService/completionProvider.js +212 -159
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +12 -4
- package/dist/languageService/documentSymbolCollector.js +103 -22
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +6 -0
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +0 -1
- package/dist/languageService/hoverProvider.js +7 -20
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/indentationUtils.d.ts +1 -1
- package/dist/languageService/indentationUtils.js +74 -29
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +5 -4
- package/dist/languageService/referencesProvider.js +15 -10
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameModuleProvider.js +11 -11
- package/dist/languageService/renameModuleProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +5 -1
- package/dist/languageService/tooltipUtils.js +28 -4
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +3 -0
- package/dist/localization/localize.js +3 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +3 -0
- package/dist/parser/tokenizer.js +6 -2
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/tests/checker.test.js +16 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/completions.test.d.ts +1 -0
- package/dist/tests/completions.test.js +331 -0
- package/dist/tests/completions.test.js.map +1 -0
- package/dist/tests/documentSymbolCollector.test.js +86 -5
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/filesystem.test.js +11 -0
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/fourslash/rename.init.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/rename.init.fourslash.js +23 -0
- package/dist/tests/fourslash/rename.init.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/testState.d.ts +2 -2
- package/dist/tests/harness/fourslash/testState.js +10 -7
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
- package/dist/tests/harness/vfs/filesystem.js +5 -1
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/hoverProvider.test.d.ts +1 -0
- package/dist/tests/hoverProvider.test.js +247 -0
- package/dist/tests/hoverProvider.test.js.map +1 -0
- package/dist/tests/indentationUtils.ptvs.test.js +13 -13
- package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
- package/dist/tests/indentationUtils.test.js +68 -10
- package/dist/tests/indentationUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +24 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +5 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +10 -2
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +6 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/workspaceMap.js +1 -3
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +6 -6
@@ -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.
|
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
|
17
|
+
function getNewlineIndentation(parseResults, newlineOffset, preferDedent) {
|
18
18
|
// ex)
|
19
19
|
// a = """
|
20
20
|
// | <= here
|
21
|
-
const strIndent = _tryHandleStringLiterals(parseResults,
|
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,
|
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,
|
36
|
-
return Math.max(_getIndentation(parseResults,
|
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.
|
38
|
+
exports.getNewlineIndentation = getNewlineIndentation;
|
39
39
|
function reindentSpan(parseResults, span, indentation, indentFirstToken = true) {
|
40
40
|
let indentDelta = 0;
|
41
41
|
const texts = [];
|
@@ -113,7 +113,7 @@ function _getIndentation(parseResults, offset, preferDedent) {
|
|
113
113
|
return _getIndentationForNode(parseResults, offset, parseResults.parseTree, node);
|
114
114
|
}
|
115
115
|
const suiteSpan = (0, positionUtils_1.convertTextRangeToRange)(suite, parseResults.tokenizerOutput.lines);
|
116
|
-
if (preferDedent || suiteSpan.start.line === suiteSpan.end.line) {
|
116
|
+
if (preferDedent || (suiteSpan.start.line === suiteSpan.end.line && suite.statements.length > 0)) {
|
117
117
|
// Go one more level up.
|
118
118
|
const outerContainer = (0, insertionPointUtils_1.getContainer)(suite, /*includeSelf*/ false);
|
119
119
|
return _getIndentationForNode(parseResults, offset, outerContainer !== null && outerContainer !== void 0 ? outerContainer : parseResults.parseTree, suite);
|
@@ -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.
|
236
|
+
previousTokenSpan.start.line < tokenSpan.start.line &&
|
238
237
|
previousToken.type !== 2 /* NewLine */) {
|
239
|
-
|
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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"}
|
@@ -5,16 +5,17 @@ import { TypeEvaluator } from '../analyzer/typeEvaluatorTypes';
|
|
5
5
|
import { DocumentRange, Position } from '../common/textRange';
|
6
6
|
import { NameNode, ParseNode } from '../parser/parseNodes';
|
7
7
|
import { ParseResults } from '../parser/parser';
|
8
|
+
import { DocumentSymbolCollectorUseCase } from './documentSymbolCollector';
|
8
9
|
export declare type ReferenceCallback = (locations: DocumentRange[]) => void;
|
9
10
|
export declare class ReferencesResult {
|
10
11
|
readonly requiresGlobalSearch: boolean;
|
11
12
|
readonly nodeAtOffset: ParseNode;
|
12
|
-
readonly
|
13
|
+
readonly symbolNames: string[];
|
13
14
|
readonly declarations: Declaration[];
|
14
15
|
private readonly _reporter?;
|
15
16
|
private readonly _locations;
|
16
17
|
readonly nonImportDeclarations: Declaration[];
|
17
|
-
constructor(requiresGlobalSearch: boolean, nodeAtOffset: ParseNode,
|
18
|
+
constructor(requiresGlobalSearch: boolean, nodeAtOffset: ParseNode, symbolNames: string[], declarations: Declaration[], _reporter?: ReferenceCallback | undefined);
|
18
19
|
get containsOnlyImportDecls(): boolean;
|
19
20
|
get locations(): readonly DocumentRange[];
|
20
21
|
addLocations(...locs: DocumentRange[]): void;
|
@@ -30,7 +31,7 @@ export declare class FindReferencesTreeWalker {
|
|
30
31
|
findReferences(rootNode?: import("../parser/parseNodes").ModuleNode): DocumentRange[];
|
31
32
|
}
|
32
33
|
export declare class ReferencesProvider {
|
33
|
-
static getDeclarationForNode(sourceMapper: SourceMapper, filePath: string, node: NameNode, evaluator: TypeEvaluator, reporter: ReferenceCallback | undefined, token: CancellationToken): ReferencesResult | undefined;
|
34
|
-
static getDeclarationForPosition(sourceMapper: SourceMapper, parseResults: ParseResults, filePath: string, position: Position, evaluator: TypeEvaluator, reporter: ReferenceCallback | undefined, token: CancellationToken): ReferencesResult | undefined;
|
34
|
+
static getDeclarationForNode(sourceMapper: SourceMapper, filePath: string, node: NameNode, evaluator: TypeEvaluator, reporter: ReferenceCallback | undefined, useCase: DocumentSymbolCollectorUseCase, token: CancellationToken): ReferencesResult | undefined;
|
35
|
+
static getDeclarationForPosition(sourceMapper: SourceMapper, parseResults: ParseResults, filePath: string, position: Position, evaluator: TypeEvaluator, reporter: ReferenceCallback | undefined, useCase: DocumentSymbolCollectorUseCase, token: CancellationToken): ReferencesResult | undefined;
|
35
36
|
static addReferences(parseResults: ParseResults, filePath: string, referencesResult: ReferencesResult, includeDeclaration: boolean, evaluator: TypeEvaluator, token: CancellationToken): void;
|
36
37
|
}
|
@@ -30,6 +30,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
31
31
|
exports.ReferencesProvider = exports.FindReferencesTreeWalker = exports.ReferencesResult = void 0;
|
32
32
|
const declaration_1 = require("../analyzer/declaration");
|
33
|
+
const declarationUtils_1 = require("../analyzer/declarationUtils");
|
33
34
|
const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
|
34
35
|
const symbolUtils_1 = require("../analyzer/symbolUtils");
|
35
36
|
const types_1 = require("../analyzer/types");
|
@@ -40,10 +41,10 @@ const positionUtils_1 = require("../common/positionUtils");
|
|
40
41
|
const textRange_1 = require("../common/textRange");
|
41
42
|
const documentSymbolCollector_1 = require("./documentSymbolCollector");
|
42
43
|
class ReferencesResult {
|
43
|
-
constructor(requiresGlobalSearch, nodeAtOffset,
|
44
|
+
constructor(requiresGlobalSearch, nodeAtOffset, symbolNames, declarations, _reporter) {
|
44
45
|
this.requiresGlobalSearch = requiresGlobalSearch;
|
45
46
|
this.nodeAtOffset = nodeAtOffset;
|
46
|
-
this.
|
47
|
+
this.symbolNames = symbolNames;
|
47
48
|
this.declarations = declarations;
|
48
49
|
this._reporter = _reporter;
|
49
50
|
this._locations = [];
|
@@ -62,8 +63,10 @@ class ReferencesResult {
|
|
62
63
|
if (d.node.nodeType === 22 /* ImportFrom */) {
|
63
64
|
return false;
|
64
65
|
}
|
66
|
+
// Extract alias for comparison (symbolNames.some can't know d is for an Alias).
|
67
|
+
const alias = (_a = d.node.alias) === null || _a === void 0 ? void 0 : _a.value;
|
65
68
|
// Check alias and what we are renaming is same thing.
|
66
|
-
if (((
|
69
|
+
if (!symbolNames.some((s) => s === alias)) {
|
67
70
|
return false;
|
68
71
|
}
|
69
72
|
return true;
|
@@ -96,9 +99,9 @@ class FindReferencesTreeWalker {
|
|
96
99
|
this._cancellationToken = _cancellationToken;
|
97
100
|
}
|
98
101
|
findReferences(rootNode = this._parseResults.parseTree) {
|
99
|
-
const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this._referencesResult.
|
102
|
+
const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this._referencesResult.symbolNames, this._referencesResult.declarations, this._evaluator, this._cancellationToken, rootNode,
|
100
103
|
/* treatModuleInImportAndFromImportSame */ true,
|
101
|
-
/* skipUnreachableCode */ false);
|
104
|
+
/* skipUnreachableCode */ false, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Reference);
|
102
105
|
const results = [];
|
103
106
|
for (const result of collector.collect()) {
|
104
107
|
// Is it the same symbol?
|
@@ -117,17 +120,19 @@ class FindReferencesTreeWalker {
|
|
117
120
|
}
|
118
121
|
exports.FindReferencesTreeWalker = FindReferencesTreeWalker;
|
119
122
|
class ReferencesProvider {
|
120
|
-
static getDeclarationForNode(sourceMapper, filePath, node, evaluator, reporter, token) {
|
123
|
+
static getDeclarationForNode(sourceMapper, filePath, node, evaluator, reporter, useCase, token) {
|
121
124
|
(0, cancellationUtils_1.throwIfCancellationRequested)(token);
|
122
125
|
const declarations = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(node, evaluator,
|
123
|
-
/* resolveLocalNames */ false, token, sourceMapper);
|
126
|
+
/* resolveLocalNames */ false, useCase, token, sourceMapper);
|
124
127
|
if (declarations.length === 0) {
|
125
128
|
return undefined;
|
126
129
|
}
|
127
130
|
const requiresGlobalSearch = isVisibleOutside(evaluator, filePath, node, declarations);
|
128
|
-
|
131
|
+
const symbolNames = new Set(declarations.map((d) => (0, declarationUtils_1.getNameFromDeclaration)(d)).filter((n) => !!n));
|
132
|
+
symbolNames.add(node.value);
|
133
|
+
return new ReferencesResult(requiresGlobalSearch, node, [...symbolNames.values()], declarations, reporter);
|
129
134
|
}
|
130
|
-
static getDeclarationForPosition(sourceMapper, parseResults, filePath, position, evaluator, reporter, token) {
|
135
|
+
static getDeclarationForPosition(sourceMapper, parseResults, filePath, position, evaluator, reporter, useCase, token) {
|
131
136
|
(0, cancellationUtils_1.throwIfCancellationRequested)(token);
|
132
137
|
const offset = (0, positionUtils_1.convertPositionToOffset)(position, parseResults.tokenizerOutput.lines);
|
133
138
|
if (offset === undefined) {
|
@@ -141,7 +146,7 @@ class ReferencesProvider {
|
|
141
146
|
if (node.nodeType !== 38 /* Name */) {
|
142
147
|
return undefined;
|
143
148
|
}
|
144
|
-
return this.getDeclarationForNode(sourceMapper, filePath, node, evaluator, reporter, token);
|
149
|
+
return this.getDeclarationForNode(sourceMapper, filePath, node, evaluator, reporter, useCase, token);
|
145
150
|
}
|
146
151
|
static addReferences(parseResults, filePath, referencesResult, includeDeclaration, evaluator, token) {
|
147
152
|
const refTreeWalker = new FindReferencesTreeWalker(parseResults, filePath, referencesResult, includeDeclaration, evaluator, token);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"referencesProvider.js","sourceRoot":"","sources":["../../../src/languageService/referencesProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;AAIH,yDAA2F;AAC3F,2EAA6D;AAG7D,yDAA8D;AAE9D,6CAA0D;AAC1D,mEAA2E;AAC3E,+DAAwD;AACxD,2CAA8C;AAC9C,2DAA2F;AAE3F,mDAAgD;AAGhD,
|
1
|
+
{"version":3,"file":"referencesProvider.js","sourceRoot":"","sources":["../../../src/languageService/referencesProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;AAIH,yDAA2F;AAC3F,mEAAsE;AACtE,2EAA6D;AAG7D,yDAA8D;AAE9D,6CAA0D;AAC1D,mEAA2E;AAC3E,+DAAwD;AACxD,2CAA8C;AAC9C,2DAA2F;AAE3F,mDAAgD;AAGhD,uEAAoG;AAIpG,MAAa,gBAAgB;IAKzB,YACa,oBAA6B,EAC7B,YAAuB,EACvB,WAAqB,EACrB,YAA2B,EACnB,SAA6B;QAJrC,yBAAoB,GAApB,oBAAoB,CAAS;QAC7B,iBAAY,GAAZ,YAAY,CAAW;QACvB,gBAAW,GAAX,WAAW,CAAU;QACrB,iBAAY,GAAZ,YAAY,CAAe;QACnB,cAAS,GAAT,SAAS,CAAoB;QATjC,eAAU,GAAoB,EAAE,CAAC;QAW9C,yDAAyD;QACzD,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;;YACnD,IAAI,CAAC,IAAA,gCAAkB,EAAC,CAAC,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACf;YAED,mEAAmE;YACnE,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC7B,OAAO,KAAK,CAAC;aAChB;YAED,uDAAuD;YACvD,0CAA0C;YAC1C,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,wBAA6B,EAAE;gBAC9C,OAAO,KAAK,CAAC;aAChB;YAED,gFAAgF;YAChF,MAAM,KAAK,GAAG,MAAA,CAAC,CAAC,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAC;YAElC,sDAAsD;YACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;gBACvC,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,uBAAuB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,GAAG,IAAqB;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACnB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACxB;QAED,IAAA,6BAAW,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ;AA5DD,4CA4DC;AAED,MAAa,wBAAwB;IACjC,YACY,aAA2B,EAC3B,SAAiB,EACjB,iBAAmC,EACnC,mBAA4B,EAC5B,UAAyB,EACzB,kBAAqC;QALrC,kBAAa,GAAb,aAAa,CAAc;QAC3B,cAAS,GAAT,SAAS,CAAQ;QACjB,sBAAiB,GAAjB,iBAAiB,CAAkB;QACnC,wBAAmB,GAAnB,mBAAmB,CAAS;QAC5B,eAAU,GAAV,UAAU,CAAe;QACzB,uBAAkB,GAAlB,kBAAkB,CAAmB;IAC9C,CAAC;IAEJ,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;QAClD,MAAM,SAAS,GAAG,IAAI,iDAAuB,CACzC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAClC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EACnC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,kBAAkB,EACvB,QAAQ;QACR,0CAA0C,CAAC,IAAI;QAC/C,yBAAyB,CAAC,KAAK,EAC/B,wDAA8B,CAAC,SAAS,CAC3C,CAAC;QAEF,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YACtC,yBAAyB;YACzB,IAAI,IAAI,CAAC,mBAAmB,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;gBACjF,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,KAAK,EAAE;wBACH,KAAK,EAAE,IAAA,uCAAuB,EAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC;wBAC5F,GAAG,EAAE,IAAA,uCAAuB,EACxB,qBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9B,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAC3C;qBACJ;iBACJ,CAAC,CAAC;aACN;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAzCD,4DAyCC;AAED,MAAa,kBAAkB;IAC3B,MAAM,CAAC,qBAAqB,CACxB,YAA0B,EAC1B,QAAgB,EAChB,IAAc,EACd,SAAwB,EACxB,QAAuC,EACvC,OAAuC,EACvC,KAAwB;QAExB,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,YAAY,GAAG,iDAAuB,CAAC,sBAAsB,CAC/D,IAAI,EACJ,SAAS;QACT,uBAAuB,CAAC,KAAK,EAC7B,OAAO,EACP,KAAK,EACL,YAAY,CACf,CAAC;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAEvF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,yCAAsB,EAAC,CAAC,CAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC/G,CAAC;IAED,MAAM,CAAC,yBAAyB,CAC5B,YAA0B,EAC1B,YAA0B,EAC1B,QAAgB,EAChB,QAAkB,EAClB,SAAwB,EACxB,QAAuC,EACvC,OAAuC,EACvC,KAAwB;QAExB,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,IAAA,uCAAuB,EAAC,QAAQ,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7E,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,SAAS,CAAC;SACpB;QAED,kEAAkE;QAClE,IAAI,IAAI,CAAC,QAAQ,kBAAuB,EAAE;YACtC,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,CAAC,aAAa,CAChB,YAA0B,EAC1B,QAAgB,EAChB,gBAAkC,EAClC,kBAA2B,EAC3B,SAAwB,EACxB,KAAwB;QAExB,MAAM,aAAa,GAAG,IAAI,wBAAwB,CAC9C,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,KAAK,CACR,CAAC;QAEF,gBAAgB,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;IACrE,CAAC;CACJ;AAlFD,gDAkFC;AAED,SAAS,gBAAgB,CACrB,SAAwB,EACxB,eAAuB,EACvB,IAAc,EACd,YAA2B;IAE3B,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5F,IAAI,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC/C,OAAO,KAAK,CAAC;KAChB;IAED,oFAAoF;IACpF,iFAAiF;IACjF,uGAAuG;IACvG,0FAA0F;IAC1F,sFAAsF;IACtF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;QAC9B,yEAAyE;QACzE,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;YAC/B,OAAO,IAAI,CAAC;SACf;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnE,6EAA6E;QAC7E,+DAA+D;QAC/D,IAAI,SAAS,CAAC,QAAQ,oBAAyB,IAAI,SAAS,CAAC,QAAQ,mBAAwB,EAAE;YAC3F,OAAO,IAAI,CAAC;SACf;QAED,wEAAwE;QACxE,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,0CAAE,QAAQ,2BAA+B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACzG,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,SAAS,mBAAmB,CAAC,MAAc,EAAE,cAAc,GAAG,CAAC;QAC3D,IAAI,cAAc,GAAG,6BAAqB,EAAE;YACxC,OAAO,KAAK,CAAC;SAChB;QAED,cAAc,EAAE,CAAC;QAEjB,IAAI,CAAC,IAAA,iCAAmB,EAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,CAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;YAChE,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,KAAK,CAAC;aAChB;YAED,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACf,mBAA2B;gBAC3B,uBAA+B;gBAC/B;oBACI,OAAO,SAAS,CAAC;gBAErB,mBAA2B;gBAC3B;oBACI,OAAO,SAAS,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAErF;oBACI,OAAO,SAAS,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,EAAE,cAAc,CAAC,CAAC;gBAEtF;oBACI,OAAO,KAAK,CAAC;gBAEjB,sBAA8B;gBAC9B,sBAA8B,CAAC,CAAC;oBAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,kBAAuB,EAAE;wBAC3C,OAAO,SAAS,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;qBAC/E;oBAED,8CAA8C;oBAC9C,OAAO,KAAK,CAAC;iBAChB;gBAED;oBACI,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC;aACzB;QACL,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,uEAAuE;IACvE,+CAA+C;IAC/C,SAAS,4BAA4B,CAAC,IAAc,EAAE,cAAsB;QACxE,MAAM,WAAW,GAAG,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChE,QAAQ,WAAW,CAAC,QAAQ,EAAE;YAC1B,oBAAyB;YACzB,sBAA2B,CAAC,CAAC;gBACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC5F,OAAO,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aAC7E;YAED,qBAA0B;YAC1B;gBACI,kDAAkD;gBAClD,OAAO,KAAK,CAAC;YAEjB;gBACI,OAAO,IAAI,CAAC;YAEhB;gBACI,IAAA,mBAAW,EAAC,WAAW,CAAC,CAAC;SAChC;IACL,CAAC;AACL,CAAC"}
|
@@ -167,8 +167,8 @@ class RenameModuleProvider {
|
|
167
167
|
}
|
168
168
|
}
|
169
169
|
_updateSymbolReferences(filePath, parseResults) {
|
170
|
-
var _a, _b, _c
|
171
|
-
const collector = new documentSymbolCollector_1.DocumentSymbolCollector((
|
170
|
+
var _a, _b, _c;
|
171
|
+
const collector = new documentSymbolCollector_1.DocumentSymbolCollector([(0, declarationUtils_1.getNameFromDeclaration)(this._declarations[0]) || ''], this._declarations, this._evaluator, this._token, parseResults.parseTree,
|
172
172
|
/* treatModuleImportAndFromImportSame */ true,
|
173
173
|
/* skipUnreachableCode */ false);
|
174
174
|
// See if we need to insert new import statement
|
@@ -187,7 +187,7 @@ class RenameModuleProvider {
|
|
187
187
|
}
|
188
188
|
if ((0, parseTreeUtils_1.isFromImportName)(nodeFound)) {
|
189
189
|
// ex) from ... import [symbol] ...
|
190
|
-
const fromNode = (
|
190
|
+
const fromNode = (_a = nodeFound.parent) === null || _a === void 0 ? void 0 : _a.parent;
|
191
191
|
const newModuleName = this._getNewModuleName(filePath, fromNode.module.leadingDots > 0,
|
192
192
|
/* isLastPartImportName */ false);
|
193
193
|
if (fromNode.imports.length === 1) {
|
@@ -203,7 +203,7 @@ class RenameModuleProvider {
|
|
203
203
|
// For now, this won't merge absolute and relative path "from import" statement.
|
204
204
|
const importNameInfo = {
|
205
205
|
name: importFromAs.name.value,
|
206
|
-
alias: (
|
206
|
+
alias: (_b = importFromAs.alias) === null || _b === void 0 ? void 0 : _b.value,
|
207
207
|
};
|
208
208
|
this._addResultEdits(this._getTextEditsForNewOrExistingFromImport(filePath, fromNode, parseResults, nameRemoved, importStatements, newModuleName, [importNameInfo]));
|
209
209
|
}
|
@@ -233,8 +233,8 @@ class RenameModuleProvider {
|
|
233
233
|
// getModule().foo
|
234
234
|
continue;
|
235
235
|
}
|
236
|
-
const moduleDecl = (
|
237
|
-
.getDeclarationsForNameNode(moduleName)) === null ||
|
236
|
+
const moduleDecl = (_c = this._evaluator
|
237
|
+
.getDeclarationsForNameNode(moduleName)) === null || _c === void 0 ? void 0 : _c.filter((d) => (0, declaration_1.isAliasDeclaration)(d) &&
|
238
238
|
(d.node.nodeType === 21 /* ImportAs */ || d.node.nodeType === 23 /* ImportFromAs */));
|
239
239
|
if (!moduleDecl || moduleDecl.length === 0) {
|
240
240
|
// ex) from xxx import yyy
|
@@ -307,11 +307,11 @@ class RenameModuleProvider {
|
|
307
307
|
? importAs.module.nameParts[importAs.module.nameParts.length - 1]
|
308
308
|
: importAs.name);
|
309
309
|
const declarations = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(nameToBind, this._evaluator,
|
310
|
-
/* resolveLocalName */ false, this._token);
|
310
|
+
/* resolveLocalName */ false, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Rename, this._token);
|
311
311
|
if (declarations.length === 0) {
|
312
312
|
return false;
|
313
313
|
}
|
314
|
-
const collector = new documentSymbolCollector_1.DocumentSymbolCollector(nameToBind.value, declarations, this._evaluator, this._token, parseResults.parseTree,
|
314
|
+
const collector = new documentSymbolCollector_1.DocumentSymbolCollector([nameToBind.value], declarations, this._evaluator, this._token, parseResults.parseTree,
|
315
315
|
/* treatModuleImportAndFromImportSame */ true,
|
316
316
|
/* skipUnreachableCode */ false);
|
317
317
|
for (const result of collector.collect()) {
|
@@ -330,7 +330,7 @@ class RenameModuleProvider {
|
|
330
330
|
return true;
|
331
331
|
}
|
332
332
|
_renameFolderReferences(filePath, parseResults) {
|
333
|
-
const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this.lastModuleName, this._declarations, this._evaluator, this._token, parseResults.parseTree,
|
333
|
+
const collector = new documentSymbolCollector_1.DocumentSymbolCollector([this.lastModuleName], this._declarations, this._evaluator, this._token, parseResults.parseTree,
|
334
334
|
/* treatModuleImportAndFromImportSame */ true,
|
335
335
|
/* skipUnreachableCode */ false);
|
336
336
|
// We only support simple rename of folder. Change all occurrence of the old folder name
|
@@ -340,7 +340,7 @@ class RenameModuleProvider {
|
|
340
340
|
}
|
341
341
|
}
|
342
342
|
_renameModuleReferences(filePath, parseResults) {
|
343
|
-
const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this.lastModuleName, this._declarations, this._evaluator, this._token, parseResults.parseTree,
|
343
|
+
const collector = new documentSymbolCollector_1.DocumentSymbolCollector([this.lastModuleName], this._declarations, this._evaluator, this._token, parseResults.parseTree,
|
344
344
|
/* treatModuleImportAndFromImportSame */ true,
|
345
345
|
/* skipUnreachableCode */ false);
|
346
346
|
const nameRemoved = new Set();
|
@@ -556,7 +556,7 @@ class RenameModuleProvider {
|
|
556
556
|
}
|
557
557
|
/** TODO: if we get more than 1 decls, flag it as attention needed */
|
558
558
|
const decls = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(nodeFound, this._evaluator,
|
559
|
-
/* resolveLocalName */ false, this._token).filter((d) => (0, declaration_1.isAliasDeclaration)(d));
|
559
|
+
/* resolveLocalName */ false, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Rename, this._token).filter((d) => (0, declaration_1.isAliasDeclaration)(d));
|
560
560
|
if (this._onlyNameChanged) {
|
561
561
|
// Simple case. only name has changed. but not path.
|
562
562
|
// Just replace name to new symbol name.
|