From c57fea2a0d736b5051ec72bdeb70ace6ac02ca2e Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Thu, 5 Jan 2023 23:30:11 +0200 Subject: [PATCH] fix(52050): The space before satisfies after an array expression is removed when auto-formatting the statements (#52053) --- src/services/formatting/rules.ts | 6 +++++- tests/cases/fourslash/formatSatisfiesExpression.ts | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/formatSatisfiesExpression.ts diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index fc7a3a0b28a..075bfdcc627 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -57,7 +57,11 @@ export function getAllRules(): RuleSpec[] { const anyTokenIncludingEOF = tokenRangeFrom([...allTokens, SyntaxKind.EndOfFileToken]); const keywords = tokenRangeFromRange(SyntaxKind.FirstKeyword, SyntaxKind.LastKeyword); const binaryOperators = tokenRangeFromRange(SyntaxKind.FirstBinaryOperator, SyntaxKind.LastBinaryOperator); - const binaryKeywordOperators = [SyntaxKind.InKeyword, SyntaxKind.InstanceOfKeyword, SyntaxKind.OfKeyword, SyntaxKind.AsKeyword, SyntaxKind.IsKeyword]; + const binaryKeywordOperators = [ + SyntaxKind.InKeyword, SyntaxKind.InstanceOfKeyword, + SyntaxKind.OfKeyword, SyntaxKind.AsKeyword, + SyntaxKind.IsKeyword, SyntaxKind.SatisfiesKeyword, + ]; const unaryPrefixOperators = [SyntaxKind.PlusPlusToken, SyntaxKind.MinusMinusToken, SyntaxKind.TildeToken, SyntaxKind.ExclamationToken]; const unaryPrefixExpressions = [ SyntaxKind.NumericLiteral, SyntaxKind.BigIntLiteral, SyntaxKind.Identifier, SyntaxKind.OpenParenToken, diff --git a/tests/cases/fourslash/formatSatisfiesExpression.ts b/tests/cases/fourslash/formatSatisfiesExpression.ts new file mode 100644 index 00000000000..6da9f263c71 --- /dev/null +++ b/tests/cases/fourslash/formatSatisfiesExpression.ts @@ -0,0 +1,14 @@ +/// + +////type Foo = "a" | "b" | "c"; +////const foo1 = ["a"] satisfies Foo[]; +////const foo2 = ["a"]satisfies Foo[]; +////const foo3 = ["a"] satisfies Foo[]; + +format.document(); +verify.currentFileContentIs( +`type Foo = "a" | "b" | "c"; +const foo1 = ["a"] satisfies Foo[]; +const foo2 = ["a"] satisfies Foo[]; +const foo3 = ["a"] satisfies Foo[];` +);