Skip to content

Commit fe94af8

Browse files
committed
remove URI from resource tree
1 parent 7f159d0 commit fe94af8

3 files changed

Lines changed: 13 additions & 14 deletions

File tree

src/vs/base/common/resourceTree.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { URI } from 'vs/base/common/uri';
76
import { memoize } from 'vs/base/common/decorators';
87
import * as paths from 'vs/base/common/path';
98
import { Iterator } from 'vs/base/common/iterator';
@@ -74,10 +73,8 @@ export class ResourceTree<T extends NonNullable<any>> {
7473

7574
readonly root = new BranchNode<T>('');
7675

77-
constructor() { }
78-
79-
add(uri: URI, element: T): void {
80-
const parts = uri.fsPath.split(/[\\\/]/).filter(p => !!p);
76+
add(key: string, element: T): void {
77+
const parts = key.split(/[\\\/]/).filter(p => !!p);
8178
let node = this.root;
8279
let path = this.root.path;
8380

@@ -114,8 +111,8 @@ export class ResourceTree<T extends NonNullable<any>> {
114111
}
115112
}
116113

117-
delete(uri: URI): T | undefined {
118-
const parts = uri.fsPath.split(/[\\\/]/).filter(p => !!p);
114+
delete(key: string): T | undefined {
115+
const parts = key.split(/[\\\/]/).filter(p => !!p);
119116
return this._delete(this.root, parts, 0);
120117
}
121118

src/vs/base/test/common/resourceTree.test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import * as assert from 'assert';
77
import { ResourceTree, IBranchNode, ILeafNode, isBranchNode } from 'vs/base/common/resourceTree';
8-
import { URI } from 'vs/base/common/uri';
98

109
suite('ResourceTree', function () {
1110
test('ctor', function () {
@@ -17,7 +16,7 @@ suite('ResourceTree', function () {
1716
test('simple', function () {
1817
const tree = new ResourceTree<string>();
1918

20-
tree.add(URI.file('/foo/bar.txt'), 'bar contents');
19+
tree.add('/foo/bar.txt', 'bar contents');
2120
assert(isBranchNode(tree.root));
2221
assert.equal(tree.root.size, 1);
2322

@@ -31,15 +30,15 @@ suite('ResourceTree', function () {
3130
assert(!isBranchNode(bar));
3231
assert.equal(bar.element, 'bar contents');
3332

34-
tree.add(URI.file('/hello.txt'), 'hello contents');
33+
tree.add('/hello.txt', 'hello contents');
3534
assert.equal(tree.root.size, 2);
3635

3736
let hello = tree.root.get('hello.txt') as ILeafNode<string>;
3837
assert(hello);
3938
assert(!isBranchNode(hello));
4039
assert.equal(hello.element, 'hello contents');
4140

42-
tree.delete(URI.file('/foo/bar.txt'));
41+
tree.delete('/foo/bar.txt');
4342
assert.equal(tree.root.size, 1);
4443
hello = tree.root.get('hello.txt') as ILeafNode<string>;
4544
assert(hello);

src/vs/workbench/contrib/scm/browser/scmViewlet.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'vs/css!./media/scmViewlet';
77
import { localize } from 'vs/nls';
88
import { Event, Emitter } from 'vs/base/common/event';
99
import { domEvent } from 'vs/base/browser/event';
10-
import { basename } from 'vs/base/common/resources';
10+
import { basename, relativePath } from 'vs/base/common/resources';
1111
import { IDisposable, dispose, Disposable, DisposableStore, combinedDisposable, toDisposable } from 'vs/base/common/lifecycle';
1212
import { ViewletPanel, IViewletPanelOptions } from 'vs/workbench/browser/parts/views/panelViewlet';
1313
import { append, $, addClass, toggleClass, trackFocus, removeClass, addClasses } from 'vs/base/browser/dom';
@@ -56,6 +56,7 @@ import { ObjectTree, ICompressibleTreeRenderer } from 'vs/base/browser/ui/tree/o
5656
import { Iterator } from 'vs/base/common/iterator';
5757
import * as paths from 'vs/base/common/path';
5858
import { ICompressedTreeNode, ICompressedTreeElement } from 'vs/base/browser/ui/tree/compressedObjectTreeModel';
59+
import { URI } from 'vs/base/common/uri';
5960

6061
export interface ISpliceEvent<T> {
6162
index: number;
@@ -732,14 +733,16 @@ class ResourceGroupSplicer {
732733
}
733734

734735
private onDidSpliceGroup(item: IGroupItem, { start, deleteCount, toInsert }: ISplice<ISCMResource>): void {
736+
const root = item.group.provider.rootUri || URI.file('/');
737+
735738
for (const resource of toInsert) {
736-
item.tree.add(resource.sourceUri, resource);
739+
item.tree.add(relativePath(root, resource.sourceUri) || resource.sourceUri.fsPath, resource);
737740
}
738741

739742
const deleted = item.resources.splice(start, deleteCount, ...toInsert);
740743

741744
for (const resource of deleted) {
742-
item.tree.delete(resource.sourceUri);
745+
item.tree.delete(relativePath(root, resource.sourceUri) || resource.sourceUri.fsPath);
743746
}
744747

745748
this.fullRefresh();

0 commit comments

Comments
 (0)