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 2022/07/28 23:23:54 UTC
[royale-compiler] branch develop updated: formatter: create FormatterSettings object to configure ASTokenFormatter and MXMLTokenFormatter
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
The following commit(s) were added to refs/heads/develop by this push:
new 6c5fdf62b formatter: create FormatterSettings object to configure ASTokenFormatter and MXMLTokenFormatter
6c5fdf62b is described below
commit 6c5fdf62b016eb33225a8548b9000cf9b3756aa6
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Thu Jul 28 16:23:05 2022 -0700
formatter: create FormatterSettings object to configure ASTokenFormatter and MXMLTokenFormatter
Also move ASTokenFormatter and MXMLTokenFormatter out of internal package so that they can be used directly
---
.../formatter/{internal => }/ASTokenFormatter.java | 62 +++++++++++-----------
.../org/apache/royale/formatter/FORMATTER.java | 46 ++++++++++++----
.../apache/royale/formatter/FormatterSettings.java | 42 +++++++++++++++
.../{internal => }/MXMLTokenFormatter.java | 26 ++++-----
.../formatter/internal/BaseTokenFormatter.java | 16 +++---
5 files changed, 130 insertions(+), 62 deletions(-)
diff --git a/formatter/src/main/java/org/apache/royale/formatter/internal/ASTokenFormatter.java b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
similarity index 95%
rename from formatter/src/main/java/org/apache/royale/formatter/internal/ASTokenFormatter.java
rename to formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
index 97c0b18f4..b3848c28c 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/internal/ASTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
@@ -17,7 +17,7 @@
//
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.formatter.internal;
+package org.apache.royale.formatter;
import java.io.StringReader;
import java.util.ArrayList;
@@ -42,8 +42,8 @@ import org.apache.royale.compiler.internal.workspaces.Workspace;
import org.apache.royale.compiler.parsing.IASToken;
import org.apache.royale.compiler.problems.ICompilerProblem;
import org.apache.royale.compiler.problems.UnexpectedExceptionProblem;
-import org.apache.royale.formatter.FORMATTER;
import org.apache.royale.formatter.config.Semicolons;
+import org.apache.royale.formatter.internal.BaseTokenFormatter;
public class ASTokenFormatter extends BaseTokenFormatter {
private static final int TOKEN_TYPE_EXTRA = 999999;
@@ -51,8 +51,8 @@ public class ASTokenFormatter extends BaseTokenFormatter {
private static final String FORMATTER_TAG_OFF = "@formatter:off";
private static final String FORMATTER_TAG_ON = "@formatter:on";
- public ASTokenFormatter(FORMATTER formatter) {
- super(formatter);
+ public ASTokenFormatter(FormatterSettings settings) {
+ super(settings);
}
private int indent;
@@ -104,7 +104,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
problems.addAll(tokenizer.getTokenizationProblems());
}
- if (!formatter.ignoreProblems && hasErrors(problems)) {
+ if (!settings.ignoreProblems && hasErrors(problems)) {
return text;
}
@@ -142,7 +142,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
problems.addAll(parser.getSyntaxProblems());
}
- if (!formatter.ignoreProblems && hasErrors(problems)) {
+ if (!settings.ignoreProblems && hasErrors(problems)) {
return text;
}
@@ -229,7 +229,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
}
boolean oneLineBlock = prevToken != null && prevToken.getType() == ASTokenTypes.TOKEN_BLOCK_OPEN
&& nextToken != null && nextToken.getType() == ASTokenTypes.TOKEN_BLOCK_CLOSE;
- if (oneLineBlock && formatter.collapseEmptyBlocks) {
+ if (oneLineBlock && settings.collapseEmptyBlocks) {
newLinesInExtra = 0;
}
numRequiredNewLines = Math.max(numRequiredNewLines, newLinesInExtra);
@@ -291,11 +291,11 @@ public class ASTokenFormatter extends BaseTokenFormatter {
}
boolean oneLineBlock = nextToken != null
&& nextToken.getType() == ASTokenTypes.TOKEN_BLOCK_CLOSE;
- boolean needsNewLine = formatter.placeOpenBraceOnNewLine && (!formatter.collapseEmptyBlocks || !oneLineBlock);
+ boolean needsNewLine = settings.placeOpenBraceOnNewLine && (!settings.collapseEmptyBlocks || !oneLineBlock);
if (needsNewLine) {
numRequiredNewLines = Math.max(numRequiredNewLines, 1);
} else {
- if (oneLineBlock && formatter.collapseEmptyBlocks) {
+ if (oneLineBlock && settings.collapseEmptyBlocks) {
numRequiredNewLines = 0;
}
requiredSpace = true;
@@ -315,7 +315,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
if (stackItem.blockDepth <= 1) {
boolean oneLineBlock = prevToken != null
&& prevToken.getType() == ASTokenTypes.TOKEN_BLOCK_OPEN;
- if (!formatter.collapseEmptyBlocks || !oneLineBlock) {
+ if (!settings.collapseEmptyBlocks || !oneLineBlock) {
indent = decreaseIndent(indent);
}
if (stackItem.token.getType() == ASTokenTypes.TOKEN_KEYWORD_CASE
@@ -402,7 +402,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_OPERATOR_BITWISE_XOR_ASSIGNMENT:
case ASTokenTypes.TOKEN_OPERATOR_LOGICAL_AND_ASSIGNMENT:
case ASTokenTypes.TOKEN_OPERATOR_LOGICAL_OR_ASSIGNMENT: {
- if (formatter.insertSpaceBeforeAndAfterBinaryOperators) {
+ if (settings.insertSpaceBeforeAndAfterBinaryOperators) {
requiredSpace = true;
}
break;
@@ -410,7 +410,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_OPERATOR_STAR: {
boolean isAnyType = checkTokenBeforeAnyType(prevTokenNotComment);
boolean isAnyVectorType = checkTokensForAnyVectorType(prevTokenNotComment, nextTokenNotComment);
- if (!isAnyType && !isAnyVectorType && formatter.insertSpaceBeforeAndAfterBinaryOperators
+ if (!isAnyType && !isAnyVectorType && settings.insertSpaceBeforeAndAfterBinaryOperators
&& !skipWhitespaceBeforeSemicolon) {
requiredSpace = true;
}
@@ -419,21 +419,21 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_OPERATOR_PLUS:
case ASTokenTypes.TOKEN_OPERATOR_MINUS: {
boolean isUnary = checkTokenBeforeUnaryOperator(prevTokenNotComment);
- if (!isUnary && formatter.insertSpaceBeforeAndAfterBinaryOperators) {
+ if (!isUnary && settings.insertSpaceBeforeAndAfterBinaryOperators) {
requiredSpace = true;
}
break;
}
case ASTokenTypes.TOKEN_OPERATOR_ASSIGNMENT: {
inVarOrConstDeclaration = false;
- if (formatter.insertSpaceBeforeAndAfterBinaryOperators) {
+ if (settings.insertSpaceBeforeAndAfterBinaryOperators) {
requiredSpace = true;
}
break;
}
case ASTokenTypes.TOKEN_OPERATOR_TERNARY: {
ternaryStack++;
- if (formatter.insertSpaceBeforeAndAfterBinaryOperators) {
+ if (settings.insertSpaceBeforeAndAfterBinaryOperators) {
requiredSpace = true;
}
break;
@@ -509,7 +509,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
if (blockOpenPending) {
boolean oneLineBlock = nextToken != null
&& nextToken.getType() == ASTokenTypes.TOKEN_BLOCK_CLOSE;
- if (formatter.placeOpenBraceOnNewLine && (!formatter.collapseEmptyBlocks || !oneLineBlock)) {
+ if (settings.placeOpenBraceOnNewLine && (!settings.collapseEmptyBlocks || !oneLineBlock)) {
indent = increaseIndent(indent);
}
}
@@ -540,7 +540,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
switch (token.getType()) {
case ASTokenTypes.TOKEN_SEMICOLON: {
if (inControlFlowStatement && isInForStatement(blockStack)) {
- if (formatter.insertSpaceAfterSemicolonInForStatements) {
+ if (settings.insertSpaceAfterSemicolonInForStatements) {
requiredSpace = true;
}
// else no space
@@ -582,8 +582,8 @@ public class ASTokenFormatter extends BaseTokenFormatter {
}
boolean oneLineBlock = nextToken != null
&& nextToken.getType() == ASTokenTypes.TOKEN_BLOCK_CLOSE;
- if (!formatter.collapseEmptyBlocks || !oneLineBlock) {
- if (!formatter.placeOpenBraceOnNewLine) {
+ if (!settings.collapseEmptyBlocks || !oneLineBlock) {
+ if (!settings.placeOpenBraceOnNewLine) {
indent = increaseIndent(indent);
}
numRequiredNewLines = Math.max(numRequiredNewLines, 1);
@@ -683,7 +683,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_KEYWORD_FUNCTION: {
blockStack.add(new BlockStackItem(token));
inFunctionDeclaration = true;
- boolean skipSpace = !formatter.insertSpaceAfterFunctionKeywordForAnonymousFunctions
+ boolean skipSpace = !settings.insertSpaceAfterFunctionKeywordForAnonymousFunctions
&& (nextToken != null && nextToken.getType() == ASTokenTypes.TOKEN_PAREN_OPEN);
if (!skipSpace) {
requiredSpace = true;
@@ -704,7 +704,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_KEYWORD_WITH: {
inControlFlowStatement = true;
blockStack.add(new BlockStackItem(token));
- if (formatter.insertSpaceAfterKeywordsInControlFlowStatements && !skipWhitespaceBeforeSemicolon) {
+ if (settings.insertSpaceAfterKeywordsInControlFlowStatements && !skipWhitespaceBeforeSemicolon) {
requiredSpace = true;
}
break;
@@ -712,7 +712,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_KEYWORD_SWITCH: {
inControlFlowStatement = true;
blockStack.add(new SwitchBlockStackItem(token));
- if (formatter.insertSpaceAfterKeywordsInControlFlowStatements && !skipWhitespaceBeforeSemicolon) {
+ if (settings.insertSpaceAfterKeywordsInControlFlowStatements && !skipWhitespaceBeforeSemicolon) {
requiredSpace = true;
}
break;
@@ -876,7 +876,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_OPERATOR_BITWISE_XOR_ASSIGNMENT:
case ASTokenTypes.TOKEN_OPERATOR_LOGICAL_AND_ASSIGNMENT:
case ASTokenTypes.TOKEN_OPERATOR_LOGICAL_OR_ASSIGNMENT: {
- if (formatter.insertSpaceBeforeAndAfterBinaryOperators && !skipWhitespaceBeforeSemicolon) {
+ if (settings.insertSpaceBeforeAndAfterBinaryOperators && !skipWhitespaceBeforeSemicolon) {
requiredSpace = true;
}
break;
@@ -884,7 +884,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_OPERATOR_STAR: {
boolean isAnyType = checkTokenBeforeAnyType(prevTokenNotComment);
boolean isAnyVectorType = checkTokensForAnyVectorType(prevTokenNotComment, nextTokenNotComment);
- if (!isAnyType && !isAnyVectorType && formatter.insertSpaceBeforeAndAfterBinaryOperators
+ if (!isAnyType && !isAnyVectorType && settings.insertSpaceBeforeAndAfterBinaryOperators
&& !skipWhitespaceBeforeSemicolon) {
requiredSpace = true;
}
@@ -893,7 +893,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case ASTokenTypes.TOKEN_OPERATOR_PLUS:
case ASTokenTypes.TOKEN_OPERATOR_MINUS: {
boolean isUnary = checkTokenBeforeUnaryOperator(prevTokenNotComment);
- if (!isUnary && formatter.insertSpaceBeforeAndAfterBinaryOperators && !skipWhitespaceBeforeSemicolon) {
+ if (!isUnary && settings.insertSpaceBeforeAndAfterBinaryOperators && !skipWhitespaceBeforeSemicolon) {
requiredSpace = true;
}
break;
@@ -902,7 +902,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
if (varOrConstChainLevel == blockStack.size()) {
inVarOrConstDeclaration = true;
}
- if (formatter.insertSpaceAfterCommaDelimiter && !skipWhitespaceBeforeSemicolon) {
+ if (settings.insertSpaceAfterCommaDelimiter && !skipWhitespaceBeforeSemicolon) {
requiredSpace = true;
}
break;
@@ -1006,8 +1006,8 @@ public class ASTokenFormatter extends BaseTokenFormatter {
if (skipFormatting) {
return token.isImplicit() ? "" : token.getText();
}
- boolean skipSemicolon = Semicolons.REMOVE.equals(formatter.semicolons)
- || (Semicolons.IGNORE.equals(formatter.semicolons) && token.isImplicit());
+ boolean skipSemicolon = Semicolons.REMOVE.equals(settings.semicolons)
+ || (Semicolons.IGNORE.equals(settings.semicolons) && token.isImplicit());
if (!skipSemicolon) {
return token.getText();
}
@@ -1047,7 +1047,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case MetadataTokenTypes.TOKEN_ATTR_OPERATOR_NS_QUALIFIER: {
if (needsComma) {
builder.append(",");
- if (formatter.insertSpaceBetweenMetadataAttributes) {
+ if (settings.insertSpaceBetweenMetadataAttributes) {
builder.append(" ");
}
}
@@ -1066,7 +1066,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
case MetadataTokenTypes.TOKEN_STRING: {
if (needsComma) {
builder.append(",");
- if (formatter.insertSpaceBetweenMetadataAttributes) {
+ if (settings.insertSpaceBetweenMetadataAttributes) {
builder.append(" ");
}
}
@@ -1088,7 +1088,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
comment = comment.substring(2).trim();
StringBuilder builder = new StringBuilder();
builder.append("//");
- if (formatter.insertSpaceAtStartOfLineComment) {
+ if (settings.insertSpaceAtStartOfLineComment) {
builder.append(" ");
}
builder.append(comment);
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 469b08b61..e6ad9be4b 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
@@ -49,8 +49,6 @@ import org.apache.royale.formatter.config.ConfigurationBuffer;
import org.apache.royale.formatter.config.ConfigurationValue;
import org.apache.royale.formatter.config.Configurator;
import org.apache.royale.formatter.config.Semicolons;
-import org.apache.royale.formatter.internal.ASTokenFormatter;
-import org.apache.royale.formatter.internal.MXMLTokenFormatter;
import org.apache.royale.utils.FilenameNormalization;
/**
@@ -199,11 +197,9 @@ public class FORMATTER {
filePath = FilenameNormalization.normalize(filePath);
String result = null;
if (filePath.endsWith(".mxml")) {
- MXMLTokenFormatter mxmlFormatter = new MXMLTokenFormatter(this);
- result = mxmlFormatter.format(filePath, text, problems);
+ result = formatMXMLTokens(filePath, text, problems);
} else {
- ASTokenFormatter asFormatter = new ASTokenFormatter(this);
- result = asFormatter.format(filePath, text, problems);
+ result = formatASTokens(filePath, text, problems);
}
if (insertFinalNewLine && result.charAt(result.length() - 1) != '\n') {
return result + '\n';
@@ -217,8 +213,7 @@ public class FORMATTER {
public String formatActionScriptText(String text, Collection<ICompilerProblem> problems) {
String filePath = FilenameNormalization.normalize("stdin.as");
- ASTokenFormatter asFormatter = new ASTokenFormatter(this);
- return asFormatter.format(filePath, text, problems);
+ return formatASTokens(filePath, text, problems);
}
public String formatActionScriptText(String text) {
@@ -227,14 +222,45 @@ public class FORMATTER {
public String formatMXMLText(String text, Collection<ICompilerProblem> problems) {
String filePath = FilenameNormalization.normalize("stdin.mxml");
- MXMLTokenFormatter mxmlFormatter = new MXMLTokenFormatter(this);
- return mxmlFormatter.format(filePath, text, problems);
+ return formatMXMLTokens(filePath, text, problems);
}
public String formatMXMLText(String text) {
return formatMXMLText(text, null);
}
+ private String formatASTokens(String filePath, String text, Collection<ICompilerProblem> problems) {
+ ASTokenFormatter asFormatter = new ASTokenFormatter(getFormatterSettings());
+ return asFormatter.format(filePath, text, problems);
+ }
+
+ private String formatMXMLTokens(String filePath, String text, Collection<ICompilerProblem> problems) {
+ MXMLTokenFormatter mxmlFormatter = new MXMLTokenFormatter(getFormatterSettings());
+ return mxmlFormatter.format(filePath, text, problems);
+ }
+
+ private FormatterSettings getFormatterSettings() {
+ FormatterSettings result = new FormatterSettings();
+ result.tabSize = tabSize;
+ result.insertSpaces = insertSpaces;
+ result.insertFinalNewLine = insertFinalNewLine;
+ result.placeOpenBraceOnNewLine = placeOpenBraceOnNewLine;
+ result.insertSpaceAfterSemicolonInForStatements = insertSpaceAfterSemicolonInForStatements;
+ result.insertSpaceAfterKeywordsInControlFlowStatements = insertSpaceAfterKeywordsInControlFlowStatements;
+ result.insertSpaceAfterFunctionKeywordForAnonymousFunctions = insertSpaceAfterFunctionKeywordForAnonymousFunctions;
+ result.insertSpaceBeforeAndAfterBinaryOperators = insertSpaceBeforeAndAfterBinaryOperators;
+ result.insertSpaceAfterCommaDelimiter = insertSpaceAfterCommaDelimiter;
+ result.insertSpaceBetweenMetadataAttributes = insertSpaceBetweenMetadataAttributes;
+ result.insertSpaceAtStartOfLineComment = insertSpaceAtStartOfLineComment;
+ result.maxPreserveNewLines = maxPreserveNewLines;
+ result.semicolons = semicolons;
+ result.ignoreProblems = ignoreProblems;
+ result.collapseEmptyBlocks = collapseEmptyBlocks;
+ result.mxmlAlignAttributes = mxmlAlignAttributes;
+ result.mxmlInsertNewLineBetweenAttributes = mxmlInsertNewLineBetweenAttributes;
+ return result;
+ }
+
/**
* Get the start up message that contains the program name with the copyright
* notice.
diff --git a/formatter/src/main/java/org/apache/royale/formatter/FormatterSettings.java b/formatter/src/main/java/org/apache/royale/formatter/FormatterSettings.java
new file mode 100644
index 000000000..c083f01c3
--- /dev/null
+++ b/formatter/src/main/java/org/apache/royale/formatter/FormatterSettings.java
@@ -0,0 +1,42 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package org.apache.royale.formatter;
+
+import org.apache.royale.formatter.config.Semicolons;
+
+public class FormatterSettings {
+ public int tabSize = 4;
+ public boolean insertSpaces = false;
+ public boolean insertFinalNewLine = false;
+ public boolean placeOpenBraceOnNewLine = true;
+ public boolean insertSpaceAfterSemicolonInForStatements = true;
+ public boolean insertSpaceAfterKeywordsInControlFlowStatements = true;
+ public boolean insertSpaceAfterFunctionKeywordForAnonymousFunctions = false;
+ public boolean insertSpaceBeforeAndAfterBinaryOperators = true;
+ public boolean insertSpaceAfterCommaDelimiter = true;
+ public boolean insertSpaceBetweenMetadataAttributes = true;
+ public boolean insertSpaceAtStartOfLineComment = true;
+ public int maxPreserveNewLines = 2;
+ public Semicolons semicolons = Semicolons.INSERT;
+ public boolean ignoreProblems = false;
+ public boolean collapseEmptyBlocks = false;
+ public boolean mxmlAlignAttributes = false;
+ public boolean mxmlInsertNewLineBetweenAttributes = false;
+}
diff --git a/formatter/src/main/java/org/apache/royale/formatter/internal/MXMLTokenFormatter.java b/formatter/src/main/java/org/apache/royale/formatter/MXMLTokenFormatter.java
similarity index 96%
rename from formatter/src/main/java/org/apache/royale/formatter/internal/MXMLTokenFormatter.java
rename to formatter/src/main/java/org/apache/royale/formatter/MXMLTokenFormatter.java
index 662a3b798..a0b5dccd6 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/internal/MXMLTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/MXMLTokenFormatter.java
@@ -17,7 +17,7 @@
//
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.formatter.internal;
+package org.apache.royale.formatter;
import java.io.StringReader;
import java.util.ArrayList;
@@ -33,7 +33,7 @@ import org.apache.royale.compiler.parsing.IMXMLToken;
import org.apache.royale.compiler.parsing.MXMLTokenTypes;
import org.apache.royale.compiler.problems.ICompilerProblem;
import org.apache.royale.compiler.problems.UnexpectedExceptionProblem;
-import org.apache.royale.formatter.FORMATTER;
+import org.apache.royale.formatter.internal.BaseTokenFormatter;
public class MXMLTokenFormatter extends BaseTokenFormatter {
private static final int TOKEN_TYPE_EXTRA = 999999;
@@ -41,8 +41,8 @@ public class MXMLTokenFormatter extends BaseTokenFormatter {
private static final String FORMATTER_TAG_OFF = "@formatter:off";
private static final String FORMATTER_TAG_ON = "@formatter:on";
- public MXMLTokenFormatter(FORMATTER formatter) {
- super(formatter);
+ public MXMLTokenFormatter(FormatterSettings settings) {
+ super(settings);
}
private int indent;
@@ -77,7 +77,7 @@ public class MXMLTokenFormatter extends BaseTokenFormatter {
problems.addAll(mxmlTokenizer.getTokenizationProblems());
}
- if (!formatter.ignoreProblems && hasErrors(problems)) {
+ if (!settings.ignoreProblems && hasErrors(problems)) {
return text;
}
@@ -302,7 +302,7 @@ public class MXMLTokenFormatter extends BaseTokenFormatter {
break;
}
case MXMLTokenTypes.TOKEN_STRING: {
- if (inOpenTag && formatter.mxmlInsertNewLineBetweenAttributes && nextToken != null
+ if (inOpenTag && settings.mxmlInsertNewLineBetweenAttributes && nextToken != null
&& nextToken.getType() != MXMLTokenTypes.TOKEN_TAG_END
&& nextToken.getType() != MXMLTokenTypes.TOKEN_EMPTY_TAG_END) {
numRequiredNewLines = Math.max(numRequiredNewLines, 1);
@@ -331,9 +331,9 @@ public class MXMLTokenFormatter extends BaseTokenFormatter {
private String formatMXMLScriptElement(String filePath, int line, String text,
Collection<ICompilerProblem> problems) {
String indent = "\t";
- if (formatter.insertSpaces) {
+ if (settings.insertSpaces) {
indent = "";
- for (int i = 0; i < formatter.tabSize; i++) {
+ for (int i = 0; i < settings.tabSize; i++) {
indent += " ";
}
}
@@ -354,9 +354,9 @@ public class MXMLTokenFormatter extends BaseTokenFormatter {
String cdataText = scriptMatcher.group(3);
String scriptText = scriptMatcher.group(4);
boolean requireCdata = cdataText != null || "Script".equals(scriptTagName);
- ASTokenFormatter asFormatter = new ASTokenFormatter(formatter);
+ ASTokenFormatter asFormatter = new ASTokenFormatter(settings);
String formattedScriptText = asFormatter.format(filePath + "@Script[" + line + "]", scriptText, problems);
- if (!formatter.ignoreProblems && hasErrors(problems)) {
+ if (!settings.ignoreProblems && hasErrors(problems)) {
return text;
}
if (formattedScriptText.length() > 0) {
@@ -443,14 +443,14 @@ public class MXMLTokenFormatter extends BaseTokenFormatter {
}
private String getAttributeIndent(IMXMLToken openTagToken) {
- if (!formatter.mxmlAlignAttributes) {
+ if (!settings.mxmlAlignAttributes) {
return getIndent();
}
int indentSize = openTagToken.getText().length() + 1;
String result = "";
- while (indentSize >= formatter.tabSize) {
+ while (indentSize >= settings.tabSize) {
result += getIndent();
- indentSize -= formatter.tabSize;
+ indentSize -= settings.tabSize;
}
for (int i = 0; i < indentSize; i++) {
result += " ";
diff --git a/formatter/src/main/java/org/apache/royale/formatter/internal/BaseTokenFormatter.java b/formatter/src/main/java/org/apache/royale/formatter/internal/BaseTokenFormatter.java
index 158f64237..1ad662cfd 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/internal/BaseTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/internal/BaseTokenFormatter.java
@@ -24,13 +24,13 @@ import java.util.Collection;
import org.apache.royale.compiler.clients.problems.CompilerProblemCategorizer;
import org.apache.royale.compiler.problems.CompilerProblemSeverity;
import org.apache.royale.compiler.problems.ICompilerProblem;
-import org.apache.royale.formatter.FORMATTER;
+import org.apache.royale.formatter.FormatterSettings;
public abstract class BaseTokenFormatter {
- protected FORMATTER formatter;
+ protected FormatterSettings settings;
- protected BaseTokenFormatter(FORMATTER formatter) {
- this.formatter = formatter;
+ protected BaseTokenFormatter(FormatterSettings settings) {
+ this.settings = settings;
}
protected boolean hasErrors(Collection<ICompilerProblem> problems) {
@@ -53,9 +53,9 @@ public abstract class BaseTokenFormatter {
}
protected String getIndent() {
- if (formatter.insertSpaces) {
+ if (settings.insertSpaces) {
String result = "";
- for (int j = 0; j < formatter.tabSize; j++) {
+ for (int j = 0; j < settings.tabSize; j++) {
result += " ";
}
return result;
@@ -71,8 +71,8 @@ public abstract class BaseTokenFormatter {
}
protected void appendNewLines(StringBuilder builder, int numRequiredNewLines) {
- if (formatter.maxPreserveNewLines != 0) {
- numRequiredNewLines = Math.min(formatter.maxPreserveNewLines, numRequiredNewLines);
+ if (settings.maxPreserveNewLines != 0) {
+ numRequiredNewLines = Math.min(settings.maxPreserveNewLines, numRequiredNewLines);
}
for (int j = 0; j < numRequiredNewLines; j++) {
builder.append('\n');