diff options
Diffstat (limited to 'crates/ra_ide/src/completion')
-rw-r--r-- | crates/ra_ide/src/completion/complete_snippet.rs | 106 |
1 files changed, 29 insertions, 77 deletions
diff --git a/crates/ra_ide/src/completion/complete_snippet.rs b/crates/ra_ide/src/completion/complete_snippet.rs index 52aaa70f0..c70023564 100644 --- a/crates/ra_ide/src/completion/complete_snippet.rs +++ b/crates/ra_ide/src/completion/complete_snippet.rs | |||
@@ -70,95 +70,47 @@ fn ${1:feature}() { | |||
70 | 70 | ||
71 | #[cfg(test)] | 71 | #[cfg(test)] |
72 | mod tests { | 72 | mod tests { |
73 | use crate::completion::{test_utils::do_completion, CompletionItem, CompletionKind}; | 73 | use expect::{expect, Expect}; |
74 | use insta::assert_debug_snapshot; | ||
75 | 74 | ||
76 | fn do_snippet_completion(code: &str) -> Vec<CompletionItem> { | 75 | use crate::completion::{test_utils::completion_list, CompletionKind}; |
77 | do_completion(code, CompletionKind::Snippet) | 76 | |
77 | fn check(ra_fixture: &str, expect: Expect) { | ||
78 | let actual = completion_list(ra_fixture, CompletionKind::Snippet); | ||
79 | expect.assert_eq(&actual) | ||
78 | } | 80 | } |
79 | 81 | ||
80 | #[test] | 82 | #[test] |
81 | fn completes_snippets_in_expressions() { | 83 | fn completes_snippets_in_expressions() { |
82 | assert_debug_snapshot!( | 84 | check( |
83 | do_snippet_completion(r"fn foo(x: i32) { <|> }"), | 85 | r#"fn foo(x: i32) { <|> }"#, |
84 | @r###" | 86 | expect![[r#" |
85 | [ | 87 | sn pd |
86 | CompletionItem { | 88 | sn ppd |
87 | label: "pd", | 89 | "#]], |
88 | source_range: 17..17, | 90 | ); |
89 | delete: 17..17, | ||
90 | insert: "eprintln!(\"$0 = {:?}\", $0);", | ||
91 | kind: Snippet, | ||
92 | }, | ||
93 | CompletionItem { | ||
94 | label: "ppd", | ||
95 | source_range: 17..17, | ||
96 | delete: 17..17, | ||
97 | insert: "eprintln!(\"$0 = {:#?}\", $0);", | ||
98 | kind: Snippet, | ||
99 | }, | ||
100 | ] | ||
101 | "### | ||
102 | ); | ||
103 | } | 91 | } |
104 | 92 | ||
105 | #[test] | 93 | #[test] |
106 | fn should_not_complete_snippets_in_path() { | 94 | fn should_not_complete_snippets_in_path() { |
107 | assert_debug_snapshot!( | 95 | check(r#"fn foo(x: i32) { ::foo<|> }"#, expect![[""]]); |
108 | do_snippet_completion(r"fn foo(x: i32) { ::foo<|> }"), | 96 | check(r#"fn foo(x: i32) { ::<|> }"#, expect![[""]]); |
109 | @"[]" | ||
110 | ); | ||
111 | assert_debug_snapshot!( | ||
112 | do_snippet_completion(r"fn foo(x: i32) { ::<|> }"), | ||
113 | @"[]" | ||
114 | ); | ||
115 | } | 97 | } |
116 | 98 | ||
117 | #[test] | 99 | #[test] |
118 | fn completes_snippets_in_items() { | 100 | fn completes_snippets_in_items() { |
119 | assert_debug_snapshot!( | 101 | check( |
120 | do_snippet_completion( | 102 | r#" |
121 | r" | 103 | #[cfg(test)] |
122 | #[cfg(test)] | 104 | mod tests { |
123 | mod tests { | 105 | <|> |
124 | <|> | 106 | } |
125 | } | 107 | "#, |
126 | " | 108 | expect![[r#" |
127 | ), | 109 | sn Test function |
128 | @r###" | 110 | sn Test module |
129 | [ | 111 | sn macro_rules |
130 | CompletionItem { | 112 | sn pub(crate) |
131 | label: "Test function", | 113 | "#]], |
132 | source_range: 29..29, | 114 | ) |
133 | delete: 29..29, | ||
134 | insert: "#[test]\nfn ${1:feature}() {\n $0\n}", | ||
135 | kind: Snippet, | ||
136 | lookup: "tfn", | ||
137 | }, | ||
138 | CompletionItem { | ||
139 | label: "Test module", | ||
140 | source_range: 29..29, | ||
141 | delete: 29..29, | ||
142 | insert: "#[cfg(test)]\nmod tests {\n use super::*;\n\n #[test]\n fn ${1:test_name}() {\n $0\n }\n}", | ||
143 | kind: Snippet, | ||
144 | lookup: "tmod", | ||
145 | }, | ||
146 | CompletionItem { | ||
147 | label: "macro_rules", | ||
148 | source_range: 29..29, | ||
149 | delete: 29..29, | ||
150 | insert: "macro_rules! $1 {\n\t($2) => {\n\t\t$0\n\t};\n}", | ||
151 | kind: Snippet, | ||
152 | }, | ||
153 | CompletionItem { | ||
154 | label: "pub(crate)", | ||
155 | source_range: 29..29, | ||
156 | delete: 29..29, | ||
157 | insert: "pub(crate) $0", | ||
158 | kind: Snippet, | ||
159 | }, | ||
160 | ] | ||
161 | "### | ||
162 | ); | ||
163 | } | 115 | } |
164 | } | 116 | } |