@NotNull
  protected Runnable computeDifferences(@NotNull ProgressIndicator indicator) {
    final Document document1 = getContent1().getDocument();
    final Document document2 = getContent2().getDocument();

    final CharSequence[] texts = ReadAction.compute(
      () -> new CharSequence[]{document1.getImmutableCharSequence(), document2.getImmutableCharSequence()});

    final List<LineFragment> fragments = myTextDiffProvider.compare(texts[0], texts[1], indicator);

    UnifiedDiffState builder = ReadAction.compute(() -> {
      indicator.checkCanceled();
      return new SimpleUnifiedFragmentBuilder(document1, document2, myMasterSide).exec(fragments);
    });

    return apply(builder, texts, indicator);
  }
@NotNull
  protected Runnable computeDifferences(@NotNull ProgressIndicator indicator)