提交 53df86ad 编写于 作者: A Alex Dima

Use URI for the SCM part of the protocol

上级 40e59c8d
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
'use strict'; 'use strict';
import { TPromise } from 'vs/base/common/winjs.base'; 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 Event, { Emitter } from 'vs/base/common/event';
import { assign } from 'vs/base/common/objects'; import { assign } from 'vs/base/common/objects';
import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { IDisposable, dispose } from 'vs/base/common/lifecycle';
...@@ -212,7 +212,7 @@ class MainThreadSCMProvider implements ISCMProvider { ...@@ -212,7 +212,7 @@ class MainThreadSCMProvider implements ISCMProvider {
this.handle, this.handle,
groupHandle, groupHandle,
handle, handle,
URI.parse(sourceUri), URI.revive(sourceUri),
group, group,
decorations decorations
); );
...@@ -241,8 +241,8 @@ class MainThreadSCMProvider implements ISCMProvider { ...@@ -241,8 +241,8 @@ class MainThreadSCMProvider implements ISCMProvider {
return TPromise.as(null); return TPromise.as(null);
} }
return this.proxy.$provideOriginalResource(this.handle, uri.toString()) return this.proxy.$provideOriginalResource(this.handle, uri)
.then(result => result && URI.parse(result)); .then(result => result && URI.revive(result));
} }
toJSON(): any { toJSON(): any {
...@@ -284,8 +284,8 @@ export class MainThreadSCM implements MainThreadSCMShape { ...@@ -284,8 +284,8 @@ export class MainThreadSCM implements MainThreadSCMShape {
this._disposables = dispose(this._disposables); this._disposables = dispose(this._disposables);
} }
$registerSourceControl(handle: number, id: string, label: string, rootUri: string | undefined): void { $registerSourceControl(handle: number, id: string, label: string, rootUri: UriComponents | undefined): void {
const provider = new MainThreadSCMProvider(this._proxy, handle, id, label, rootUri && URI.parse(rootUri), this.scmService); const provider = new MainThreadSCMProvider(this._proxy, handle, id, label, rootUri && URI.revive(rootUri), this.scmService);
const repository = this.scmService.registerSCMProvider(provider); const repository = this.scmService.registerSCMProvider(provider);
this._repositories[handle] = repository; this._repositories[handle] = repository;
......
...@@ -395,7 +395,7 @@ export interface SCMGroupFeatures { ...@@ -395,7 +395,7 @@ export interface SCMGroupFeatures {
export type SCMRawResource = [ export type SCMRawResource = [
number /*handle*/, number /*handle*/,
string /*resourceUri*/, UriComponents /*resourceUri*/,
string[] /*icons: light, dark*/, string[] /*icons: light, dark*/,
string /*tooltip*/, string /*tooltip*/,
boolean /*strike through*/, boolean /*strike through*/,
...@@ -418,7 +418,7 @@ export type SCMRawResourceSplices = [ ...@@ -418,7 +418,7 @@ export type SCMRawResourceSplices = [
]; ];
export interface MainThreadSCMShape extends IDisposable { 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; $updateSourceControl(handle: number, features: SCMProviderFeatures): void;
$unregisterSourceControl(handle: number): void; $unregisterSourceControl(handle: number): void;
...@@ -691,7 +691,7 @@ export interface ExtHostTerminalServiceShape { ...@@ -691,7 +691,7 @@ export interface ExtHostTerminalServiceShape {
} }
export interface ExtHostSCMShape { export interface ExtHostSCMShape {
$provideOriginalResource(sourceControlHandle: number, uri: string): TPromise<string>; $provideOriginalResource(sourceControlHandle: number, uri: UriComponents): TPromise<UriComponents>;
$onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise<void>; $onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise<void>;
$executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): TPromise<void>; $executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): TPromise<void>;
$validateInput(sourceControlHandle: number, value: string, cursorPosition: number): TPromise<[string, number] | undefined>; $validateInput(sourceControlHandle: number, value: string, cursorPosition: number): TPromise<[string, number] | undefined>;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; '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 { TPromise } from 'vs/base/common/winjs.base';
import Event, { Emitter, once } from 'vs/base/common/event'; import Event, { Emitter, once } from 'vs/base/common/event';
import { debounce } from 'vs/base/common/decorators'; import { debounce } from 'vs/base/common/decorators';
...@@ -256,7 +256,7 @@ class ExtHostSourceControlResourceGroup implements vscode.SourceControlResourceG ...@@ -256,7 +256,7 @@ class ExtHostSourceControlResourceGroup implements vscode.SourceControlResourceG
const handle = this._resourceHandlePool++; const handle = this._resourceHandlePool++;
this._resourceStatesMap.set(handle, r); this._resourceStatesMap.set(handle, r);
const sourceUri = r.resourceUri.toString(); const sourceUri = r.resourceUri;
const iconPath = getIconPath(r.decorations); const iconPath = getIconPath(r.decorations);
const lightIconPath = r.decorations && getIconPath(r.decorations.light) || iconPath; const lightIconPath = r.decorations && getIconPath(r.decorations.light) || iconPath;
const darkIconPath = r.decorations && getIconPath(r.decorations.dark) || iconPath; const darkIconPath = r.decorations && getIconPath(r.decorations.dark) || iconPath;
...@@ -282,7 +282,7 @@ class ExtHostSourceControlResourceGroup implements vscode.SourceControlResourceG ...@@ -282,7 +282,7 @@ class ExtHostSourceControlResourceGroup implements vscode.SourceControlResourceG
const letter = r.decorations && r.decorations.letter || undefined; const letter = r.decorations && r.decorations.letter || undefined;
const color = r.decorations && r.decorations.color || 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, <UriComponents>sourceUri, icons, tooltip, strikeThrough, faded, source, letter, color] as SCMRawResource;
return { rawResource, handle }; return { rawResource, handle };
}); });
...@@ -406,7 +406,7 @@ class ExtHostSourceControl implements vscode.SourceControl { ...@@ -406,7 +406,7 @@ class ExtHostSourceControl implements vscode.SourceControl {
private _rootUri?: vscode.Uri private _rootUri?: vscode.Uri
) { ) {
this._inputBox = new ExtHostSCMInputBox(_extension, this._proxy, this.handle); 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<ExtHostSourceControlResourceGroup>(); private updatedResourceGroups = new Set<ExtHostSourceControlResourceGroup>();
...@@ -542,8 +542,9 @@ export class ExtHostSCM implements ExtHostSCMShape { ...@@ -542,8 +542,9 @@ export class ExtHostSCM implements ExtHostSCMShape {
return inputBox; return inputBox;
} }
$provideOriginalResource(sourceControlHandle: number, uriString: string): TPromise<string> { $provideOriginalResource(sourceControlHandle: number, uriComponents: UriComponents): TPromise<UriComponents> {
this.logService.trace('ExtHostSCM#$provideOriginalResource', sourceControlHandle, uriString); const uri = URI.revive(uriComponents);
this.logService.trace('ExtHostSCM#$provideOriginalResource', sourceControlHandle, uri.toString());
const sourceControl = this._sourceControls.get(sourceControlHandle); const sourceControl = this._sourceControls.get(sourceControlHandle);
...@@ -551,8 +552,7 @@ export class ExtHostSCM implements ExtHostSCMShape { ...@@ -551,8 +552,7 @@ export class ExtHostSCM implements ExtHostSCMShape {
return TPromise.as(null); return TPromise.as(null);
} }
return asWinJsPromise(token => sourceControl.quickDiffProvider.provideOriginalResource(URI.parse(uriString), token)) return asWinJsPromise(token => sourceControl.quickDiffProvider.provideOriginalResource(uri, token));
.then(result => result && result.toString());
} }
$onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise<void> { $onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise<void> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册