diff options
Diffstat (limited to 'crates/ra_ide/src/completion/complete_scope.rs')
-rw-r--r-- | crates/ra_ide/src/completion/complete_scope.rs | 92 |
1 files changed, 91 insertions, 1 deletions
diff --git a/crates/ra_ide/src/completion/complete_scope.rs b/crates/ra_ide/src/completion/complete_scope.rs index 5ffff5a1c..81d3cc1b6 100644 --- a/crates/ra_ide/src/completion/complete_scope.rs +++ b/crates/ra_ide/src/completion/complete_scope.rs | |||
@@ -811,7 +811,44 @@ mod tests { | |||
811 | } | 811 | } |
812 | " | 812 | " |
813 | ), | 813 | ), |
814 | @"[]" | 814 | @r###" |
815 | [ | ||
816 | CompletionItem { | ||
817 | label: "m!", | ||
818 | source_range: [145; 145), | ||
819 | delete: [145; 145), | ||
820 | insert: "m!($0)", | ||
821 | kind: Macro, | ||
822 | detail: "macro_rules! m", | ||
823 | }, | ||
824 | CompletionItem { | ||
825 | label: "quux(…)", | ||
826 | source_range: [145; 145), | ||
827 | delete: [145; 145), | ||
828 | insert: "quux(${1:x})$0", | ||
829 | kind: Function, | ||
830 | lookup: "quux", | ||
831 | detail: "fn quux(x: i32)", | ||
832 | trigger_call_info: true, | ||
833 | }, | ||
834 | CompletionItem { | ||
835 | label: "x", | ||
836 | source_range: [145; 145), | ||
837 | delete: [145; 145), | ||
838 | insert: "x", | ||
839 | kind: Binding, | ||
840 | detail: "i32", | ||
841 | }, | ||
842 | CompletionItem { | ||
843 | label: "y", | ||
844 | source_range: [145; 145), | ||
845 | delete: [145; 145), | ||
846 | insert: "y", | ||
847 | kind: Binding, | ||
848 | detail: "i32", | ||
849 | }, | ||
850 | ] | ||
851 | "### | ||
815 | ); | 852 | ); |
816 | } | 853 | } |
817 | 854 | ||
@@ -869,6 +906,59 @@ mod tests { | |||
869 | } | 906 | } |
870 | 907 | ||
871 | #[test] | 908 | #[test] |
909 | fn completes_in_simple_macro_without_closing_parens() { | ||
910 | assert_debug_snapshot!( | ||
911 | do_reference_completion( | ||
912 | r" | ||
913 | macro_rules! m { ($e:expr) => { $e } } | ||
914 | fn quux(x: i32) { | ||
915 | let y = 92; | ||
916 | m!(x<|> | ||
917 | } | ||
918 | " | ||
919 | ), | ||
920 | @r###" | ||
921 | [ | ||
922 | CompletionItem { | ||
923 | label: "m!", | ||
924 | source_range: [145; 146), | ||
925 | delete: [145; 146), | ||
926 | insert: "m!($0)", | ||
927 | kind: Macro, | ||
928 | detail: "macro_rules! m", | ||
929 | }, | ||
930 | CompletionItem { | ||
931 | label: "quux(…)", | ||
932 | source_range: [145; 146), | ||
933 | delete: [145; 146), | ||
934 | insert: "quux(${1:x})$0", | ||
935 | kind: Function, | ||
936 | lookup: "quux", | ||
937 | detail: "fn quux(x: i32)", | ||
938 | trigger_call_info: true, | ||
939 | }, | ||
940 | CompletionItem { | ||
941 | label: "x", | ||
942 | source_range: [145; 146), | ||
943 | delete: [145; 146), | ||
944 | insert: "x", | ||
945 | kind: Binding, | ||
946 | detail: "i32", | ||
947 | }, | ||
948 | CompletionItem { | ||
949 | label: "y", | ||
950 | source_range: [145; 146), | ||
951 | delete: [145; 146), | ||
952 | insert: "y", | ||
953 | kind: Binding, | ||
954 | detail: "i32", | ||
955 | }, | ||
956 | ] | ||
957 | "### | ||
958 | ); | ||
959 | } | ||
960 | |||
961 | #[test] | ||
872 | fn completes_unresolved_uses() { | 962 | fn completes_unresolved_uses() { |
873 | assert_debug_snapshot!( | 963 | assert_debug_snapshot!( |
874 | do_reference_completion( | 964 | do_reference_completion( |