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

@@ -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());
}