void (@NotNull List<? extends MergeLineFragment> fragments, @NotNull List<? extends MergeConflictType> conflictTypes, @Nullable FoldingModelSupport.Data foldingState, @NotNull IgnorePolicy ignorePolicy) { if (isDisposed()) return; myFoldingModel.updateContext(myRequest, getFoldingModelSettings()); clearDiffPresentation(); resetChangeCounters(); boolean success = setInitialOutputContent(); if (!success) { fragments = Collections.emptyList(); conflictTypes = Collections.emptyList(); myPanel .addNotification(DiffNotifications.createNotification(DiffBundle.message("error.cant.resolve.conflicts.in.a.read.only.file"))); } myModel.setChanges(ContainerUtil.map(fragments, f -> new LineRange(f.getStartLine(ThreeSide.BASE), f.getEndLine(ThreeSide.BASE)))); for (int index = 0; index < fragments.size(); index++) { MergeLineFragment fragment = fragments.get(index); MergeConflictType conflictType = conflictTypes.get(index); TextMergeChange change = new TextMergeChange(index, fragment, conflictType, myTextMergeViewer); myAllMergeChanges.add(change); onChangeAdded(change); } myFoldingModel.install(foldingState, myRequest, getFoldingModelSettings()); myInitialScrollHelper.onRediff(); myContentPanel.repaintDividers(); myStatusPanel.update(); getEditor().setViewer(false); myLoadingPanel.stopLoading(); myAcceptResolveAction.setEnabled(true); myInnerDiffWorker.onEverythingChanged(); myInitialRediffFinished = true; myContentModified = false; myCurrentIgnorePolicy = ignorePolicy; if (getTextSettings().isAutoApplyNonConflictedChanges()) { if (hasNonConflictedChanges(ThreeSide.BASE)) { applyNonConflictedChanges(ThreeSide.BASE); } } }