@Override
  public @Nls String generateDoc(final PsiElement element, @Nullable final PsiElement originalElement) {
    if (element instanceof IProperty property) {
      String text = property.getDocCommentText();

      @NonNls String info = "";
      if (text != null) {
        TextAttributes attributes = EditorColorsManager.getInstance().getGlobalScheme().getAttributes(PropertiesHighlighter.PropertiesComponent.PROPERTY_COMMENT.getTextAttributesKey()).clone();
        Color background = attributes.getBackgroundColor();
        if (background != null) {
          info +="<div bgcolor=#"+ GuiUtils.colorToHex(background)+">";
        }
        String doc = StringUtil.join(ContainerUtil.map(StringUtil.split(text, "\n"), s -> {
          final String trimHash = StringUtil.trimStart(s, PropertiesCommenter.HASH_COMMENT_PREFIX);
          final String trimExclamation = StringUtil.trimStart(trimHash, PropertiesCommenter.EXCLAMATION_COMMENT_PREFIX);
          return trimExclamation.trim();
        }), "<br>");
        final Color foreground = attributes.getForegroundColor();
        info += foreground != null ? "<font color=#" + GuiUtils.colorToHex(foreground) + ">" + doc + "</font>" : doc;
        info += "\n<br>";
        if (background != null) {
          info += "</div>";
        }
      }
      info += "\n<b>" + property.getName() + "</b>=\"" + renderPropertyValue(property) + "\"";
      info += getLocationString(element);
      return info;
    }
    return null;
  }
@Override
  public @Nls String generateDoc(final PsiElement element, @Nullable final PsiElement originalElement)