提交 acde01a5 编写于 作者: B Benjamin Pasero

fix bugs

上级 4987172e
......@@ -308,7 +308,7 @@ export class EditorGroup implements IEditorGroup {
private splice(index: number, del: boolean, editor?: EditorInput): void {
// Perform on editors array
const args:any[] = [index, del];
const args:any[] = [index, del ? 1 : 0];
if (editor) {
args.push(editor);
}
......@@ -319,14 +319,20 @@ export class EditorGroup implements IEditorGroup {
this.mru.push(editor);
}
// Remove: remove from MRU
else if (del && !editor) {
this.mru.splice(this.indexOf(this.editors[index]), 1);
}
// Replace: replace MRU at location
// Remove / Replace
else {
this.mru.splice(this.indexOf(this.editors[index]), 1, editor);
const editorToDeleteOrReplace = this.editors[index];
const indexInMRU = this.indexOf(editorToDeleteOrReplace, this.mru);
// Remove: remove from MRU
if (del && !editor) {
this.mru.splice(indexInMRU, 1);
}
// Replace: replace MRU at location
else {
this.mru.splice(indexInMRU, 1, editor);
}
}
}
......@@ -411,7 +417,7 @@ export class EditorStacksModel implements IEditorStacksModel {
// Subsequent group (add to the right of active)
else {
this._groups.splice(this.indexOf(this.active), 0, group);
this._groups.splice(this.indexOf(this.active) + 1, 0, group);
}
// Event
......
......@@ -83,34 +83,40 @@ suite('Editor Stacks Model', () => {
assert.equal(model.groups.length, 0);
assert.ok(!model.activeGroup);
const first = model.openGroup('group');
const first = model.openGroup('first');
assert.equal(events.opened[0], first);
assert.equal(events.activated[0], first);
assert.equal(model.activeGroup, first);
assert.equal(model.groups.length, 1);
assert.equal(model.groups[0], first);
const second = model.openGroup('second');
assert.equal(events.opened[1], second);
assert.equal(events.activated[1], second);
assert.equal(model.activeGroup, second);
assert.equal(model.groups.length, 2);
assert.equal(model.groups[1], second);
const third = model.openGroup('third');
assert.equal(events.opened[2], third);
assert.equal(events.activated[2], third);
assert.equal(model.activeGroup, third);
assert.equal(model.groups.length, 3);
assert.equal(model.groups[2], third);
model.closeGroup(first);
assert.equal(events.closed[0], first);
assert.equal(model.groups.length, 2);
assert.equal(model.activeGroup, third);
assert.equal(model.groups[0], second);
assert.equal(model.groups[1], third);
model.closeGroup(third);
assert.equal(events.closed[1], third);
assert.equal(events.activated[3], second);
assert.equal(model.activeGroup, second);
assert.equal(model.groups.length, 1);
assert.equal(model.groups[0], second);
const fourth = model.openGroup('fourth');
assert.equal(fourth, model.activeGroup);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册