@NotNull
  private static List<DividerSeparator> createVisibleSeparators(@NotNull Editor editor1,
                                                                @NotNull Editor editor2,
                                                                @NotNull DividerSeparatorPaintable paintable,
                                                                @NotNull Rectangle paintedArea) {
    if (editor1.isDisposed() || editor2.isDisposed()) return Collections.emptyList();

    final List<DividerSeparator> separators = new ArrayList<>();

    IntPair yRange = new IntPair(paintedArea.y, paintedArea.y + paintedArea.height);
    final LineRange leftInterval = getPaintedInterval(editor1, yRange);
    final LineRange rightInterval = getPaintedInterval(editor2, yRange);

    final int height1 = editor1.getLineHeight();
    final int height2 = editor2.getLineHeight();

    final EditorColorsScheme scheme = editor1.getColorsScheme();

    paintable.process((line1, line2, isHovered) -> {
      if (leftInterval.start > line1 + 1 && rightInterval.start > line2 + 1) return true;
      if (leftInterval.end < line1 && rightInterval.end < line2) return false;

      separators.add(createSeparator(editor1, editor2, line1, line2, height1, height2, isHovered, scheme));
      return true;
    });

    return separators;
  }
@NotNull
  private static List<DividerSeparator> createVisibleSeparators(@NotNull Editor editor1,
                                                                @NotNull Editor editor2,
                                                                @NotNull DividerSeparatorPaintable paintable,
                                                                @NotNull Rectangle paintedArea)