From eabafc4b09908b6f4d90a6eb5b8c8dcc277d6f46 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Tue, 17 May 2016 07:55:25 -0700 Subject: [PATCH] Add type aliases to navigation bar --- src/services/navigationBar.ts | 13 +++++++++++++ .../cases/fourslash/navigationBarItemsTypeAlias.ts | 6 ++++++ 2 files changed, 19 insertions(+) create mode 100644 tests/cases/fourslash/navigationBarItemsTypeAlias.ts diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index d83d0738ec84c..0efdaf70954f8 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -176,6 +176,7 @@ namespace ts.NavigationBar { break; case SyntaxKind.EnumDeclaration: case SyntaxKind.InterfaceDeclaration: + case SyntaxKind.TypeAliasDeclaration: topLevelNodes.push(node); break; @@ -422,6 +423,9 @@ namespace ts.NavigationBar { case SyntaxKind.FunctionDeclaration: return createFunctionItem(node); + + case SyntaxKind.TypeAliasDeclaration: + return createTypeAliasItem(node); } return undefined; @@ -474,6 +478,15 @@ namespace ts.NavigationBar { return undefined; } + function createTypeAliasItem(node: TypeAliasDeclaration): ts.NavigationBarItem { + return getNavigationBarItem(node.name.text, + ts.ScriptElementKind.typeElement, + getNodeModifiers(node), + [getNodeSpan(node)], + [], + getIndent(node)); + } + function createMemberFunctionLikeItem(node: MethodDeclaration | ConstructorDeclaration): ts.NavigationBarItem { if (node.body && node.body.kind === SyntaxKind.Block) { let childItems = getItemsWorker(sortNodes((node.body).statements), createChildItem); diff --git a/tests/cases/fourslash/navigationBarItemsTypeAlias.ts b/tests/cases/fourslash/navigationBarItemsTypeAlias.ts new file mode 100644 index 0000000000000..50923256533e3 --- /dev/null +++ b/tests/cases/fourslash/navigationBarItemsTypeAlias.ts @@ -0,0 +1,6 @@ +/// + +////type T = number | string; + +verify.navigationBarCount(1); +verify.navigationBarContains("T", "type");