protected @Nullable HtmlChunk getDescription(@NotNull Icon itemIcon) {
    Path filePath;
    String directoryPath = null;
    try {
      if (myDirectories.size() == 1) {
        TargetDirectory directory = myDirectories.get(0);
        PsiDirectory psiDirectory = directory.getDirectory();
        directoryPath = psiDirectory == null ? "" : psiDirectory.getVirtualFile().getPresentableUrl();
        filePath = Path.of("", directory.getPathToCreate());
        for (String component : mySubPath) {
          filePath = filePath.resolve(component);
        }
        filePath = filePath.resolve(myNewFileName);
      }
      else {
        filePath = Path.of("", mySubPath).resolve(myNewFileName);
      }
    }
    catch (InvalidPathException e) {
      return null;
    }
    HtmlChunk fileReference = fragment(icon("file", itemIcon), nbsp(), text(filePath.toString()));
    HtmlBuilder builder = new HtmlBuilder();
    builder.append(template(CodeInsightBundle.message(myKey, "$file$"), "file", fileReference));
    if (filePath.getNameCount() > 1) {
      builder.br().append(CodeInsightBundle.message("intention.description.including.intermediate.directories"));
    }
    if (directoryPath != null) {
      HtmlChunk dirReference = fragment(icon("dir", AllIcons.Nodes.Folder), nbsp(), text(directoryPath));
      builder.br()
        .append(template(CodeInsightBundle.message("intention.description.inside.directory", "$directory$"),
                         "directory", dirReference));
    }
    return builder.toFragment();
  }
protected @Nullable HtmlChunk getDescription(@NotNull Icon itemIcon)