aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/references
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-07-03 17:45:18 +0100
committerAleksey Kladov <[email protected]>2020-07-03 17:47:26 +0100
commitf4a3bc30b82490ae97840b35b23b43ecadee4d8b (patch)
treefd6ded0dfaabc2adb9c7cd51e4aef8597f8524fa /crates/ra_ide/src/references
parent4c347a9f650f2cdce3890ff95c16a09d7c57e2dc (diff)
Fix module renaming
Diffstat (limited to 'crates/ra_ide/src/references')
-rw-r--r--crates/ra_ide/src/references/rename.rs59
1 files changed, 53 insertions, 6 deletions
diff --git a/crates/ra_ide/src/references/rename.rs b/crates/ra_ide/src/references/rename.rs
index bbf475f66..8735ec53c 100644
--- a/crates/ra_ide/src/references/rename.rs
+++ b/crates/ra_ide/src/references/rename.rs
@@ -116,8 +116,7 @@ fn rename_mod(
116 } else { 116 } else {
117 format!("{}.rs", new_name) 117 format!("{}.rs", new_name)
118 }; 118 };
119 let move_file = 119 let move_file = FileSystemEdit::MoveFile { src: file_id, anchor: file_id, dst };
120 FileSystemEdit::MoveFile { src: file_id, anchor: position.file_id, dst };
121 file_system_edits.push(move_file); 120 file_system_edits.push(move_file);
122 } 121 }
123 ModuleSource::Module(..) => {} 122 ModuleSource::Module(..) => {}
@@ -621,7 +620,7 @@ mod foo<|>;
621 3, 620 3,
622 ), 621 ),
623 anchor: FileId( 622 anchor: FileId(
624 2, 623 3,
625 ), 624 ),
626 dst: "foo2.rs", 625 dst: "foo2.rs",
627 }, 626 },
@@ -687,7 +686,7 @@ use crate::foo<|>::FooContent;
687 2, 686 2,
688 ), 687 ),
689 anchor: FileId( 688 anchor: FileId(
690 3, 689 2,
691 ), 690 ),
692 dst: "quux.rs", 691 dst: "quux.rs",
693 }, 692 },
@@ -734,7 +733,7 @@ mod fo<|>o;
734 2, 733 2,
735 ), 734 ),
736 anchor: FileId( 735 anchor: FileId(
737 1, 736 2,
738 ), 737 ),
739 dst: "../foo2/mod.rs", 738 dst: "../foo2/mod.rs",
740 }, 739 },
@@ -747,6 +746,54 @@ mod fo<|>o;
747 } 746 }
748 747
749 #[test] 748 #[test]
749 fn test_rename_unusually_nested_mod() {
750 check_expect(
751 "bar",
752 r#"
753//- /lib.rs
754mod outer { mod fo<|>o; }
755
756//- /outer/foo.rs
757// emtpy
758"#,
759 expect![[r#"
760 RangeInfo {
761 range: 16..19,
762 info: SourceChange {
763 source_file_edits: [
764 SourceFileEdit {
765 file_id: FileId(
766 1,
767 ),
768 edit: TextEdit {
769 indels: [
770 Indel {
771 insert: "bar",
772 delete: 16..19,
773 },
774 ],
775 },
776 },
777 ],
778 file_system_edits: [
779 MoveFile {
780 src: FileId(
781 2,
782 ),
783 anchor: FileId(
784 2,
785 ),
786 dst: "bar.rs",
787 },
788 ],
789 is_snippet: false,
790 },
791 }
792 "#]],
793 );
794 }
795
796 #[test]
750 fn test_module_rename_in_path() { 797 fn test_module_rename_in_path() {
751 check( 798 check(
752 "baz", 799 "baz",
@@ -818,7 +865,7 @@ pub mod foo<|>;
818 3, 865 3,
819 ), 866 ),
820 anchor: FileId( 867 anchor: FileId(
821 2, 868 3,
822 ), 869 ),
823 dst: "foo2.rs", 870 dst: "foo2.rs",
824 }, 871 },