private void showArrangementSettingsPopup(@NotNull ActionLink link) {
    List<ArrangementTabInfo> arrangementTabInfos = getArrangementTabInfos();

    JBPopupFactory.getInstance().createPopupChooserBuilder(arrangementTabInfos)
      .setTitle(CodeInsightBundle.message("actions.on.save.page.popup.title.arrangement.settings"))
      .setRenderer(new DefaultListCellRenderer() {
        @Override
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
          Component result = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
          ArrangementTabInfo tabInfo = (ArrangementTabInfo)value;
          setText(tabInfo.languageDisplayName);
          setIcon(ObjectUtils.notNull(tabInfo.icon, EmptyIcon.ICON_16));
          setBorder(JBUI.Borders.empty(3));
          return result;
        }
      })
      .setItemChosenCallback(tabInfo -> {
        String configurableId = CodeStyleConfigurableWrapper.getConfigurableId(tabInfo.configurableId);
        Configurable configurable = getSettings().find(configurableId);
        getSettings().select(configurable).doWhenDone(() -> {
          if (configurable instanceof CodeStyleConfigurableWrapper) {
            ((CodeStyleConfigurableWrapper)configurable).selectTab(ApplicationBundle.message("arrangement.title.settings.tab"));
          }
        });
      })
      .createPopup()
      .show(new RelativePoint(link, new Point(0, link.getHeight() + JBUI.scale(4))));
  }
private void showArrangementSettingsPopup(@NotNull ActionLink link)