From: durel_b Date: Wed, 22 Oct 2003 17:45:20 +0000 (+0000) Subject: compact the dereferencing operator in the formatter X-Git-Url: http://secure.phpeclipse.com?hp=f183d87ce720ffd87b17c7b62f0cd73f3f24472e compact the dereferencing operator in the formatter ($c->m stay as this insted of being break in $c -> m) --- diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java index 3d70337..30ed629 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java @@ -890,6 +890,8 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { // (eg: ++, --, +, -) and the identifier being modified. if (previousToken == TokenNamePLUS_PLUS || previousToken == TokenNameMINUS_MINUS + || (previousToken == TokenNameMINUS_GREATER && + options.compactDereferencingMode) // -> || (previousToken == TokenNamePLUS && unarySignModifier > 0) || (previousToken == TokenNameMINUS && unarySignModifier > 0)) { pendingSpace = false; @@ -912,7 +914,11 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { 7) in an assignment statement, if the previous token is an open brace or the current token is a close brace 8) previous token is a single line comment + 9) current token is a '->' */ + if (token == TokenNameMINUS_GREATER && + options.compactDereferencingMode) pendingSpace = false; + boolean openAndCloseBrace = previousCompilableToken == TokenNameLBRACE && token == TokenNameRBRACE; if (pendingSpace diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/impl/FormatterOptions.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/impl/FormatterOptions.java index 3b9f9b7..b8f8626 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/impl/FormatterOptions.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/impl/FormatterOptions.java @@ -26,7 +26,9 @@ public class FormatterOptions { public static final String OPTION_CompactAssignment = "net.sourceforge.phpeclipse.core.formatter.style.assignment"; //$NON-NLS-1$ public static final String OPTION_TabulationChar = "net.sourceforge.phpeclipse.core.formatter.tabulation.char"; //$NON-NLS-1$ public static final String OPTION_TabulationSize = "net.sourceforge.phpeclipse.core.formatter.tabulation.size"; //$NON-NLS-1$ - + public static final String OPTION_CompactDereferencing = "net.sourceforge.phpeclipse.core.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$ @@ -50,6 +52,8 @@ public class FormatterOptions { public boolean compactAssignmentMode = 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 @@ -184,6 +188,9 @@ public class FormatterOptions { public boolean isCompactingAssignment() { return compactAssignmentMode; } + public boolean isCompactingDereferencing() { + return compactDereferencingMode; + } // public boolean isCompactingElseIf() { // return compactElseIfMode; // }