This commit is contained in:
Henning Dieterichs 2022-10-11 17:00:17 +02:00 committed by GitHub
parent adefb9aae2
commit f232fdac98
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 59 additions and 16 deletions

View file

@ -261,12 +261,11 @@ export class ShowHideBase extends Action2 {
menu: [
{
id: MenuId.EditorTitle,
when: ctxIsMergeEditor,
when: ContextKeyExpr.and(ctxIsMergeEditor, ctxMergeEditorLayout.isEqualTo('columns')),
group: '2_merge',
order: 9,
},
],
precondition: ctxIsMergeEditor,
]
});
}
@ -278,31 +277,58 @@ export class ShowHideBase extends Action2 {
}
}
export class ShowHideAtTopBase extends Action2 {
export class ShowHideTopBase extends Action2 {
constructor() {
super({
id: 'merge.showBaseAtTop',
id: 'merge.showBaseTop',
title: {
value: localize('layout.showBaseAtTop', 'Show Base At Top'),
original: 'Show Base At Top',
value: localize('layout.showBaseTop', 'Show Base Top'),
original: 'Show Base Top',
},
toggled: ctxMergeEditorShowBaseAtTop.isEqualTo(true),
toggled: ContextKeyExpr.and(ctxMergeEditorShowBase, ctxMergeEditorShowBaseAtTop),
menu: [
{
id: MenuId.EditorTitle,
when: ctxIsMergeEditor,
when: ContextKeyExpr.and(ctxIsMergeEditor, ctxMergeEditorLayout.isEqualTo('mixed')),
group: '2_merge',
order: 10,
},
],
precondition: ContextKeyExpr.and(ctxIsMergeEditor, ctxMergeEditorShowBase, ctxMergeEditorLayout.isEqualTo('mixed')),
});
}
run(accessor: ServicesAccessor): void {
const { activeEditorPane } = accessor.get(IEditorService);
if (activeEditorPane instanceof MergeEditor) {
activeEditorPane.toggleShowBaseAtTop();
activeEditorPane.toggleShowBaseTop();
}
}
}
export class ShowHideCenterBase extends Action2 {
constructor() {
super({
id: 'merge.showBaseCenter',
title: {
value: localize('layout.showBaseCenter', 'Show Base Center'),
original: 'Show Base Center',
},
toggled: ContextKeyExpr.and(ctxMergeEditorShowBase, ctxMergeEditorShowBaseAtTop.negate()),
menu: [
{
id: MenuId.EditorTitle,
when: ContextKeyExpr.and(ctxIsMergeEditor, ctxMergeEditorLayout.isEqualTo('mixed')),
group: '2_merge',
order: 11,
},
],
});
}
run(accessor: ServicesAccessor): void {
const { activeEditorPane } = accessor.get(IEditorService);
if (activeEditorPane instanceof MergeEditor) {
activeEditorPane.toggleShowBaseCenter();
}
}
}

View file

@ -11,7 +11,12 @@ import { Registry } from 'vs/platform/registry/common/platform';
import { EditorPaneDescriptor, IEditorPaneRegistry } from 'vs/workbench/browser/editor';
import { Extensions as WorkbenchExtensions, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions';
import { EditorExtensions, IEditorFactoryRegistry } from 'vs/workbench/common/editor';
import { AcceptAllInput1, AcceptAllInput2, AcceptMerge, CompareInput1WithBaseCommand, CompareInput2WithBaseCommand, GoToNextUnhandledConflict, GoToPreviousUnhandledConflict, OpenBaseFile, OpenMergeEditor, OpenResultResource, ResetToBaseAndAutoMergeCommand, SetColumnLayout, SetMixedLayout, ShowHideAtTopBase, ShowHideBase, ShowNonConflictingChanges, ToggleActiveConflictInput1, ToggleActiveConflictInput2 } from 'vs/workbench/contrib/mergeEditor/browser/commands/commands';
import {
AcceptAllInput1, AcceptAllInput2, AcceptMerge, CompareInput1WithBaseCommand,
CompareInput2WithBaseCommand, GoToNextUnhandledConflict, GoToPreviousUnhandledConflict, OpenBaseFile, OpenMergeEditor,
OpenResultResource, ResetToBaseAndAutoMergeCommand, SetColumnLayout, SetMixedLayout, ShowHideTopBase, ShowHideCenterBase, ShowHideBase,
ShowNonConflictingChanges, ToggleActiveConflictInput1, ToggleActiveConflictInput2
} from 'vs/workbench/contrib/mergeEditor/browser/commands/commands';
import { MergeEditorCopyContentsToJSON, MergeEditorLoadContentsFromFolder, MergeEditorSaveContentsToFolder } from 'vs/workbench/contrib/mergeEditor/browser/commands/devCommands';
import { MergeEditorInput } from 'vs/workbench/contrib/mergeEditor/browser/mergeEditorInput';
import { MergeEditor, MergeEditorOpenHandlerContribution, MergeEditorResolverContribution } from 'vs/workbench/contrib/mergeEditor/browser/view/mergeEditor';
@ -51,11 +56,12 @@ Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfigurat
registerAction2(OpenResultResource);
registerAction2(SetMixedLayout);
registerAction2(SetColumnLayout);
registerAction2(ShowHideBase);
registerAction2(ShowHideAtTopBase);
registerAction2(OpenMergeEditor);
registerAction2(OpenBaseFile);
registerAction2(ShowNonConflictingChanges);
registerAction2(ShowHideBase);
registerAction2(ShowHideTopBase);
registerAction2(ShowHideCenterBase);
registerAction2(GoToNextUnhandledConflict);
registerAction2(GoToPreviousUnhandledConflict);

View file

@ -607,10 +607,21 @@ export class MergeEditor extends AbstractTextEditor<IMergeEditorViewState> {
});
}
public toggleShowBaseAtTop(): void {
public toggleShowBaseTop(): void {
const showBaseTop = this._layoutMode.value.showBase && this._layoutMode.value.showBaseAtTop;
this.setLayout({
...this._layoutMode.value,
showBaseAtTop: !this._layoutMode.value.showBaseAtTop,
showBaseAtTop: true,
showBase: !showBaseTop,
});
}
public toggleShowBaseCenter(): void {
const showBaseCenter = this._layoutMode.value.showBase && !this._layoutMode.value.showBaseAtTop;
this.setLayout({
...this._layoutMode.value,
showBaseAtTop: false,
showBase: !showBaseCenter,
});
}