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 bf83e8f06799519ccfaf316b657b409c236e0723
Author: Josh Tynjala <[email protected]>
AuthorDate: Wed Oct 6 14:43:22 2021 -0700

    formatter: block close before paren close or comma does not require a new 
line
---
 .../org/apache/royale/formatter/FORMATTER.java     |  4 +-
 .../royale/formatter/TestFunctionDeclaration.java  | 50 ++++++++++++++++++++++
 2 files changed, 53 insertions(+), 1 deletion(-)

diff --git a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java 
b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
index 4b542eb..02dec76 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
@@ -899,7 +899,9 @@ class FORMATTER {
                                                                
blockStack.remove(blockStack.size() - 1);
                                                        }
                                                        if (!(item instanceof 
ObjectLiteralBlockStackItem)
-                                                                       && 
(nextToken == null || nextToken.getType() != ASTokenTypes.TOKEN_SEMICOLON)) {
+                                                                       && 
(nextToken == null || (nextToken.getType() != ASTokenTypes.TOKEN_SEMICOLON
+                                                                               
        && nextToken.getType() != ASTokenTypes.TOKEN_PAREN_CLOSE
+                                                                               
        && nextToken.getType() != ASTokenTypes.TOKEN_COMMA))) {
                                                                
numRequiredNewLines = Math.max(numRequiredNewLines, 1);
                                                        }
                                                }
diff --git 
a/formatter/src/test/java/org/apache/royale/formatter/TestFunctionDeclaration.java
 
b/formatter/src/test/java/org/apache/royale/formatter/TestFunctionDeclaration.java
index 50729e2..a15fa8d 100644
--- 
a/formatter/src/test/java/org/apache/royale/formatter/TestFunctionDeclaration.java
+++ 
b/formatter/src/test/java/org/apache/royale/formatter/TestFunctionDeclaration.java
@@ -270,4 +270,54 @@ public class TestFunctionDeclaration extends 
BaseFormatterTests {
                                // @formatter:on
                                result);
        }
+
+       @Test
+       public void testWrappedInParentheses() {
+               FORMATTER formatter = new FORMATTER();
+               formatter.insertSpaceAfterKeywordsInControlFlowStatements = 
true;
+               formatter.placeOpenBraceOnNewLine = true;
+               formatter.insertSpaces = false;
+               String result = formatter.formatText(
+               // @formatter:off
+                       "(function myFunction(...rest)\n" +
+                       "{\n" +
+                       "\tstatement;\n" +
+                       "});",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "(function myFunction(...rest)\n" +
+                               "{\n" +
+                               "\tstatement;\n" +
+                               "});",
+                               // @formatter:on
+                               result);
+       }
+
+       @Test
+       public void testAsArgument() {
+               FORMATTER formatter = new FORMATTER();
+               formatter.insertSpaceAfterKeywordsInControlFlowStatements = 
true;
+               formatter.placeOpenBraceOnNewLine = true;
+               formatter.insertSpaces = false;
+               String result = formatter.formatText(
+               // @formatter:off
+                       "identifier(function myFunction(...rest)\n" +
+                       "{\n" +
+                       "\tstatement;\n" +
+                       "}, 123.4);",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "identifier(function myFunction(...rest)\n" +
+                               "{\n" +
+                               "\tstatement;\n" +
+                               "}, 123.4);",
+                               // @formatter:on
+                               result);
+       }
 }

Reply via email to