diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java index d1ee165bede4..2fc6f82b0dd6 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java @@ -187,11 +187,16 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C public int compareTo(@NotNull MatchedValue o) { boolean edt = ApplicationManager.getApplication().isDispatchThread(); - if (value instanceof ActionWrapper && o.value instanceof ActionWrapper && edt) { - boolean p1Enable = ((ActionWrapper)value).isAvailable(); - boolean p2enable = ((ActionWrapper)o.value).isAvailable(); - if (p1Enable && !p2enable) return -1; - if (!p1Enable && p2enable) return 1; + if (value instanceof ActionWrapper && o.value instanceof ActionWrapper) { + if (edt) { + boolean p1Enable = ((ActionWrapper)value).isAvailable(); + boolean p2enable = ((ActionWrapper)o.value).isAvailable(); + if (p1Enable && !p2enable) return -1; + if (!p1Enable && p2enable) return 1; + } + //noinspection unchecked + int compared = value.compareTo(o.value); + if (compared != 0) return compared; } if (value instanceof ActionWrapper && o.value instanceof BooleanOptionDescription) { @@ -563,14 +568,14 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C return myMatcher.get(); } - public static class ActionWrapper implements Comparable{ + public static class ActionWrapper implements Comparable { @NotNull private final AnAction myAction; @NotNull private final MatchMode myMode; @Nullable private final String myGroupName; private final DataContext myDataContext; private Presentation myPresentation; - public ActionWrapper(@NotNull AnAction action, @Nullable String groupName, @NotNull MatchMode mode, DataContext dataContext) { + public ActionWrapper(@NotNull AnAction action, @Nullable String groupName, @NotNull MatchMode mode, DataContext dataContext) { myAction = action; myMode = mode; myGroupName = groupName;