Skip to content

Commit b917a03

Browse files
committed
Support open diff in new editor group
1 parent fa69b4e commit b917a03

3 files changed

Lines changed: 20 additions & 3 deletions

File tree

extensions/merge-conflict/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@
125125
"type": "number",
126126
"description": "%config.diffViewContext%",
127127
"default": 0
128+
},
129+
"merge-conflict.openDiffInNewEditor": {
130+
"type": "boolean",
131+
"description": "%config.openDiffInNewEditor%",
132+
"default": false
128133
}
129134
}
130135
}

extensions/merge-conflict/package.nls.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717
"config.autoNavigateNextConflictEnabled": "Whether to automatically navigate to the next merge conflict after resolving a merge conflict.",
1818
"config.codeLensEnabled": "Create a Code Lens for merge conflict blocks within editor.",
1919
"config.decoratorsEnabled": "Create decorators for merge conflict blocks within editor.",
20-
"config.diffViewContext": "Controls how many unchanged lines around the merge conflict should be displayed in the diff view."
20+
"config.diffViewContext": "Controls how many unchanged lines around the merge conflict should be displayed in the diff view.",
21+
"config.openDiffInNewEditor": "Controls if the diff view should be opened in a new editor group when comparing changes in merge conflicts."
2122
}

extensions/merge-conflict/src/commandHandler.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,12 @@ export default class CommandHandler implements vscode.Disposable {
100100
const rightUri = leftUri.with({ query: JSON.stringify({ scheme, range, fullRange: conflict.range }) });
101101

102102
const title = localize('compareChangesTitle', '{0}: Current Changes ⟷ Incoming Changes', fileName);
103-
vscode.commands.executeCommand('vscode.diff', leftUri, rightUri, title);
103+
const mergeConflictConfig = vscode.workspace.getConfiguration('merge-conflict');
104+
const openToTheside = mergeConflictConfig.get<boolean>('openDiffInNewEditor');
105+
const opts: vscode.TextDocumentShowOptions = {
106+
viewColumn: openToTheside ? vscode.ViewColumn.Beside : vscode.ViewColumn.Active
107+
};
108+
vscode.commands.executeCommand('vscode.diff', leftUri, rightUri, title, opts);
104109
}
105110

106111
async compareAll(editor: vscode.TextEditor) {
@@ -125,7 +130,13 @@ export default class CommandHandler implements vscode.Disposable {
125130
const rightUri = leftUri.with({ query: JSON.stringify({ type: 'full', scheme, ranges: rightRanges }) });
126131

127132
const title = localize('compareChangesTitle', '{0}: Current Changes ⟷ Incoming Changes', fileName);
128-
vscode.commands.executeCommand('vscode.diff', leftUri, rightUri, title);
133+
const mergeConflictConfig = vscode.workspace.getConfiguration('merge-conflict');
134+
const openToTheside = mergeConflictConfig.get<boolean>('openDiffInNewEditor');
135+
const opts: vscode.TextDocumentShowOptions = {
136+
viewColumn: openToTheside ? vscode.ViewColumn.Beside : vscode.ViewColumn.Active
137+
};
138+
139+
vscode.commands.executeCommand('vscode.diff', leftUri, rightUri, title, opts);
129140
}
130141

131142
navigateNext(editor: vscode.TextEditor): Promise<void> {

0 commit comments

Comments
 (0)