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
