Merge pull request #2368 from Microsoft/exportDefaultLS2

Enable navbar for export defaults
This commit is contained in:
Mohamed Hegazy 2015-03-15 14:05:23 -07:00
commit a02f85d71e
2 changed files with 29 additions and 8 deletions

View File

@ -418,10 +418,10 @@ module ts.NavigationBar {
}
function createFunctionItem(node: FunctionDeclaration) {
if (node.name && node.body && node.body.kind === SyntaxKind.Block) {
if ((node.name || node.flags & NodeFlags.Default) && node.body && node.body.kind === SyntaxKind.Block) {
let childItems = getItemsWorker(sortNodes((<Block>node.body).statements), createChildItem);
return getNavigationBarItem(node.name.text,
return getNavigationBarItem((!node.name && node.flags & NodeFlags.Default) ? "default": node.name.text ,
ts.ScriptElementKind.functionElement,
getNodeModifiers(node),
[getNodeSpan(node)],
@ -452,11 +452,6 @@ module ts.NavigationBar {
}
function createClassItem(node: ClassDeclaration): ts.NavigationBarItem {
if (!node.name) {
// An export default class may be nameless
return undefined;
}
let childItems: NavigationBarItem[];
if (node.members) {
@ -475,8 +470,10 @@ module ts.NavigationBar {
childItems = getItemsWorker(sortNodes(nodes), createChildItem);
}
var nodeName = !node.name && (node.flags & NodeFlags.Default) ? "default" : node.name.text;
return getNavigationBarItem(
node.name.text,
nodeName,
ts.ScriptElementKind.classElement,
getNodeModifiers(node),
[getNodeSpan(node)],

View File

@ -0,0 +1,24 @@
/// <reference path="fourslash.ts" />
// @Filename: a.ts
//// {| "itemName": "default", "kind": "class", "parentName": "" |}export default class { }
// @Filename: b.ts
//// {| "itemName": "C", "kind": "class", "parentName": "" |}export default class C { }
// @Filename: c.ts
//// {| "itemName": "default", "kind": "function", "parentName": "" |}export default function { }
// @Filename: d.ts
//// {| "itemName": "Func", "kind": "function", "parentName": "" |}export default function Func { }
test.markers().forEach(marker => {
goTo.file(marker.fileName);
verify.getScriptLexicalStructureListContains(
marker.data.itemName,
marker.data.kind,
marker.fileName,
marker.data.parentName,
marker.data.isAdditionalRange,
marker.position);
});