diff --git a/java/java-impl/src/com/intellij/ide/JavaLanguageCodeStyleSettingsProvider.java b/java/java-impl/src/com/intellij/ide/JavaLanguageCodeStyleSettingsProvider.java index 89d815140fa0..fede423831b7 100644 --- a/java/java-impl/src/com/intellij/ide/JavaLanguageCodeStyleSettingsProvider.java +++ b/java/java-impl/src/com/intellij/ide/JavaLanguageCodeStyleSettingsProvider.java @@ -15,6 +15,7 @@ import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFileFactory; import com.intellij.psi.codeStyle.*; +import com.intellij.psi.codeStyle.presentation.CodeStyleSettingPresentation; import com.intellij.psi.util.PsiUtil; import com.intellij.util.LocalTimeCounter; import org.jetbrains.annotations.NotNull; @@ -79,6 +80,8 @@ public class JavaLanguageCodeStyleSettingsProvider extends LanguageCodeStyleSett consumer.showAllStandardOptions(); consumer.showCustomOption(JavaCodeStyleSettings.class, "SPACES_WITHIN_ANGLE_BRACKETS", JavaBundle.message("code.style.settings.angle.spacing.brackets"), getInstance().SPACES_WITHIN); + consumer.showCustomOption(JavaCodeStyleSettings.class, "SPACE_AROUND_ANNOTATION_EQ", + JavaBundle.message("checkbox.spaces.around.annotation.eq"), getInstance().SPACES_OTHER); consumer.showCustomOption(JavaCodeStyleSettings.class, "SPACE_WITHIN_RECORD_HEADER", JavaBundle.message("checkbox.spaces.record.header"), getInstance().SPACES_WITHIN); diff --git a/java/java-impl/src/com/intellij/psi/codeStyle/JavaCodeStyleSettings.java b/java/java-impl/src/com/intellij/psi/codeStyle/JavaCodeStyleSettings.java index 2d1fb12f37eb..4cfe48de4423 100644 --- a/java/java-impl/src/com/intellij/psi/codeStyle/JavaCodeStyleSettings.java +++ b/java/java-impl/src/com/intellij/psi/codeStyle/JavaCodeStyleSettings.java @@ -3,7 +3,6 @@ package com.intellij.psi.codeStyle; import com.intellij.application.options.CodeStyle; import com.intellij.configurationStore.Property; -import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.WriteExternalException; @@ -114,6 +113,8 @@ public class JavaCodeStyleSettings extends CustomCodeStyleSettings implements Im public boolean NEW_LINE_AFTER_LPAREN_IN_ANNOTATION = false; public boolean RPAREN_ON_NEW_LINE_IN_ANNOTATION = false; + public boolean SPACE_AROUND_ANNOTATION_EQ = true; + public boolean ALIGN_MULTILINE_TEXT_BLOCKS = false; public int BLANK_LINES_AROUND_INITIALIZER = 1; diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java index b5aa734d5460..3e4df3f2c757 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java @@ -1778,7 +1778,7 @@ public final class JavaSpacePropertyProcessor extends JavaElementVisitor { @Override public void visitNameValuePair(PsiNameValuePair pair) { if (myRole1 == ChildRole.OPERATION_SIGN || myRole2 == ChildRole.OPERATION_SIGN) { - createSpaceInCode(mySettings.SPACE_AROUND_ASSIGNMENT_OPERATORS); + createSpaceInCode(myJavaSettings.SPACE_AROUND_ANNOTATION_EQ); } } diff --git a/java/java-tests/testData/codeStyle/jsonExport.json b/java/java-tests/testData/codeStyle/jsonExport.json index 0a4afb1f463a..da7951d0024f 100644 --- a/java/java-tests/testData/codeStyle/jsonExport.json +++ b/java/java-tests/testData/codeStyle/jsonExport.json @@ -217,6 +217,7 @@ "space_within_empty_method_call_parentheses": false, "space_within_empty_method_parentheses": false, "spaces_around_additive_operators": true, + "spaces_around_annotation_eq": true, "spaces_around_assignment_operators": true, "spaces_around_bitwise_operators": true, "spaces_around_equality_operators": true, diff --git a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/AnnotationFormatterTest.java b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/AnnotationFormatterTest.java index 32ebd361dd96..29d770247da8 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/AnnotationFormatterTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/AnnotationFormatterTest.java @@ -222,7 +222,7 @@ public class AnnotationFormatterTest extends JavaFormatterTestCase { } public void testSpaces3() { - getSettings(JavaLanguage.INSTANCE).SPACE_AROUND_ASSIGNMENT_OPERATORS = false; + getCustomJavaSettings().SPACE_AROUND_ANNOTATION_EQ = false; doTextTest("public interface PsiClass{\n" + " @Nullable(documentation = \"parameter1 value\", doc2=\"parameter2 value\")\n" + " String getQualifiedName();\n" + @@ -234,7 +234,7 @@ public class AnnotationFormatterTest extends JavaFormatterTestCase { } public void testSpaces4() { - getSettings(JavaLanguage.INSTANCE).SPACE_AROUND_ASSIGNMENT_OPERATORS = true; + getCustomJavaSettings().SPACE_AROUND_ANNOTATION_EQ = true; doTextTest("public interface PsiClass{\n" + " @Nullable(documentation = \"parameter1 value\", doc2=\"parameter2 value\")\n" + diff --git a/java/openapi/resources/messages/JavaBundle.properties b/java/openapi/resources/messages/JavaBundle.properties index c9d78e8a401d..9c56cbfc5fce 100644 --- a/java/openapi/resources/messages/JavaBundle.properties +++ b/java/openapi/resources/messages/JavaBundle.properties @@ -61,6 +61,7 @@ checkbox.after.parameter.descriptions=After parameter descriptions checkbox.after.return.tag=After return tag checkbox.align.parameter.descriptions=Align parameter descriptions checkbox.align.thrown.exception.descriptions=Align thrown exception descriptions +checkbox.spaces.around.annotation.eq=Around '=' in annotation value pair checkbox.annotate.local.variables=Annotate local variables checkbox.collapse.annotations=Annotations checkbox.collapse.anonymous.classes=Anonymous classes