提交 2a5f0ffc 编写于 作者: B Benjamin Pasero

grid - add action to split orthogonal

上级 cecfdcde
......@@ -38,7 +38,7 @@ import {
SplitEditorUpAction, SplitEditorDownAction, MoveEditorToLeftGroupAction, MoveEditorToRightGroupAction, MoveEditorToAboveGroupAction, MoveEditorToBelowGroupAction, CloseAllEditorGroupsAction,
JoinAllGroupsAction, FocusLeftGroup, FocusAboveGroup, FocusRightGroup, FocusBelowGroup, EditorLayoutSingleAction, EditorLayoutTwoColumnsAction, EditorLayoutThreeColumnsAction, EditorLayoutTwoByTwoGridAction,
EditorLayoutTwoRowsAction, EditorLayoutThreeRowsAction, EditorLayoutTwoColumnsBottomAction, EditorLayoutTwoColumnsRightAction, EditorLayoutCenteredAction, NewEditorGroupLeftAction, NewEditorGroupRightAction,
NewEditorGroupAboveAction, NewEditorGroupBelowAction
NewEditorGroupAboveAction, NewEditorGroupBelowAction, SplitEditorOrthogonalAction
} from 'vs/workbench/browser/parts/editor/editorActions';
import * as editorCommands from 'vs/workbench/browser/parts/editor/editorCommands';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
......@@ -319,6 +319,7 @@ registry.registerWorkbenchAction(new SyncActionDescriptor(CloseAllEditorGroupsAc
registry.registerWorkbenchAction(new SyncActionDescriptor(CloseLeftEditorsInGroupAction, CloseLeftEditorsInGroupAction.ID, CloseLeftEditorsInGroupAction.LABEL), 'View: Close Editors in Group to the Left', category);
registry.registerWorkbenchAction(new SyncActionDescriptor(CloseEditorsInOtherGroupsAction, CloseEditorsInOtherGroupsAction.ID, CloseEditorsInOtherGroupsAction.LABEL), 'View: Close Editors in Other Groups', category);
registry.registerWorkbenchAction(new SyncActionDescriptor(SplitEditorAction, SplitEditorAction.ID, SplitEditorAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.US_BACKSLASH }), 'View: Split Editor', category);
registry.registerWorkbenchAction(new SyncActionDescriptor(SplitEditorOrthogonalAction, SplitEditorOrthogonalAction.ID, SplitEditorOrthogonalAction.LABEL, { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.US_BACKSLASH }), 'View: Split Editor Orthogonal', category);
registry.registerWorkbenchAction(new SyncActionDescriptor(SplitEditorLeftAction, SplitEditorLeftAction.ID, SplitEditorLeftAction.LABEL), 'View: Split Editor Left', category);
registry.registerWorkbenchAction(new SyncActionDescriptor(SplitEditorRightAction, SplitEditorRightAction.ID, SplitEditorRightAction.LABEL), 'View: Split Editor Right', category);
registry.registerWorkbenchAction(new SyncActionDescriptor(SplitEditorUpAction, SplitEditorUpAction.ID, SplitEditorUpAction.LABEL), 'Split Editor Up', category);
......
......@@ -42,27 +42,27 @@ export class ExecuteCommandAction extends Action {
}
}
export class SplitEditorAction extends Action {
public static readonly ID = 'workbench.action.splitEditor';
public static readonly LABEL = nls.localize('splitEditor', "Split Editor");
export class BaseSplitEditorAction extends Action {
private toDispose: IDisposable[] = [];
private direction: GroupDirection;
constructor(
id: string,
label: string,
@IEditorGroupsService private editorGroupService: IEditorGroupsService,
@IConfigurationService private configurationService: IConfigurationService
protected editorGroupService: IEditorGroupsService,
protected configurationService: IConfigurationService
) {
super(id, label);
this.direction = preferredSideBySideGroupDirection(configurationService);
this.direction = this.getDirection();
this.registerListeners();
}
protected getDirection(): GroupDirection {
return preferredSideBySideGroupDirection(this.configurationService);
}
private registerListeners(): void {
this.toDispose.push(this.configurationService.onDidChangeConfiguration(e => {
if (e.affectsConfiguration('workbench.editor.openSideBySideDirection')) {
......@@ -84,6 +84,42 @@ export class SplitEditorAction extends Action {
}
}
export class SplitEditorAction extends BaseSplitEditorAction {
public static readonly ID = 'workbench.action.splitEditor';
public static readonly LABEL = nls.localize('splitEditor', "Split Editor");
constructor(
id: string,
label: string,
@IEditorGroupsService editorGroupService: IEditorGroupsService,
@IConfigurationService configurationService: IConfigurationService
) {
super(id, label, editorGroupService, configurationService);
}
}
export class SplitEditorOrthogonalAction extends BaseSplitEditorAction {
public static readonly ID = 'workbench.action.splitEditorOrthogonal';
public static readonly LABEL = nls.localize('splitEditorOrthogonal', "Split Editor Orthogonal");
constructor(
id: string,
label: string,
@IEditorGroupsService editorGroupService: IEditorGroupsService,
@IConfigurationService configurationService: IConfigurationService
) {
super(id, label, editorGroupService, configurationService);
}
protected getDirection(): GroupDirection {
const direction = preferredSideBySideGroupDirection(this.configurationService);
return direction === GroupDirection.RIGHT ? GroupDirection.DOWN : GroupDirection.RIGHT;
}
}
export class SplitEditorLeftAction extends ExecuteCommandAction {
public static readonly ID = SPLIT_EDITOR_LEFT;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册