Repository navigation
Restore the three-way merge editor behind an opt-in setting - #7
Merged
Merged
Conversation
This reverts commit 39b8aac. - Restore the Monaco-based three-way conflict resolver and the intelli-git.mergeEditor.enabled setting as the starting point for bringing the editor back as an opt-in feature (boyan01#6). - Follow-up commits will keep it default-off, load Monaco only in the resolver's own webview so the commit and log views keep the strict CSP and small bundle, and keep the standard-editor flow when the setting is off.
Owner
|
Thanks for restoring it and for the thorough before/after evidence! Merged. |
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1. Purpose & Motivation
Description
Refs #6
39b8aac removed the three-way merge editor. Without it, conflicts can only be resolved in the standard VS Code editor with conflict markers. As agreed in #6, this PR brings the editor back as an opt-in feature behind
intelli-git.mergeEditor.enabled, which defaults tofalse.The PR is a plain
git revertof 39b8aac, so the restored code matches what was removed and can be reviewed against it. The follow-ups from #6 are left for a separate PR so this diff stays a clean revert: loading Monaco only in the resolver's own webview, and rewording the conflict section ofAGENTS.mdfor the opt-in setting.Context & Flow
2. Verification & Testing
Provide reproducible inputs or steps for each test case, followed by the result and supporting evidence.
npm run compile,npm run lintandnpm run testpass on the branchCompile and lint pass, including the webview l10n audit (69 files, 329 keys). Tests: 219 extension tests and 109 webview tests pass.
With
intelli-git.mergeEditor.enabledon, clicking a conflict file opens the three-way editor in the editor areaExtension Development Host with the
merge-conflictfixture (UU,UD,DU,AA). Clickingmultiple-conflicts.txtopensMerge: multiple-conflicts.txtwith 8 unresolved changes.With the setting on, a delete/modify conflict shows which side deleted the file
delete-on-feature.txt(UD) shows the incoming side as deleted, and the footer offersAccept Right (delete file).With the setting on,
Accept Leftresolves and stages the fileAccept Leftonsrc/conflict.txtcloses the panel, stages the file with the current-branch content, and the Conflicting Changes count drops from 5 to 4.With the setting off (default), clicking a conflict file opens the standard VS Code editor
multiple-conflicts.txtopens in the standard text editor with conflict markers and the built-in CodeLens actions, same as currentmain.