diff --git a/platform/diff-impl/src/com/intellij/diff/actions/impl/SetEditorSettingsAction.java b/platform/diff-impl/src/com/intellij/diff/actions/impl/SetEditorSettingsAction.java index 5f5af446cab8..6f4488d3b5a3 100644 --- a/platform/diff-impl/src/com/intellij/diff/actions/impl/SetEditorSettingsAction.java +++ b/platform/diff-impl/src/com/intellij/diff/actions/impl/SetEditorSettingsAction.java @@ -30,7 +30,6 @@ import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; import java.util.List; import static com.intellij.util.ArrayUtil.toObjectArray; @@ -165,13 +164,28 @@ public class SetEditorSettingsAction extends ActionGroup implements DumbAware { @NotNull @Override public AnAction[] getChildren(@Nullable AnActionEvent e) { - List result = new ArrayList<>(); - ContainerUtil.addAll(result, myActions); - result.add(Separator.getInstance()); - result.add(ActionManager.getInstance().getAction(IdeActions.GROUP_DIFF_EDITOR_GUTTER_POPUP)); + AnAction[] children = ((ActionGroup)ActionManager.getInstance().getAction(IdeActions.GROUP_DIFF_EDITOR_GUTTER_POPUP)).getChildren(e); + AnAction editorSettingsGroup = ActionManager.getInstance().getAction("Diff.EditorGutterPopupMenu.EditorSettings"); + + DefaultActionGroup ourGroup = new DefaultActionGroup(); + ourGroup.add(Separator.getInstance()); + ourGroup.addAll(myActions); + ourGroup.add(editorSettingsGroup); + ourGroup.add(Separator.getInstance()); + + List result = ContainerUtil.newArrayList(children); + replaceOrAppend(result, editorSettingsGroup, ourGroup); + return toObjectArray(result, AnAction.class); } + private static void replaceOrAppend(List list, T from, T to) { + int index = list.indexOf(from); + if (index == -1) index = list.size(); + list.remove(from); + list.add(index, to); + } + private abstract class EditorSettingToggleAction extends ToggleAction implements DumbAware, EditorSettingAction { private EditorSettingToggleAction(@NotNull String actionId) { ActionUtil.copyFrom(this, actionId); diff --git a/platform/platform-resources/src/idea/PlatformActions.xml b/platform/platform-resources/src/idea/PlatformActions.xml index e84937974541..5f42745d5c8f 100644 --- a/platform/platform-resources/src/idea/PlatformActions.xml +++ b/platform/platform-resources/src/idea/PlatformActions.xml @@ -223,7 +223,9 @@ - + + + diff --git a/platform/platform-resources/src/idea/VcsActions.xml b/platform/platform-resources/src/idea/VcsActions.xml index b3cbe6169e62..06528e485347 100644 --- a/platform/platform-resources/src/idea/VcsActions.xml +++ b/platform/platform-resources/src/idea/VcsActions.xml @@ -14,7 +14,7 @@ - +