From 69412613bcd785458d7e52207b9ba883f6b12df4 Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Mon, 27 Aug 2012 17:23:06 +0400 Subject: [PATCH] IDEA-19061 Integrate the Rearranger-plugin into core-IDEA 'enum' and 'interface' arrangement entry types are added --- .../intellij/psi/codeStyle/arrangement/JavaRearranger.java | 4 +++- .../psi/codeStyle/arrangement/match/ArrangementEntryType.java | 2 +- .../DefaultArrangementSettingsRepresentationManager.java | 3 ++- .../options/codeStyle/arrangement/ArrangementRuleEditor.java | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java b/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java index 2467413da9f0..462b4efbc455 100644 --- a/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java +++ b/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java @@ -41,7 +41,7 @@ public class JavaRearranger implements Rearranger, { // Type - @NotNull private static final Set SUPPORTED_TYPES = EnumSet.of(CLASS, FIELD, METHOD); + @NotNull private static final Set SUPPORTED_TYPES = EnumSet.of(INTERFACE, CLASS, ENUM, FIELD, METHOD); // Modifier @NotNull private static final Set SUPPORTED_MODIFIERS = EnumSet.of( @@ -60,6 +60,8 @@ public class JavaRearranger implements Rearranger, Set commonModifiers = concat(visibilityModifiers, STATIC, FINAL); MODIFIERS_BY_TYPE.put(NO_TYPE, commonModifiers); + MODIFIERS_BY_TYPE.put(ENUM, visibilityModifiers); + MODIFIERS_BY_TYPE.put(INTERFACE, visibilityModifiers); MODIFIERS_BY_TYPE.put(CLASS, concat(commonModifiers, ABSTRACT)); MODIFIERS_BY_TYPE.put(METHOD, concat(commonModifiers, SYNCHRONIZED, ABSTRACT)); MODIFIERS_BY_TYPE.put(FIELD, concat(commonModifiers, TRANSIENT, VOLATILE)); diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/match/ArrangementEntryType.java b/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/match/ArrangementEntryType.java index 0ba54c75a6be..394ed8bb2bdd 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/match/ArrangementEntryType.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/match/ArrangementEntryType.java @@ -27,5 +27,5 @@ import com.intellij.psi.codeStyle.arrangement.ArrangementEntry; */ public enum ArrangementEntryType { - CLASS, FIELD, METHOD + CLASS, FIELD, METHOD, ENUM, INTERFACE } diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/settings/DefaultArrangementSettingsRepresentationManager.java b/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/settings/DefaultArrangementSettingsRepresentationManager.java index e274cfb3da49..f7467a84f85d 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/settings/DefaultArrangementSettingsRepresentationManager.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/arrangement/settings/DefaultArrangementSettingsRepresentationManager.java @@ -37,7 +37,8 @@ public class DefaultArrangementSettingsRepresentationManager implements Arrangem Object[] ids = { // Types. - ArrangementEntryType.FIELD, ArrangementEntryType.METHOD, ArrangementEntryType.CLASS, + ArrangementEntryType.FIELD, ArrangementEntryType.METHOD, ArrangementEntryType.CLASS, ArrangementEntryType.INTERFACE, + ArrangementEntryType.ENUM, // Visibility. ArrangementModifier.PUBLIC, ArrangementModifier.PROTECTED, ArrangementModifier.PACKAGE_PRIVATE, ArrangementModifier.PRIVATE, diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/ArrangementRuleEditor.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/ArrangementRuleEditor.java index 7dc3cdf76d2c..528bf40563e4 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/ArrangementRuleEditor.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/ArrangementRuleEditor.java @@ -156,7 +156,8 @@ public class ArrangementRuleEditor extends JPanel { ArrangementAtomNodeComponent componentToDeselect = myComponents.get(key); myModel.replaceCondition(componentToDeselect.getMatchCondition(), chosenCondition); for (ArrangementAtomNodeComponent componentToCheck : myComponents.values()) { - if (!ArrangementConfigUtil.isEnabled(componentToCheck.getMatchCondition().getValue(), myFilter, myModel.getMatchCondition())) { + Object value = componentToCheck.getMatchCondition().getValue(); + if (myModel.hasCondition(value) && !ArrangementConfigUtil.isEnabled(value, myFilter, myModel.getMatchCondition())) { myModel.removeAndCondition(componentToCheck.getMatchCondition()); } }