diff --git a/src/vs/base/browser/ui/tree/asyncDataTree.ts b/src/vs/base/browser/ui/tree/asyncDataTree.ts index 345963b1083ef..6bfcfaffc2e97 100644 --- a/src/vs/base/browser/ui/tree/asyncDataTree.ts +++ b/src/vs/base/browser/ui/tree/asyncDataTree.ts @@ -1286,7 +1286,7 @@ export class CompressibleAsyncDataTree extends As return { focus, selection, expanded, scrollTop: this.scrollTop }; } - protected override render(node: IAsyncDataTreeNode, viewStateContext?: IAsyncDataTreeViewStateContext): void { + protected override render(node: IAsyncDataTreeNode, viewStateContext?: IAsyncDataTreeViewStateContext, options?: IAsyncDataTreeUpdateChildrenOptions): void { if (!this.identityProvider) { return super.render(node, viewStateContext); } @@ -1316,7 +1316,7 @@ export class CompressibleAsyncDataTree extends As const oldSelection = getUncompressedIds(this.tree.getSelection() as IAsyncDataTreeNode[]); const oldFocus = getUncompressedIds(this.tree.getFocus() as IAsyncDataTreeNode[]); - super.render(node, viewStateContext); + super.render(node, viewStateContext, options); const selection = this.getSelection(); let didChangeSelection = false; diff --git a/src/vs/base/browser/ui/tree/indexTreeModel.ts b/src/vs/base/browser/ui/tree/indexTreeModel.ts index ba745b069cb66..4e83338804b88 100644 --- a/src/vs/base/browser/ui/tree/indexTreeModel.ts +++ b/src/vs/base/browser/ui/tree/indexTreeModel.ts @@ -238,7 +238,6 @@ export class IndexTreeModel, TFilterData = voi const nodesToInsertIterator = Iterable.map(toInsert, el => this.createTreeNode(el, parentNode, parentNode.visible ? TreeVisibility.Visible : TreeVisibility.Hidden, revealed, treeListElementsToInsert, onDidCreateNode)); const lastIndex = location[location.length - 1]; - const lastHadChildren = parentNode.children.length > 0; // figure out what's the visible child start index right before the // splice point @@ -317,11 +316,6 @@ export class IndexTreeModel, TFilterData = voi this._onDidSplice.fire({ insertedNodes: nodesToInsert, deletedNodes }); - const currentlyHasChildren = parentNode.children.length > 0; - if (lastHadChildren !== currentlyHasChildren) { - this.setCollapsible(location.slice(0, -1), currentlyHasChildren); - } - let node: IIndexTreeNode | undefined = parentNode; while (node) { diff --git a/src/vs/base/test/browser/ui/tree/indexTreeModel.test.ts b/src/vs/base/test/browser/ui/tree/indexTreeModel.test.ts index 008da2a3ea01a..5657e458849bc 100644 --- a/src/vs/base/test/browser/ui/tree/indexTreeModel.test.ts +++ b/src/vs/base/test/browser/ui/tree/indexTreeModel.test.ts @@ -313,36 +313,6 @@ suite('IndexTreeModel', () => { assert.deepStrictEqual(list[2].depth, 1); })); - test('updates collapsible', () => withSmartSplice(options => { - const list: ITreeNode[] = []; - const model = new IndexTreeModel('test', toList(list), -1); - - model.splice([0], 0, [ - { - element: 0, children: [ - { element: 1 }, - ] - }, - ], options); - - assert.strictEqual(list[0].collapsible, true); - assert.strictEqual(list[1].collapsible, false); - - model.splice([0, 0], 1, [], options); - { - const [first, second] = list; - assert.strictEqual(first.collapsible, false); - assert.strictEqual(second, undefined); - } - - model.splice([0, 0], 0, [{ element: 1 }], options); - { - const [first, second] = list; - assert.strictEqual(first.collapsible, true); - assert.strictEqual(second.collapsible, false); - } - })); - test('expand', () => withSmartSplice(options => { const list: ITreeNode[] = []; const model = new IndexTreeModel('test', toList(list), -1);