public class FormatterOptions {
- /**
- * Option IDs
- */
- public static final String OPTION_InsertNewlineBeforeOpeningBrace = "net.sourceforge.phpdt.core.formatter.newline.openingBrace"; //$NON-NLS-1$
- public static final String OPTION_InsertNewlineInControlStatement = "net.sourceforge.phpdt.core.formatter.newline.controlStatement"; //$NON-NLS-1$
- public static final String OPTION_InsertNewLineBetweenElseAndIf = "net.sourceforge.phpdt.core.formatter.newline.elseIf"; //$NON-NLS-1$
- public static final String OPTION_InsertNewLineInEmptyBlock = "net.sourceforge.phpdt.core.formatter.newline.emptyBlock"; //$NON-NLS-1$
- public static final String OPTION_ClearAllBlankLines = "net.sourceforge.phpdt.core.formatter.newline.clearAll"; //$NON-NLS-1$
- public static final String OPTION_SplitLineExceedingLength = "net.sourceforge.phpdt.core.formatter.lineSplit"; //$NON-NLS-1$
- public static final String OPTION_CompactAssignment = "net.sourceforge.phpdt.core.formatter.style.assignment"; //$NON-NLS-1$
- public static final String OPTION_TabulationChar = "net.sourceforge.phpdt.core.formatter.tabulation.char"; //$NON-NLS-1$
- public static final String OPTION_TabulationSize = "net.sourceforge.phpdt.core.formatter.tabulation.size"; //$NON-NLS-1$
-
- public static final String INSERT = "insert"; //$NON-NLS-1$
- public static final String DO_NOT_INSERT = "do not insert"; //$NON-NLS-1$
- public static final String PRESERVE_ONE = "preserve one"; //$NON-NLS-1$
- public static final String CLEAR_ALL = "clear all"; //$NON-NLS-1$
- public static final String NORMAL = "normal"; //$NON-NLS-1$
- public static final String COMPACT = "compact"; //$NON-NLS-1$
- public static final String TAB = "tab"; //$NON-NLS-1$
- public static final String SPACE = "space"; //$NON-NLS-1$
-
- // by default, do not insert blank line before opening brace
- public boolean newLineBeforeOpeningBraceMode = false;
-
- // by default, do not insert blank line behind keywords (ELSE, CATCH, FINALLY,...) in control statements
- public boolean newlineInControlStatementMode = false;
-
- // by default, preserve one blank line per sequence of blank lines
- public boolean clearAllBlankLinesMode = false;
-
- // line splitting will occur when line exceeds this length
- public int maxLineLength = 80;
-
- public boolean compactAssignmentMode = false;
- // if isTrue, assignments look like x= 12 (not like x = 12);
-
- //number of consecutive spaces used to replace the tab char
- public int tabSize = 4; // n spaces for one tab
- public boolean indentWithTab = true;
-
- public boolean compactElseIfMode = true;
- // if true, else and if are kept on the same line.
- public boolean newLineInEmptyBlockMode = true;
- // if false, no new line in {} if it's empty.
-
- public char[] lineSeparatorSequence = System.getProperty("line.separator").toCharArray(); //$NON-NLS-1$
- /**
- * Initializing the formatter options with default settings
- */
- public FormatterOptions() {
- }
- /**
- * Initializing the formatter options with external settings
- */
- public FormatterOptions(Map settings) {
- if (settings == null)
- return;
-
- // filter options which are related to the assist component
- Object[] entries = settings.entrySet().toArray();
- for (int i = 0, max = entries.length; i < max; i++) {
- Map.Entry entry = (Map.Entry) entries[i];
- if (!(entry.getKey() instanceof String))
- continue;
- if (!(entry.getValue() instanceof String))
- continue;
- String optionID = (String) entry.getKey();
- String optionValue = (String) entry.getValue();
-
- if (optionID.equals(OPTION_InsertNewlineBeforeOpeningBrace)) {
- if (optionValue.equals(INSERT)) {
- this.newLineBeforeOpeningBraceMode = true;
- } else if (optionValue.equals(DO_NOT_INSERT)) {
- this.newLineBeforeOpeningBraceMode = false;
- }
- continue;
- }
- if (optionID.equals(OPTION_InsertNewlineInControlStatement)) {
- if (optionValue.equals(INSERT)) {
- this.newlineInControlStatementMode = true;
- } else if (optionValue.equals(DO_NOT_INSERT)) {
- this.newlineInControlStatementMode = false;
- }
- continue;
- }
- if (optionID.equals(OPTION_ClearAllBlankLines)) {
- if (optionValue.equals(CLEAR_ALL)) {
- this.clearAllBlankLinesMode = true;
- } else if (optionValue.equals(PRESERVE_ONE)) {
- this.clearAllBlankLinesMode = false;
- }
- continue;
- }
- if (optionID.equals(OPTION_InsertNewLineBetweenElseAndIf)) {
- if (optionValue.equals(INSERT)) {
- this.compactElseIfMode = false;
- } else if (optionValue.equals(DO_NOT_INSERT)) {
- this.compactElseIfMode = true;
- }
- continue;
- }
- if (optionID.equals(OPTION_InsertNewLineInEmptyBlock)) {
- if (optionValue.equals(INSERT)) {
- this.newLineInEmptyBlockMode = true;
- } else if (optionValue.equals(DO_NOT_INSERT)) {
- this.newLineInEmptyBlockMode = false;
- }
- continue;
- }
- if (optionID.equals(OPTION_SplitLineExceedingLength)) {
- try {
- int val = Integer.parseInt(optionValue);
- if (val >= 0)
- this.maxLineLength = val;
- } catch (NumberFormatException e) {
- }
- }
- if (optionID.equals(OPTION_CompactAssignment)) {
- if (optionValue.equals(COMPACT)) {
- this.compactAssignmentMode = true;
- } else if (optionValue.equals(NORMAL)) {
- this.compactAssignmentMode = false;
- }
- continue;
- }
- if (optionID.equals(OPTION_TabulationChar)) {
- if (optionValue.equals(TAB)) {
- this.indentWithTab = true;
- } else if (optionValue.equals(SPACE)) {
- this.indentWithTab = false;
- }
- continue;
- }
- if (optionID.equals(OPTION_TabulationSize)) {
- try {
- int val = Integer.parseInt(optionValue);
- if (val > 0)
- this.tabSize = val;
- } catch (NumberFormatException e) {
- }
- }
- }
- }
-
- /**
- *
- * @return int
- */
- public int getMaxLineLength() {
- return maxLineLength;
- }
- public int getTabSize() {
- return tabSize;
- }
- public boolean isAddingNewLineBeforeOpeningBrace() {
- return newLineBeforeOpeningBraceMode;
- }
- public boolean isAddingNewLineInControlStatement() {
- return newlineInControlStatementMode;
- }
- public boolean isAddingNewLineInEmptyBlock() {
- return newLineInEmptyBlockMode;
- }
- public boolean isClearingAllBlankLines() {
- return clearAllBlankLinesMode;
- }
- public boolean isCompactingAssignment() {
- return compactAssignmentMode;
- }
- public boolean isCompactingElseIf() {
- return compactElseIfMode;
- }
- public boolean isUsingTabForIndenting() {
- return indentWithTab;
- }
- public void setLineSeparator(String lineSeparator) {
- lineSeparatorSequence = lineSeparator.toCharArray();
- }
- /**
- * @deprecated - should use a Map when creating the options.
- */
- public void setMaxLineLength(int maxLineLength) {
- this.maxLineLength = maxLineLength;
- }
- /**
- * @deprecated - should use a Map when creating the options.
- */
- public void setCompactElseIfMode(boolean flag) {
- compactElseIfMode = flag;
- }
+ /**
+ * Option IDs
+ */
+ public static final String OPTION_InsertNewlineBeforeOpeningBrace = "net.sourceforge.phpeclipse.formatter.newline.openingBrace"; //$NON-NLS-1$
+ public static final String OPTION_InsertNewlineInControlStatement = "net.sourceforge.phpeclipse.formatter.newline.controlStatement"; //$NON-NLS-1$
+
+ // public static final String OPTION_InsertNewLineBetweenElseAndIf =
+ // "net.sourceforge.phpeclipse.formatter.newline.elseIf"; //$NON-NLS-1$
+ public static final String OPTION_InsertNewLineInEmptyBlock = "net.sourceforge.phpeclipse.formatter.newline.emptyBlock"; //$NON-NLS-1$
+
+ public static final String OPTION_ClearAllBlankLines = "net.sourceforge.phpeclipse.formatter.newline.clearAll"; //$NON-NLS-1$
+
+ public static final String OPTION_SplitLineExceedingLength = "net.sourceforge.phpeclipse.formatter.lineSplit"; //$NON-NLS-1$
+
+ public static final String OPTION_CompactAssignment = "net.sourceforge.phpeclipse.formatter.style.assignment"; //$NON-NLS-1$
+
+ public static final String OPTION_CompactStringConcatenation = "net.sourceforge.phpeclipse.formatter.style.compactStringConcatenation"; //$NON-NLS-1$
+
+ public static final String OPTION_CompactArrays = "net.sourceforge.phpeclipse.formatter.style.compactArrays"; //$NON-NLS-1$
+
+ public static final String OPTION_TabulationChar = "net.sourceforge.phpeclipse.formatter.tabulation.char"; //$NON-NLS-1$
+
+ public static final String OPTION_TabulationSize = "net.sourceforge.phpeclipse.formatter.tabulation.size"; //$NON-NLS-1$
+
+ public static final String OPTION_CompactDereferencing = "net.sourceforge.phpeclipse.formatter.style.assignment";
+
+ // TODO: add the checkbox in the preferences panel ; load/save
+
+ public static final String INSERT = "insert"; //$NON-NLS-1$
+
+ public static final String DO_NOT_INSERT = "do not insert"; //$NON-NLS-1$
+
+ public static final String PRESERVE_ONE = "preserve one"; //$NON-NLS-1$
+
+ public static final String CLEAR_ALL = "clear all"; //$NON-NLS-1$
+
+ public static final String NORMAL = "normal"; //$NON-NLS-1$
+
+ public static final String COMPACT = "compact"; //$NON-NLS-1$
+
+ public static final String TAB = "tab"; //$NON-NLS-1$
+
+ public static final String SPACE = "space"; //$NON-NLS-1$
+
+ // by default, do not insert blank line before opening brace
+ public boolean newLineBeforeOpeningBraceMode = false;
+
+ // by default, do not insert blank line behind keywords (ELSE, CATCH,
+ // FINALLY,...) in control statements
+ public boolean newlineInControlStatementMode = false;
+
+ // by default, preserve one blank line per sequence of blank lines
+ public boolean clearAllBlankLinesMode = false;
+
+ // line splitting will occur when line exceeds this length
+ public int maxLineLength = 80;
+
+ public boolean compactAssignmentMode = false;
+
+ public boolean compactStringConcatenation = false;
+
+ public boolean compactArrays = false;
+
+ // if isTrue, assignments look like x= 12 (not like x = 12);
+ public boolean compactDereferencingMode = true;
+
+ // if isTrue, dereferencing look like $obj->method (not like $obj ->
+ // method);
+
+ // number of consecutive spaces used to replace the tab char
+ public int tabSize = 4; // n spaces for one tab
+
+ public boolean indentWithTab = true;
+
+ // public boolean compactElseIfMode = true;
+ // if true, else and if are kept on the same line.
+ public boolean newLineInEmptyBlockMode = true;
+
+ // if false, no new line in {} if it's empty.
+
+ public char[] lineSeparatorSequence = System
+ .getProperty("line.separator").toCharArray(); //$NON-NLS-1$
+
+ /**
+ * Initializing the formatter options with default settings
+ */
+ public FormatterOptions() {
+ }
+
+ /**
+ * Initializing the formatter options with external settings
+ */
+ public FormatterOptions(Map settings) {
+ if (settings == null)
+ return;
+
+ // filter options which are related to the assist component
+ Object[] entries = settings.entrySet().toArray();
+ for (int i = 0, max = entries.length; i < max; i++) {
+ Map.Entry entry = (Map.Entry) entries[i];
+ if (!(entry.getKey() instanceof String))
+ continue;
+ if (!(entry.getValue() instanceof String))
+ continue;
+ String optionID = (String) entry.getKey();
+ String optionValue = (String) entry.getValue();
+
+ if (optionID.equals(OPTION_InsertNewlineBeforeOpeningBrace)) {
+ if (optionValue.equals(INSERT)) {
+ this.newLineBeforeOpeningBraceMode = true;
+ } else if (optionValue.equals(DO_NOT_INSERT)) {
+ this.newLineBeforeOpeningBraceMode = false;
+ }
+ continue;
+ }
+ if (optionID.equals(OPTION_InsertNewlineInControlStatement)) {
+ if (optionValue.equals(INSERT)) {
+ this.newlineInControlStatementMode = true;
+ } else if (optionValue.equals(DO_NOT_INSERT)) {
+ this.newlineInControlStatementMode = false;
+ }
+ continue;
+ }
+ if (optionID.equals(OPTION_ClearAllBlankLines)) {
+ if (optionValue.equals(CLEAR_ALL)) {
+ this.clearAllBlankLinesMode = true;
+ } else if (optionValue.equals(PRESERVE_ONE)) {
+ this.clearAllBlankLinesMode = false;
+ }
+ continue;
+ }
+ // if (optionID.equals(OPTION_InsertNewLineBetweenElseAndIf)) {
+ // if (optionValue.equals(INSERT)) {
+ // this.compactElseIfMode = false;
+ // } else if (optionValue.equals(DO_NOT_INSERT)) {
+ // this.compactElseIfMode = true;
+ // }
+ // continue;
+ // }
+ if (optionID.equals(OPTION_InsertNewLineInEmptyBlock)) {
+ if (optionValue.equals(INSERT)) {
+ this.newLineInEmptyBlockMode = true;
+ } else if (optionValue.equals(DO_NOT_INSERT)) {
+ this.newLineInEmptyBlockMode = false;
+ }
+ continue;
+ }
+ if (optionID.equals(OPTION_SplitLineExceedingLength)) {
+ try {
+ int val = Integer.parseInt(optionValue);
+ if (val >= 0)
+ this.maxLineLength = val;
+ } catch (NumberFormatException e) {
+ }
+ }
+ if (optionID.equals(OPTION_CompactAssignment)) {
+ if (optionValue.equals(COMPACT)) {
+ this.compactAssignmentMode = true;
+ } else if (optionValue.equals(NORMAL)) {
+ this.compactAssignmentMode = false;
+ }
+ continue;
+ }
+ if (optionID.equals(OPTION_CompactArrays)) {
+ if (optionValue.equals(COMPACT)) {
+ this.compactArrays = true;
+ } else if (optionValue.equals(NORMAL)) {
+ this.compactArrays = false;
+ }
+ continue;
+ }
+ if (optionID.equals(OPTION_CompactStringConcatenation)) {
+ if (optionValue.equals(COMPACT)) {
+ this.compactStringConcatenation = true;
+ } else if (optionValue.equals(NORMAL)) {
+ this.compactStringConcatenation = false;
+ }
+ continue;
+ }
+ if (optionID.equals(OPTION_TabulationChar)) {
+ if (optionValue.equals(TAB)) {
+ this.indentWithTab = true;
+ } else if (optionValue.equals(SPACE)) {
+ this.indentWithTab = false;
+ }
+ continue;
+ }
+ if (optionID.equals(OPTION_TabulationSize)) {
+ try {
+ int val = Integer.parseInt(optionValue);
+ if (val > 0)
+ this.tabSize = val;
+ } catch (NumberFormatException e) {
+ }
+ }
+ }
+ }
+
+ /**
+ *
+ * @return int
+ */
+ public int getMaxLineLength() {
+ return maxLineLength;
+ }
+
+ public int getTabSize() {
+ return tabSize;
+ }
+
+ public boolean isAddingNewLineBeforeOpeningBrace() {
+ return newLineBeforeOpeningBraceMode;
+ }
+
+ public boolean isAddingNewLineInControlStatement() {
+ return newlineInControlStatementMode;
+ }
+
+ public boolean isAddingNewLineInEmptyBlock() {
+ return newLineInEmptyBlockMode;
+ }
+
+ public boolean isClearingAllBlankLines() {
+ return clearAllBlankLinesMode;
+ }
+
+ public boolean isCompactingAssignment() {
+ return compactAssignmentMode;
+ }
+
+ public boolean isCompactingDereferencing() {
+ return compactDereferencingMode;
+ }
+
+ // public boolean isCompactingElseIf() {
+ // return compactElseIfMode;
+ // }
+ public boolean isUsingTabForIndenting() {
+ return indentWithTab;
+ }
+
+ public void setLineSeparator(String lineSeparator) {
+ lineSeparatorSequence = lineSeparator.toCharArray();
+ }
+
+ /**
+ * @deprecated - should use a Map when creating the options.
+ */
+ public void setMaxLineLength(int maxLineLength) {
+ this.maxLineLength = maxLineLength;
+ }
+ /**
+ * @deprecated - should use a Map when creating the options.
+ */
+ // public void setCompactElseIfMode(boolean flag) {
+ // compactElseIfMode = flag;
+ // }
}