From 64edd07330aaa2b348c7ae399dd047718262e778 Mon Sep 17 00:00:00 2001 From: idango10 <75563024+idango10@users.noreply.github.com> Date: Mon, 4 Mar 2024 19:48:48 +0200 Subject: [PATCH] fix(57590): [Formatting] Remove spaces between `...` and type name in tuple spread (#57604) --- src/services/formatting/rules.ts | 3 +++ .../formatRemoveSpaceBetweenDotDotDotAndTypeName.ts | 12 ++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 tests/cases/fourslash/formatRemoveSpaceBetweenDotDotDotAndTypeName.ts diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index 73a6d2428ca..39a94b032fd 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -398,6 +398,9 @@ export function getAllRules(): RuleSpec[] { // Remove extra space between for and await rule("SpaceBetweenForAndAwaitKeyword", SyntaxKind.ForKeyword, SyntaxKind.AwaitKeyword, [isNonJsxSameLineTokenContext], RuleAction.InsertSpace), + // Remove extra spaces between ... and type name in tuple spread + rule("SpaceBetweenDotDotDotAndTypeName", SyntaxKind.DotDotDotToken, typeNames, [isNonJsxSameLineTokenContext], RuleAction.DeleteSpace), + // Add a space between statements. All keywords except (do,else,case) has open/close parens after them. // So, we have a rule to add a space for [),Any], [do,Any], [else,Any], and [case,Any] rule( diff --git a/tests/cases/fourslash/formatRemoveSpaceBetweenDotDotDotAndTypeName.ts b/tests/cases/fourslash/formatRemoveSpaceBetweenDotDotDotAndTypeName.ts new file mode 100644 index 00000000000..59fede78d7a --- /dev/null +++ b/tests/cases/fourslash/formatRemoveSpaceBetweenDotDotDotAndTypeName.ts @@ -0,0 +1,12 @@ +/// + +//// let a: [... any[]]; +//// let b: [... number[]]; +//// let c: [... string[]]; + +format.document(); +verify.currentFileContentIs( + `let a: [...any[]]; +let b: [...number[]]; +let c: [...string[]];` +);