@Override
  public void showGutterHint(@NotNull LightweightHint hint,
                             @NotNull Editor editor,
                             @NotNull HintHint hintInfo,
                             int lineNumber,
                             int horizontalOffset,
                             int flags,
                             int timeout,
                             boolean reviveOnEditorChange,
                             @Nullable Runnable onHintHidden) {
    Point point = HintManagerImpl.getHintPosition(hint, editor, new LogicalPosition(lineNumber, 0), HintManager.UNDER);
    EditorGutterComponentEx gutterComponent = (EditorGutterComponentEx)editor.getGutter();
    final JRootPane rootPane = gutterComponent.getRootPane();
    if (rootPane != null) {
      JLayeredPane layeredPane = rootPane.getLayeredPane();
      point.x = SwingUtilities.convertPoint(gutterComponent, horizontalOffset, point.y, layeredPane).x;
    }

    showEditorHint(hint, editor, hintInfo, point, flags, timeout, reviveOnEditorChange, onHintHidden);
  }
@Override
  public void showGutterHint(@NotNull LightweightHint hint,
                             @NotNull Editor editor,
                             @NotNull HintHint hintInfo,
                             int lineNumber,
                             int horizontalOffset,
                             int flags,
                             int timeout,
                             boolean reviveOnEditorChange,
                             @Nullable Runnable onHintHidden)