@NotNull
  public static List<LineFragment> convertIntoLineFragments(@NotNull Range range,
                                                            @NotNull LineOffsets lineOffsets1,
                                                            @NotNull LineOffsets lineOffsets2,
                                                            @NotNull DiffIterable changes) {
    List<LineFragment> fragments = new ArrayList<>();
    for (Range ch : changes.iterateChanges()) {
      int startLine1 = ch.start1 + range.start1;
      int startLine2 = ch.start2 + range.start2;
      int endLine1 = ch.end1 + range.start1;
      int endLine2 = ch.end2 + range.start2;
      fragments.add(createLineFragment(startLine1, endLine1, startLine2, endLine2, lineOffsets1, lineOffsets2));
    }
    return fragments;
  }
@NotNull
  public static List<LineFragment> convertIntoLineFragments(@NotNull Range range,
                                                            @NotNull LineOffsets lineOffsets1,
                                                            @NotNull LineOffsets lineOffsets2,
                                                            @NotNull DiffIterable changes)