Skip to content

Commit ebcb86b

Browse files
committed
enable navbar for export defaults
Conflicts: src/services/navigationBar.ts
1 parent 3cea68d commit ebcb86b

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

src/services/navigationBar.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -418,10 +418,10 @@ module ts.NavigationBar {
418418
}
419419

420420
function createFunctionItem(node: FunctionDeclaration) {
421-
if (node.name && node.body && node.body.kind === SyntaxKind.Block) {
421+
if ((node.name || node.flags & NodeFlags.Default) && node.body && node.body.kind === SyntaxKind.Block) {
422422
let childItems = getItemsWorker(sortNodes((<Block>node.body).statements), createChildItem);
423423

424-
return getNavigationBarItem(node.name.text,
424+
return getNavigationBarItem((!node.name && node.flags & NodeFlags.Default) ? "default": node.name.text ,
425425
ts.ScriptElementKind.functionElement,
426426
getNodeModifiers(node),
427427
[getNodeSpan(node)],
@@ -452,11 +452,6 @@ module ts.NavigationBar {
452452
}
453453

454454
function createClassItem(node: ClassDeclaration): ts.NavigationBarItem {
455-
if (!node.name) {
456-
// An export default class may be nameless
457-
return undefined;
458-
}
459-
460455
let childItems: NavigationBarItem[];
461456

462457
if (node.members) {
@@ -475,8 +470,10 @@ module ts.NavigationBar {
475470
childItems = getItemsWorker(sortNodes(nodes), createChildItem);
476471
}
477472

473+
var nodeName = !node.name && (node.flags & NodeFlags.Default) ? "default" : node.name.text;
474+
478475
return getNavigationBarItem(
479-
node.name.text,
476+
nodeName,
480477
ts.ScriptElementKind.classElement,
481478
getNodeModifiers(node),
482479
[getNodeSpan(node)],
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @Filename: a.ts
4+
//// {| "itemName": "default", "kind": "class", "parentName": "" |}export default class { }
5+
6+
// @Filename: b.ts
7+
//// {| "itemName": "C", "kind": "class", "parentName": "" |}export default class C { }
8+
9+
// @Filename: c.ts
10+
//// {| "itemName": "default", "kind": "function", "parentName": "" |}export default function { }
11+
12+
// @Filename: d.ts
13+
//// {| "itemName": "Func", "kind": "function", "parentName": "" |}export default function Func { }
14+
15+
test.markers().forEach(marker => {
16+
goTo.file(marker.fileName);
17+
verify.getScriptLexicalStructureListContains(
18+
marker.data.itemName,
19+
marker.data.kind,
20+
marker.fileName,
21+
marker.data.parentName,
22+
marker.data.isAdditionalRange,
23+
marker.position);
24+
});

0 commit comments

Comments
 (0)