@Override
    public void renderElement(LookupElement element, LookupElementPresentation presentation) {
      presentation.setItemText(element.getLookupString());

      ActionOrGroup actionOrGroup = element.getUserData(ACTION_OR_GROUP_KEY);
      assert actionOrGroup != null;

      presentation.setItemTextUnderlined(actionOrGroup.getPopup().getValue() == Boolean.TRUE);
      presentation.setIcon(ElementPresentationManager.getIcon(actionOrGroup));

      NullableLazyValue<PropertiesFile> propertiesFile =
        lazyNullable(() -> DescriptorI18nUtil.findBundlePropertiesFile(actionOrGroup));

      final String text = getLocalizedText(actionOrGroup, ActionOrGroup.TextType.TEXT, propertiesFile);
      if (StringUtil.isNotEmpty(text)) {
        String withoutMnemonic = StringUtil.replace(text, "_", "");
        presentation.setTailText(" \"" + withoutMnemonic + "\"", true);
      }

      final String description = getLocalizedText(actionOrGroup, ActionOrGroup.TextType.DESCRIPTION, propertiesFile);
      if (StringUtil.isNotEmpty(description)) {
        presentation.setTypeText(description);
      }
    }
@Override
    public void renderElement(LookupElement element, LookupElementPresentation presentation)