diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index ba09773eb9b..76a0d348531 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -95,6 +95,7 @@ namespace ts.formatting { // Also should not apply to }) rule("SpaceBetweenCloseBraceAndElse", SyntaxKind.CloseBraceToken, SyntaxKind.ElseKeyword, [isNonJsxSameLineTokenContext], RuleAction.InsertSpace), rule("SpaceBetweenCloseBraceAndWhile", SyntaxKind.CloseBraceToken, SyntaxKind.WhileKeyword, [isNonJsxSameLineTokenContext], RuleAction.InsertSpace), + rule("NoSpaceBetweenEmptyBraceBrackets", SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, [isNonJsxSameLineTokenContext, isObjectContext], RuleAction.DeleteSpace), // Add a space after control dec context if the next character is an open bracket ex: 'if (false)[a, b] = [1, 2];' -> 'if (false) [a, b] = [1, 2];' rule("SpaceAfterConditionalClosingParen", SyntaxKind.CloseParenToken, SyntaxKind.OpenBracketToken, [isControlDeclContext], RuleAction.InsertSpace), @@ -269,9 +270,9 @@ namespace ts.formatting { // Insert a space after { and before } in single-line contexts, but remove space from empty object literals {}. rule("SpaceAfterOpenBrace", SyntaxKind.OpenBraceToken, anyToken, [isOptionEnabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), isBraceWrappedContext], RuleAction.InsertSpace), rule("SpaceBeforeCloseBrace", anyToken, SyntaxKind.CloseBraceToken, [isOptionEnabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), isBraceWrappedContext], RuleAction.InsertSpace), + rule("NoSpaceBetweenEmptyBraceBrackets", SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, [isNonJsxSameLineTokenContext, isObjectContext], RuleAction.DeleteSpace), rule("NoSpaceAfterOpenBrace", SyntaxKind.OpenBraceToken, anyToken, [isOptionDisabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), isNonJsxSameLineTokenContext], RuleAction.DeleteSpace), rule("NoSpaceBeforeCloseBrace", anyToken, SyntaxKind.CloseBraceToken, [isOptionDisabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), isNonJsxSameLineTokenContext], RuleAction.DeleteSpace), - rule("NoSpaceBetweenEmptyBraceBrackets", SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, [isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces"), isNonJsxSameLineTokenContext, isObjectContext], RuleAction.DeleteSpace), // Insert a space after opening and before closing empty brace brackets rule("SpaceBetweenEmptyBraceBrackets", SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, [isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces")], RuleAction.InsertSpace), diff --git a/tests/cases/fourslash/formattingNoSpaceBetweenEmptyBraceBrackets.ts b/tests/cases/fourslash/formattingNoSpaceBetweenEmptyBraceBrackets.ts deleted file mode 100644 index bcf57c6731f..00000000000 --- a/tests/cases/fourslash/formattingNoSpaceBetweenEmptyBraceBrackets.ts +++ /dev/null @@ -1,11 +0,0 @@ -/// - -////const a = { }; -////const b = {}; - -format.setOption("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces", false); -format.document(); -verify.currentFileContentIs( -`const a = {}; -const b = {};` -); diff --git a/tests/cases/fourslash/formattingSpaceBetweenEmptyBraceBrackets.ts b/tests/cases/fourslash/formattingSpaceBetweenEmptyBraceBrackets.ts deleted file mode 100644 index 67d369ce1df..00000000000 --- a/tests/cases/fourslash/formattingSpaceBetweenEmptyBraceBrackets.ts +++ /dev/null @@ -1,11 +0,0 @@ -/// - -////const a = { }; -////const b = {}; - -format.setOption("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces", true); -format.document(); -verify.currentFileContentIs( -`const a = { }; -const b = { };` -);