From 6acfa8809aff4a90f168ec21b2ebed343bd0de8e Mon Sep 17 00:00:00 2001 From: Rustam Vishnyakov Date: Wed, 3 Sep 2014 12:59:48 +0400 Subject: [PATCH] Add a common "Comments"/"Wrap at right margin" option to standard "Wrapping and Braces" panel --- ...JavaLanguageCodeStyleSettingsProvider.java | 80 ++++++++++++++++++- .../CodeStyleSettingsCustomizable.java | 1 + .../codeStyle/WrappingAndBracesPanel.java | 1 + .../src/messages/ApplicationBundle.properties | 2 + 4 files changed, 83 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/ide/JavaLanguageCodeStyleSettingsProvider.java b/java/java-impl/src/com/intellij/ide/JavaLanguageCodeStyleSettingsProvider.java index 6b5c1fe87e64..90c4f630df1c 100644 --- a/java/java-impl/src/com/intellij/ide/JavaLanguageCodeStyleSettingsProvider.java +++ b/java/java-impl/src/com/intellij/ide/JavaLanguageCodeStyleSettingsProvider.java @@ -58,8 +58,8 @@ public class JavaLanguageCodeStyleSettingsProvider extends LanguageCodeStyleSett @Override public void customizeSettings(@NotNull CodeStyleSettingsCustomizable consumer, @NotNull SettingsType settingsType) { - consumer.showAllStandardOptions(); if (settingsType == SettingsType.SPACING_SETTINGS) { + consumer.showAllStandardOptions(); consumer.showCustomOption(JavaCodeStyleSettings.class, "SPACES_WITHIN_ANGLE_BRACKETS", "Angle brackets",CodeStyleSettingsCustomizable.SPACES_WITHIN); String groupName = CodeStyleSettingsCustomizable.SPACES_IN_TYPE_ARGUMENTS; @@ -71,9 +71,87 @@ public class JavaLanguageCodeStyleSettingsProvider extends LanguageCodeStyleSett consumer.showCustomOption(JavaCodeStyleSettings.class, "SPACE_AROUND_TYPE_BOUNDS_IN_TYPE_PARAMETERS", "Around type bounds", groupName); } else if (settingsType == SettingsType.WRAPPING_AND_BRACES_SETTINGS) { + consumer.showStandardOptions("RIGHT_MARGIN", + "KEEP_LINE_BREAKS", + "KEEP_FIRST_COLUMN_COMMENT", + "KEEP_CONTROL_STATEMENT_IN_ONE_LINE", + "KEEP_MULTIPLE_EXPRESSIONS_IN_ONE_LINE", + "KEEP_SIMPLE_BLOCKS_IN_ONE_LINE", + "KEEP_SIMPLE_METHODS_IN_ONE_LINE", + "KEEP_SIMPLE_CLASSES_IN_ONE_LINE", + "WRAP_LONG_LINES", + "CLASS_BRACE_STYLE", + "METHOD_BRACE_STYLE", + "BRACE_STYLE", + "EXTENDS_LIST_WRAP", + "ALIGN_MULTILINE_EXTENDS_LIST", + "EXTENDS_KEYWORD_WRAP", + "THROWS_LIST_WRAP", + "ALIGN_MULTILINE_THROWS_LIST", + "ALIGN_THROWS_KEYWORD", + "THROWS_KEYWORD_WRAP", + "METHOD_PARAMETERS_WRAP", + "ALIGN_MULTILINE_PARAMETERS", + "METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE", + "METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE", + "CALL_PARAMETERS_WRAP", + "ALIGN_MULTILINE_PARAMETERS_IN_CALLS", + "PREFER_PARAMETERS_WRAP", + "CALL_PARAMETERS_LPAREN_ON_NEXT_LINE", + "CALL_PARAMETERS_RPAREN_ON_NEXT_LINE", + "ALIGN_MULTILINE_METHOD_BRACKETS", + "METHOD_CALL_CHAIN_WRAP", + "ALIGN_MULTILINE_CHAINED_METHODS", + "ALIGN_GROUP_FIELD_DECLARATIONS", + "IF_BRACE_FORCE", + "ELSE_ON_NEW_LINE", + "SPECIAL_ELSE_IF_TREATMENT", + "FOR_STATEMENT_WRAP", + "ALIGN_MULTILINE_FOR", + "FOR_STATEMENT_LPAREN_ON_NEXT_LINE", + "FOR_STATEMENT_RPAREN_ON_NEXT_LINE", + "FOR_BRACE_FORCE", + "WHILE_BRACE_FORCE", + "DOWHILE_BRACE_FORCE", + "WHILE_ON_NEW_LINE", + "INDENT_CASE_FROM_SWITCH", + "RESOURCE_LIST_WRAP", + "ALIGN_MULTILINE_RESOURCES", + "RESOURCE_LIST_LPAREN_ON_NEXT_LINE", + "RESOURCE_LIST_RPAREN_ON_NEXT_LINE", + "CATCH_ON_NEW_LINE", + "FINALLY_ON_NEW_LINE", + "BINARY_OPERATION_WRAP", + "ALIGN_MULTILINE_BINARY_OPERATION", + "BINARY_OPERATION_SIGN_ON_NEXT_LINE", + "ALIGN_MULTILINE_PARENTHESIZED_EXPRESSION", + "PARENTHESES_EXPRESSION_LPAREN_WRAP", + "PARENTHESES_EXPRESSION_RPAREN_WRAP", + "ASSIGNMENT_WRAP", + "ALIGN_MULTILINE_ASSIGNMENT", + "PLACE_ASSIGNMENT_SIGN_ON_NEXT_LINE", + "TERNARY_OPERATION_WRAP", + "ALIGN_MULTILINE_TERNARY_OPERATION", + "TERNARY_OPERATION_SIGNS_ON_NEXT_LINE", + "ARRAY_INITIALIZER_WRAP", + "ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION", + "ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE", + "ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE", + "MODIFIER_LIST_WRAP", + "ASSERT_STATEMENT_WRAP", + "ASSERT_STATEMENT_COLON_ON_NEXT_LINE", + "CLASS_ANNOTATION_WRAP", + "METHOD_ANNOTATION_WRAP", + "FIELD_ANNOTATION_WRAP", + "PARAMETER_ANNOTATION_WRAP", + "VARIABLE_ANNOTATION_WRAP", + "ENUM_CONSTANTS_WRAP"); String groupName = ApplicationBundle.message("wrapping.fields.annotation"); consumer.showCustomOption(JavaCodeStyleSettings.class, "DO_NOT_WRAP_AFTER_SINGLE_ANNOTATION", "Do not wrap after single annotation", groupName); } + else { + consumer.showAllStandardOptions(); + } } @Override diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettingsCustomizable.java b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettingsCustomizable.java index 290078e39aa9..2ef2c998b3b4 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettingsCustomizable.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettingsCustomizable.java @@ -214,6 +214,7 @@ public interface CodeStyleSettingsCustomizable { String WRAPPING_KEEP = ApplicationBundle.message("wrapping.keep.when.reformatting"); String WRAPPING_BRACES = ApplicationBundle.message("wrapping.brace.placement"); + String WRAPPING_COMMENTS = ApplicationBundle.message("wrapping.comments"); String WRAPPING_METHOD_PARAMETERS = ApplicationBundle.message("wrapping.method.parameters"); String WRAPPING_METHOD_PARENTHESES = ApplicationBundle.message("wrapping.method.parentheses"); String WRAPPING_METHOD_ARGUMENTS_WRAPPING = ApplicationBundle.message("wrapping.method.arguments"); diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/WrappingAndBracesPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/WrappingAndBracesPanel.java index c192d0e2893a..2972dacf2ceb 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/WrappingAndBracesPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/WrappingAndBracesPanel.java @@ -43,6 +43,7 @@ public class WrappingAndBracesPanel extends OptionTableWithPreviewPanel { addOption("KEEP_SIMPLE_CLASSES_IN_ONE_LINE", ApplicationBundle.message("wrapping.keep.simple.classes.in.one.line"), WRAPPING_KEEP); addOption("WRAP_LONG_LINES", ApplicationBundle.message("wrapping.long.lines"), null); + addOption("WRAP_COMMENTS", ApplicationBundle.message("wrapping.comments.wrap.at.right.margin"), WRAPPING_COMMENTS); addOption("CLASS_BRACE_STYLE", ApplicationBundle.message("wrapping.brace.placement.class.declaration"), WRAPPING_BRACES, BRACE_PLACEMENT_OPTIONS, BRACE_PLACEMENT_VALUES); addOption("METHOD_BRACE_STYLE", ApplicationBundle.message("wrapping.brace.placement.method.declaration"), WRAPPING_BRACES, BRACE_PLACEMENT_OPTIONS, BRACE_PLACEMENT_VALUES); diff --git a/platform/platform-resources-en/src/messages/ApplicationBundle.properties b/platform/platform-resources-en/src/messages/ApplicationBundle.properties index c09c1fc51ca3..983f0212e31e 100644 --- a/platform/platform-resources-en/src/messages/ApplicationBundle.properties +++ b/platform/platform-resources-en/src/messages/ApplicationBundle.properties @@ -212,6 +212,8 @@ wrapping.parameters.annotation=Parameter annotations wrapping.local.variables.annotation=Local variable annotations wrapping.enum.constants=Enum constants wrapping.long.lines=Ensure right margin is not exceeded +wrapping.comments=Comments +wrapping.comments.wrap.at.right.margin=Wrap at right margin checkbox.align.multiline.chained.methods=Chained methods checkbox.align.multiline.method.parameters=Method parameters