From e4a765da2d9e91305c559c46ed2dde2bdd6742b9 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Fri, 24 Mar 2017 16:44:38 +0100 Subject: [PATCH] :hammer: change how ids work in scm providers. remove drag --- extensions/git/src/scmProvider.ts | 3 ++- src/vs/vscode.proposed.d.ts | 17 ++++++++----- src/vs/workbench/api/node/extHost.api.impl.ts | 4 +-- src/vs/workbench/api/node/extHost.protocol.ts | 2 -- src/vs/workbench/api/node/extHostSCM.ts | 25 +++---------------- src/vs/workbench/api/node/mainThreadSCM.ts | 8 ------ src/vs/workbench/services/scm/common/scm.ts | 1 - 7 files changed, 18 insertions(+), 42 deletions(-) diff --git a/extensions/git/src/scmProvider.ts b/extensions/git/src/scmProvider.ts index 82edfdf97b6..de08757e17d 100644 --- a/extensions/git/src/scmProvider.ts +++ b/extensions/git/src/scmProvider.ts @@ -14,6 +14,7 @@ export class GitSCMProvider implements SCMProvider { private disposables: Disposable[] = []; + get id(): string { return 'git'; } get resources(): SCMResourceGroup[] { return this.model.resources; } get onDidChange(): Event { @@ -42,7 +43,7 @@ export class GitSCMProvider implements SCMProvider { } constructor(private model: Model, private commandCenter: CommandCenter) { - scm.registerSCMProvider('git', this); + scm.registerSCMProvider(this); } open(resource: Resource): ProviderResult { diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 036a42305d0..6ffbbb98c12 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -640,17 +640,17 @@ declare module 'vscode' { export interface SCMResourceGroup { /** - * The identifier of this SCM resource group. + * The identifier of the SCM resource group. */ readonly id: string; /** - * The UI label of this SCM resource group. + * The UI label of the SCM resource group. */ readonly label: string; /** - * The collection of [SCM resources](#SCMResource) within this SCM resource group. + * The collection of [SCM resources](#SCMResource) within the SCM resource group. */ readonly resources: SCMResource[]; } @@ -662,7 +662,12 @@ declare module 'vscode' { export interface SCMProvider { /** - * A human-readable label for the name of this SCM Provider. + * The identifier of the SCM provider. + */ + readonly id: string; + + /** + * A human-readable label for the name of the SCM Provider. */ readonly label: string; @@ -755,9 +760,9 @@ declare module 'vscode' { * Registers an [SCM provider](#SCMProvider). * * @param id The provider's id. - * @return A disposable which unregisters this provider. + * @return A disposable which unregisters the provider. */ - export function registerSCMProvider(id: string, provider: SCMProvider): Disposable; + export function registerSCMProvider(provider: SCMProvider): Disposable; } /** diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 9f545cbd710..01b07f93854 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -454,8 +454,8 @@ export function createApiFactory(initData: IInitData, threadService: IThreadServ } @proposed(extension) - registerSCMProvider(id, provider) { - return extHostSCM.registerSCMProvider(id, provider); + registerSCMProvider(provider) { + return extHostSCM.registerSCMProvider(provider); } } diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index bda5b5ff0fb..8a23a5e4c41 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -253,7 +253,6 @@ export interface SCMProviderFeatures { label: string; supportsOpen: boolean; supportsAcceptChanges: boolean; - supportsDrag: boolean; supportsOriginalResource: boolean; } @@ -412,7 +411,6 @@ export abstract class ExtHostTerminalServiceShape { export abstract class ExtHostSCMShape { $open(id: string, resourceGroupId: string, uri: string): TPromise { throw ni(); } $acceptChanges(id: string): TPromise { throw ni(); } - $drag(id: string, fromResourceGroupId: string, fromUri: string, toResourceGroupId: string): TPromise { throw ni(); } $getOriginalResource(id: string, uri: URI): TPromise { throw ni(); } $onInputBoxValueChange(value: string): TPromise { throw ni(); } } diff --git a/src/vs/workbench/api/node/extHostSCM.ts b/src/vs/workbench/api/node/extHostSCM.ts index e74f42aad19..b7bae0228fd 100644 --- a/src/vs/workbench/api/node/extHostSCM.ts +++ b/src/vs/workbench/api/node/extHostSCM.ts @@ -141,7 +141,9 @@ export class ExtHostSCM { return resource; } - registerSCMProvider(providerId: string, provider: vscode.SCMProvider): Disposable { + registerSCMProvider(provider: vscode.SCMProvider): Disposable { + const providerId = provider.id; + if (this._providers[providerId]) { throw new Error(`Provider ${providerId} already registered`); } @@ -153,7 +155,6 @@ export class ExtHostSCM { label: provider.label, supportsOpen: !!provider.open, supportsAcceptChanges: !!provider.acceptChanges, - supportsDrag: !!provider.drag, supportsOriginalResource: !!provider.getOriginalResource }); @@ -228,26 +229,6 @@ export class ExtHostSCM { return asWinJsPromise(token => provider.acceptChanges(token)); } - $drag(providerId: string, fromResourceGroupId: string, fromUri: string, toResourceGroupId: string): TPromise { - const provider = this._providers[providerId]; - - if (!provider) { - return TPromise.as(null); - } - - const providerCache = this.cache[providerId]; - const fromResourceGroup = providerCache[fromResourceGroupId]; - const resource = fromResourceGroup && fromResourceGroup.resources[fromUri]; - const toResourceGroup = providerCache[toResourceGroupId]; - const resourceGroup = toResourceGroup && toResourceGroup.resourceGroup; - - if (!resource || !resourceGroup) { - return TPromise.as(null); - } - - return asWinJsPromise(token => provider.drag(resource, resourceGroup, token)); - } - $getOriginalResource(id: string, uri: URI): TPromise { const provider = this._providers[id]; diff --git a/src/vs/workbench/api/node/mainThreadSCM.ts b/src/vs/workbench/api/node/mainThreadSCM.ts index 873d5bf4180..eeafb005721 100644 --- a/src/vs/workbench/api/node/mainThreadSCM.ts +++ b/src/vs/workbench/api/node/mainThreadSCM.ts @@ -60,14 +60,6 @@ class MainThreadSCMProvider implements ISCMProvider { return this.proxy.$acceptChanges(this.id); } - drag(from: ISCMResource, to: ISCMResourceGroup): TPromise { - if (!this.features.supportsDrag) { - return TPromise.as(null); - } - - return this.proxy.$drag(this.id, from.resourceGroupId, from.uri.toString(), to.id); - } - getOriginalResource(uri: URI): TPromise { if (!this.features.supportsOriginalResource) { return TPromise.as(null); diff --git a/src/vs/workbench/services/scm/common/scm.ts b/src/vs/workbench/services/scm/common/scm.ts index 2d433fdf8f6..18729498965 100644 --- a/src/vs/workbench/services/scm/common/scm.ts +++ b/src/vs/workbench/services/scm/common/scm.ts @@ -45,7 +45,6 @@ export interface ISCMProvider extends IDisposable { open(uri: ISCMResource): TPromise; acceptChanges(): TPromise; - drag(from: ISCMResource, to: ISCMResourceGroup): TPromise; getOriginalResource(uri: URI): TPromise; }