提交 fe94af83 编写于 作者: J Joao Moreno

remove URI from resource tree

上级 7f159d00
......@@ -3,7 +3,6 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { URI } from 'vs/base/common/uri';
import { memoize } from 'vs/base/common/decorators';
import * as paths from 'vs/base/common/path';
import { Iterator } from 'vs/base/common/iterator';
......@@ -74,10 +73,8 @@ export class ResourceTree<T extends NonNullable<any>> {
readonly root = new BranchNode<T>('');
constructor() { }
add(uri: URI, element: T): void {
const parts = uri.fsPath.split(/[\\\/]/).filter(p => !!p);
add(key: string, element: T): void {
const parts = key.split(/[\\\/]/).filter(p => !!p);
let node = this.root;
let path = this.root.path;
......@@ -114,8 +111,8 @@ export class ResourceTree<T extends NonNullable<any>> {
}
}
delete(uri: URI): T | undefined {
const parts = uri.fsPath.split(/[\\\/]/).filter(p => !!p);
delete(key: string): T | undefined {
const parts = key.split(/[\\\/]/).filter(p => !!p);
return this._delete(this.root, parts, 0);
}
......
......@@ -5,7 +5,6 @@
import * as assert from 'assert';
import { ResourceTree, IBranchNode, ILeafNode, isBranchNode } from 'vs/base/common/resourceTree';
import { URI } from 'vs/base/common/uri';
suite('ResourceTree', function () {
test('ctor', function () {
......@@ -17,7 +16,7 @@ suite('ResourceTree', function () {
test('simple', function () {
const tree = new ResourceTree<string>();
tree.add(URI.file('/foo/bar.txt'), 'bar contents');
tree.add('/foo/bar.txt', 'bar contents');
assert(isBranchNode(tree.root));
assert.equal(tree.root.size, 1);
......@@ -31,7 +30,7 @@ suite('ResourceTree', function () {
assert(!isBranchNode(bar));
assert.equal(bar.element, 'bar contents');
tree.add(URI.file('/hello.txt'), 'hello contents');
tree.add('/hello.txt', 'hello contents');
assert.equal(tree.root.size, 2);
let hello = tree.root.get('hello.txt') as ILeafNode<string>;
......@@ -39,7 +38,7 @@ suite('ResourceTree', function () {
assert(!isBranchNode(hello));
assert.equal(hello.element, 'hello contents');
tree.delete(URI.file('/foo/bar.txt'));
tree.delete('/foo/bar.txt');
assert.equal(tree.root.size, 1);
hello = tree.root.get('hello.txt') as ILeafNode<string>;
assert(hello);
......
......@@ -7,7 +7,7 @@ import 'vs/css!./media/scmViewlet';
import { localize } from 'vs/nls';
import { Event, Emitter } from 'vs/base/common/event';
import { domEvent } from 'vs/base/browser/event';
import { basename } from 'vs/base/common/resources';
import { basename, relativePath } from 'vs/base/common/resources';
import { IDisposable, dispose, Disposable, DisposableStore, combinedDisposable, toDisposable } from 'vs/base/common/lifecycle';
import { ViewletPanel, IViewletPanelOptions } from 'vs/workbench/browser/parts/views/panelViewlet';
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
import { Iterator } from 'vs/base/common/iterator';
import * as paths from 'vs/base/common/path';
import { ICompressedTreeNode, ICompressedTreeElement } from 'vs/base/browser/ui/tree/compressedObjectTreeModel';
import { URI } from 'vs/base/common/uri';
export interface ISpliceEvent<T> {
index: number;
......@@ -732,14 +733,16 @@ class ResourceGroupSplicer {
}
private onDidSpliceGroup(item: IGroupItem, { start, deleteCount, toInsert }: ISplice<ISCMResource>): void {
const root = item.group.provider.rootUri || URI.file('/');
for (const resource of toInsert) {
item.tree.add(resource.sourceUri, resource);
item.tree.add(relativePath(root, resource.sourceUri) || resource.sourceUri.fsPath, resource);
}
const deleted = item.resources.splice(start, deleteCount, ...toInsert);
for (const resource of deleted) {
item.tree.delete(resource.sourceUri);
item.tree.delete(relativePath(root, resource.sourceUri) || resource.sourceUri.fsPath);
}
this.fullRefresh();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册