Revert "Fix element already registered (#281000)" (#281278)

* Revert "Fix element already registered (#281000)"

This reverts commit ca3f2212d1.

* skip test
This commit is contained in:
Alex Ross
2025-12-04 18:43:55 +01:00
committed by GitHub
parent 25f178ebb2
commit 653d30ab18
2 changed files with 4 additions and 17 deletions

View File

@@ -18,7 +18,7 @@ suite('vscode API - tree', () => {
assertNoRpc();
});
test('TreeView - element already registered', async function () {
test.skip('TreeView - element already registered', async function () {
this.timeout(60_000);
type TreeElement = { readonly kind: 'leaf' };

View File

@@ -863,23 +863,10 @@ class ExtHostTreeView<T> extends Disposable {
}
private _createAndRegisterTreeNode(element: T, extTreeItem: vscode.TreeItem, parentNode: TreeNode | Root): TreeNode {
const duplicateHandle = extTreeItem.id ? `${ExtHostTreeView.ID_HANDLE_PREFIX}/${extTreeItem.id}` : undefined;
if (duplicateHandle) {
const existingElement = this._elements.get(duplicateHandle);
if (existingElement) {
if (existingElement !== element) {
throw new Error(localize('treeView.duplicateElement', 'Element with id {0} is already registered', extTreeItem.id));
}
const existingNode = this._nodes.get(existingElement);
if (existingNode) {
const newNode = this._createTreeNode(element, extTreeItem, parentNode);
this._updateNodeCache(element, newNode, existingNode, parentNode);
existingNode.dispose();
return newNode;
}
}
}
const node = this._createTreeNode(element, extTreeItem, parentNode);
if (extTreeItem.id && this._elements.has(node.item.handle)) {
throw new Error(localize('treeView.duplicateElement', 'Element with id {0} is already registered', extTreeItem.id));
}
this._addNodeToCache(element, node);
this._addNodeToParentCache(node, parentNode);
return node;