Introduce id and user data sync store registry

This commit is contained in:
Sandeep Somavarapu
2019-09-17 16:24:51 +02:00
parent 50a0bd9eaa
commit 5cc29271b5
6 changed files with 98 additions and 6 deletions

View File

@@ -22,9 +22,10 @@ export class MainThreadUserData extends Disposable implements MainThreadUserData
this._register(toDisposable(() => this.userDataSyncStoreService.deregisterUserDataSyncStore()));
}
$registerUserDataProvider(name: string): void {
$registerUserDataProvider(id: string, name: string): void {
const proxy = this.proxy;
this.userDataSyncStoreService.registerUserDataSyncStore({
id,
name,
read(key: string): Promise<IUserData | null> {
return proxy.$read(key);

View File

@@ -546,9 +546,9 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
createInputBox(): vscode.InputBox {
return extHostQuickOpen.createInputBox(extension.identifier);
},
registerUserDataSyncProvider: (identity: string, userDataProvider: vscode.UserDataSyncProvider): vscode.Disposable => {
registerUserDataSyncProvider: (name: string, userDataProvider: vscode.UserDataSyncProvider): vscode.Disposable => {
checkProposedApiEnabled(extension);
return extHostUserData.registerUserDataProvider(identity, userDataProvider);
return extHostUserData.registerUserDataProvider(extension.identifier.value, name, userDataProvider);
}
};

View File

@@ -147,7 +147,7 @@ export interface MainThreadConfigurationShape extends IDisposable {
}
export interface MainThreadUserDataShape extends IDisposable {
$registerUserDataProvider(name: string): void;
$registerUserDataProvider(id: string, name: string): void;
$deregisterUserDataProvider(): void;
}

View File

@@ -20,14 +20,14 @@ export class ExtHostUserData implements ExtHostUserDataShape {
) {
}
registerUserDataProvider(name: string, userDataProvider: vscode.UserDataSyncProvider): vscode.Disposable {
registerUserDataProvider(id: string, name: string, userDataProvider: vscode.UserDataSyncProvider): vscode.Disposable {
if (this.userDataProvider) {
this.logService.warn(`A user data provider '${this.name}' already exists hence ignoring the remote user data provider '${name}'.`);
return Disposable.None;
}
this.userDataProvider = userDataProvider;
this.name = name;
this.proxy.$registerUserDataProvider(name);
this.proxy.$registerUserDataProvider(id, name);
return toDisposable(() => this.proxy.$deregisterUserDataProvider());
}