diff options
Diffstat (limited to 'crates/ra_ide_api/src/completion/complete_macro_in_item_position.rs')
-rw-r--r-- | crates/ra_ide_api/src/completion/complete_macro_in_item_position.rs | 62 |
1 files changed, 60 insertions, 2 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_macro_in_item_position.rs b/crates/ra_ide_api/src/completion/complete_macro_in_item_position.rs index d808b2357..09f743c66 100644 --- a/crates/ra_ide_api/src/completion/complete_macro_in_item_position.rs +++ b/crates/ra_ide_api/src/completion/complete_macro_in_item_position.rs | |||
@@ -56,6 +56,16 @@ mod tests { | |||
56 | do_reference_completion( | 56 | do_reference_completion( |
57 | " | 57 | " |
58 | //- /main.rs | 58 | //- /main.rs |
59 | /// Creates a [`Vec`] containing the arguments. | ||
60 | /// | ||
61 | /// - Create a [`Vec`] containing a given list of elements: | ||
62 | /// | ||
63 | /// ``` | ||
64 | /// let v = vec![1, 2, 3]; | ||
65 | /// assert_eq!(v[0], 1); | ||
66 | /// assert_eq!(v[1], 2); | ||
67 | /// assert_eq!(v[2], 3); | ||
68 | /// ``` | ||
59 | macro_rules! vec { | 69 | macro_rules! vec { |
60 | () => {} | 70 | () => {} |
61 | } | 71 | } |
@@ -68,13 +78,61 @@ mod tests { | |||
68 | @r##"[ | 78 | @r##"[ |
69 | CompletionItem { | 79 | CompletionItem { |
70 | label: "vec!", | 80 | label: "vec!", |
71 | source_range: [46; 46), | 81 | source_range: [280; 280), |
72 | delete: [46; 46), | 82 | delete: [280; 280), |
73 | insert: "vec![$0]", | 83 | insert: "vec![$0]", |
74 | kind: Macro, | 84 | kind: Macro, |
75 | detail: "macro_rules! vec", | 85 | detail: "macro_rules! vec", |
86 | documentation: Documentation( | ||
87 | "Creates a [`Vec`] containing the arguments.\n\n- Create a [`Vec`] containing a given list of elements:\n\n```\nlet v = vec![1, 2, 3];\nassert_eq!(v[0], 1);\nassert_eq!(v[1], 2);\nassert_eq!(v[2], 3);\n```", | ||
88 | ), | ||
76 | }, | 89 | }, |
77 | ]"## | 90 | ]"## |
78 | ); | 91 | ); |
79 | } | 92 | } |
93 | |||
94 | #[test] | ||
95 | fn completes_macros_braces_guessing() { | ||
96 | assert_debug_snapshot!( | ||
97 | do_reference_completion( | ||
98 | " | ||
99 | //- /main.rs | ||
100 | /// Foo | ||
101 | /// | ||
102 | /// Not call `fooo!()` `fooo!()`, or `_foo![]` `_foo![]`. | ||
103 | /// Call as `let _=foo! { hello world };` | ||
104 | macro_rules! foo { | ||
105 | () => {} | ||
106 | } | ||
107 | |||
108 | fn main() { | ||
109 | <|> | ||
110 | } | ||
111 | " | ||
112 | ), | ||
113 | @r###"[ | ||
114 | CompletionItem { | ||
115 | label: "foo!", | ||
116 | source_range: [163; 163), | ||
117 | delete: [163; 163), | ||
118 | insert: "foo! {$0}", | ||
119 | kind: Macro, | ||
120 | detail: "macro_rules! foo", | ||
121 | documentation: Documentation( | ||
122 | "Foo\n\nNot call `fooo!()` `fooo!()`, or `_foo![]` `_foo![]`.\nCall as `let _=foo! { hello world };`", | ||
123 | ), | ||
124 | }, | ||
125 | CompletionItem { | ||
126 | label: "main()", | ||
127 | source_range: [163; 163), | ||
128 | delete: [163; 163), | ||
129 | insert: "main()$0", | ||
130 | kind: Function, | ||
131 | lookup: "main", | ||
132 | detail: "fn main()", | ||
133 | }, | ||
134 | ] | ||
135 | "### | ||
136 | ); | ||
137 | } | ||
80 | } | 138 | } |