@Override
  public void doCollectInformation(@NotNull ProgressIndicator progress) {
    Long stamp = myEditor.getUserData(LAST_TIME_INDENTS_BUILT);
    if (stamp != null && stamp.longValue() == nowStamp()) return;

    myDescriptors = buildDescriptors();

    ArrayList<TextRange> ranges = new ArrayList<>();
    for (IndentGuideDescriptor descriptor : myDescriptors) {
      ProgressManager.checkCanceled();
      int endOffset =
        descriptor.endLine < myDocument.getLineCount() ? myDocument.getLineStartOffset(descriptor.endLine) : myDocument.getTextLength();
      ranges.add(new TextRange(myDocument.getLineStartOffset(descriptor.startLine), endOffset));
    }

    ranges.sort(Segment.BY_START_OFFSET_THEN_END_OFFSET);
    myRanges = ranges;
  }
@Override
  public void doCollectInformation(@NotNull ProgressIndicator progress)