Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/rename.rs')
| -rw-r--r-- | crates/ide/src/rename.rs | 74 |
1 files changed, 71 insertions, 3 deletions
diff --git a/crates/ide/src/rename.rs b/crates/ide/src/rename.rs index 1bb3cdb907..f5bff5fd91 100644 --- a/crates/ide/src/rename.rs +++ b/crates/ide/src/rename.rs @@ -968,15 +968,21 @@ mod fo$0o; }, }, file_system_edits: [ - MoveFile { - src: FileId( + MoveDir { + src: AnchoredPathBuf { + anchor: FileId( + 1, + ), + path: "foo", + }, + src_id: FileId( 1, ), dst: AnchoredPathBuf { anchor: FileId( 1, ), - path: "../foo2/mod.rs", + path: "foo2", }, }, ], @@ -1114,6 +1120,68 @@ pub mod foo$0; } #[test] + fn test_rename_mod_recursive() { + check_expect( + "foo2", + r#" +//- /lib.rs +mod foo$0; + +//- /foo.rs +mod bar; +mod corge; + +//- /foo/bar.rs +mod qux; + +//- /foo/bar/qux.rs +mod quux; + +//- /foo/bar/qux/quux/mod.rs +// empty + +//- /foo/corge.rs +// empty +"#, + expect![[r#" + SourceChange { + source_file_edits: { + FileId( + 0, + ): TextEdit { + indels: [ + Indel { + insert: "foo2", + delete: 4..7, + }, + ], + }, + }, + file_system_edits: [ + MoveDir { + src: AnchoredPathBuf { + anchor: FileId( + 1, + ), + path: "foo", + }, + src_id: FileId( + 1, + ), + dst: AnchoredPathBuf { + anchor: FileId( + 1, + ), + path: "foo2", + }, + }, + ], + is_snippet: false, + } + "#]], + ) + } + #[test] fn test_rename_mod_ref_by_super() { check( "baz", |