@Override
  public void customizeCellRenderer(@NotNull JTree tree, Object value,
                                    boolean selected, boolean expanded, boolean leaf,
                                    int row, boolean hasFocus) {
    Object userObject = TreeUtil.getUserObject(value);
    if (userObject instanceof HierarchyNodeDescriptor descriptor) {
      var tagIconAndText = descriptor.getTagIconAndTextCached();
      descriptor.getHighlightedText().customize(this);
      setIcon(IconUtil.rowIcon(tagIconAndText.icon(), fixIconIfNeeded(descriptor.getIcon(), selected, hasFocus)));
      append(tagIconAndText.coloredText());
    }
    else {
      super.customizeCellRenderer(tree, value, selected, expanded, leaf, row, hasFocus);
    }
  }
@Override
  public void customizeCellRenderer(@NotNull JTree tree, Object value,
                                    boolean selected, boolean expanded, boolean leaf,
                                    int row, boolean hasFocus)