From 53df86adbef511b7049f4154251f7a037d9034ab Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 8 Feb 2018 12:57:36 +0100 Subject: [PATCH] Use URI for the SCM part of the protocol --- .../api/electron-browser/mainThreadSCM.ts | 12 ++++++------ src/vs/workbench/api/node/extHost.protocol.ts | 6 +++--- src/vs/workbench/api/node/extHostSCM.ts | 16 ++++++++-------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/vs/workbench/api/electron-browser/mainThreadSCM.ts b/src/vs/workbench/api/electron-browser/mainThreadSCM.ts index 8b8cec71781..97ffef5f108 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadSCM.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadSCM.ts @@ -6,7 +6,7 @@ 'use strict'; import { TPromise } from 'vs/base/common/winjs.base'; -import URI from 'vs/base/common/uri'; +import URI, { UriComponents } from 'vs/base/common/uri'; import Event, { Emitter } from 'vs/base/common/event'; import { assign } from 'vs/base/common/objects'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; @@ -212,7 +212,7 @@ class MainThreadSCMProvider implements ISCMProvider { this.handle, groupHandle, handle, - URI.parse(sourceUri), + URI.revive(sourceUri), group, decorations ); @@ -241,8 +241,8 @@ class MainThreadSCMProvider implements ISCMProvider { return TPromise.as(null); } - return this.proxy.$provideOriginalResource(this.handle, uri.toString()) - .then(result => result && URI.parse(result)); + return this.proxy.$provideOriginalResource(this.handle, uri) + .then(result => result && URI.revive(result)); } toJSON(): any { @@ -284,8 +284,8 @@ export class MainThreadSCM implements MainThreadSCMShape { this._disposables = dispose(this._disposables); } - $registerSourceControl(handle: number, id: string, label: string, rootUri: string | undefined): void { - const provider = new MainThreadSCMProvider(this._proxy, handle, id, label, rootUri && URI.parse(rootUri), this.scmService); + $registerSourceControl(handle: number, id: string, label: string, rootUri: UriComponents | undefined): void { + const provider = new MainThreadSCMProvider(this._proxy, handle, id, label, rootUri && URI.revive(rootUri), this.scmService); const repository = this.scmService.registerSCMProvider(provider); this._repositories[handle] = repository; diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 746252ccab7..4b0fc1c364c 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -395,7 +395,7 @@ export interface SCMGroupFeatures { export type SCMRawResource = [ number /*handle*/, - string /*resourceUri*/, + UriComponents /*resourceUri*/, string[] /*icons: light, dark*/, string /*tooltip*/, boolean /*strike through*/, @@ -418,7 +418,7 @@ export type SCMRawResourceSplices = [ ]; export interface MainThreadSCMShape extends IDisposable { - $registerSourceControl(handle: number, id: string, label: string, rootUri: string | undefined): void; + $registerSourceControl(handle: number, id: string, label: string, rootUri: UriComponents | undefined): void; $updateSourceControl(handle: number, features: SCMProviderFeatures): void; $unregisterSourceControl(handle: number): void; @@ -691,7 +691,7 @@ export interface ExtHostTerminalServiceShape { } export interface ExtHostSCMShape { - $provideOriginalResource(sourceControlHandle: number, uri: string): TPromise; + $provideOriginalResource(sourceControlHandle: number, uri: UriComponents): TPromise; $onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise; $executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): TPromise; $validateInput(sourceControlHandle: number, value: string, cursorPosition: number): TPromise<[string, number] | undefined>; diff --git a/src/vs/workbench/api/node/extHostSCM.ts b/src/vs/workbench/api/node/extHostSCM.ts index 596aa1ead50..bee2cd0b11e 100644 --- a/src/vs/workbench/api/node/extHostSCM.ts +++ b/src/vs/workbench/api/node/extHostSCM.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import URI from 'vs/base/common/uri'; +import URI, { UriComponents } from 'vs/base/common/uri'; import { TPromise } from 'vs/base/common/winjs.base'; import Event, { Emitter, once } from 'vs/base/common/event'; import { debounce } from 'vs/base/common/decorators'; @@ -256,7 +256,7 @@ class ExtHostSourceControlResourceGroup implements vscode.SourceControlResourceG const handle = this._resourceHandlePool++; this._resourceStatesMap.set(handle, r); - const sourceUri = r.resourceUri.toString(); + const sourceUri = r.resourceUri; const iconPath = getIconPath(r.decorations); const lightIconPath = r.decorations && getIconPath(r.decorations.light) || iconPath; const darkIconPath = r.decorations && getIconPath(r.decorations.dark) || iconPath; @@ -282,7 +282,7 @@ class ExtHostSourceControlResourceGroup implements vscode.SourceControlResourceG const letter = r.decorations && r.decorations.letter || undefined; const color = r.decorations && r.decorations.color || undefined; - const rawResource = [handle, sourceUri, icons, tooltip, strikeThrough, faded, source, letter, color] as SCMRawResource; + const rawResource = [handle, sourceUri, icons, tooltip, strikeThrough, faded, source, letter, color] as SCMRawResource; return { rawResource, handle }; }); @@ -406,7 +406,7 @@ class ExtHostSourceControl implements vscode.SourceControl { private _rootUri?: vscode.Uri ) { this._inputBox = new ExtHostSCMInputBox(_extension, this._proxy, this.handle); - this._proxy.$registerSourceControl(this.handle, _id, _label, _rootUri && _rootUri.toString()); + this._proxy.$registerSourceControl(this.handle, _id, _label, _rootUri); } private updatedResourceGroups = new Set(); @@ -542,8 +542,9 @@ export class ExtHostSCM implements ExtHostSCMShape { return inputBox; } - $provideOriginalResource(sourceControlHandle: number, uriString: string): TPromise { - this.logService.trace('ExtHostSCM#$provideOriginalResource', sourceControlHandle, uriString); + $provideOriginalResource(sourceControlHandle: number, uriComponents: UriComponents): TPromise { + const uri = URI.revive(uriComponents); + this.logService.trace('ExtHostSCM#$provideOriginalResource', sourceControlHandle, uri.toString()); const sourceControl = this._sourceControls.get(sourceControlHandle); @@ -551,8 +552,7 @@ export class ExtHostSCM implements ExtHostSCMShape { return TPromise.as(null); } - return asWinJsPromise(token => sourceControl.quickDiffProvider.provideOriginalResource(URI.parse(uriString), token)) - .then(result => result && result.toString()); + return asWinJsPromise(token => sourceControl.quickDiffProvider.provideOriginalResource(uri, token)); } $onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise { -- GitLab