mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 19:18:59 +01:00
align names, add RenameContext-type #7340
This commit is contained in:
@@ -608,6 +608,7 @@ export function createApiFactory(
|
||||
ParameterInformation: extHostTypes.ParameterInformation,
|
||||
Position: extHostTypes.Position,
|
||||
Range: extHostTypes.Range,
|
||||
RenameContext: extHostTypes.RenameContext,
|
||||
Selection: extHostTypes.Selection,
|
||||
SignatureHelp: extHostTypes.SignatureHelp,
|
||||
SignatureInformation: extHostTypes.SignatureInformation,
|
||||
|
||||
@@ -692,7 +692,7 @@ export interface ExtHostLanguageFeaturesShape {
|
||||
$resolveWorkspaceSymbol(handle: number, symbol: SymbolInformationDto): TPromise<SymbolInformationDto>;
|
||||
$releaseWorkspaceSymbols(handle: number, id: number): void;
|
||||
$provideRenameEdits(handle: number, resource: UriComponents, position: IPosition, newName: string): TPromise<WorkspaceEditDto>;
|
||||
$resolveInitialRenameValue(handle: number, resource: UriComponents, position: IPosition): TPromise<modes.RenameInformation>;
|
||||
$resolveRenameContext(handle: number, resource: UriComponents, position: IPosition): TPromise<modes.RenameContext>;
|
||||
$provideCompletionItems(handle: number, resource: UriComponents, position: IPosition, context: modes.SuggestContext): TPromise<SuggestResultDto>;
|
||||
$resolveCompletionItem(handle: number, resource: UriComponents, position: IPosition, suggestion: modes.ISuggestion): TPromise<modes.ISuggestion>;
|
||||
$releaseCompletionItems(handle: number, id: number): void;
|
||||
|
||||
@@ -468,20 +468,16 @@ class NavigateTypeAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
interface RenameProvider2 extends vscode.RenameProvider {
|
||||
resolveInitialRenameValue?(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken): vscode.ProviderResult<vscode.RenameInitialValue>;
|
||||
}
|
||||
|
||||
class RenameAdapter {
|
||||
|
||||
static supportsResolving(provider: RenameProvider2): boolean {
|
||||
return typeof provider.resolveInitialRenameValue === 'function';
|
||||
static supportsResolving(provider: vscode.RenameProvider2): boolean {
|
||||
return typeof provider.resolveRenameContext === 'function';
|
||||
}
|
||||
|
||||
private _documents: ExtHostDocuments;
|
||||
private _provider: RenameProvider2;
|
||||
private _provider: vscode.RenameProvider2;
|
||||
|
||||
constructor(documents: ExtHostDocuments, provider: RenameProvider2) {
|
||||
constructor(documents: ExtHostDocuments, provider: vscode.RenameProvider2) {
|
||||
this._documents = documents;
|
||||
this._provider = provider;
|
||||
}
|
||||
@@ -514,25 +510,25 @@ class RenameAdapter {
|
||||
});
|
||||
}
|
||||
|
||||
resolveInitialRenameValue(resource: URI, position: IPosition): TPromise<modes.RenameInformation> {
|
||||
if (typeof this._provider.resolveInitialRenameValue !== 'function') {
|
||||
resolveRenameContext(resource: URI, position: IPosition): TPromise<modes.RenameContext> {
|
||||
if (typeof this._provider.resolveRenameContext !== 'function') {
|
||||
return TPromise.as(undefined);
|
||||
}
|
||||
|
||||
let doc = this._documents.getDocumentData(resource).document;
|
||||
let pos = TypeConverters.toPosition(position);
|
||||
|
||||
return asWinJsPromise(token => this._provider.resolveInitialRenameValue(doc, pos, token)).then(value => {
|
||||
if (!value) {
|
||||
return asWinJsPromise(token => this._provider.resolveRenameContext(doc, pos, token)).then(context => {
|
||||
if (!context) {
|
||||
return undefined;
|
||||
}
|
||||
if (!value.range.contains(pos)) {
|
||||
if (!context.range.contains(pos)) {
|
||||
console.warn('INVALID rename information, must contain the request-position');
|
||||
return undefined;
|
||||
}
|
||||
return <modes.RenameInformation>{
|
||||
range: TypeConverters.fromRange(value.range),
|
||||
text: value.text || doc.getText(value.range)
|
||||
return <modes.RenameContext>{
|
||||
range: TypeConverters.fromRange(context.range),
|
||||
text: context.newName || doc.getText(context.range)
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -1068,8 +1064,8 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape {
|
||||
return this._withAdapter(handle, RenameAdapter, adapter => adapter.provideRenameEdits(URI.revive(resource), position, newName));
|
||||
}
|
||||
|
||||
$resolveInitialRenameValue(handle: number, resource: URI, position: IPosition): TPromise<modes.RenameInformation> {
|
||||
return this._withAdapter(handle, RenameAdapter, adapter => adapter.resolveInitialRenameValue(resource, position));
|
||||
$resolveRenameContext(handle: number, resource: URI, position: IPosition): TPromise<modes.RenameContext> {
|
||||
return this._withAdapter(handle, RenameAdapter, adapter => adapter.resolveRenameContext(resource, position));
|
||||
}
|
||||
|
||||
// --- suggestion
|
||||
|
||||
@@ -591,6 +591,16 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit {
|
||||
}
|
||||
}
|
||||
|
||||
export class RenameContext {
|
||||
range: Range;
|
||||
newName?: string;
|
||||
|
||||
constructor(range: Range, newName?: string) {
|
||||
this.range = range;
|
||||
this.newName = newName;
|
||||
}
|
||||
}
|
||||
|
||||
export class SnippetString {
|
||||
|
||||
static isSnippetString(thing: any): thing is SnippetString {
|
||||
@@ -1754,4 +1764,4 @@ export enum FoldingRangeType {
|
||||
Region = 'region'
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#endregion
|
||||
|
||||
Reference in New Issue
Block a user