提交 26e86f66 编写于 作者: B Benjamin Pasero

Preview tab does not have a stable position (fixes #8245)

上级 798b41ab
......@@ -251,8 +251,8 @@ export class EditorGroup implements IEditorGroup {
// Replace existing preview with this editor if we have a preview
if (this.preview) {
const indexOfPreview = this.indexOf(this.preview);
if (targetIndex >= indexOfPreview) {
targetIndex--;
if (targetIndex > indexOfPreview) {
targetIndex--; // accomodate for the fact that the preview editor closes
}
this.closeEditor(this.preview, !makeActive); // optimization to prevent multiple setActive() in one call
......
......@@ -34,7 +34,6 @@ import {IMessageService, Severity, CancelAction} from 'vs/platform/message/commo
import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/editorService';
import {IModeService} from 'vs/editor/common/services/modeService';
import {IThemeService} from 'vs/workbench/services/themes/common/themeService';
import {IHistoryService} from 'vs/workbench/services/history/common/history';
const LEGACY_EDITOR_VIEW_STATE_PREFERENCE_KEY = 'editorViewState'; // TODO@Ben migration
const TEXT_EDITOR_VIEW_STATE_PREFERENCE_KEY = 'textEditorViewState';
......@@ -56,7 +55,6 @@ export class TextFileEditor extends BaseTextEditor {
@ITelemetryService telemetryService: ITelemetryService,
@IFileService private fileService: IFileService,
@IViewletService private viewletService: IViewletService,
@IHistoryService private historyService: IHistoryService,
@IInstantiationService instantiationService: IInstantiationService,
@IWorkspaceContextService contextService: IWorkspaceContextService,
@IStorageService storageService: IStorageService,
......
......@@ -29,7 +29,7 @@ function create(): EditorStacksModel {
services.set(IWorkspaceContextService, new TestContextService());
const config = new TestConfigurationService();
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' }});
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' } });
services.set(IConfigurationService, config);
let inst = new InstantiationService(services);
......@@ -644,7 +644,7 @@ suite('Editor Stacks Model', () => {
const config = new TestConfigurationService();
services.set(IConfigurationService, config);
config.setUserConfiguration('workbench', { editor: { openPositioning: 'left' }});
config.setUserConfiguration('workbench', { editor: { openPositioning: 'left' } });
let inst = new InstantiationService(services);
......@@ -1177,7 +1177,7 @@ suite('Editor Stacks Model', () => {
const lifecycle = new TestLifecycleService();
services.set(ILifecycleService, lifecycle);
const config = new TestConfigurationService();
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' }});
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' } });
services.set(IConfigurationService, config);
let inst = new InstantiationService(services);
......@@ -1221,7 +1221,7 @@ suite('Editor Stacks Model', () => {
const lifecycle = new TestLifecycleService();
services.set(ILifecycleService, lifecycle);
const config = new TestConfigurationService();
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' }});
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' } });
services.set(IConfigurationService, config);
let inst = new InstantiationService(services);
......@@ -1303,7 +1303,7 @@ suite('Editor Stacks Model', () => {
const lifecycle = new TestLifecycleService();
services.set(ILifecycleService, lifecycle);
const config = new TestConfigurationService();
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' }});
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' } });
services.set(IConfigurationService, config);
let inst = new InstantiationService(services);
......@@ -1353,7 +1353,7 @@ suite('Editor Stacks Model', () => {
const lifecycle = new TestLifecycleService();
services.set(ILifecycleService, lifecycle);
const config = new TestConfigurationService();
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' }});
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' } });
services.set(IConfigurationService, config);
let inst = new InstantiationService(services);
......@@ -1395,7 +1395,7 @@ suite('Editor Stacks Model', () => {
const lifecycle = new TestLifecycleService();
services.set(ILifecycleService, lifecycle);
const config = new TestConfigurationService();
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' }});
config.setUserConfiguration('workbench', { editor: { openPositioning: 'right' } });
services.set(IConfigurationService, config);
let inst = new InstantiationService(services);
......@@ -1716,4 +1716,21 @@ suite('Editor Stacks Model', () => {
assert.ok(events.changed[5].structural); // close
assert.equal(events.changed[5].editor, input1);
});
test('Preview tab does not have a stable position (https://github.com/Microsoft/vscode/issues/8245)', function () {
const model = create();
const group1 = model.openGroup('first');
const input1 = input();
const input2 = input();
const input3 = input();
group1.openEditor(input1, { pinned: true, active: true });
group1.openEditor(input2, { active: true });
group1.setActive(input1);
group1.openEditor(input3, { active: true });
assert.equal(group1.indexOf(input3), 1);
});
});
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册