@NotNull
  private AnAction getNavigateAction() {
    return new AnAction() {
      @Override
      public void actionPerformed(@NotNull AnActionEvent e) {
        MouseEvent mouseEvent = getMouseEvent(e);
        getNavigationHandler().navigate(mouseEvent, getElement());
      }

      private static @NotNull MouseEvent getMouseEvent(@NotNull AnActionEvent e) {
        InputEvent inputEvent = e.getInputEvent();
        if (inputEvent instanceof MouseEvent mouseEvent) {
          return mouseEvent;
        }
        return JBPopupFactory.getInstance().guessBestPopupLocation(e.getDataContext()).toMouseEvent();
      }

      @Override
      public void update(@NotNull AnActionEvent e) {
        PsiElement element = getElement();
        if (element != null) {
          Presentation presentation = e.getPresentation();
          presentation.setIcon(getIcon());
          presentation.setText(getElementPresentation(element));
        }
      }

      @Override
      public @NotNull ActionUpdateThread getActionUpdateThread() {
        return ActionUpdateThread.BGT;
      }
    };
  }
@NotNull
  private AnAction getNavigateAction()