diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 6588af1c28c..71329e06fea 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -6155,7 +6155,7 @@ declare module 'vscode' { /** * Element that is expanded or collapsed. */ - element: T; + readonly element: T; } @@ -6167,7 +6167,7 @@ declare module 'vscode' { /** * Selected elements. */ - selection: T[]; + readonly selection: T[]; } @@ -6179,7 +6179,7 @@ declare module 'vscode' { /** * `true` if the [tree view](#TreeView) is visible otherwise `false`. */ - visible: boolean; + readonly visible: boolean; } diff --git a/src/vs/workbench/api/node/extHostTreeViews.ts b/src/vs/workbench/api/node/extHostTreeViews.ts index 2df9b9076cd..19b4b163334 100644 --- a/src/vs/workbench/api/node/extHostTreeViews.ts +++ b/src/vs/workbench/api/node/extHostTreeViews.ts @@ -199,9 +199,9 @@ class ExtHostTreeView extends Disposable { const element = this.getExtensionElement(treeItemHandle); if (element) { if (expanded) { - this._onDidExpandElement.fire({ element }); + this._onDidExpandElement.fire(Object.freeze({ element })); } else { - this._onDidCollapseElement.fire({ element }); + this._onDidCollapseElement.fire(Object.freeze({ element })); } } } @@ -209,14 +209,14 @@ class ExtHostTreeView extends Disposable { setSelection(treeItemHandles: TreeItemHandle[]): void { if (!equals(this._selectedHandles, treeItemHandles)) { this._selectedHandles = treeItemHandles; - this._onDidChangeSelection.fire({ selection: this.selectedElements }); + this._onDidChangeSelection.fire(Object.freeze({ selection: this.selectedElements })); } } setVisible(visible: boolean): void { if (visible !== this._visible) { this._visible = visible; - this._onDidChangeVisibility.fire({ visible: this._visible }); + this._onDidChangeVisibility.fire(Object.freeze({ visible: this._visible })); } } diff --git a/src/vs/workbench/test/electron-browser/api/extHostTreeViews.test.ts b/src/vs/workbench/test/electron-browser/api/extHostTreeViews.test.ts index 284f16ac8ee..57894ee26cd 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostTreeViews.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostTreeViews.test.ts @@ -416,7 +416,7 @@ suite('ExtHostTreeView', function () { assert.deepEqual('treeDataProvider', revealTarget.args[0][0]); assert.deepEqual({ handle: '0/0:a', label: 'a', collapsibleState: TreeItemCollapsibleState.Collapsed }, removeUnsetKeys(revealTarget.args[0][1])); assert.deepEqual([], revealTarget.args[0][2]); - assert.equal(void 0, revealTarget.args[0][3]); + assert.deepEqual({ select: true, focus: false }, revealTarget.args[0][3]); }); }); @@ -429,7 +429,7 @@ suite('ExtHostTreeView', function () { assert.deepEqual('treeDataProvider', revealTarget.args[0][0]); assert.deepEqual({ handle: '0/0:a/0:aa', label: 'aa', collapsibleState: TreeItemCollapsibleState.None, parentHandle: '0/0:a' }, removeUnsetKeys(revealTarget.args[0][1])); assert.deepEqual([{ handle: '0/0:a', label: 'a', collapsibleState: TreeItemCollapsibleState.Collapsed }], (>revealTarget.args[0][2]).map(arg => removeUnsetKeys(arg))); - assert.equal(void 0, revealTarget.args[0][3]); + assert.deepEqual({ select: true, focus: false }, revealTarget.args[0][3]); }); }); @@ -444,7 +444,7 @@ suite('ExtHostTreeView', function () { assert.deepEqual('treeDataProvider', revealTarget.args[0][0]); assert.deepEqual({ handle: '0/0:a/0:aa', label: 'aa', collapsibleState: TreeItemCollapsibleState.None, parentHandle: '0/0:a' }, removeUnsetKeys(revealTarget.args[0][1])); assert.deepEqual([{ handle: '0/0:a', label: 'a', collapsibleState: TreeItemCollapsibleState.Collapsed }], (>revealTarget.args[0][2]).map(arg => removeUnsetKeys(arg))); - assert.equal(void 0, revealTarget.args[0][3]); + assert.deepEqual({ select: true, focus: false }, revealTarget.args[0][3]); })); }); @@ -458,7 +458,7 @@ suite('ExtHostTreeView', function () { }; const revealTarget = sinon.spy(target, '$reveal'); const treeView = testObject.createTreeView('treeDataProvider', { treeDataProvider: aCompleteNodeTreeDataProvider() }); - return treeView.reveal({ key: 'bac' }, { select: false }) + return treeView.reveal({ key: 'bac' }, { select: false, focus: false }) .then(() => { assert.ok(revealTarget.calledOnce); assert.deepEqual('treeDataProvider', revealTarget.args[0][0]); @@ -467,7 +467,7 @@ suite('ExtHostTreeView', function () { { handle: '0/0:b', label: 'b', collapsibleState: TreeItemCollapsibleState.Collapsed }, { handle: '0/0:b/0:ba', label: 'ba', collapsibleState: TreeItemCollapsibleState.Collapsed, parentHandle: '0/0:b' } ], (>revealTarget.args[0][2]).map(arg => removeUnsetKeys(arg))); - assert.deepEqual({ select: false }, revealTarget.args[0][3]); + assert.deepEqual({ select: false, focus: false }, revealTarget.args[0][3]); }); }); @@ -494,7 +494,7 @@ suite('ExtHostTreeView', function () { assert.deepEqual('treeDataProvider', revealTarget.args[0][0]); assert.deepEqual({ handle: '0/0:a/0:ac', label: 'ac', collapsibleState: TreeItemCollapsibleState.None, parentHandle: '0/0:a' }, removeUnsetKeys(revealTarget.args[0][1])); assert.deepEqual([{ handle: '0/0:a', label: 'a', collapsibleState: TreeItemCollapsibleState.Collapsed }], (>revealTarget.args[0][2]).map(arg => removeUnsetKeys(arg))); - assert.equal(void 0, revealTarget.args[0][3]); + assert.deepEqual({ select: true, focus: false }, revealTarget.args[0][3]); }); }); }); @@ -533,7 +533,7 @@ suite('ExtHostTreeView', function () { assert.deepEqual('treeDataProvider', revealTarget.args[0][0]); assert.deepEqual({ handle: '0/0:b/0:bc', label: 'bc', collapsibleState: TreeItemCollapsibleState.None, parentHandle: '0/0:b' }, removeUnsetKeys(revealTarget.args[0][1])); assert.deepEqual([{ handle: '0/0:b', label: 'b', collapsibleState: TreeItemCollapsibleState.Collapsed }], (>revealTarget.args[0][2]).map(arg => removeUnsetKeys(arg))); - assert.equal(void 0, revealTarget.args[0][3]); + assert.deepEqual({ select: true, focus: false }, revealTarget.args[0][3]); }); }); });