add classification for type aliases

This commit is contained in:
Vladimir Matveev
2014-12-05 17:32:36 -08:00
parent 57e1cf984a
commit f30bb7ec35
3 changed files with 23 additions and 0 deletions

View File

@@ -1291,6 +1291,7 @@ module ts {
public static interfaceName = "interface name";
public static moduleName = "module name";
public static typeParameterName = "type parameter name";
public static typeAlias = "type alias name";
}
enum MatchKind {
@@ -4946,6 +4947,9 @@ module ts {
else if (flags & SymbolFlags.Enum) {
return ClassificationTypeNames.enumName;
}
else if (flags & SymbolFlags.TypeAlias) {
return ClassificationTypeNames.typeAlias;
}
else if (meaningAtPosition & SemanticMeaning.Type) {
if (flags & SymbolFlags.Interface) {
return ClassificationTypeNames.interfaceName;

View File

@@ -639,6 +639,10 @@ module FourSlashInterface {
return getClassification("typeParameterName", text, position);
}
export function typeAlias(text: string, position?: number): { classificationType: string; text: string; textSpan?: TextSpan } {
return getClassification("typeAlias", text, position);
}
function getClassification(type: string, text: string, position?: number) {
return {
classificationType: type,

View File

@@ -0,0 +1,15 @@
/// <reference path="fourslash.ts"/>
////type /*0*/Alias = number
////var x: /*1*/Alias;
////var y = </*2*/Alias>{};
////function f(x: /*3*/Alias): /*4*/Alias { return undefined; }
var c = classification;
verify.semanticClassificationsAre(
c.typeAlias("Alias", test.marker("0").position),
c.typeAlias("Alias", test.marker("1").position),
c.typeAlias("Alias", test.marker("2").position),
c.typeAlias("Alias", test.marker("3").position),
c.typeAlias("Alias", test.marker("4").position)
);