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