private static void updateActiveLineNumberIcon(@NotNull EditorGutterComponentEx gutter, @Nullable Icon icon, @Nullable Integer line) {
      if (gutter.getClientProperty("editor.gutter.context.menu") != null) return;
      boolean requireRepaint = false;
      if (gutter.getClientProperty("line.number.hover.icon") != icon) {
        gutter.putClientProperty("line.number.hover.icon", icon);
        gutter.putClientProperty("line.number.hover.icon.context.menu", icon == null ? null
                                                                                     : ActionManager.getInstance().getAction("XDebugger.Hover.Breakpoint.Context.Menu"));
        if (icon != null) {
          gutter.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // Editor updates cursor on MouseMoved, set it explicitly
        }
        requireRepaint = true;
      }
      if (!Objects.equals(gutter.getClientProperty("active.line.number"), line)) {
        gutter.putClientProperty("active.line.number", line);
        requireRepaint = true;
      }
      if (requireRepaint) {
        gutter.repaint();
      }
    }
private static void updateActiveLineNumberIcon(@NotNull EditorGutterComponentEx gutter, @Nullable Icon icon, @Nullable Integer line)