Limited identifying identifiers after dots to keywords.

This commit is contained in:
Daniel Rosenwasser
2014-09-26 09:46:14 -07:00
parent a3b59f88c1
commit 4ed6a80c9c
3 changed files with 11 additions and 5 deletions
+4
View File
@@ -648,6 +648,10 @@ module ts {
return SyntaxKind.FirstKeyword <= token && token <= SyntaxKind.LastKeyword;
}
export function isTrivia(token: SyntaxKind) {
return SyntaxKind.FirstTriviaToken <= token && token <= SyntaxKind.LastTriviaToken;
}
export function isModifier(token: SyntaxKind): boolean {
switch (token) {
case SyntaxKind.PublicKeyword:
+1 -5
View File
@@ -4556,7 +4556,7 @@ module ts {
token = SyntaxKind.RegularExpressionLiteral;
}
}
else if (lastNonTriviaToken === SyntaxKind.DotToken) {
else if (lastNonTriviaToken === SyntaxKind.DotToken && isKeyword(token)) {
token = SyntaxKind.Identifier;
}
@@ -4611,10 +4611,6 @@ module ts {
result.entries.push({ length: length, classification: classification });
}
}
function isTrivia(token: SyntaxKind) {
return SyntaxKind.FirstTriviaToken <= token && token <= SyntaxKind.LastTriviaToken;
}
}
function isBinaryExpressionOperatorToken(token: SyntaxKind): boolean {
@@ -189,6 +189,12 @@ describe('Colorization', function () {
identifier("var"));
});
it("correctly classifies a string literal after a dot", function () {
test("a.\"var\"",
ts.EndOfLineState.Start,
stringLiteral("\"var\""));
});
it("correctly classifies a keyword after a dot separated by comment trivia", function () {
test("a./*hello world*/ var",
ts.EndOfLineState.Start,