Fixes the quickInfo and completion list details for let and adds test cases for let and const

Handles #1083
This commit is contained in:
Sheetal Nandi
2014-11-12 14:23:59 -08:00
parent a390afb4f5
commit 49ae5c7117
7 changed files with 124 additions and 2 deletions

View File

@@ -238,6 +238,9 @@ module ts.NavigationBar {
if (node.flags & NodeFlags.Const) {
return createItem(node, getTextOfNode((<VariableDeclaration>node).name), ts.ScriptElementKind.constantElement);
}
else if (node.flags & NodeFlags.Let) {
return createItem(node, getTextOfNode((<VariableDeclaration>node).name), ts.ScriptElementKind.letElement);
}
else {
return createItem(node, getTextOfNode((<VariableDeclaration>node).name), ts.ScriptElementKind.variableElement);
}

View File

@@ -1225,6 +1225,8 @@ module ts {
static alias = "alias";
static constantElement = "constant";
static letElement = "let";
}
export class ScriptElementKindModifier {
@@ -2857,9 +2859,12 @@ module ts {
if (isFirstDeclarationOfSymbolParameter(symbol)) {
return ScriptElementKind.parameterElement;
}
else if(symbol.valueDeclaration && symbol.valueDeclaration.flags & NodeFlags.Const) {
else if (symbol.valueDeclaration && symbol.valueDeclaration.flags & NodeFlags.Const) {
return ScriptElementKind.constantElement;
}
else if (forEach(symbol.declarations, declaration => declaration.flags & NodeFlags.Let)) {
return ScriptElementKind.letElement;
}
return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localVariableElement : ScriptElementKind.variableElement;
}
if (flags & SymbolFlags.Function) return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localFunctionElement : ScriptElementKind.functionElement;
@@ -2915,7 +2920,11 @@ module ts {
case SyntaxKind.InterfaceDeclaration: return ScriptElementKind.interfaceElement;
case SyntaxKind.TypeAliasDeclaration: return ScriptElementKind.typeElement;
case SyntaxKind.EnumDeclaration: return ScriptElementKind.enumElement;
case SyntaxKind.VariableDeclaration: return node.flags & NodeFlags.Const ? ScriptElementKind.constantElement: ScriptElementKind.variableElement;
case SyntaxKind.VariableDeclaration: return node.flags & NodeFlags.Const ?
ScriptElementKind.constantElement :
node.flags & NodeFlags.Let ?
ScriptElementKind.letElement :
ScriptElementKind.variableElement;
case SyntaxKind.FunctionDeclaration: return ScriptElementKind.functionElement;
case SyntaxKind.GetAccessor: return ScriptElementKind.memberGetAccessorElement;
case SyntaxKind.SetAccessor: return ScriptElementKind.memberSetAccessorElement;