Convert IRenameSupport to RenameProvider

This commit is contained in:
Alex Dima
2016-05-19 18:29:14 +02:00
parent 30169da4f8
commit 3ca51f6d23
7 changed files with 33 additions and 98 deletions

View File

@@ -285,7 +285,7 @@ class ExtHostApiCommands {
position: position && typeConverters.fromPosition(position),
newName
};
return this._commands.executeCommand<modes.IRenameResult>('_executeDocumentRenameProvider', args).then(value => {
return this._commands.executeCommand<modes.WorkspaceEdit>('_executeDocumentRenameProvider', args).then(value => {
if (!value) {
return;
}

View File

@@ -415,7 +415,7 @@ class NavigateTypeAdapter implements INavigateTypesSupport {
}
}
class RenameAdapter implements modes.IRenameSupport {
class RenameAdapter {
private _documents: ExtHostModelService;
private _provider: vscode.RenameProvider;
@@ -425,7 +425,7 @@ class RenameAdapter implements modes.IRenameSupport {
this._provider = provider;
}
rename(resource: URI, position: IPosition, newName: string): TPromise<modes.IRenameResult> {
provideRenameEdits(resource: URI, position: IPosition, newName: string): TPromise<modes.WorkspaceEdit> {
let doc = this._documents.getDocumentData(resource).document;
let pos = TypeConverters.toPosition(position);
@@ -436,8 +436,7 @@ class RenameAdapter implements modes.IRenameSupport {
return;
}
let result = <modes.IRenameResult>{
currentName: undefined,
let result = <modes.WorkspaceEdit>{
edits: []
};
@@ -454,8 +453,7 @@ class RenameAdapter implements modes.IRenameSupport {
return result;
}, err => {
if (typeof err === 'string') {
return <modes.IRenameResult>{
currentName: undefined,
return <modes.WorkspaceEdit>{
edits: undefined,
rejectReason: err
};
@@ -792,8 +790,8 @@ export class ExtHostLanguageFeatures {
return this._createDisposable(handle);
}
$rename(handle: number, resource: URI, position: IPosition, newName: string): TPromise<modes.IRenameResult> {
return this._withAdapter(handle, RenameAdapter, adapter => adapter.rename(resource, position, newName));
$provideRenameEdits(handle: number, resource: URI, position: IPosition, newName: string): TPromise<modes.WorkspaceEdit> {
return this._withAdapter(handle, RenameAdapter, adapter => adapter.provideRenameEdits(resource, position, newName));
}
// --- suggestion
@@ -975,9 +973,9 @@ export class MainThreadLanguageFeatures {
// --- rename
$registerRenameSupport(handle: number, selector: vscode.DocumentSelector): TPromise<any> {
this._registrations[handle] = modes.RenameRegistry.register(selector, <modes.IRenameSupport>{
rename: (resource: URI, position: IPosition, newName: string): TPromise<modes.IRenameResult> => {
return this._proxy.$rename(handle, resource, position, newName);
this._registrations[handle] = modes.RenameProviderRegistry.register(selector, <modes.RenameProvider>{
provideRenameEdits: (model:IReadOnlyModel, position:IEditorPosition, newName: string, token: CancellationToken): Thenable<modes.WorkspaceEdit> => {
return wireCancellationToken(token, this._proxy.$provideRenameEdits(handle, model.getAssociatedResource(), position, newName));
}
});
return undefined;