mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-08 08:14:51 -06:00
Co-authored-by: Vitaly Turovsky <vital2580@icloud.com>
This commit is contained in:
parent
e6ceba0841
commit
2d031ce160
@ -2394,7 +2394,7 @@ export function getCompletionEntriesFromSymbols(
|
||||
includeSymbol = false
|
||||
): UniqueNameSet {
|
||||
const start = timestamp();
|
||||
const variableOrParameterDeclaration = getVariableOrParameterDeclaration(contextToken);
|
||||
const variableOrParameterDeclaration = getVariableOrParameterDeclaration(contextToken, location);
|
||||
const useSemicolons = probablyUsesSemicolons(sourceFile);
|
||||
const typeChecker = program.getTypeChecker();
|
||||
// Tracks unique names.
|
||||
@ -5464,14 +5464,20 @@ function isModuleSpecifierMissingOrEmpty(specifier: ModuleReference | Expression
|
||||
return !tryCast(isExternalModuleReference(specifier) ? specifier.expression : specifier, isStringLiteralLike)?.text;
|
||||
}
|
||||
|
||||
function getVariableOrParameterDeclaration(contextToken: Node | undefined) {
|
||||
function getVariableOrParameterDeclaration(contextToken: Node | undefined, location: Node) {
|
||||
if (!contextToken) return;
|
||||
|
||||
const declaration = findAncestor(contextToken, node =>
|
||||
const possiblyParameterDeclaration = findAncestor(contextToken, node =>
|
||||
isFunctionBlock(node) || isArrowFunctionBody(node) || isBindingPattern(node)
|
||||
? "quit"
|
||||
: isVariableDeclaration(node) || ((isParameter(node) || isTypeParameterDeclaration(node)) && !isIndexSignatureDeclaration(node.parent)));
|
||||
return declaration as ParameterDeclaration | TypeParameterDeclaration | VariableDeclaration | undefined;
|
||||
: ((isParameter(node) || isTypeParameterDeclaration(node)) && !isIndexSignatureDeclaration(node.parent)));
|
||||
|
||||
const possiblyVariableDeclaration = findAncestor(location, node =>
|
||||
isFunctionBlock(node) || isArrowFunctionBody(node) || isBindingPattern(node)
|
||||
? "quit"
|
||||
: isVariableDeclaration(node));
|
||||
|
||||
return (possiblyParameterDeclaration || possiblyVariableDeclaration) as ParameterDeclaration | TypeParameterDeclaration | VariableDeclaration | undefined;
|
||||
}
|
||||
|
||||
function isArrowFunctionBody(node: Node) {
|
||||
|
||||
@ -1,6 +1,12 @@
|
||||
///<reference path="fourslash.ts" />
|
||||
|
||||
////const c = "s";
|
||||
/////**/
|
||||
/////*1*/
|
||||
////const d = 1
|
||||
////d/*2*/
|
||||
////const e = 1
|
||||
/////*3*/
|
||||
|
||||
verify.completions({ marker: "", includes: { name: "c", text: 'const c: "s"', kind: "const" } });
|
||||
verify.completions({ marker: ["1"], includes: { name: "c", text: 'const c: "s"', kind: "const" } });
|
||||
verify.completions({ marker: ["2"], includes: { name: "d", text: 'const d: 1', kind: "const" } });
|
||||
verify.completions({ marker: ["3"], includes: { name: "e", text: 'const e: 1', kind: "const" } });
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user