diff options
Diffstat (limited to 'crates/ra_ide/src/completion/completion_item.rs')
-rw-r--r-- | crates/ra_ide/src/completion/completion_item.rs | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/crates/ra_ide/src/completion/completion_item.rs b/crates/ra_ide/src/completion/completion_item.rs index ef6848607..ef0eb43b2 100644 --- a/crates/ra_ide/src/completion/completion_item.rs +++ b/crates/ra_ide/src/completion/completion_item.rs | |||
@@ -13,7 +13,7 @@ pub struct CompletionItem { | |||
13 | /// Used only internally in tests, to check only specific kind of | 13 | /// Used only internally in tests, to check only specific kind of |
14 | /// completion (postfix, keyword, reference, etc). | 14 | /// completion (postfix, keyword, reference, etc). |
15 | #[allow(unused)] | 15 | #[allow(unused)] |
16 | completion_kind: CompletionKind, | 16 | pub(crate) completion_kind: CompletionKind, |
17 | /// Label in the completion pop up which identifies completion. | 17 | /// Label in the completion pop up which identifies completion. |
18 | label: String, | 18 | label: String, |
19 | /// Range of identifier that is being completed. | 19 | /// Range of identifier that is being completed. |
@@ -318,32 +318,3 @@ impl Into<Vec<CompletionItem>> for Completions { | |||
318 | self.buf | 318 | self.buf |
319 | } | 319 | } |
320 | } | 320 | } |
321 | |||
322 | #[cfg(test)] | ||
323 | pub(crate) fn do_completion(code: &str, kind: CompletionKind) -> Vec<CompletionItem> { | ||
324 | do_completion_with_options(code, kind, &crate::completion::CompletionOptions::default()) | ||
325 | } | ||
326 | |||
327 | #[cfg(test)] | ||
328 | pub(crate) fn do_completion_with_options( | ||
329 | code: &str, | ||
330 | kind: CompletionKind, | ||
331 | options: &crate::completion::CompletionOptions, | ||
332 | ) -> Vec<CompletionItem> { | ||
333 | use crate::{ | ||
334 | completion::completions, | ||
335 | mock_analysis::{analysis_and_position, single_file_with_position}, | ||
336 | }; | ||
337 | |||
338 | let (analysis, position) = if code.contains("//-") { | ||
339 | analysis_and_position(code) | ||
340 | } else { | ||
341 | single_file_with_position(code) | ||
342 | }; | ||
343 | let completions = completions(&analysis.db, position, &options).unwrap(); | ||
344 | let completion_items: Vec<CompletionItem> = completions.into(); | ||
345 | let mut kind_completions: Vec<CompletionItem> = | ||
346 | completion_items.into_iter().filter(|c| c.completion_kind == kind).collect(); | ||
347 | kind_completions.sort_by_key(|c| c.label.clone()); | ||
348 | kind_completions | ||
349 | } | ||