From c0c2c4f9a3ebde81390e9002e5ce3fb26529c55a Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 30 Apr 2015 14:57:38 -0700 Subject: [PATCH] Unify more classification code. --- src/services/services.ts | 18 +++++++++++++----- tests/cases/fourslash/fourslash.ts | 8 ++++++-- .../semanticClassificatonTypeAlias.ts | 10 +++++----- ...acticClassificationsFunctionWithComments.ts | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 9ec30b747e9..4b2936f5e6c 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1505,7 +1505,8 @@ module ts { public static interfaceName = "interface name"; public static moduleName = "module name"; public static typeParameterName = "type parameter name"; - public static typeAlias = "type alias name"; + public static typeAliasName = "type alias name"; + public static parameterName = "type alias name"; } export const enum ClassificationType { @@ -1524,7 +1525,7 @@ module ts { interfaceName = 13, moduleName = 14, typeParameterName = 15, - typeAlias = 16, + typeAliasName = 16, parameterName = 17 } @@ -5876,7 +5877,7 @@ module ts { return ClassificationType.enumName; } else if (flags & SymbolFlags.TypeAlias) { - return ClassificationType.typeAlias; + return ClassificationType.typeAliasName; } else if (meaningAtPosition & SemanticMeaning.Type) { if (flags & SymbolFlags.Interface) { @@ -5942,7 +5943,8 @@ module ts { case ClassificationType.interfaceName: return ClassificationTypeNames.interfaceName; case ClassificationType.moduleName: return ClassificationTypeNames.moduleName; case ClassificationType.typeParameterName: return ClassificationTypeNames.typeParameterName; - case ClassificationType.typeAlias: return ClassificationTypeNames.typeAlias; + case ClassificationType.typeAliasName: return ClassificationTypeNames.typeAliasName; + case ClassificationType.parameterName: return ClassificationTypeNames.parameterName; } } @@ -6147,6 +6149,12 @@ module ts { return ClassificationType.moduleName; } return; + case SyntaxKind.Parameter: + if ((token.parent).name === token) { + return ClassificationType.parameterName; + } + return; + } } @@ -6669,7 +6677,7 @@ module ts { case ClassificationType.interfaceName: case ClassificationType.moduleName: case ClassificationType.typeParameterName: - case ClassificationType.typeAlias: + case ClassificationType.typeAliasName: case ClassificationType.text: case ClassificationType.parameterName: default: diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 8ade18fc200..867f7b16641 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -651,8 +651,12 @@ 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); + export function parameterName(text: string, position?: number): { classificationType: string; text: string; textSpan?: TextSpan } { + return getClassification("parameterName", text, position); + } + + export function typeAliasName(text: string, position?: number): { classificationType: string; text: string; textSpan?: TextSpan } { + return getClassification("typeAliasName", text, position); } function getClassification(type: string, text: string, position?: number) { diff --git a/tests/cases/fourslash/semanticClassificatonTypeAlias.ts b/tests/cases/fourslash/semanticClassificatonTypeAlias.ts index 726588a2c9e..188a09afcbc 100644 --- a/tests/cases/fourslash/semanticClassificatonTypeAlias.ts +++ b/tests/cases/fourslash/semanticClassificatonTypeAlias.ts @@ -7,9 +7,9 @@ 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) + c.typeAliasName("Alias", test.marker("0").position), + c.typeAliasName("Alias", test.marker("1").position), + c.typeAliasName("Alias", test.marker("2").position), + c.typeAliasName("Alias", test.marker("3").position), + c.typeAliasName("Alias", test.marker("4").position) ); \ No newline at end of file diff --git a/tests/cases/fourslash/syntacticClassificationsFunctionWithComments.ts b/tests/cases/fourslash/syntacticClassificationsFunctionWithComments.ts index eeaf4a7033f..f7e5b7355a7 100644 --- a/tests/cases/fourslash/syntacticClassificationsFunctionWithComments.ts +++ b/tests/cases/fourslash/syntacticClassificationsFunctionWithComments.ts @@ -19,7 +19,7 @@ var firstCommentText = var c = classification; verify.syntacticClassificationsAre( c.comment(firstCommentText), - c.keyword("function"), c.text("myFunction"), c.punctuation("("), c.comment("/* x */"), c.text("x"), c.punctuation(":"), c.keyword("any"), c.punctuation(")"), c.punctuation("{"), + c.keyword("function"), c.text("myFunction"), c.punctuation("("), c.comment("/* x */"), c.parameterName("x"), c.punctuation(":"), c.keyword("any"), c.punctuation(")"), c.punctuation("{"), c.keyword("var"), c.text("y"), c.operator("="), c.text("x"), c.operator("?"), c.text("x"), c.operator("++"), c.operator(":"), c.operator("++"), c.text("x"), c.punctuation(";"), c.punctuation("}"), c.comment("// end of file")); \ No newline at end of file