@@ -8,7 +8,10 @@ use hir::{AsAssocItem, InFile, Name, Semantics, sym};
88use ide_db:: {
99 FileId , FileRange , RootDatabase ,
1010 defs:: { Definition , NameClass , NameRefClass } ,
11- rename:: { IdentifierKind , RenameDefinition , bail, format_err, source_edit_from_references} ,
11+ rename:: {
12+ IdentifierKind , RenameConfig , RenameDefinition , bail, format_err,
13+ source_edit_from_references,
14+ } ,
1215 source_change:: SourceChangeBuilder ,
1316} ;
1417use itertools:: Itertools ;
@@ -98,6 +101,7 @@ pub(crate) fn prepare_rename(
98101// 
99102pub ( crate ) fn rename (
100103 db : & RootDatabase ,
104+ config : & RenameConfig ,
101105 position : FilePosition ,
102106 new_name : & str ,
103107) -> RenameResult < SourceChange > {
@@ -165,7 +169,7 @@ pub(crate) fn rename(
165169 return rename_to_self ( & sema, local) ;
166170 }
167171 }
168- def. rename ( & sema, new_name. as_str ( ) , rename_def)
172+ def. rename ( & sema, config , new_name. as_str ( ) , rename_def)
169173 } ) ) ,
170174 } ;
171175
@@ -178,13 +182,14 @@ pub(crate) fn rename(
178182/// Called by the client when it is about to rename a file.
179183pub ( crate ) fn will_rename_file (
180184 db : & RootDatabase ,
185+ config : & RenameConfig ,
181186 file_id : FileId ,
182187 new_name_stem : & str ,
183188) -> Option < SourceChange > {
184189 let sema = Semantics :: new ( db) ;
185190 let module = sema. file_to_module_def ( file_id) ?;
186191 let def = Definition :: Module ( module) ;
187- let mut change = def. rename ( & sema, new_name_stem, RenameDefinition :: Yes ) . ok ( ) ?;
192+ let mut change = def. rename ( & sema, config , new_name_stem, RenameDefinition :: Yes ) . ok ( ) ?;
188193 change. file_system_edits . clear ( ) ;
189194 Some ( change)
190195}
@@ -579,6 +584,7 @@ fn text_edit_from_self_param(self_param: &ast::SelfParam, new_name: String) -> O
579584#[ cfg( test) ]
580585mod tests {
581586 use expect_test:: { Expect , expect} ;
587+ use ide_db:: rename:: RenameConfig ;
582588 use ide_db:: source_change:: SourceChange ;
583589 use ide_db:: text_edit:: TextEdit ;
584590 use itertools:: Itertools ;
@@ -589,6 +595,8 @@ mod tests {
589595
590596 use super :: { RangeInfo , RenameError } ;
591597
598+ const TEST_CONFIG : RenameConfig = RenameConfig { show_conflicts : true } ;
599+
592600 #[ track_caller]
593601 fn check (
594602 new_name : & str ,
@@ -603,7 +611,7 @@ mod tests {
603611 panic ! ( "Prepare rename to '{new_name}' was failed: {err}" )
604612 }
605613 let rename_result = analysis
606- . rename ( position, new_name)
614+ . rename ( & TEST_CONFIG , position, new_name)
607615 . unwrap_or_else ( |err| panic ! ( "Rename to '{new_name}' was cancelled: {err}" ) ) ;
608616 match rename_result {
609617 Ok ( source_change) => {
@@ -635,7 +643,7 @@ mod tests {
635643 #[ track_caller]
636644 fn check_conflicts ( new_name : & str , #[ rust_analyzer:: rust_fixture] ra_fixture : & str ) {
637645 let ( analysis, position, conflicts) = fixture:: annotations ( ra_fixture) ;
638- let source_change = analysis. rename ( position, new_name) . unwrap ( ) . unwrap ( ) ;
646+ let source_change = analysis. rename ( & TEST_CONFIG , position, new_name) . unwrap ( ) . unwrap ( ) ;
639647 let expected_conflicts = conflicts
640648 . into_iter ( )
641649 . map ( |( file_range, _) | ( file_range. file_id , file_range. range ) )
@@ -662,8 +670,10 @@ mod tests {
662670 expect : Expect ,
663671 ) {
664672 let ( analysis, position) = fixture:: position ( ra_fixture) ;
665- let source_change =
666- analysis. rename ( position, new_name) . unwrap ( ) . expect ( "Expect returned a RenameError" ) ;
673+ let source_change = analysis
674+ . rename ( & TEST_CONFIG , position, new_name)
675+ . unwrap ( )
676+ . expect ( "Expect returned a RenameError" ) ;
667677 expect. assert_eq ( & filter_expect ( source_change) )
668678 }
669679
@@ -674,7 +684,7 @@ mod tests {
674684 ) {
675685 let ( analysis, position) = fixture:: position ( ra_fixture) ;
676686 let source_change = analysis
677- . will_rename_file ( position. file_id , new_name)
687+ . will_rename_file ( & TEST_CONFIG , position. file_id , new_name)
678688 . unwrap ( )
679689 . expect ( "Expect returned a RenameError" ) ;
680690 expect. assert_eq ( & filter_expect ( source_change) )
0 commit comments