private static void notifySuccess(Project project, File file) {
    String url = FileUtil.getUrl(file);
    boolean fileTypeAvailable = "CVP".equals(FileTypeRegistry.getInstance().getFileTypeByFileName(file.getName()).getName());
    String message = MessageFormat.format("Cached values snapshot is captured to<br>" +
                                          "{0}.<br>" +
                                          (fileTypeAvailable ? "<a href=\"editor:{1}\">Open in Editor</a><br/>" : "") +
                                          "<a href=\"{1}\">{2}</a>",
                                          file.getPath(), url, RevealFileAction.getActionName());
    NotificationGroupManager.getInstance().getNotificationGroup("Cached value profiling")
      .createNotification(message, NotificationType.INFORMATION)
      .setListener(new NotificationListener.Adapter() {
        @Override
        protected void hyperlinkActivated(@NotNull Notification notification, @NotNull HyperlinkEvent e) {
          if (e.getDescription().startsWith("editor:")) {
            VirtualFile virtualFile = project.isDisposed() ? null : LocalFileSystem.getInstance().findFileByPath(
              VfsUtilCore.urlToPath(VfsUtilCore.fixURLforIDEA(URLUtil.unescapePercentSequences(e.getDescription().substring(7)))));
            if (virtualFile != null) {
              new OpenFileDescriptor(project, virtualFile).navigate(true);
            }
          }
          else {
            RevealFileAction.FILE_SELECTING_LISTENER.hyperlinkUpdate(notification, e);
          }
        }
      })
      .notify(project);
  }
private static void notifySuccess(Project project, File file)