This is an automated email from the ASF dual-hosted git repository. joshtynjala pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 285681a5b9e56614a65e300909014c2eeaf3d7c5 Author: Josh Tynjala <[email protected]> AuthorDate: Tue Dec 6 08:44:04 2022 -0800 formatter: fix missing formatting for finally --- .../apache/royale/formatter/ASTokenFormatter.java | 3 +- .../royale/formatter/TestTryCatchStatement.java | 65 ++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java index 56e3be77d..903c0d4f6 100644 --- a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java +++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java @@ -722,7 +722,8 @@ public class ASTokenFormatter extends BaseTokenFormatter { } break; } - case ASTokenTypes.TOKEN_KEYWORD_TRY: { + case ASTokenTypes.TOKEN_KEYWORD_TRY: + case ASTokenTypes.TOKEN_KEYWORD_FINALLY: { blockStack.add(new BlockStackItem(token)); if (!skipWhitespaceBeforeSemicolon) { requiredSpace = true; diff --git a/formatter/src/test/java/org/apache/royale/formatter/TestTryCatchStatement.java b/formatter/src/test/java/org/apache/royale/formatter/TestTryCatchStatement.java index 5f139cb64..9c906dbbd 100644 --- a/formatter/src/test/java/org/apache/royale/formatter/TestTryCatchStatement.java +++ b/formatter/src/test/java/org/apache/royale/formatter/TestTryCatchStatement.java @@ -244,4 +244,69 @@ public class TestTryCatchStatement extends BaseFormatterTests { // @formatter:on result); } + @Test + public void testPlaceOpenBraceOnNewLineWithEmptyBlockWithFinally() { + FormatterSettings settings = new FormatterSettings(); + settings.insertSpaceAfterKeywordsInControlFlowStatements = true; + settings.placeOpenBraceOnNewLine = true; + settings.insertSpaces = false; + ASTokenFormatter formatter = new ASTokenFormatter(settings); + String result = formatter.format("file.as", + // @formatter:off + "try {\n" + + "}\n" + + "catch (e:Object) {\n" + + "}\n" + + "finally {\n" + + "}", + // @formatter:on + problems + ); + assertEquals( + // @formatter:off + "try\n" + + "{\n" + + "}\n" + + "catch (e:Object)\n" + + "{\n" + + "}\n" + + "finally\n" + + "{\n" + + "}", + // @formatter:on + result); + } + + @Test + public void testDisablePlaceOpenBraceOnNewLineWithEmptyBlockWithFinally() { + FormatterSettings settings = new FormatterSettings(); + settings.insertSpaceAfterKeywordsInControlFlowStatements = true; + settings.placeOpenBraceOnNewLine = false; + settings.insertSpaces = false; + ASTokenFormatter formatter = new ASTokenFormatter(settings); + String result = formatter.format("file.as", + // @formatter:off + "try\n" + + "{\n" + + "}\n" + + "catch (e:Object)\n" + + "{\n" + + "}\n" + + "finally\n" + + "{\n" + + "}", + // @formatter:on + problems + ); + assertEquals( + // @formatter:off + "try {\n" + + "}\n" + + "catch (e:Object) {\n" + + "}\n" + + "finally {\n" + + "}", + // @formatter:on + result); + } }
