diff --git a/src/server/session.ts b/src/server/session.ts index 37a1476904c..3d17fff507b 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -134,6 +134,7 @@ namespace ts.server { export const ReferencesFull = "references-full"; export const Reload = "reload"; export const Rename = "rename"; + export const RenameInfoFull = "rename-full"; export const Saveto = "saveto"; export const SignatureHelp = "signatureHelp"; export const SignatureHelpFull = "signatureHelp-full"; @@ -559,6 +560,13 @@ namespace ts.server { return projectInfo; } + private getRenameInfo(args: protocol.FileLocationRequestArgs) { + const { file, project } = this.getFileAndProject(args.file); + const scriptInfo = project.getScriptInfo(file); + const position = this.getPosition(args, scriptInfo) + return project.languageService.getRenameInfo(file, position); + } + private getRenameLocations(line: number, offset: number, fileName: string, findInComments: boolean, findInStrings: boolean): protocol.RenameResponseBody { const file = ts.normalizePath(fileName); const info = this.projectService.getScriptInfo(file); @@ -1347,6 +1355,9 @@ namespace ts.server { const renameArgs = request.arguments; return this.requiredResponse(this.getRenameLocations(renameArgs.line, renameArgs.offset, renameArgs.file, renameArgs.findInComments, renameArgs.findInStrings)); }, + [CommandNames.RenameInfoFull]: (request: protocol.FileLocationRequest) => { + return this.requiredResponse(this.getRenameInfo(request.arguments)); + }, [CommandNames.Open]: (request: protocol.Request) => { const openArgs = request.arguments; let scriptKind: ScriptKind;