Change:
Here I am merging from and i am having a hard time figuring out where exactly the conflicts are because there are decorations for each change: !
Now I figured out that there are editor actions to navigate between conflicts, so maybe the fix here would be to make the overview ruler show the conflict areas much stronger.
I've had the same issue -- in my theme I've made the conflicts stand out much more, but I've still had issues seeing/getting to the remaining conflicts (might be a separate issue)
I created to address this. There are no diff highlights and no minimap-decorations for non-conflicting changes anymore: ! Before: !

Discussion:
position: MinimapPosition.Gutter, color: { id: isHandled ? handledConflictMinimapOverViewRulerColor : unhandledConflictMinimapOverViewRulerColor }, }, <del> overviewRuler: { </del> <ins> overviewRuler: modifiedBaseRange.isConflicting ? { </ins> position: OverviewRulerLane.Center, color: { id: isHandled ? handledConflictMinimapOverViewRulerColor : unhandledConflictMinimapOverViewRulerColor }, <del> } </del> <ins> } : undefined </ins> } }); <del> const inputDiffs = modifiedBaseRange.getInputDiffs(this.inputNumber); for (const diff of inputDiffs) { const range = diff.outputRange.toInclusiveRange(); if (range) { result.push({ range, options: { className: `merge-editor-diff ${inputClassName}`, description: 'Merge Editor', isWholeLine: true, } }); } if (diff.rangeMappings) { for (const d of diff.rangeMappings) { </del> <ins> if (modifiedBaseRange.isConflicting) { const inputDiffs = modifiedBaseRange.getInputDiffs(this.inputNumber); for (const diff of inputDiffs) { const range = diff.outputRange.toInclusiveRange(); if (range) { </ins> result.push({ <del> range: d.outputRange, </del> <ins> range, </ins> options: { <del> className: `merge-editor-diff-word ${inputClassName}`, description: 'Merge Editor' </del> <ins> className: `merge-editor-diff ${inputClassName}`, description: 'Merge Editor', isWholeLine: true, </ins> } }); } <ins> if (diff.rangeMappings) { for (const d of diff.rangeMappings) { result.push({ range: d.outputRange, options: { className: `merge-editor-diff-word ${inputClassName}`, description: 'Merge Editor' } }); } } </ins> } } }

position: MinimapPosition.Gutter, color: { id: isHandled ? handledConflictMinimapOverViewRulerColor : unhandledConflictMinimapOverViewRulerColor }, }, <del> overviewRuler: { </del> <ins> overviewRuler: modifiedBaseRange.isConflicting ? { </ins> position: OverviewRulerLane.Center, color: { id: isHandled ? handledConflictMinimapOverViewRulerColor : unhandledConflictMinimapOverViewRulerColor }, <del> } </del> <ins> } : undefined </ins> } }); } } <del> for (const diff of m.rights) { const range = diff.outputRange.toInclusiveRange(); if (range) { result.push({ range, options: { className: `merge-editor-diff result`, description: 'Merge Editor', isWholeLine: true, } }); } if (diff.rangeMappings) { for (const d of diff.rangeMappings) { </del> <ins> if (!modifiedBaseRange || modifiedBaseRange.isConflicting) { for (const diff of m.rights) { const range = diff.outputRange.toInclusiveRange(); if (range) { </ins> result.push({ <del> range: d.outputRange, </del> <ins> range, </ins> options: { <del> className: `merge-editor-diff-word result`, description: 'Merge Editor' </del> <ins> className: `merge-editor-diff result`, description: 'Merge Editor', isWholeLine: true, </ins> } }); } <ins> if (diff.rangeMappings) { for (const d of diff.rangeMappings) { result.push({ range: d.outputRange, options: { className: `merge-editor-diff-word result`, description: 'Merge Editor' } }); } } </ins> } } }