提交 609bcbf2 编写于 作者: J Johannes Rieken

make `resolveInitialRenameValue` be proposed api

上级 32ff9427
......@@ -2664,11 +2664,6 @@ declare module 'vscode' {
appendVariable(name: string, defaultValue: string | ((snippet: SnippetString) => any)): SnippetString;
}
export interface RenameInitialValue {
range: Range
text?: string
}
/**
* The rename provider interface defines the contract between extensions and
* the [rename](https://code.visualstudio.com/docs/editor/editingevolved#_rename-symbol)-feature.
......@@ -2687,8 +2682,6 @@ declare module 'vscode' {
* signaled by returning `undefined` or `null`.
*/
provideRenameEdits(document: TextDocument, position: Position, newName: string, token: CancellationToken): ProviderResult<WorkspaceEdit>;
resolveInitialRenameValue?(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<RenameInitialValue>;
}
/**
......
......@@ -394,4 +394,16 @@ declare module 'vscode' {
*/
logger: Logger;
}
export interface RenameInitialValue {
range: Range;
text?: string;
}
export namespace languages {
export interface RenameProvider2 extends RenameProvider {
resolveInitialRenameValue?(document: TextDocument, position: Position, token: CancellationToken): ProviderResult<RenameInitialValue>;
}
}
}
......@@ -261,7 +261,7 @@ export function createApiFactory(
return extHostLanguageFeatures.registerReferenceProvider(selector, provider);
},
registerRenameProvider(selector: vscode.DocumentSelector, provider: vscode.RenameProvider): vscode.Disposable {
return extHostLanguageFeatures.registerRenameProvider(selector, provider);
return extHostLanguageFeatures.registerRenameProvider(selector, provider, extension.enableProposedApi);
},
registerDocumentSymbolProvider(selector: vscode.DocumentSelector, provider: vscode.DocumentSymbolProvider): vscode.Disposable {
return extHostLanguageFeatures.registerDocumentSymbolProvider(selector, provider);
......
......@@ -468,16 +468,20 @@ class NavigateTypeAdapter {
}
}
interface RenameProvider2 extends vscode.RenameProvider {
resolveInitialRenameValue?(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken): vscode.ProviderResult<any>;
}
class RenameAdapter {
static supportsResolving(provider: vscode.RenameProvider): boolean {
static supportsResolving(provider: RenameProvider2): boolean {
return typeof provider.resolveInitialRenameValue === 'function';
}
private _documents: ExtHostDocuments;
private _provider: vscode.RenameProvider;
private _provider: RenameProvider2;
constructor(documents: ExtHostDocuments, provider: vscode.RenameProvider) {
constructor(documents: ExtHostDocuments, provider: RenameProvider2) {
this._documents = documents;
this._provider = provider;
}
......@@ -510,7 +514,7 @@ class RenameAdapter {
});
}
resolveInitialRenameValue(resource: URI, position: IPosition) : TPromise<modes.RenameInitialValue> {
resolveInitialRenameValue(resource: URI, position: IPosition): TPromise<modes.RenameInitialValue> {
if (typeof this._provider.resolveInitialRenameValue !== 'function') {
return TPromise.as(undefined);
}
......@@ -519,7 +523,7 @@ class RenameAdapter {
let pos = TypeConverters.toPosition(position);
return asWinJsPromise(token => this._provider.resolveInitialRenameValue(doc, pos, token)).then((value) => {
return <modes.RenameInitialValue> {
return <modes.RenameInitialValue>{
range: TypeConverters.fromRange(value.range),
text: value.text
};
......@@ -1028,9 +1032,9 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape {
// --- rename
registerRenameProvider(selector: vscode.DocumentSelector, provider: vscode.RenameProvider): vscode.Disposable {
registerRenameProvider(selector: vscode.DocumentSelector, provider: vscode.RenameProvider, canUseProposedApi = false): vscode.Disposable {
const handle = this._addNewAdapter(new RenameAdapter(this._documents, provider));
this._proxy.$registerRenameSupport(handle, selector, RenameAdapter.supportsResolving(provider));
this._proxy.$registerRenameSupport(handle, selector, canUseProposedApi && RenameAdapter.supportsResolving(provider));
return this._createDisposable(handle);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册