Skip to content

Commit 03f7fe7

Browse files
committed
grid - some 💄
1 parent 7919b9d commit 03f7fe7

12 files changed

Lines changed: 167 additions & 154 deletions

File tree

src/vs/platform/editor/common/editor.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,6 @@ export enum Position {
187187

188188
export const POSITIONS = [Position.ONE, Position.TWO, Position.THREE];
189189

190-
export enum Direction {
191-
LEFT,
192-
RIGHT
193-
}
194-
195190
export enum Verbosity {
196191
SHORT,
197192
MEDIUM,

src/vs/workbench/browser/parts/editor/editorActions.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@ import * as nls from 'vs/nls';
99
import { Action } from 'vs/base/common/actions';
1010
import { mixin } from 'vs/base/common/objects';
1111
import { getCodeEditor } from 'vs/editor/browser/services/codeEditorService';
12-
import { EditorInput, TextEditorOptions, EditorOptions, IEditorIdentifier, ActiveEditorMoveArguments, ActiveEditorMovePositioning, EditorCommands, ConfirmResult, IEditorCommandsContext, GroupIdentifier, groupFromContext } from 'vs/workbench/common/editor';
12+
import { EditorInput, TextEditorOptions, EditorOptions, IEditorIdentifier, ConfirmResult, IEditorCommandsContext, GroupIdentifier, groupFromContext, CloseDirection } from 'vs/workbench/common/editor';
1313
import { QuickOpenEntryGroup } from 'vs/base/parts/quickopen/browser/quickOpenModel';
1414
import { EditorQuickOpenEntry, EditorQuickOpenEntryGroup, IEditorQuickOpenEntry, QuickOpenAction } from 'vs/workbench/browser/quickopen';
1515
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
1616
import { IQuickOpenService } from 'vs/platform/quickOpen/common/quickOpen';
1717
import { IPartService } from 'vs/workbench/services/part/common/partService';
18-
import { Position, IEditor, Direction, IResourceInput, IEditorInput, POSITIONS } from 'vs/platform/editor/common/editor';
18+
import { Position, IEditor, IResourceInput, IEditorInput, POSITIONS } from 'vs/platform/editor/common/editor';
1919
import { IHistoryService } from 'vs/workbench/services/history/common/history';
2020
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
2121
import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService';
2222
import { ICommandService } from 'vs/platform/commands/common/commands';
2323
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
2424
import { IWindowsService } from 'vs/platform/windows/common/windows';
25-
import { CLOSE_EDITOR_COMMAND_ID, NAVIGATE_IN_GROUP_ONE_PREFIX, NAVIGATE_ALL_EDITORS_GROUP_PREFIX, NAVIGATE_IN_GROUP_THREE_PREFIX, NAVIGATE_IN_GROUP_TWO_PREFIX } from 'vs/workbench/browser/parts/editor/editorCommands';
25+
import { CLOSE_EDITOR_COMMAND_ID, NAVIGATE_IN_GROUP_ONE_PREFIX, NAVIGATE_ALL_EDITORS_GROUP_PREFIX, NAVIGATE_IN_GROUP_THREE_PREFIX, NAVIGATE_IN_GROUP_TWO_PREFIX, ActiveEditorMoveArguments, ActiveEditorMovePositioning, EditorCommands } from 'vs/workbench/browser/parts/editor/editorCommands';
2626
import { INextEditorGroupsService, GroupDirection as SplitDirection, INextEditorGroup, GroupsArrangement } from 'vs/workbench/services/group/common/nextEditorGroupsService';
2727
import { INextEditorService } from 'vs/workbench/services/editor/common/nextEditorService';
2828
import { toWinJsPromise } from 'vs/base/common/async';
@@ -742,7 +742,7 @@ export class CloseLeftEditorsInGroupAction extends Action {
742742
public run(context?: IEditorIdentifier): TPromise<any> {
743743
const editor = getTarget(this.editorService, this.groupService, context);
744744
if (editor) {
745-
return this.editorService.closeEditors(editor.position, { except: editor.input, direction: Direction.LEFT });
745+
return this.editorService.closeEditors(editor.position, { except: editor.input, direction: CloseDirection.LEFT });
746746
}
747747

748748
return TPromise.as(false);

src/vs/workbench/browser/parts/editor/editorCommands.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import * as types from 'vs/base/common/types';
88
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
99
import { KeybindingsRegistry } from 'vs/platform/keybinding/common/keybindingsRegistry';
1010
import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService';
11-
import { ActiveEditorMoveArguments, ActiveEditorMovePositioning, ActiveEditorMovePositioningBy, EditorCommands, TextCompareEditorVisibleContext, EditorInput, IEditorIdentifier, IEditorCommandsContext, ActiveEditorGroupEmptyContext, MultipleEditorGroupsContext } from 'vs/workbench/common/editor';
11+
import { TextCompareEditorVisibleContext, EditorInput, IEditorIdentifier, IEditorCommandsContext, ActiveEditorGroupEmptyContext, MultipleEditorGroupsContext, CloseDirection } from 'vs/workbench/common/editor';
1212
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
13-
import { IEditor, Position, POSITIONS, Direction, IEditorInput } from 'vs/platform/editor/common/editor';
13+
import { IEditor, Position, POSITIONS, IEditorInput } from 'vs/platform/editor/common/editor';
1414
import { EditorContextKeys } from 'vs/editor/common/editorContextKeys';
1515
import { TextDiffEditor } from 'vs/workbench/browser/parts/editor/textDiffEditor';
1616
import { EditorStacksModel, EditorGroup } from 'vs/workbench/common/editor/editorStacksModel';
@@ -25,6 +25,30 @@ import { distinct } from 'vs/base/common/arrays';
2525
import { INextEditorGroupsService } from 'vs/workbench/services/group/common/nextEditorGroupsService';
2626
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
2727

28+
export const ActiveEditorMovePositioning = {
29+
FIRST: 'first',
30+
LAST: 'last',
31+
LEFT: 'left',
32+
RIGHT: 'right',
33+
CENTER: 'center',
34+
POSITION: 'position',
35+
};
36+
37+
export const ActiveEditorMovePositioningBy = {
38+
TAB: 'tab',
39+
GROUP: 'group'
40+
};
41+
42+
export interface ActiveEditorMoveArguments {
43+
to?: string;
44+
by?: string;
45+
value?: number;
46+
}
47+
48+
export const EditorCommands = {
49+
MoveActiveEditor: 'moveActiveEditor'
50+
};
51+
2852
export const CLOSE_SAVED_EDITORS_COMMAND_ID = 'workbench.action.closeUnmodifiedEditors';
2953
export const CLOSE_EDITORS_IN_GROUP_COMMAND_ID = 'workbench.action.closeEditorsInGroup';
3054
export const CLOSE_EDITORS_TO_THE_RIGHT_COMMAND_ID = 'workbench.action.closeEditorsToTheRight';
@@ -439,7 +463,7 @@ function registerEditorCommands() {
439463
const { position, input } = positionAndInput(editorGroupService, editorService, context);
440464

441465
if (typeof position === 'number' && input) {
442-
return editorService.closeEditors(position, { except: input, direction: Direction.RIGHT });
466+
return editorService.closeEditors(position, { except: input, direction: CloseDirection.RIGHT });
443467
}
444468

445469
return TPromise.as(false);

src/vs/workbench/browser/parts/editor/editorPart.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ import { toErrorMessage } from 'vs/base/common/errorMessage';
2020
import { Scope as MementoScope } from 'vs/workbench/common/memento';
2121
import { Part } from 'vs/workbench/browser/part';
2222
import { BaseEditor } from 'vs/workbench/browser/parts/editor/baseEditor';
23-
import { EditorInput, EditorOptions, ConfirmResult, IWorkbenchEditorConfiguration, TextEditorOptions, SideBySideEditorInput, TextCompareEditorVisibleContext, TEXT_DIFF_EDITOR_ID, EditorOpeningEvent, IEditorOpeningEvent, GroupIdentifier } from 'vs/workbench/common/editor';
23+
import { EditorInput, EditorOptions, ConfirmResult, IWorkbenchEditorConfiguration, TextEditorOptions, SideBySideEditorInput, TextCompareEditorVisibleContext, TEXT_DIFF_EDITOR_ID, IEditorOpeningEvent, GroupIdentifier, CloseDirection } from 'vs/workbench/common/editor';
2424
import { EditorGroupsControl, Rochade, IEditorGroupsControl, ProgressState } from 'vs/workbench/browser/parts/editor/editorGroupsControl';
2525
import { ScopedProgressService } from 'vs/workbench/services/progress/browser/progressService';
2626
import { IEditorGroupService, GroupOrientation, GroupArrangement, IEditorTabOptions, IMoveOptions } from 'vs/workbench/services/group/common/groupService';
2727
import { IConfigurationService, IConfigurationChangeEvent } from 'vs/platform/configuration/common/configuration';
2828
import { IEditorPart } from 'vs/workbench/services/editor/common/editorService';
2929
import { IPartService } from 'vs/workbench/services/part/common/partService';
30-
import { Position, POSITIONS, Direction, IEditor } from 'vs/platform/editor/common/editor';
30+
import { Position, POSITIONS, IEditor } from 'vs/platform/editor/common/editor';
3131
import { IStorageService } from 'vs/platform/storage/common/storage';
3232
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
3333
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
@@ -46,6 +46,7 @@ import { ThrottledEmitter } from 'vs/base/common/async';
4646
import { isCodeEditor } from 'vs/editor/browser/editorBrowser';
4747
import { INotificationService, Severity, INotificationActions } from 'vs/platform/notification/common/notification';
4848
import { dispose } from 'vs/base/common/lifecycle';
49+
import { EditorOpeningEvent } from 'vs/workbench/browser/parts/editor2/nextEditorGroupView';
4950

5051
/**
5152
* The editor part is the container for editors in the workbench. Based on the editor input being opened, it asks the registered
@@ -375,7 +376,7 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService
375376

376377
// Filter: direction (left / right)
377378
else if (hasDirection) {
378-
editorsToClose = (filter.direction === Direction.LEFT) ? editorsToClose.slice(0, group.indexOf(filter.except)) : editorsToClose.slice(group.indexOf(filter.except) + 1);
379+
editorsToClose = (filter.direction === CloseDirection.LEFT) ? editorsToClose.slice(0, group.indexOf(filter.except)) : editorsToClose.slice(group.indexOf(filter.except) + 1);
379380
}
380381

381382
// Filter: except
@@ -414,7 +415,7 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService
414415
}
415416
}
416417

417-
private doCloseEditorsWithFilter(group: EditorGroup, filter: { except?: EditorInput, direction?: Direction, savedOnly?: boolean }): void {
418+
private doCloseEditorsWithFilter(group: EditorGroup, filter: { except?: EditorInput, direction?: CloseDirection, savedOnly?: boolean }): void {
418419

419420
// Close all editors if there is no editor to except and
420421
// we either are not only closing saved editors or
@@ -1748,7 +1749,7 @@ interface IEditorReplacement extends EditorIdentifier {
17481749
options?: EditorOptions;
17491750
}
17501751

1751-
export type ICloseEditorsFilter = { except?: EditorInput, direction?: Direction, savedOnly?: boolean };
1752+
export type ICloseEditorsFilter = { except?: EditorInput, direction?: CloseDirection, savedOnly?: boolean };
17521753
export type ICloseEditorsByFilterArgs = { positionOne?: ICloseEditorsFilter, positionTwo?: ICloseEditorsFilter, positionThree?: ICloseEditorsFilter };
17531754
export type ICloseEditorsArgs = { positionOne?: EditorInput[], positionTwo?: EditorInput[], positionThree?: EditorInput[] };
17541755

src/vs/workbench/browser/parts/editor2/nextEditorGroupView.ts

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import 'vs/css!./media/nextEditorGroupView';
99
import { TPromise } from 'vs/base/common/winjs.base';
1010
import { EditorGroup, IEditorOpenOptions, EditorCloseEvent, ISerializedEditorGroup, isSerializedEditorGroup } from 'vs/workbench/common/editor/editorStacksModel';
11-
import { EditorInput, EditorOptions, GroupIdentifier, ConfirmResult, SideBySideEditorInput, IEditorOpeningEvent, EditorOpeningEvent } from 'vs/workbench/common/editor';
11+
import { EditorInput, EditorOptions, GroupIdentifier, ConfirmResult, SideBySideEditorInput, IEditorOpeningEvent, CloseDirection } from 'vs/workbench/common/editor';
1212
import { Event, Emitter, once } from 'vs/base/common/event';
1313
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
1414
import { addClass, addClasses, Dimension, trackFocus, toggleClass, removeClass, addDisposableListener, EventType, EventHelper, findParentWithClass, clearNode, isAncestor } from 'vs/base/browser/dom';
@@ -38,7 +38,6 @@ import { INextEditorGroupsAccessor, INextEditorGroupView, INextEditorPartOptions
3838
import { NextNoTabsTitleControl } from './nextNoTabsTitleControl';
3939
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
4040
import { join } from 'vs/base/common/paths';
41-
import { Direction } from 'vs/platform/editor/common/editor';
4241
import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';
4342
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
4443
import { RemoveActiveEditorGroupAction } from 'vs/workbench/browser/parts/editor/editorActions';
@@ -960,7 +959,7 @@ export class NextEditorGroupView extends Themable implements INextEditorGroupVie
960959

961960
// Filter: direction (left / right)
962961
else if (hasDirection) {
963-
editorsToClose = (filter.direction === Direction.LEFT) ?
962+
editorsToClose = (filter.direction === CloseDirection.LEFT) ?
964963
editorsToClose.slice(0, this._group.indexOf(filter.except as EditorInput)) :
965964
editorsToClose.slice(this._group.indexOf(filter.except as EditorInput) + 1);
966965
}
@@ -1168,6 +1167,37 @@ export class NextEditorGroupView extends Themable implements INextEditorGroupVie
11681167
}
11691168
}
11701169

1170+
export class EditorOpeningEvent implements IEditorOpeningEvent {
1171+
private override: () => Thenable<any>;
1172+
1173+
constructor(
1174+
private _group: GroupIdentifier,
1175+
private _editor: EditorInput,
1176+
private _options: EditorOptions
1177+
) {
1178+
}
1179+
1180+
get group(): GroupIdentifier {
1181+
return this._group;
1182+
}
1183+
1184+
get editor(): EditorInput {
1185+
return this._editor;
1186+
}
1187+
1188+
get options(): EditorOptions {
1189+
return this._options;
1190+
}
1191+
1192+
prevent(callback: () => Thenable<any>): void {
1193+
this.override = callback;
1194+
}
1195+
1196+
isPrevented(): () => Thenable<any> {
1197+
return this.override;
1198+
}
1199+
}
1200+
11711201
export interface EditorReplacement {
11721202
editor: EditorInput;
11731203
replacement: EditorInput;

0 commit comments

Comments
 (0)