Remove JSON as ITreeNode is all primitives

This commit is contained in:
Pine Wu
2016-10-05 10:53:31 -07:00
parent 61639c0b36
commit c8bbaaa507
4 changed files with 10 additions and 15 deletions

View File

@@ -263,8 +263,8 @@ export abstract class ExtHostEditorsShape {
}
export abstract class ExtHostExplorersShape {
$provideTreeContent(treeContentProviderId: string): TPromise<string> { throw ni(); };
$resolveChildren(treeContentProviderId: string, node: vscode.ITreeNode): TPromise<string> { throw ni(); }
$provideTreeContent(treeContentProviderId: string): TPromise<vscode.ITreeNode> { throw ni(); };
$resolveChildren(treeContentProviderId: string, node: vscode.ITreeNode): TPromise<vscode.ITreeNode[]> { throw ni(); }
}
export abstract class ExtHostExtensionServiceShape {

View File

@@ -13,7 +13,7 @@ import {MainContext, ExtHostExplorersShape, MainThreadExplorersShape} from './ex
export class ExtHostExplorers extends ExtHostExplorersShape {
private _proxy: MainThreadExplorersShape;
private _treeContentProviders: { [treeContentProviderId: string]: vscode.TreeContentProvider; };
private _treeContentProviders: { [treeContentProviderId: string]: vscode.TreeContentProvider };
constructor(
threadService: IThreadService
@@ -36,25 +36,25 @@ export class ExtHostExplorers extends ExtHostExplorersShape {
});
}
$provideTreeContent(treeContentProviderId: string): TPromise<string> {
$provideTreeContent(treeContentProviderId: string): TPromise<vscode.ITreeNode> {
const provider = this._treeContentProviders[treeContentProviderId];
if (!provider) {
throw new Error(`no TreeContentProvider registered with id '${treeContentProviderId}'`);
}
return TPromise.wrap(provider.provideTreeContent().then(treeContent => {
return JSON.stringify(treeContent);
return treeContent;
}));
}
$resolveChildren(treeContentProviderId: string, node: vscode.ITreeNode): TPromise<string> {
$resolveChildren(treeContentProviderId: string, node: vscode.ITreeNode): TPromise<vscode.ITreeNode[]> {
const provider = this._treeContentProviders[treeContentProviderId];
if (!provider) {
throw new Error(`no TreeContentProvider registered with id '${treeContentProviderId}'`);
}
return TPromise.wrap(provider.resolveChildren(node).then(children => {
return JSON.stringify(children);
return children;
}));
}
}

View File

@@ -26,14 +26,10 @@ export class MainThreadExplorers extends MainThreadExplorersShape {
$registerTreeContentProvider(providerId: string): void {
this.treeExplorerViewletService.registerTreeContentProvider(providerId, {
provideTreeContent: (): TPromise<ITreeNode> => {
return this._proxy.$provideTreeContent(providerId).then(jsonTree => {
return <ITreeNode>JSON.parse(jsonTree);
})
return this._proxy.$provideTreeContent(providerId);
},
resolveChildren: (node: ITreeNode): TPromise<ITreeNode[]> => {
return this._proxy.$resolveChildren(providerId, node).then(jsonChildren => {
return <ITreeNode[]>JSON.parse(jsonChildren);
})
return this._proxy.$resolveChildren(providerId, node);
}
});
}