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


The following commit(s) were added to refs/heads/develop by this push:
     new f81548610 ASTokenFormatter: fix missing indent after empty object 
literal when collapse-empty-blocks is true
f81548610 is described below

commit f81548610a8c3aed5885c2e877c67617d6bb39f4
Author: Josh Tynjala <[email protected]>
AuthorDate: Tue Sep 12 13:30:31 2023 -0700

    ASTokenFormatter: fix missing indent after empty object literal when 
collapse-empty-blocks is true
    
    var obj:Object = {} was incorrectly detected as a block
---
 .../apache/royale/formatter/ASTokenFormatter.java  |  3 ++-
 .../apache/royale/formatter/TestObjectLiteral.java | 23 ++++++++++++++++++++++
 2 files changed, 25 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 0aafcecd4..27c5ca2ca 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
@@ -310,7 +310,8 @@ public class ASTokenFormatter extends BaseTokenFormatter {
                                                        BlockStackItem 
stackItem = blockStack.get(blockStack.size() - 1);
                                                        if 
(stackItem.blockDepth <= 1) {
                                                                boolean 
oneLineBlock = prevToken != null
-                                                                               
&& prevToken.getType() == ASTokenTypes.TOKEN_BLOCK_OPEN;
+                                                                               
&& prevToken.getType() == ASTokenTypes.TOKEN_BLOCK_OPEN
+                                                                               
&& !(stackItem instanceof ObjectLiteralBlockStackItem);
                                                                if 
(!settings.collapseEmptyBlocks || !oneLineBlock) {
                                                                        indent 
= decreaseIndent(indent);
                                                                }
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 b7c80dc91..4b6b80c29 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestObjectLiteral.java
@@ -185,4 +185,27 @@ public class TestObjectLiteral extends BaseFormatterTests {
                                // @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);
+       }
 }

Reply via email to