@Override
  public Sorter @NotNull [] getSorters() {
    return new Sorter[] {
      new Sorter() {
        @Override
        public Comparator getComparator() {
          return (o1, o2) -> {
            if (o1 instanceof PluginDescriptorTreeElement e1 && o2 instanceof PluginDescriptorTreeElement e2) {
              if (e1.isTopLevelNode() && e2.isTopLevelNode()) {
                return 0;
              }
            }

            //noinspection unchecked
            return ALPHA_SORTER.getComparator().compare(o1, o2);
          };
        }

        @Override
        public boolean isVisible() {
          return ALPHA_SORTER.isVisible();
        }

        @NotNull
        @Override
        public ActionPresentation getPresentation() {
          return new ActionPresentationData(DevKitBundle.message("structure.sort.alphabetically.in.groups"),
                                            DevKitBundle.message("structure.sort.alphabetically.in.groups.description"),
                                            AllIcons.ObjectBrowser.Sorted);
        }

        @NotNull
        @Override
        public String getName() {
          return "PluginDescriptorStructureAlphaSorter";
        }
      }
    };
  }
@Override
  public Sorter @NotNull [] getSorters()