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