mirror of
https://github.com/Microsoft/vscode
synced 2024-10-06 03:17:00 +00:00
use the correct this
for active group and active tab
This commit is contained in:
parent
119c82c427
commit
d2336f07b7
|
@ -37,7 +37,7 @@ class ExtHostEditorTabGroup {
|
|||
if (tabDto.isActive) {
|
||||
this._activeTabId = tabDto.id;
|
||||
}
|
||||
this._tabs.push(new ExtHostEditorTab(tabDto, proxy, this.activeTabId));
|
||||
this._tabs.push(new ExtHostEditorTab(tabDto, proxy, () => this.activeTabId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -196,7 +196,7 @@ export class ExtHostEditorTabs implements IExtHostEditorTabs {
|
|||
// Clears the tab groups array
|
||||
this._tabGroups.groups.length = 0;
|
||||
this._extHostTabGroups = tabGroups.map(tabGroup => {
|
||||
const group = new ExtHostEditorTabGroup(tabGroup, this._proxy, this.activeGroupIdGetter);
|
||||
const group = new ExtHostEditorTabGroup(tabGroup, this._proxy, () => this.activeGroupIdGetter());
|
||||
return group;
|
||||
});
|
||||
for (const group of this._extHostTabGroups) {
|
||||
|
|
|
@ -260,4 +260,61 @@ suite('ExtHostEditorTabs', function () {
|
|||
|
||||
assert.strictEqual(apiTab1 === apiTab2, true);
|
||||
});
|
||||
|
||||
test('Tab.isActive working', function () {
|
||||
|
||||
const extHostEditorTabs = new ExtHostEditorTabs(
|
||||
SingleProxyRPCProtocol(new class extends mock<MainThreadEditorTabsShape>() {
|
||||
// override/implement $moveTab or $closeTab
|
||||
})
|
||||
);
|
||||
const tabDtoAAA: IEditorTabDto = {
|
||||
id: 'AAA',
|
||||
isActive: true,
|
||||
isDirty: true,
|
||||
isPinned: true,
|
||||
label: 'label1',
|
||||
resource: URI.parse('file://abc/AAA.txt'),
|
||||
editorId: 'default',
|
||||
viewColumn: 0,
|
||||
additionalResourcesAndViewTypes: [],
|
||||
kind: TabKind.Singular
|
||||
};
|
||||
|
||||
const tabDtoBBB: IEditorTabDto = {
|
||||
id: 'BBB',
|
||||
isActive: false,
|
||||
isDirty: true,
|
||||
isPinned: true,
|
||||
label: 'label1',
|
||||
resource: URI.parse('file://abc/BBB.txt'),
|
||||
editorId: 'default',
|
||||
viewColumn: 0,
|
||||
additionalResourcesAndViewTypes: [],
|
||||
kind: TabKind.Singular
|
||||
};
|
||||
|
||||
// single dirty tab
|
||||
|
||||
extHostEditorTabs.$acceptEditorTabModel([{
|
||||
isActive: true,
|
||||
viewColumn: 0,
|
||||
groupId: 12,
|
||||
tabs: [tabDtoAAA, tabDtoBBB]
|
||||
}]);
|
||||
|
||||
let all = extHostEditorTabs.tabGroups.groups.map(group => group.tabs).flat();
|
||||
assert.strictEqual(all.length, 2);
|
||||
|
||||
const activeTab1 = extHostEditorTabs.tabGroups.activeTabGroup?.activeTab;
|
||||
assert.strictEqual(activeTab1?.resource?.toString(), URI.revive(tabDtoAAA.resource)?.toString());
|
||||
assert.strictEqual(activeTab1?.isActive, true);
|
||||
|
||||
extHostEditorTabs.$acceptTabUpdate(12, { ...tabDtoBBB, isActive: true }); /// BBB is now active
|
||||
|
||||
const activeTab2 = extHostEditorTabs.tabGroups.activeTabGroup?.activeTab;
|
||||
assert.strictEqual(activeTab2?.resource?.toString(), URI.revive(tabDtoBBB.resource)?.toString());
|
||||
assert.strictEqual(activeTab2?.isActive, true);
|
||||
assert.strictEqual(activeTab1?.isActive, false);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue