From 65f33a2e92a55d2c920ee5cf3d005ac2ad882fbb Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Fri, 3 Nov 2023 15:02:20 +0200 Subject: [PATCH] fix(55998): Ability to Place Open Brace On New Line For Try Catch Blocks (#56021) --- src/services/formatting/rules.ts | 2 +- .../cases/fourslash/formatIfTryCatchBlocks.ts | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/formatIfTryCatchBlocks.ts diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index 6931a6e5b44..7c6f4bfe85c 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -91,7 +91,7 @@ export function getAllRules(): RuleSpec[] { const typeScriptOpenBraceLeftTokenRange = tokenRangeFrom([SyntaxKind.Identifier, SyntaxKind.MultiLineCommentTrivia, SyntaxKind.ClassKeyword, SyntaxKind.ExportKeyword, SyntaxKind.ImportKeyword]); // Place a space before open brace in a control flow construct - const controlOpenBraceLeftTokenRange = tokenRangeFrom([SyntaxKind.CloseParenToken, SyntaxKind.MultiLineCommentTrivia, SyntaxKind.DoKeyword, SyntaxKind.TryKeyword, SyntaxKind.FinallyKeyword, SyntaxKind.ElseKeyword]); + const controlOpenBraceLeftTokenRange = tokenRangeFrom([SyntaxKind.CloseParenToken, SyntaxKind.MultiLineCommentTrivia, SyntaxKind.DoKeyword, SyntaxKind.TryKeyword, SyntaxKind.FinallyKeyword, SyntaxKind.ElseKeyword, SyntaxKind.CatchKeyword]); // These rules are higher in priority than user-configurable const highPriorityCommonRules = [ diff --git a/tests/cases/fourslash/formatIfTryCatchBlocks.ts b/tests/cases/fourslash/formatIfTryCatchBlocks.ts new file mode 100644 index 00000000000..e9ce3109a51 --- /dev/null +++ b/tests/cases/fourslash/formatIfTryCatchBlocks.ts @@ -0,0 +1,28 @@ +/// + +////try { +////} +////catch { +////} +//// +////try { +////} +////catch (e) { +////} + +format.setOption("PlaceOpenBraceOnNewLineForControlBlocks", true); +format.document(); +verify.currentFileContentIs( +`try +{ +} +catch +{ +} + +try +{ +} +catch (e) +{ +}`);