private static void setupLogBreakpoint(@Nullable final XLineBreakpoint<?> breakpoint,
                                         @Nullable final InputEvent inputEvent,
                                         @Nullable final Editor editor,
                                         @NotNull final Project project) {
    if (breakpoint == null || editor == null ||
        !(inputEvent instanceof MouseEvent mouseEvent) ||
        inputEvent.isAltDown() || !inputEvent.isShiftDown()) {
      return;
    }

    breakpoint.setSuspendPolicy(SuspendPolicy.NONE);
    String selection = editor.getSelectionModel().getSelectedText();
    if (selection != null) {
      breakpoint.setLogExpression(selection);
    }
    else {
      breakpoint.setLogMessage(true);
    }
    // edit breakpoint
    LogicalPosition position = new LogicalPosition(breakpoint.getLine() + 1, 0);
    Point point = new Point(mouseEvent.getPoint().x, editor.logicalPositionToXY(position).y);
    DebuggerUIUtil.showXBreakpointEditorBalloon(project, point, ((EditorEx) editor).getGutterComponentEx(), false, breakpoint);
  }
private static void setupLogBreakpoint(@Nullable final XLineBreakpoint<?> breakpoint,
                                         @Nullable final InputEvent inputEvent,
                                         @Nullable final Editor editor,
                                         @NotNull final Project project)