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