You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2021/10/06 18:00:26 UTC

[royale-compiler] 03/07: formatter: fix missing new line after single line comment

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 256a0456f8c95b2a039937c7913ecf8d85584b0b
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Wed Oct 6 10:25:50 2021 -0700

    formatter: fix missing new line after single line comment
---
 .../org/apache/royale/formatter/FORMATTER.java     |  6 +++++-
 .../royale/formatter/TestSingleLineComment.java    | 25 ++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
index 6eed027..a93fc3f 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
@@ -550,7 +550,11 @@ class FORMATTER {
 					break;
 				}
 				if (!blockOpenPending) {
-					numRequiredNewLines = Math.max(numRequiredNewLines, countNewLinesInExtra(token));
+					int newLinesInExtra = countNewLinesInExtra(token);
+					if(prevToken != null && prevToken.getType() == ASTokenTypes.HIDDEN_TOKEN_SINGLE_LINE_COMMENT) {
+						newLinesInExtra++;
+					}
+					numRequiredNewLines = Math.max(numRequiredNewLines, newLinesInExtra);
 					if (!indentedStatement && numRequiredNewLines > 0 && prevTokenNotComment != null
 							&& prevTokenNotComment.getType() != ASTokenTypes.TOKEN_SEMICOLON
 							&& prevTokenNotComment.getType() != ASTokenTypes.TOKEN_BLOCK_CLOSE
diff --git a/formatter/src/test/java/org/apache/royale/formatter/TestSingleLineComment.java b/formatter/src/test/java/org/apache/royale/formatter/TestSingleLineComment.java
index 7d752be..98f8202 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestSingleLineComment.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestSingleLineComment.java
@@ -106,6 +106,31 @@ public class TestSingleLineComment extends BaseFormatterTests {
 	}
 
 	@Test
+	public void testWithExtraLineBeforeStatement() {
+		FORMATTER formatter = new FORMATTER();
+		formatter.insertSpaceAfterKeywordsInControlFlowStatements = true;
+		formatter.placeOpenBraceOnNewLine = true;
+		formatter.insertSpaces = false;
+		formatter.insertSpaceAtStartOfLineComment = true;
+		formatter.maxPreserveNewLines = 2;
+		String result = formatter.formatText(
+		// @formatter:off
+			"// this is a comment\n" +
+			"\n" +
+			"statement;",
+			// @formatter:on
+			problems
+		);
+		assertEquals(
+		// @formatter:off
+				"// this is a comment\n" +
+				"\n" +
+				"statement;",
+				// @formatter:on
+				result);
+	}
+
+	@Test
 	public void testOnLineAfterStatement() {
 		FORMATTER formatter = new FORMATTER();
 		formatter.insertSpaceAfterKeywordsInControlFlowStatements = true;