The rename provider interface defines the contract between extensions and the rename-feature.

Fields

provideRenameEdits(document:TextDocument, position:Position, newName:String, token:CancellationToken):ProviderResult<WorkspaceEdit>

Provide an edit that describes changes that have to be made to one or many resources to rename a symbol to a different name.

Parameters:

document

The document in which the command was invoked.

position

The position at which the command was invoked.

newName

The new name of the symbol. If the given name is not valid, the provider must return a rejected promise.

token

A cancellation token.

Returns:

A workspace edit or a thenable that resolves to such. The lack of a result can be signaled by returning undefined or null.

@:optionaloptionalprepareRename:Null<(TextDocument, Position, CancellationToken) ‑> ProviderResult<EitherType<Range, {range:Range, placeholder:String}>>>

Optional function for resolving and validating a position before running rename. The result can be a range or a range and a placeholder text. The placeholder text should be the identifier of the symbol which is being renamed - when omitted the text in the returned range is used.

*Note: * This function should throw an error or return a rejected thenable when the provided location doesn't allow for a rename.

Parameters:

document

The document in which rename will be invoked.

position

The position at which rename will be invoked.

token

A cancellation token.

Returns:

The range or range and placeholder text of the identifier that is to be renamed. The lack of a result can signaled by returning undefined or null.