提交 0a50f884 编写于 作者: B Benjamin Pasero

Tabs/Stacks: decide on settings (fixes #7643)

上级 c8c4ff68
......@@ -447,26 +447,26 @@ configurationRegistry.registerConfiguration({
'title': nls.localize('workbenchConfigurationTitle', "Workbench configuration"),
'type': 'object',
'properties': {
'workbench.showEditorTabs': {
'workbench.editor.showTabs': {
'type': 'boolean',
'description': nls.localize('showEditorTabs', "Controls if opened editors should show in tabs or not."),
'default': false
},
'workbench.previewEditors': {
'workbench.editor.enablePreview': {
'type': 'boolean',
'description': nls.localize('previewEditors', "Controls if opened editors show as preview until getting pinned. Set to false to always open editors pinned."),
'description': nls.localize('enablePreview', "Controls if opened editors show as preview. Preview editors are reused until they are kept (e.g. via double click or editing)."),
'default': true
},
'workbench.quickOpenPreviews': {
'workbench.editor.enablePreviewFromQuickOpen': {
'type': 'boolean',
'description': nls.localize('quickOpenPreviews', "Controls if editors opened from quick open show as preview. Set to false to always open editors from quick open pinned."),
'description': nls.localize('enablePreviewFromQuickOpen', "Controls if opened editors from quick open show as preview. Preview editors are reused until they are kept (e.g. via double click or editing)."),
'default': true
},
'workbench.editorOpenPositioning': {
'workbench.editor.openPositioning': {
'type': 'string',
'enum': ['left', 'right', 'beginning', 'end'],
'enum': ['left', 'right', 'first', 'last'],
'default': 'right',
'description': nls.localize('editorOpenPositioning', "Controls where editors open. Select 'left' or 'right' to open editors to the left or right of the current active one. Select 'beginning' or 'end' to open editors independently from the currently active one.")
'description': nls.localize('editorOpenPositioning', "Controls where editors open. Select 'left' or 'right' to open editors to the left or right of the current active one. Select 'first' or 'last' to open editors independently from the currently active one.")
}
}
});
\ No newline at end of file
......@@ -128,7 +128,7 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService
this.stacks = this.instantiationService.createInstance(EditorStacksModel);
this.previewEditors = configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.previewEditors;
this.previewEditors = configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.editor.enablePreview;
this.registerListeners();
}
......@@ -140,7 +140,7 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService
}
private onConfigurationUpdated(configuration: IWorkbenchEditorConfiguration): void {
const newPreviewEditors = configuration.workbench.previewEditors;
const newPreviewEditors = configuration.workbench.editor.enablePreview;
// Pin all preview editors of the user chose to disable preview
if (this.previewEditors !== newPreviewEditors && !newPreviewEditors) {
......
......@@ -167,7 +167,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti
const titleControl = this.titleAreaControl[position];
if (titleControl) {
const usingTabs = (titleControl instanceof TabsTitleControl);
const useTabs = configuration.workbench.showEditorTabs;
const useTabs = configuration.workbench.editor.showTabs;
if (usingTabs !== useTabs) {
// Dispose old
......@@ -837,7 +837,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti
}
// Multiple resources to open with tabs: open them all in target position
const showsTabs = this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.showEditorTabs;
const showsTabs = this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.editor.showTabs;
if (showsTabs) {
return this.editorService.openEditors(resources.map(resource => { return { input: { resource, options: { pinned: true } }, position }; })).then(() => this.editorGroupService.focusGroup(position));
}
......@@ -847,7 +847,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti
}
private createTitleControl(position: Position): void {
const useTabs = !!this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.showEditorTabs;
const useTabs = !!this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.editor.showTabs;
this.titleAreaControl[position] = useTabs ? this.instantiationService.createInstance(TabsTitleControl) : this.instantiationService.createInstance(NoTabsTitleControl);
this.titleAreaControl[position].create(this.titleContainer[position].getHTMLElement());
......
......@@ -103,8 +103,8 @@ export abstract class TitleControl {
}
private onConfigurationUpdated(config: IWorkbenchEditorConfiguration): void {
this.previewEditors = config.workbench.previewEditors;
this.showTabs = config.workbench.showEditorTabs;
this.previewEditors = config.workbench.editor.enablePreview;
this.showTabs = config.workbench.editor.showTabs;
}
private updateActionEnablement(): void {
......
......@@ -1023,7 +1023,7 @@ export class EditorHistoryEntry extends EditorQuickOpenEntry {
public run(mode: Mode, context: IEntryRunContext): boolean {
if (mode === Mode.OPEN) {
const sideBySide = !context.quickNavigateConfiguration && context.keymods.indexOf(KeyMod.CtrlCmd) >= 0;
const pinned = !this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.quickOpenPreviews;
const pinned = !this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.editor.enablePreviewFromQuickOpen;
this.editorService.openEditor(this.input, EditorOptions.create({ pinned }), sideBySide).done(null, errors.onUnexpectedError);
......
......@@ -681,15 +681,17 @@ export type GroupIdentifier = number;
export const EditorOpenPositioning = {
LEFT: 'left',
RIGHT: 'right',
BEGINNING: 'beginning',
END: 'end'
FIRST: 'first',
LAST: 'last'
};
export interface IWorkbenchEditorConfiguration {
workbench: {
showEditorTabs: boolean;
previewEditors: boolean;
quickOpenPreviews: boolean;
editorOpenPositioning: string;
editor: {
showTabs: boolean;
enablePreview: boolean;
enablePreviewFromQuickOpen: boolean;
openPositioning: string;
}
};
}
\ No newline at end of file
......@@ -117,7 +117,7 @@ export class EditorGroup implements IEditorGroup {
}
private onConfigurationUpdated(config: IWorkbenchEditorConfiguration): void {
this.editorOpenPositioning = config.workbench.editorOpenPositioning;
this.editorOpenPositioning = config.workbench.editor.openPositioning;
}
public get id(): GroupIdentifier {
......@@ -217,12 +217,12 @@ export class EditorGroup implements IEditorGroup {
}
// Insert to the BEGINNING
else if (this.editorOpenPositioning === EditorOpenPositioning.BEGINNING) {
else if (this.editorOpenPositioning === EditorOpenPositioning.FIRST) {
targetIndex = 0;
}
// Insert to the END
else if (this.editorOpenPositioning === EditorOpenPositioning.END) {
else if (this.editorOpenPositioning === EditorOpenPositioning.LAST) {
targetIndex = this.editors.length;
}
......
......@@ -87,7 +87,7 @@ export class ExplorerViewlet extends Viewlet {
private onConfigurationUpdated(config: IFilesConfiguration): TPromise<void> {
// No need to delay if preview is disabled
this.delayEditorOpeningInOpenedEditors = !!config.workbench.previewEditors;
this.delayEditorOpeningInOpenedEditors = !!config.workbench.editor.enablePreview;
// Open editors view should always be visible in no folder workspace.
let openEditorsVisible = !this.contextService.getWorkspace() || config.explorer.openEditors.visible !== 0;
......
......@@ -75,7 +75,7 @@ export class FileEntry extends EditorQuickOpenEntry {
let input: IResourceInput = {
resource: this.resource,
options: {
pinned: !this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.quickOpenPreviews
pinned: !this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.editor.enablePreviewFromQuickOpen
}
};
......
......@@ -85,7 +85,7 @@ class SymbolEntry extends EditorQuickOpenEntry {
let input: IResourceInput = {
resource: this.resource,
options: {
pinned: !this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.quickOpenPreviews
pinned: !this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.editor.enablePreviewFromQuickOpen
}
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册