aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/completion/test_utils.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide/src/completion/test_utils.rs')
-rw-r--r--crates/ra_ide/src/completion/test_utils.rs19
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 @@
3use crate::{ 3use 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};
8use hir::Semantics; 8use hir::Semantics;
9use ra_syntax::{AstNode, NodeOrToken, SyntaxElement, SyntaxToken}; 9use 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
15pub(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
15pub(crate) fn do_completion_with_options( 22pub(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
30pub(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
33pub(crate) fn check_pattern_is_applicable(code: &str, check: fn(SyntaxElement) -> bool) { 48pub(crate) fn check_pattern_is_applicable(code: &str, check: fn(SyntaxElement) -> bool) {