-
Notifications
You must be signed in to change notification settings - Fork 28.9k
/
noEditorTabsControl.ts
77 lines (57 loc) · 2.45 KB
/
noEditorTabsControl.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import 'vs/css!./media/singleeditortabscontrol';
import { EditorInput } from 'vs/workbench/common/editor/editorInput';
import { EditorTabsControl } from 'vs/workbench/browser/parts/editor/editorTabsControl';
import { Dimension } from 'vs/base/browser/dom';
import { IEditorTitleControlDimensions } from 'vs/workbench/browser/parts/editor/editorTitleControl';
import { IToolbarActions } from 'vs/workbench/common/editor';
export class NoEditorTabsControl extends EditorTabsControl {
private activeEditor: EditorInput | null = null;
protected prepareEditorActions(editorActions: IToolbarActions): IToolbarActions {
return {
primary: [],
secondary: []
};
}
openEditor(editor: EditorInput): boolean {
return this.handleOpenedEditors();
}
openEditors(editors: EditorInput[]): boolean {
return this.handleOpenedEditors();
}
private handleOpenedEditors(): boolean {
const didChange = this.activeEditorChanged();
this.activeEditor = this.tabsModel.activeEditor;
return didChange;
}
private activeEditorChanged(): boolean {
if (
!this.activeEditor && this.tabsModel.activeEditor || // active editor changed from null => editor
this.activeEditor && !this.tabsModel.activeEditor || // active editor changed from editor => null
(!this.activeEditor || !this.tabsModel.isActive(this.activeEditor)) // active editor changed from editorA => editorB
) {
return true;
}
return false;
}
beforeCloseEditor(editor: EditorInput): void { }
closeEditor(editor: EditorInput): void { }
closeEditors(editors: EditorInput[]): void { }
moveEditor(editor: EditorInput, fromIndex: number, targetIndex: number): void { }
pinEditor(editor: EditorInput): void { }
stickEditor(editor: EditorInput): void { }
unstickEditor(editor: EditorInput): void { }
setActive(isActive: boolean): void { }
updateEditorSelections(): void { }
updateEditorLabel(editor: EditorInput): void { }
updateEditorDirty(editor: EditorInput): void { }
getHeight(): number {
return 0;
}
layout(dimensions: IEditorTitleControlDimensions): Dimension {
return new Dimension(dimensions.container.width, this.getHeight());
}
}