External module items now display their base file name in quotes.

This commit is contained in:
Daniel Rosenwasser 2014-09-19 13:54:34 -07:00
parent 7bcab8b616
commit 01d93b22ba
4 changed files with 36 additions and 10 deletions

View File

@ -521,6 +521,20 @@ module ts {
return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension;
}
var supportedExtensions = [".d.ts", ".ts", ".js"];
export function removeFileExtension(path: string): string {
for (var i = 0; i < supportedExtensions.length; i++) {
var ext = supportedExtensions[i];
if (fileExtensionIs(path, ext)) {
return path.substr(0, path.length - ext.length);
}
}
return path;
}
export interface ObjectAllocator {
getNodeConstructor(kind: SyntaxKind): new () => Node;
getSymbolConstructor(): new (flags: SymbolFlags, name: string) => Symbol;

View File

@ -17,20 +17,13 @@ module ts {
return node;
}
var moduleExtensions = [".d.ts", ".ts", ".js"];
interface ReferenceComments {
referencedFiles: FileReference[];
amdDependencies: string[];
}
export function getModuleNameFromFilename(filename: string) {
for (var i = 0; i < moduleExtensions.length; i++) {
var ext = moduleExtensions[i];
var len = filename.length - ext.length;
if (len > 0 && filename.substr(len) === ext) return filename.substr(0, len);
}
return filename;
return removeFileExtension(filename);
}
export function getSourceFileOfNode(node: Node): SourceFile {

View File

@ -195,7 +195,7 @@ module ts {
case SyntaxKind.VariableDeclaration:
var variableDeclaration = <VariableDeclaration>node;
return basicChildItem(node, variableDeclaration.name.text, ts.ScriptElementKind.variableElement);
case SyntaxKind.Constructor:
return basicChildItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement);
}
@ -286,7 +286,11 @@ module ts {
}
hasGlobalNode = true;
return new ts.NavigationBarItem("<global>",
var rootName = isExternalModule(node) ?
"\"" + getBaseFilename(removeFileExtension(normalizePath(node.filename))) + "\"" :
"<global>"
return new ts.NavigationBarItem(rootName,
ts.ScriptElementKind.moduleElement,
ts.ScriptElementKindModifier.none,
[getNodeSpan(node)],

View File

@ -0,0 +1,15 @@
/// <reference path="fourslash.ts"/>
// @Filename: test/file.ts
////{| "itemName": "Bar", "kind": "class" |}export class Bar {
//// {| "itemName": "s", "kind": "property", "parentName": "Bar" |}public s: string;
////}
////{| "itemName": "\"file\"", "kind": "module" |}
////{| "itemName": "x", "kind": "var", "parentName": "\"file\"" |}
////export var x: number;
test.markers().forEach((marker) => {
verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
});
verify.getScriptLexicalStructureListCount(4); // external module node + variable in module + class + property