diff options
Diffstat (limited to 'crates/ra_ide/src/completion/test_utils.rs')
-rw-r--r-- | crates/ra_ide/src/completion/test_utils.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/crates/ra_ide/src/completion/test_utils.rs b/crates/ra_ide/src/completion/test_utils.rs index e9e89104e..277d2904d 100644 --- a/crates/ra_ide/src/completion/test_utils.rs +++ b/crates/ra_ide/src/completion/test_utils.rs | |||
@@ -3,7 +3,7 @@ | |||
3 | use crate::{ | 3 | use crate::{ |
4 | completion::{completion_item::CompletionKind, CompletionConfig}, | 4 | completion::{completion_item::CompletionKind, CompletionConfig}, |
5 | mock_analysis::{analysis_and_position, single_file_with_position}, | 5 | mock_analysis::{analysis_and_position, single_file_with_position}, |
6 | CompletionItem, | 6 | CompletionItem, FilePosition, |
7 | }; | 7 | }; |
8 | use hir::Semantics; | 8 | use hir::Semantics; |
9 | use ra_syntax::{AstNode, NodeOrToken, SyntaxElement, SyntaxToken}; | 9 | use ra_syntax::{AstNode, NodeOrToken, SyntaxElement, SyntaxToken}; |
@@ -12,11 +12,26 @@ pub(crate) fn do_completion(code: &str, kind: CompletionKind) -> Vec<CompletionI | |||
12 | do_completion_with_options(code, kind, &CompletionConfig::default()) | 12 | do_completion_with_options(code, kind, &CompletionConfig::default()) |
13 | } | 13 | } |
14 | 14 | ||
15 | pub(crate) fn do_completion_with_position( | ||
16 | code: &str, | ||
17 | kind: CompletionKind, | ||
18 | ) -> (FilePosition, Vec<CompletionItem>) { | ||
19 | do_completion_with_options_and_position(code, kind, &CompletionConfig::default()) | ||
20 | } | ||
21 | |||
15 | pub(crate) fn do_completion_with_options( | 22 | pub(crate) fn do_completion_with_options( |
16 | code: &str, | 23 | code: &str, |
17 | kind: CompletionKind, | 24 | kind: CompletionKind, |
18 | options: &CompletionConfig, | 25 | options: &CompletionConfig, |
19 | ) -> Vec<CompletionItem> { | 26 | ) -> Vec<CompletionItem> { |
27 | do_completion_with_options_and_position(code, kind, options).1 | ||
28 | } | ||
29 | |||
30 | pub(crate) fn do_completion_with_options_and_position( | ||
31 | code: &str, | ||
32 | kind: CompletionKind, | ||
33 | options: &CompletionConfig, | ||
34 | ) -> (FilePosition, Vec<CompletionItem>) { | ||
20 | let (analysis, position) = if code.contains("//-") { | 35 | let (analysis, position) = if code.contains("//-") { |
21 | analysis_and_position(code) | 36 | analysis_and_position(code) |
22 | } else { | 37 | } else { |
@@ -27,7 +42,7 @@ pub(crate) fn do_completion_with_options( | |||
27 | let mut kind_completions: Vec<CompletionItem> = | 42 | let mut kind_completions: Vec<CompletionItem> = |
28 | completion_items.into_iter().filter(|c| c.completion_kind == kind).collect(); | 43 | completion_items.into_iter().filter(|c| c.completion_kind == kind).collect(); |
29 | kind_completions.sort_by_key(|c| c.label().to_owned()); | 44 | kind_completions.sort_by_key(|c| c.label().to_owned()); |
30 | kind_completions | 45 | (position, kind_completions) |
31 | } | 46 | } |
32 | 47 | ||
33 | pub(crate) fn check_pattern_is_applicable(code: &str, check: fn(SyntaxElement) -> bool) { | 48 | pub(crate) fn check_pattern_is_applicable(code: &str, check: fn(SyntaxElement) -> bool) { |