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);
+       }
 }

Reply via email to