import net.sourceforge.phpdt.core.compiler.InvalidInputException;
import net.sourceforge.phpdt.internal.compiler.ConfigurableOption;
import net.sourceforge.phpdt.internal.compiler.parser.Scanner;
-
import net.sourceforge.phpdt.internal.formatter.impl.FormatterOptions;
import net.sourceforge.phpdt.internal.formatter.impl.SplitLine;
// (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;
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
case TokenNameCOLON : // :
return 50; // it's better cutting on ?: than on ;
case TokenNameEQUAL_EQUAL : // ==
+ case TokenNameEQUAL_EQUAL_EQUAL : // ===
case TokenNameNOT_EQUAL : // !=
+ case TokenNameNOT_EQUAL_EQUAL : // !=
return 60;
case TokenNameLESS : // <
case TokenNameLESS_EQUAL : // <=
case TokenNameCOLON : // : (15.24)
return ":"; //$NON-NLS-1$
+ case TokenNameCOLON_COLON : // : (15.24)
+ return "::"; //$NON-NLS-1$
+
case TokenNameEQUAL_EQUAL : // == (15.20, 15.20.1, 15.20.2, 15.20.3)
return "=="; //$NON-NLS-1$
+ case TokenNameEQUAL_EQUAL_EQUAL : // == (15.20, 15.20.1, 15.20.2, 15.20.3)
+ return "==="; //$NON-NLS-1$
+
+ case TokenNameEQUAL_GREATER : // -= (15.25.2)
+ return "=>"; //$NON-NLS-1$
+
case TokenNameNOT_EQUAL : // != (15.20, 15.20.1, 15.20.2, 15.20.3)
return "!="; //$NON-NLS-1$
+ case TokenNameNOT_EQUAL_EQUAL : // != (15.20, 15.20.1, 15.20.2, 15.20.3)
+ return "!=="; //$NON-NLS-1$
+
case TokenNameLESS : // < (15.19.1)
return "<"; //$NON-NLS-1$
case TokenNameMINUS_EQUAL : // -= (15.25.2)
return "-="; //$NON-NLS-1$
+ case TokenNameMINUS_GREATER : // -= (15.25.2)
+ return "->"; //$NON-NLS-1$
+
case TokenNameLEFT_SHIFT_EQUAL : // <<= (15.25.2)
return "<<="; //$NON-NLS-1$
case TokenNameGREATER_EQUAL : // >= (15.19.1)
// case TokenNameinstanceof : // instanceof
case TokenNameEQUAL_EQUAL : // == (15.20, 15.20.1, 15.20.2, 15.20.3)
+ case TokenNameEQUAL_EQUAL_EQUAL : // == (15.20, 15.20.1, 15.20.2, 15.20.3)
case TokenNameNOT_EQUAL : // != (15.20, 15.20.1, 15.20.2, 15.20.3)
+ case TokenNameNOT_EQUAL_EQUAL : // != (15.20, 15.20.1, 15.20.2, 15.20.3)
case TokenNameAND : // & (15.21, 15.21.1, 15.21.2)
case TokenNameOR : // | (15.21, 15.21.1, 15.21.2)
case TokenNameXOR : // ^ (15.21, 15.21.1, 15.21.2)