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 aa775145095fccc63dc77b3d70eaffa4565a9cd3
Author: Josh Tynjala <[email protected]>
AuthorDate: Tue Dec 6 08:46:57 2022 -0800

    formatter: nullish coalescing operator
---
 .../apache/royale/formatter/ASTokenFormatter.java    |  2 ++
 .../royale/formatter/TestLogicalOperators.java       | 20 ++++++++++++++++++++
 2 files changed, 22 insertions(+)

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 903c0d4f6..0ae559168 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
@@ -385,6 +385,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
                                        case 
ASTokenTypes.TOKEN_OPERATOR_BITWISE_XOR:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_LOGICAL_AND:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_LOGICAL_OR:
+                                       case 
ASTokenTypes.TOKEN_OPERATOR_NULLISH_COALESCING:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_PLUS_ASSIGNMENT:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_MINUS_ASSIGNMENT:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_MULTIPLICATION_ASSIGNMENT:
@@ -869,6 +870,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
                                        case 
ASTokenTypes.TOKEN_OPERATOR_BITWISE_XOR:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_LOGICAL_AND:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_LOGICAL_OR:
+                                       case 
ASTokenTypes.TOKEN_OPERATOR_NULLISH_COALESCING:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_PLUS_ASSIGNMENT:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_MINUS_ASSIGNMENT:
                                        case 
ASTokenTypes.TOKEN_OPERATOR_MULTIPLICATION_ASSIGNMENT:
diff --git 
a/formatter/src/test/java/org/apache/royale/formatter/TestLogicalOperators.java 
b/formatter/src/test/java/org/apache/royale/formatter/TestLogicalOperators.java
index dcf6e03e1..2839ddc2e 100644
--- 
a/formatter/src/test/java/org/apache/royale/formatter/TestLogicalOperators.java
+++ 
b/formatter/src/test/java/org/apache/royale/formatter/TestLogicalOperators.java
@@ -123,4 +123,24 @@ public class TestLogicalOperators extends 
BaseFormatterTests {
                                // @formatter:on
                                result);
        }
+
+       @Test
+       public void testNullishCoalescingOperator() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = true;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "a??b;",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "a ?? b;",
+                               // @formatter:on
+                               result);
+       }
 }

Reply via email to