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/09/09 22:12:55 UTC
[royale-compiler] 01/03: formatter: fix indentation of methods in
interfaces
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 583f4e2ade3e8d6510395e2254d66236ddf4e9f0
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Thu Sep 9 14:12:12 2021 -0700
formatter: fix indentation of methods in interfaces
---
.../org/apache/royale/formatter/FORMATTER.java | 7 ++-
.../royale/formatter/TestInterfaceDeclaration.java | 52 ++++++++++++++++++++++
2 files changed, 58 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 19970db..7959d31 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
@@ -718,7 +718,12 @@ class FORMATTER {
&& prevStackItem.token.getType() != ASTokenTypes.TOKEN_KEYWORD_DEFAULT
&& prevStackItem.blockDepth <= 0) {
blockStack.remove(blockStack.size() - 1);
- indent = decreaseIndent(indent);
+ if (prevStackItem.token.getType() != ASTokenTypes.TOKEN_KEYWORD_CLASS
+ && prevStackItem.token.getType() != ASTokenTypes.TOKEN_KEYWORD_INTERFACE
+ && prevStackItem.token.getType() != ASTokenTypes.TOKEN_KEYWORD_FUNCTION)
+ {
+ indent = decreaseIndent(indent);
+ }
}
}
}
diff --git a/formatter/src/test/java/org/apache/royale/formatter/TestInterfaceDeclaration.java b/formatter/src/test/java/org/apache/royale/formatter/TestInterfaceDeclaration.java
index e259d13..149ab72 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestInterfaceDeclaration.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestInterfaceDeclaration.java
@@ -115,4 +115,56 @@ public class TestInterfaceDeclaration extends BaseFormatterTests {
// @formatter:on
result);
}
+
+ @Test
+ public void testOneMethod() {
+ FORMATTER formatter = new FORMATTER();
+ formatter.insertSpaceAfterKeywordsInControlFlowStatements = true;
+ formatter.placeOpenBraceOnNewLine = true;
+ formatter.insertSpaces = false;
+ String result = formatter.formatText(
+ // @formatter:off
+ "interface MyInterface\n" +
+ "{\n" +
+ "\tfunction myMethod():void;\n" +
+ "}",
+ // @formatter:on
+ problems
+ );
+ assertEquals(
+ // @formatter:off
+ "interface MyInterface\n" +
+ "{\n" +
+ "\tfunction myMethod():void;\n" +
+ "}",
+ // @formatter:on
+ result);
+ }
+
+ @Test
+ public void testMultipleMethods() {
+ FORMATTER formatter = new FORMATTER();
+ formatter.insertSpaceAfterKeywordsInControlFlowStatements = true;
+ formatter.placeOpenBraceOnNewLine = true;
+ formatter.insertSpaces = false;
+ String result = formatter.formatText(
+ // @formatter:off
+ "interface MyInterface\n" +
+ "{\n" +
+ "\tfunction myMethod1():void;\n" +
+ "\tfunction myMethod2():void;\n" +
+ "}",
+ // @formatter:on
+ problems
+ );
+ assertEquals(
+ // @formatter:off
+ "interface MyInterface\n" +
+ "{\n" +
+ "\tfunction myMethod1():void;\n" +
+ "\tfunction myMethod2():void;\n" +
+ "}",
+ // @formatter:on
+ result);
+ }
}