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 a38ac68e7566d65a3513106553d272e82ffa4fca
Author: Josh Tynjala <[email protected]>
AuthorDate: Tue Dec 6 09:08:19 2022 -0800

    formatter: verbatim strings
---
 .../apache/royale/formatter/ASTokenFormatter.java    |  6 ++++--
 .../apache/royale/formatter/TestStringLiteral.java   | 20 ++++++++++++++++++++
 2 files changed, 24 insertions(+), 2 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 0ae559168..3513d2d38 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
@@ -1133,7 +1133,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
                                        return 
formatMultiLineComment(token.getText());
                                }
                                case ASTokenTypes.TOKEN_LITERAL_STRING: {
-                                       return 
formatLiteralString(token.getText());
+                                       return formatLiteralString(token);
                                }
                                case ASTokenTypes.TOKEN_SEMICOLON: {
                                        if (skipFormatting) {
@@ -1232,7 +1232,9 @@ public class ASTokenFormatter extends BaseTokenFormatter {
                return comment;
        }
 
-       private String formatLiteralString(String string) {
+       private String formatLiteralString(IASToken token) {
+               String string = token.getText();
+               System.err.println("*** " + string);
                String charsToEscape = "\b\t\n\f\r\\";
                String escapeChars = "btnfr\\";
                int escapeIndex = -1;
diff --git 
a/formatter/src/test/java/org/apache/royale/formatter/TestStringLiteral.java 
b/formatter/src/test/java/org/apache/royale/formatter/TestStringLiteral.java
index 4e8a85c63..90b64b65c 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestStringLiteral.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestStringLiteral.java
@@ -143,4 +143,24 @@ public class TestStringLiteral extends BaseFormatterTests {
                                // @formatter:on
                                result);
        }
+
+       @Test
+       public void testVerbatimDoubleQuoteWithBackslash() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceAfterKeywordsInControlFlowStatements = true;
+               settings.placeOpenBraceOnNewLine = true;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "@\"\\\";",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+               "@\"\\\";",
+                               // @formatter:on
+                               result);
+       }
 }

Reply via email to