@@ -13,7 +13,7 @@ use ide_db::{
1313} ;
1414use itertools:: Itertools ;
1515use stdx:: { always, never} ;
16- use syntax:: { ast, AstNode , SyntaxNode } ;
16+ use syntax:: { ast, AstNode , SyntaxNode , TextRange , TextSize } ;
1717
1818use text_edit:: TextEdit ;
1919
@@ -48,7 +48,13 @@ pub(crate) fn prepare_rename(
4848 frange. range. contains_inclusive( position. offset)
4949 && frange. file_id == position. file_id
5050 ) ;
51- Ok ( frange. range )
51+
52+ Ok ( match name_like {
53+ ast:: NameLike :: Lifetime ( _) => {
54+ TextRange :: new ( frange. range . start ( ) + TextSize :: from ( 1 ) , frange. range . end ( ) )
55+ }
56+ _ => frange. range ,
57+ } )
5258 } )
5359 . reduce ( |acc, cur| match ( acc, cur) {
5460 // ensure all ranges are the same
@@ -407,7 +413,7 @@ mod tests {
407413 #[ test]
408414 fn test_prepare_rename_namelikes ( ) {
409415 check_prepare ( r"fn name$0<'lifetime>() {}" , expect ! [ [ r#"3..7: name"# ] ] ) ;
410- check_prepare ( r"fn name<'lifetime$0>() {}" , expect ! [ [ r#"8 ..17: ' lifetime"# ] ] ) ;
416+ check_prepare ( r"fn name<'lifetime$0>() {}" , expect ! [ [ r#"9 ..17: lifetime"# ] ] ) ;
411417 check_prepare ( r"fn name<'lifetime>() { name$0(); }" , expect ! [ [ r#"23..27: name"# ] ] ) ;
412418 }
413419
0 commit comments