@Override
  public @Nullable Function<? super @NotNull FileEditor, ? extends @Nullable JComponent> collectNotificationData(@NotNull Project project,
                                                                                                                @NotNull VirtualFile file) {
    if (PropertiesComponent.getInstance().isTrueValue(DISABLE_NOTIFICATION.toString())) {
      return null;
    }

    return fileEditor -> {
      if (!(fileEditor instanceof TextEditor)) {
        return null;
      }

      Editor editor = ((TextEditor)fileEditor).getEditor();
      if (!Boolean.TRUE.equals(editor.getUserData(EditorImpl.CONTAINS_BIDI_TEXT)) ||
          Boolean.TRUE.equals(editor.getUserData(DISABLE_NOTIFICATION))) {
        return null;
      }

      EditorNotificationPanel panel = new EditorNotificationPanel(fileEditor, EditorNotificationPanel.Status.Info);
      panel.setText(EditorBundle.message("bidi.content.message"));
      panel.createActionLabel(EditorBundle.message("bidi.content.choose.message"), () -> showChooserPopup(editor));
      panel.createActionLabel(EditorBundle.message("notification.hide.message"), () -> {
        editor.putUserData(DISABLE_NOTIFICATION, Boolean.TRUE);
        EditorNotifications.getInstance(project).updateNotifications(file);
      });
      panel.createActionLabel(EditorBundle.message("notification.dont.show.again.message"), () -> {
        PropertiesComponent.getInstance().setValue(DISABLE_NOTIFICATION.toString(), "true");
        EditorNotifications.getInstance(project).updateAllNotifications();
      });
      return panel;
    };
  }
@Override
  public @Nullable Function<? super @NotNull FileEditor, ? extends @Nullable JComponent> collectNotificationData(@NotNull Project project,
                                                                                                                @NotNull VirtualFile file)