Skip to content

Commit 2cd2a4a

Browse files
committed
Merge pull request microsoft#3477 from tinganho/customTypeGuardFormating
Fixes type predicate formatting
2 parents 29fcd4a + 3ed4309 commit 2cd2a4a

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

src/services/formatting/formattingScanner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ module ts.formatting {
224224
}
225225

226226
function isOnToken(): boolean {
227-
let current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken();
227+
let current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken();
228228
let startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos();
229229
return startPos < endPos && current !== SyntaxKind.EndOfFileToken && !isTrivia(current);
230230
}

src/services/formatting/rules.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ module ts.formatting {
193193
// Insert space after function keyword for anonymous functions
194194
public SpaceAfterAnonymousFunctionKeyword: Rule;
195195
public NoSpaceAfterAnonymousFunctionKeyword: Rule;
196-
196+
197197
// Insert space after @ in decorator
198198
public SpaceBeforeAt: Rule;
199199
public NoSpaceAfterAt: Rule;
@@ -470,8 +470,9 @@ module ts.formatting {
470470
switch (context.contextNode.kind) {
471471
case SyntaxKind.BinaryExpression:
472472
case SyntaxKind.ConditionalExpression:
473+
case SyntaxKind.TypePredicate:
473474
return true;
474-
475+
475476
// equals in binding elements: function foo([[x, y] = [1, 2]])
476477
case SyntaxKind.BindingElement:
477478
// equals in type X = ...

src/services/formatting/tokenRange.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ module ts.formatting {
112112
static AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([SyntaxKind.MultiLineCommentTrivia]));
113113
static Keywords = TokenRange.FromRange(SyntaxKind.FirstKeyword, SyntaxKind.LastKeyword);
114114
static BinaryOperators = TokenRange.FromRange(SyntaxKind.FirstBinaryOperator, SyntaxKind.LastBinaryOperator);
115-
static BinaryKeywordOperators = TokenRange.FromTokens([SyntaxKind.InKeyword, SyntaxKind.InstanceOfKeyword, SyntaxKind.OfKeyword]);
115+
static BinaryKeywordOperators = TokenRange.FromTokens([SyntaxKind.InKeyword, SyntaxKind.InstanceOfKeyword, SyntaxKind.OfKeyword, SyntaxKind.IsKeyword]);
116116
static UnaryPrefixOperators = TokenRange.FromTokens([SyntaxKind.PlusPlusToken, SyntaxKind.MinusMinusToken, SyntaxKind.TildeToken, SyntaxKind.ExclamationToken]);
117117
static UnaryPrefixExpressions = TokenRange.FromTokens([SyntaxKind.NumericLiteral, SyntaxKind.Identifier, SyntaxKind.OpenParenToken, SyntaxKind.OpenBracketToken, SyntaxKind.OpenBraceToken, SyntaxKind.ThisKeyword, SyntaxKind.NewKeyword]);
118118
static UnaryPreincrementExpressions = TokenRange.FromTokens([SyntaxKind.Identifier, SyntaxKind.OpenParenToken, SyntaxKind.ThisKeyword, SyntaxKind.NewKeyword]);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
//// /**/function bar(a: A): a is B {}
4+
5+
goTo.marker();
6+
format.document();
7+
verify.currentLineContentIs("function bar(a: A): a is B { }");

0 commit comments

Comments
 (0)