@Override
  public void actionPerformed(@NotNull AnActionEvent e) {
    Project project = e.getData(CommonDataKeys.PROJECT);
    if (project == null) return;
    Editor editor = e.getData(CommonDataKeys.EDITOR);
    if (editor == null) return;
    XSourcePosition position = getLineBreakpointPosition(e);
    assert position != null;
    XBreakpointUtil.toggleLineBreakpoint(project, position, false, editor, false, false, true)
      .onSuccess(bp -> {
        if (bp != null && isConditional()) {
          ModalityUiUtil.invokeLaterIfNeeded(ModalityState.defaultModalityState(), () -> {
            EditorGutterComponentEx gutter = (EditorGutterComponentEx)editor.getGutter();
            int x = -gutter.getWidth() + gutter.getLineNumberAreaOffset() + gutter.getLineNumberAreaWidth() / 2;
            int y = editor.offsetToXY(position.getOffset()).y + editor.getLineHeight() / 2;
            DebuggerUIUtil.showXBreakpointEditorBalloon(project, new Point(x, y), editor.getContentComponent(), false, bp);
          });
        }
      });
  }
@Override
  public void actionPerformed(@NotNull AnActionEvent e)