Bug 545423 - [12] Formatter Support for Switch Expressions - UI
Change-Id: Ic1fbf37569d1de569146d25a9e342c204e946444
Signed-off-by: Mateusz Matela <mateusz.matela@gmail.com>
diff --git a/org.eclipse.jdt.ui/preview/formatter.java b/org.eclipse.jdt.ui/preview/formatter.java
index dcf60b6..ec28ff8 100644
--- a/org.eclipse.jdt.ui/preview/formatter.java
+++ b/org.eclipse.jdt.ui/preview/formatter.java
@@ -416,10 +416,15 @@
//--PREVIEW--END--section-whitespace-statements-for
//--PREVIEW--START--section-whitespace-statements-switch
-switch (number) {
+Color newColor = switch(color) {
+case RED -> GREEN;
+case GREEN,BLUD->RED;
+default->BLACK;
+};
+
+switch (color) {
case RED:return GREEN;
-case GREEN:return BLUE;
-case BLUE:return RED;
+case GREEN,BLUE:return RED;
default:return BLACK;
}
//--PREVIEW--END--section-whitespace-statements-switch
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.java
index 9f0eed9..f53aa1b 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.java
@@ -261,6 +261,8 @@
public static String FormatterModifyDialog_preview_show_whitespace_toggle;
public static String FormatterModifyDialog_preview_show_raw_source_toggle;
public static String FormatterModifyDialog_whiteSpace_pref_after_and_list;
+ public static String FormatterModifyDialog_whiteSpace_pref_after_arrow_in_case;
+ public static String FormatterModifyDialog_whiteSpace_pref_after_arrow_in_default;
public static String FormatterModifyDialog_whiteSpace_pref_after_arrow_operator;
public static String FormatterModifyDialog_whiteSpace_pref_after_assignment_operator;
public static String FormatterModifyDialog_whiteSpace_pref_after_at;
@@ -281,6 +283,7 @@
public static String FormatterModifyDialog_whiteSpace_pref_after_comma_fields;
public static String FormatterModifyDialog_whiteSpace_pref_after_comma_implements;
public static String FormatterModifyDialog_whiteSpace_pref_after_comma_in_alloc;
+ public static String FormatterModifyDialog_whiteSpace_pref_after_comma_in_case_expressions;
public static String FormatterModifyDialog_whiteSpace_pref_after_comma_in_method_args;
public static String FormatterModifyDialog_whiteSpace_pref_after_comma_in_params;
public static String FormatterModifyDialog_whiteSpace_pref_after_comma_in_qalloc;
@@ -300,6 +303,8 @@
public static String FormatterModifyDialog_whiteSpace_pref_after_semicolon;
public static String FormatterModifyDialog_whiteSpace_pref_after_unary_operators;
public static String FormatterModifyDialog_whiteSpace_pref_before_and_list;
+ public static String FormatterModifyDialog_whiteSpace_pref_before_arrow_in_case;
+ public static String FormatterModifyDialog_whiteSpace_pref_before_arrow_in_default;
public static String FormatterModifyDialog_whiteSpace_pref_before_arrow_operator;
public static String FormatterModifyDialog_whiteSpace_pref_before_assignment_operator;
public static String FormatterModifyDialog_whiteSpace_pref_before_at;
@@ -324,6 +329,7 @@
public static String FormatterModifyDialog_whiteSpace_pref_before_comma_fields;
public static String FormatterModifyDialog_whiteSpace_pref_before_comma_implements;
public static String FormatterModifyDialog_whiteSpace_pref_before_comma_in_alloc;
+ public static String FormatterModifyDialog_whiteSpace_pref_before_comma_in_case_expressions;
public static String FormatterModifyDialog_whiteSpace_pref_before_comma_in_method_args;
public static String FormatterModifyDialog_whiteSpace_pref_before_comma_in_params;
public static String FormatterModifyDialog_whiteSpace_pref_before_comma_in_qalloc;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.properties b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.properties
index 29ba3b0..d294a73 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.properties
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterMessages.properties
@@ -72,7 +72,9 @@
FormatterModifyDialog_whiteSpace_pref_before_comma_in_method_args=Before comma in method arguments
FormatterModifyDialog_whiteSpace_pref_after_comma_in_method_args=After comma in method arguments
FormatterModifyDialog_whiteSpace_pref_before_comma_in_alloc=Before comma in object allocation arguments
+FormatterModifyDialog_whiteSpace_pref_before_comma_in_case_expressions=Before comma in case expressions
FormatterModifyDialog_whiteSpace_pref_after_comma_in_alloc=After comma in object allocation arguments
+FormatterModifyDialog_whiteSpace_pref_after_comma_in_case_expressions=After comma in case expressions
FormatterModifyDialog_whiteSpace_pref_before_comma_in_qalloc=Before comma in explicit constructor call
FormatterModifyDialog_whiteSpace_pref_after_comma_in_qalloc=After comma in explicit constructor call
@@ -186,7 +188,11 @@
FormatterModifyDialog_whiteSpace_pref_before_opening_paren_annot_type=Before opening parenthesis in annotation type members
FormatterModifyDialog_whiteSpace_pref_between_empty_parens_annot_type=Between parenthesis in annotation type members
+FormatterModifyDialog_whiteSpace_pref_after_arrow_in_case=After arrow in case
+FormatterModifyDialog_whiteSpace_pref_after_arrow_in_default=After arrow in default
FormatterModifyDialog_whiteSpace_pref_after_arrow_operator=After arrow operator
+FormatterModifyDialog_whiteSpace_pref_before_arrow_in_case=Before arrow in case
+FormatterModifyDialog_whiteSpace_pref_before_arrow_in_default=Before arrow in default
FormatterModifyDialog_whiteSpace_pref_before_arrow_operator=Before arrow operator
FormatterModifyDialog_whiteSpace_tree_return='return'
FormatterModifyDialog_whiteSpace_tree_throw='throw'
@@ -289,7 +295,7 @@
FormatterModifyDialog_braces_pref_constructor_declaration=Constructor declaration:
FormatterModifyDialog_braces_pref_blocks=Blocks:
FormatterModifyDialog_braces_pref_blocks_in_case=Blocks in case statement:
-FormatterModifyDialog_braces_pref_switch_case='switch' statement:
+FormatterModifyDialog_braces_pref_switch_case='switch' statement/expression:
FormatterModifyDialog_braces_pref_array_initializer=Array initializer:
FormatterModifyDialog_braces_pref_keep_empty_array_initializer_on_one_line=Keep empty array initializer on one line
FormatterModifyDialog_braces_pref_enum_declaration=Enum declaration:
@@ -524,7 +530,7 @@
FormatterModifyDialog_parentheses_pref_enum_constant_declaration=Enum constant declaration:
FormatterModifyDialog_parentheses_pref_if_while_statement='if', 'while' and 'do while' statement:
FormatterModifyDialog_parentheses_pref_for_statement='for' statement:
-FormatterModifyDialog_parentheses_pref_switch_statement='switch' statement:
+FormatterModifyDialog_parentheses_pref_switch_statement='switch' statement/expression:
FormatterModifyDialog_parentheses_pref_try_clause='try' clause:
FormatterModifyDialog_parentheses_pref_catch_clause='catch' clause:
FormatterModifyDialog_parentheses_pref_annotation=Annotation:
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterModifyDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterModifyDialog.java
index 93d22c1..44a2cee 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterModifyDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/FormatterModifyDialog.java
@@ -966,10 +966,16 @@
.node(fTree.builder(FormatterMessages.FormatterModifyDialog_whiteSpace_tree_switch, "-switch", modAll) //$NON-NLS-1$
.pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_colon_case, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_CASE)
.pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_colon_default, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_DEFAULT)
- .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_opening_brace, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_SWITCH)
+ .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_arrow_in_case, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ARROW_IN_SWITCH_CASE)
+ .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_after_arrow_in_case, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ARROW_IN_SWITCH_CASE)
+ .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_arrow_in_default, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ARROW_IN_SWITCH_DEFAULT)
+ .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_after_arrow_in_default, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ARROW_IN_SWITCH_DEFAULT)
+ .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_comma_in_case_expressions, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_SWITCH_CASE_EXPRESSIONS)
+ .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_after_comma_in_case_expressions, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_SWITCH_CASE_EXPRESSIONS)
.pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_opening_paren, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_SWITCH)
.pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_after_opening_paren, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_SWITCH)
- .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_closing_paren, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_SWITCH))
+ .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_closing_paren, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_SWITCH)
+ .pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_opening_brace, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_SWITCH))
.node(fTree.builder(FormatterMessages.FormatterModifyDialog_whiteSpace_tree_do, "-while", modAll) //$NON-NLS-1$
.pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_before_opening_paren, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_WHILE)
.pref(FormatterMessages.FormatterModifyDialog_whiteSpace_pref_after_opening_paren, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_WHILE)