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 6944fdceb6ae3623356edf294a0b79b7926b50d8
Author: Josh Tynjala <[email protected]>
AuthorDate: Thu Sep 14 15:25:56 2023 -0700

    formatter: object literal inside parentheses, and more tests
---
 .../apache/royale/formatter/ASTokenFormatter.java  |  11 +-
 .../apache/royale/formatter/TestArrayLiteral.java  |  24 ++++
 .../apache/royale/formatter/TestObjectLiteral.java |  33 +++++-
 ...TestObjectLiteral.java => TestParentheses.java} | 123 ++++-----------------
 4 files changed, 80 insertions(+), 111 deletions(-)

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 a76a383a2..4fad031fc 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
@@ -314,18 +314,17 @@ public class ASTokenFormatter extends BaseTokenFormatter {
                                                                        && 
(!settings.collapseEmptyBlocks || !oneLineBlock);
                                                        if (needsNewLine) {
                                                                
numRequiredNewLines = Math.max(numRequiredNewLines, 1);
-                                                       } else {
-                                                               if 
(oneLineBlock && settings.collapseEmptyBlocks) {
-                                                                       
numRequiredNewLines = 0;
-                                                               }
-                                                               requiredSpace = 
true;
+                                                       } else if (oneLineBlock 
&& settings.collapseEmptyBlocks) {
+                                                               
numRequiredNewLines = 0;
                                                        }
+                                                       requiredSpace = true;
                                                } else {
                                                        // probably an object 
literal
                                                        blockStack.add(new 
ObjectLiteralBlockStackItem(token));
                                                        // we will indent, but 
after appending the token
+
+                                                       requiredSpace = 
prevTokenNotComment == null || prevTokenNotComment.getType() != 
ASTokenTypes.TOKEN_PAREN_OPEN;
                                                }
-                                               requiredSpace = true;
                                                break;
                                        }
                                        case ASTokenTypes.TOKEN_BLOCK_CLOSE: {
diff --git 
a/formatter/src/test/java/org/apache/royale/formatter/TestArrayLiteral.java 
b/formatter/src/test/java/org/apache/royale/formatter/TestArrayLiteral.java
index 68f130346..a78d51eaa 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestArrayLiteral.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestArrayLiteral.java
@@ -259,4 +259,28 @@ public class TestArrayLiteral extends BaseFormatterTests {
                                // @formatter:on
                                result);
        }
+
+       @Test
+       public void testMultipleEmptyArrayLiteralAssignments() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = false;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "var arr1:Array = [];\n" +
+                       "var arr2:Array = [];\n" +
+                       "var arr3:Array = [];",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                       "var arr1:Array = [];\n" +
+                       "var arr2:Array = [];\n" +
+                       "var arr3:Array = [];",
+                               // @formatter:on
+                               result);
+       }
 }
\ No newline at end of file
diff --git 
a/formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java 
b/formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java
index 4b6b80c29..5e59cd8d9 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java
@@ -187,7 +187,32 @@ public class TestObjectLiteral extends BaseFormatterTests {
        }
 
        @Test
-       public void testEmptyWithCollapseEmptyBlocks() {
+       public void testMultipleEmptyObjectLiteralAssignments() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = false;
+               settings.insertSpaces = false;
+               settings.collapseEmptyBlocks = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "var obj1:Object = {};\n" +
+                       "var obj2:Object = {};\n" +
+                       "var obj3:Object = {};",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                       "var obj1:Object = {};\n" +
+                       "var obj2:Object = {};\n" +
+                       "var obj3:Object = {};",
+                               // @formatter:on
+                               result);
+       }
+
+       @Test
+       public void 
testMultipleEmptyObjectLiteralAssignmentsWithCollapseEmptyBlocks() {
                FormatterSettings settings = new FormatterSettings();
                settings.insertSpaceBeforeAndAfterBinaryOperators = true;
                settings.placeOpenBraceOnNewLine = false;
@@ -197,14 +222,16 @@ public class TestObjectLiteral extends BaseFormatterTests 
{
                String result = formatter.format("file.as",
                // @formatter:off
                        "var obj1:Object = {};\n" +
-                       "var obj2:Object = {};",
+                       "var obj2:Object = {};\n" +
+                       "var obj3:Object = {};",
                        // @formatter:on
                        problems
                );
                assertEquals(
                // @formatter:off
                        "var obj1:Object = {};\n" +
-                       "var obj2:Object = {};",
+                       "var obj2:Object = {};\n" +
+                       "var obj3:Object = {};",
                                // @formatter:on
                                result);
        }
diff --git 
a/formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java 
b/formatter/src/test/java/org/apache/royale/formatter/TestParentheses.java
similarity index 53%
copy from 
formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java
copy to formatter/src/test/java/org/apache/royale/formatter/TestParentheses.java
index 4b6b80c29..c66fb5bf2 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestParentheses.java
@@ -23,9 +23,9 @@ import static org.junit.Assert.assertEquals;
 
 import org.junit.Test;
 
-public class TestObjectLiteral extends BaseFormatterTests {
+public class TestParentheses extends BaseFormatterTests {
        @Test
-       public void testEmpty() {
+       public void testIdentifier() {
                FormatterSettings settings = new FormatterSettings();
                settings.insertSpaceBeforeAndAfterBinaryOperators = true;
                settings.placeOpenBraceOnNewLine = false;
@@ -33,19 +33,19 @@ public class TestObjectLiteral extends BaseFormatterTests {
                ASTokenFormatter formatter = new ASTokenFormatter(settings);
                String result = formatter.format("file.as",
                // @formatter:off
-                       "var obj:Object = {};",
+                       "(identifier);",
                        // @formatter:on
                        problems
                );
                assertEquals(
                // @formatter:off
-                               "var obj:Object = {};",
+                               "(identifier);",
                                // @formatter:on
                                result);
        }
 
        @Test
-       public void testOneFieldOnSingleLine() {
+       public void testNested() {
                FormatterSettings settings = new FormatterSettings();
                settings.insertSpaceBeforeAndAfterBinaryOperators = true;
                settings.placeOpenBraceOnNewLine = false;
@@ -53,19 +53,19 @@ public class TestObjectLiteral extends BaseFormatterTests {
                ASTokenFormatter formatter = new ASTokenFormatter(settings);
                String result = formatter.format("file.as",
                // @formatter:off
-                       "var obj:Object = {one: 123.4};",
+                       "((identifier));",
                        // @formatter:on
                        problems
                );
                assertEquals(
                // @formatter:off
-                               "var obj:Object = {one: 123.4};",
+                               "((identifier));",
                                // @formatter:on
                                result);
        }
 
        @Test
-       public void testOneFieldOnMultipleLines() {
+       public void testLineBreaks() {
                FormatterSettings settings = new FormatterSettings();
                settings.insertSpaceBeforeAndAfterBinaryOperators = true;
                settings.placeOpenBraceOnNewLine = false;
@@ -73,25 +73,23 @@ public class TestObjectLiteral extends BaseFormatterTests {
                ASTokenFormatter formatter = new ASTokenFormatter(settings);
                String result = formatter.format("file.as",
                // @formatter:off
-                       "var obj:Object = {\n" +
-                       "\tone: 123.4\n" +
-                       "};\n" +
-                       "statement;",
+                       "(\n" +
+                       "\t\tidentifier\n" + 
+                       "\t);",
                        // @formatter:on
                        problems
                );
                assertEquals(
                // @formatter:off
-                               "var obj:Object = {\n" +
-                               "\t\tone: 123.4\n" +
-                               "\t};\n" +
-                               "statement;",
+                               "(\n" + 
+                               "\t\tidentifier\n" +
+                               "\t);",
                                // @formatter:on
                                result);
        }
 
        @Test
-       public void testMultipleFields() {
+       public void testObjectLiteral() {
                FormatterSettings settings = new FormatterSettings();
                settings.insertSpaceBeforeAndAfterBinaryOperators = true;
                settings.placeOpenBraceOnNewLine = false;
@@ -99,19 +97,19 @@ public class TestObjectLiteral extends BaseFormatterTests {
                ASTokenFormatter formatter = new ASTokenFormatter(settings);
                String result = formatter.format("file.as",
                // @formatter:off
-                       "var obj:Object = {one: 123.4, two: \"hello world\"};",
+                       "({});",
                        // @formatter:on
                        problems
                );
                assertEquals(
                // @formatter:off
-                               "var obj:Object = {one: 123.4, two: \"hello 
world\"};",
+                               "({});",
                                // @formatter:on
                                result);
        }
 
        @Test
-       public void testMultipleFieldsOnMultipleLines1() {
+       public void testArrayLiteral() {
                FormatterSettings settings = new FormatterSettings();
                settings.insertSpaceBeforeAndAfterBinaryOperators = true;
                settings.placeOpenBraceOnNewLine = false;
@@ -119,93 +117,14 @@ public class TestObjectLiteral extends BaseFormatterTests 
{
                ASTokenFormatter formatter = new ASTokenFormatter(settings);
                String result = formatter.format("file.as",
                // @formatter:off
-                       "var obj:Object = {\n" +
-                       "\tone: 123.4,\n" +
-                       "\ttwo: \"hello world\"\n" +
-                       "};\n" +
-                       "statement;",
+                       "([]);",
                        // @formatter:on
                        problems
                );
                assertEquals(
                // @formatter:off
-                               "var obj:Object = {\n" +
-                               "\t\tone: 123.4,\n" +
-                               "\t\ttwo: \"hello world\"\n" +
-                               "\t};\n" +
-                               "statement;",
+                               "([]);",
                                // @formatter:on
                                result);
        }
-
-       @Test
-       public void testMultipleFieldsOnMultipleLines2() {
-               FormatterSettings settings = new FormatterSettings();
-               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
-               settings.placeOpenBraceOnNewLine = false;
-               settings.insertSpaces = false;
-               ASTokenFormatter formatter = new ASTokenFormatter(settings);
-               String result = formatter.format("file.as",
-               // @formatter:off
-                       "var obj:Object = {\n" +
-                       "\tone: 123.4,\n" +
-                       "\ttwo: \"hello world\", three: true\n" +
-                       "};\n" +
-                       "statement;",
-                       // @formatter:on
-                       problems
-               );
-               assertEquals(
-               // @formatter:off
-                               "var obj:Object = {\n" +
-                               "\t\tone: 123.4,\n" +
-                               "\t\ttwo: \"hello world\", three: true\n" +
-                               "\t};\n" +
-                               "statement;",
-                               // @formatter:on
-                               result);
-       }
-
-       @Test
-       public void testStringField() {
-               FormatterSettings settings = new FormatterSettings();
-               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
-               settings.placeOpenBraceOnNewLine = false;
-               settings.insertSpaces = false;
-               ASTokenFormatter formatter = new ASTokenFormatter(settings);
-               String result = formatter.format("file.as",
-               // @formatter:off
-                       "var obj:Object = {\"string-field\": 123.4};",
-                       // @formatter:on
-                       problems
-               );
-               assertEquals(
-               // @formatter:off
-                               "var obj:Object = {\"string-field\": 123.4};",
-                               // @formatter:on
-                               result);
-       }
-
-       @Test
-       public void testEmptyWithCollapseEmptyBlocks() {
-               FormatterSettings settings = new FormatterSettings();
-               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
-               settings.placeOpenBraceOnNewLine = false;
-               settings.insertSpaces = false;
-               settings.collapseEmptyBlocks = true;
-               ASTokenFormatter formatter = new ASTokenFormatter(settings);
-               String result = formatter.format("file.as",
-               // @formatter:off
-                       "var obj1:Object = {};\n" +
-                       "var obj2:Object = {};",
-                       // @formatter:on
-                       problems
-               );
-               assertEquals(
-               // @formatter:off
-                       "var obj1:Object = {};\n" +
-                       "var obj2:Object = {};",
-                               // @formatter:on
-                               result);
-       }
-}
+}
\ No newline at end of file

Reply via email to