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 22:31:39 UTC
[royale-compiler] 02/04: formatter: fix extra spaces before and
after * type
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 5b05a53b65a90e2f1ef3846b216e3a4118fa0a76
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Wed Oct 6 14:24:47 2021 -0700
formatter: fix extra spaces before and after * type
---
.../org/apache/royale/formatter/FORMATTER.java | 29 +++++++++++++++--
.../royale/formatter/TestVariableDeclaration.java | 38 ++++++++++++++++++++++
2 files changed, 65 insertions(+), 2 deletions(-)
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 51cddb5..4b542eb 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
@@ -685,7 +685,6 @@ class FORMATTER {
case ASTokenTypes.TOKEN_OPERATOR_GREATER_THAN:
case ASTokenTypes.TOKEN_OPERATOR_LESS_THAN_EQUALS:
case ASTokenTypes.TOKEN_OPERATOR_GREATER_THAN_EQUALS:
- case ASTokenTypes.TOKEN_OPERATOR_STAR:
case ASTokenTypes.TOKEN_OPERATOR_DIVISION:
case ASTokenTypes.TOKEN_OPERATOR_MODULO:
case ASTokenTypes.TOKEN_OPERATOR_BITWISE_AND:
@@ -714,6 +713,15 @@ class FORMATTER {
}
break;
}
+ case ASTokenTypes.TOKEN_OPERATOR_STAR: {
+ boolean isAnyType = checkTokenBeforeAnyType(prevTokenNotComment);
+ boolean isAnyVectorType = checkTokensForAnyVectorType(prevTokenNotComment, nextTokenNotComment);
+ if (!isAnyType && !isAnyVectorType && insertSpaceBeforeAndAfterBinaryOperators
+ && !skipWhitespaceBeforeSemicolon) {
+ requiredSpace = true;
+ }
+ break;
+ }
case ASTokenTypes.TOKEN_OPERATOR_PLUS:
case ASTokenTypes.TOKEN_OPERATOR_MINUS: {
boolean isUnary = checkTokenBeforeUnaryOperator(prevTokenNotComment);
@@ -1113,7 +1121,6 @@ class FORMATTER {
case ASTokenTypes.TOKEN_OPERATOR_GREATER_THAN:
case ASTokenTypes.TOKEN_OPERATOR_LESS_THAN_EQUALS:
case ASTokenTypes.TOKEN_OPERATOR_GREATER_THAN_EQUALS:
- case ASTokenTypes.TOKEN_OPERATOR_STAR:
case ASTokenTypes.TOKEN_OPERATOR_DIVISION:
case ASTokenTypes.TOKEN_OPERATOR_MODULO:
case ASTokenTypes.TOKEN_OPERATOR_TERNARY:
@@ -1143,6 +1150,15 @@ class FORMATTER {
}
break;
}
+ case ASTokenTypes.TOKEN_OPERATOR_STAR: {
+ boolean isAnyType = checkTokenBeforeAnyType(prevTokenNotComment);
+ boolean isAnyVectorType = checkTokensForAnyVectorType(prevTokenNotComment, nextTokenNotComment);
+ if (!isAnyType && !isAnyVectorType && insertSpaceBeforeAndAfterBinaryOperators
+ && !skipWhitespaceBeforeSemicolon) {
+ requiredSpace = true;
+ }
+ break;
+ }
case ASTokenTypes.TOKEN_OPERATOR_PLUS:
case ASTokenTypes.TOKEN_OPERATOR_MINUS: {
boolean isUnary = checkTokenBeforeUnaryOperator(prevTokenNotComment);
@@ -1355,6 +1371,15 @@ class FORMATTER {
return builder.toString();
}
+ private boolean checkTokenBeforeAnyType(IASToken token) {
+ return token.getType() == ASTokenTypes.TOKEN_COLON;
+ }
+
+ private boolean checkTokensForAnyVectorType(IASToken prevToken, IASToken nextToken) {
+ return prevToken != null && nextToken != null && prevToken.getType() == ASTokenTypes.TOKEN_TYPED_COLLECTION_OPEN
+ && nextToken.getType() == ASTokenTypes.TOKEN_TYPED_COLLECTION_CLOSE;
+ }
+
private boolean checkTokenBeforeUnaryOperator(IASToken token) {
return (token instanceof ASToken) ? ((ASToken) token).isOperator()
|| token.getType() == ASTokenTypes.TOKEN_SQUARE_OPEN || token.getType() == ASTokenTypes.TOKEN_PAREN_OPEN
diff --git a/formatter/src/test/java/org/apache/royale/formatter/TestVariableDeclaration.java b/formatter/src/test/java/org/apache/royale/formatter/TestVariableDeclaration.java
index 51cb0a5..c769066 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestVariableDeclaration.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestVariableDeclaration.java
@@ -81,4 +81,42 @@ public class TestVariableDeclaration extends BaseFormatterTests {
// @formatter:on
result);
}
+
+ @Test
+ public void testWithAnyType() {
+ FORMATTER formatter = new FORMATTER();
+ formatter.insertSpaceAfterKeywordsInControlFlowStatements = true;
+ formatter.placeOpenBraceOnNewLine = true;
+ formatter.insertSpaces = false;
+ String result = formatter.formatText(
+ // @formatter:off
+ "var myVar:*;",
+ // @formatter:on
+ problems
+ );
+ assertEquals(
+ // @formatter:off
+ "var myVar:*;",
+ // @formatter:on
+ result);
+ }
+
+ @Test
+ public void testWithVectorAnyType() {
+ FORMATTER formatter = new FORMATTER();
+ formatter.insertSpaceAfterKeywordsInControlFlowStatements = true;
+ formatter.placeOpenBraceOnNewLine = true;
+ formatter.insertSpaces = false;
+ String result = formatter.formatText(
+ // @formatter:off
+ "var myVar:Vector.<*>;",
+ // @formatter:on
+ problems
+ );
+ assertEquals(
+ // @formatter:off
+ "var myVar:Vector.<*>;",
+ // @formatter:on
+ result);
+ }
}