@@ -286,48 +286,28 @@ function rename(msg: p.RequestMessage) {
286
286
// https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_rename
287
287
let params = msg . params as p . RenameParams ;
288
288
let filePath = fileURLToPath ( params . textDocument . uri ) ;
289
- let locations : p . Location [ ] | null = utils . getReferencesForPosition (
289
+ let documentChanges :
290
+ | ( p . RenameFile | p . TextDocumentEdit ) [ ]
291
+ | null = utils . runAnalysisAfterSanityCheck ( filePath , [
292
+ "rename" ,
290
293
filePath ,
291
- params . position
292
- ) ;
293
- let result : WorkspaceEdit | null ;
294
- if ( locations === null ) {
295
- result = null ;
296
- } else {
297
- let textEdits : { [ uri : string ] : TextEdit [ ] } = { } ;
298
- let documentChanges : ( p . RenameFile | p . TextDocumentEdit ) [ ] = [ ] ;
299
-
300
- locations . forEach ( ( { uri, range } ) => {
301
- if ( utils . isRangeTopOfFile ( range ) ) {
302
- let filePath = fileURLToPath ( uri ) ;
303
- let newFilePath = `${ path . dirname ( filePath ) } /${ params . newName } ${ path . extname ( filePath ) } ` ;
304
- let newUri = pathToFileURL ( newFilePath ) . href ;
305
- let rename : p . RenameFile = { kind : "rename" , oldUri : uri , newUri } ;
306
- documentChanges . push ( rename ) ;
307
- } else {
308
- let textEdit : TextEdit = { range, newText : params . newName } ;
309
- if ( uri in textEdits ) {
310
- textEdits [ uri ] . push ( textEdit ) ;
311
- } else {
312
- textEdits [ uri ] = [ textEdit ] ;
313
- }
314
- }
315
- } ) ;
316
-
317
- Object . entries ( textEdits )
318
- . forEach ( ( [ uri , edits ] ) => {
319
- let textDocumentEdit = { textDocument : { uri, version : null } , edits } ;
320
- documentChanges . push ( textDocumentEdit ) ;
321
- } ) ;
294
+ params . position . line ,
295
+ params . position . character ,
296
+ params . newName
297
+ ] ) ;
322
298
299
+ let result : WorkspaceEdit | null = null ;
323
300
301
+ if ( documentChanges !== null ) {
324
302
result = { documentChanges } ;
325
303
}
304
+
326
305
let response : m . ResponseMessage = {
327
306
jsonrpc : c . jsonrpcVersion ,
328
307
id : msg . id ,
329
- result,
308
+ result
330
309
} ;
310
+
331
311
return response ;
332
312
}
333
313
0 commit comments