From 11d51867f2a1f4885af0807d4b0a848c56c70ddf Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Tue, 24 May 2016 05:58:14 -0700 Subject: [PATCH] Include enums in childItems in navigation bar --- src/services/navigationBar.ts | 3 +++ .../navigationBarItemsInsideMethodsAndConstructors.ts | 6 +++--- tests/cases/fourslash/navigationBarItemsItems.ts | 4 ++-- tests/cases/fourslash/navigationBarItemsSymbols3.ts | 4 ++-- tests/cases/fourslash/server/navbar01.ts | 4 ++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index 2cd93d3856c2f..cb81c398cb86d 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -314,6 +314,9 @@ namespace ts.NavigationBar { case SyntaxKind.IndexSignature: return createItem(node, "[]", ts.ScriptElementKind.indexSignatureElement); + case SyntaxKind.EnumDeclaration: + return createItem(node, getTextOfNode((node).name), ts.ScriptElementKind.enumElement); + case SyntaxKind.EnumMember: return createItem(node, getTextOfNode((node).name), ts.ScriptElementKind.memberVariableElement); diff --git a/tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts b/tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts index 22ae359c73788..89b05dc6b0777 100644 --- a/tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts +++ b/tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts @@ -9,7 +9,7 @@ //// {| "itemName": "LocalInterfaceInConstrcutor", "kind": "interface", "parentName": ""|}interface LocalInterfaceInConstrcutor { //// } //// -//// enum LocalEnumInConstructor { +//// {| "itemName": "LocalEnumInConstructor", "kind": "enum", "parentName": "constructor"|}enum LocalEnumInConstructor { //// {| "itemName": "LocalEnumMemberInConstructor", "kind": "property", "parentName": "LocalEnumInConstructor"|}LocalEnumMemberInConstructor, //// } //// } @@ -24,7 +24,7 @@ //// {| "itemName": "LocalInterfaceInMethod", "kind": "interface", "parentName": ""|}interface LocalInterfaceInMethod { //// } //// -//// {| "itemName": "LocalEnumInMethod", "kind": "enum", "parentName": ""|}enum LocalEnumInMethod { +//// {| "itemName": "LocalEnumInMethod", "kind": "enum", "parentName": "method"|}enum LocalEnumInMethod { //// {| "itemName": "LocalEnumMemberInMethod", "kind": "property", "parentName": "LocalEnumInMethod"|}LocalEnumMemberInMethod, //// } //// } @@ -39,4 +39,4 @@ test.markers().forEach((marker) => { }); // no other items -verify.navigationBarCount(17); +verify.navigationBarCount(19); diff --git a/tests/cases/fourslash/navigationBarItemsItems.ts b/tests/cases/fourslash/navigationBarItemsItems.ts index 10dd8beb8f3a8..5cae68b11945a 100644 --- a/tests/cases/fourslash/navigationBarItemsItems.ts +++ b/tests/cases/fourslash/navigationBarItemsItems.ts @@ -32,7 +32,7 @@ //// {| "itemName": "getOrigin", "kind": "method", "parentName": "Point" |}private static getOrigin() { return Point.origin;} //// } //// -//// {| "itemName": "Values", "kind": "enum", "parentName": "" |}enum Values { +//// {| "itemName": "Values", "kind": "enum", "parentName": "Shapes" |}enum Values { //// value1, //// {| "itemName": "value2", "kind": "property", "parentName": "Values" |}value2, //// value3, @@ -49,4 +49,4 @@ test.markers().forEach((marker) => { } }); -verify.navigationBarCount(23); +verify.navigationBarCount(24); diff --git a/tests/cases/fourslash/navigationBarItemsSymbols3.ts b/tests/cases/fourslash/navigationBarItemsSymbols3.ts index 5677c0b6301bd..23451588ecdde 100644 --- a/tests/cases/fourslash/navigationBarItemsSymbols3.ts +++ b/tests/cases/fourslash/navigationBarItemsSymbols3.ts @@ -1,6 +1,6 @@ /// -////{| "itemName": "E", "kind": "enum", "parentName": "" |} +////{| "itemName": "E", "kind": "enum", "parentName": "" |} ////enum E { //// // No nav bar entry for this //// [Symbol.isRegExp] = 0 @@ -10,4 +10,4 @@ test.markers().forEach(marker => { verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.navigationBarCount(test.markers().length); \ No newline at end of file +verify.navigationBarCount(3); // and E appearing both toplevel and under \ No newline at end of file diff --git a/tests/cases/fourslash/server/navbar01.ts b/tests/cases/fourslash/server/navbar01.ts index ef6ae650effc6..e4e2b699be5f3 100644 --- a/tests/cases/fourslash/server/navbar01.ts +++ b/tests/cases/fourslash/server/navbar01.ts @@ -32,7 +32,7 @@ //// {| "itemName": "getOrigin", "kind": "method", "parentName": "Point" |}private static getOrigin() { return Point.origin;} //// } //// -//// {| "itemName": "Values", "kind": "enum", "parentName": "" |}enum Values { +//// {| "itemName": "Values", "kind": "enum", "parentName": "Shapes" |}enum Values { //// value1, //// {| "itemName": "value2", "kind": "property", "parentName": "Values" |}value2, //// value3, @@ -49,4 +49,4 @@ test.markers().forEach((marker) => { } }); -verify.navigationBarCount(23); +verify.navigationBarCount(24);