Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/tests.rs')
| -rw-r--r-- | crates/ide-completion/src/tests.rs | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/crates/ide-completion/src/tests.rs b/crates/ide-completion/src/tests.rs index 742368ce81..7625018058 100644 --- a/crates/ide-completion/src/tests.rs +++ b/crates/ide-completion/src/tests.rs @@ -79,20 +79,28 @@ pub(crate) const TEST_CONFIG: CompletionConfig = CompletionConfig { }; pub(crate) fn completion_list(ra_fixture: &str) -> String { - completion_list_with_config(TEST_CONFIG, ra_fixture, true) + completion_list_with_config(TEST_CONFIG, ra_fixture, true, None) } pub(crate) fn completion_list_no_kw(ra_fixture: &str) -> String { - completion_list_with_config(TEST_CONFIG, ra_fixture, false) + completion_list_with_config(TEST_CONFIG, ra_fixture, false, None) +} + +pub(crate) fn completion_list_with_trigger_character( + ra_fixture: &str, + trigger_character: Option<&str>, +) -> String { + completion_list_with_config(TEST_CONFIG, ra_fixture, true, trigger_character) } fn completion_list_with_config( config: CompletionConfig, ra_fixture: &str, include_keywords: bool, + trigger_character: Option<&str>, ) -> String { // filter out all but one builtintype completion for smaller test outputs - let items = get_all_items(config, ra_fixture); + let items = get_all_items(config, ra_fixture, trigger_character); let mut bt_seen = false; let items = items .into_iter() @@ -126,7 +134,7 @@ pub(crate) fn do_completion_with_config( code: &str, kind: CompletionItemKind, ) -> Vec<CompletionItem> { - get_all_items(config, code) + get_all_items(config, code, None) .into_iter() .filter(|c| c.kind() == kind) .sorted_by(|l, r| l.label().cmp(r.label())) @@ -173,7 +181,7 @@ pub(crate) fn check_edit_with_config( let ra_fixture_after = trim_indent(ra_fixture_after); let (db, position) = position(ra_fixture_before); let completions: Vec<CompletionItem> = - crate::completions(&db, &config, position).unwrap().into(); + crate::completions(&db, &config, position, None).unwrap().into(); let (completion,) = completions .iter() .filter(|it| it.lookup() == what) @@ -214,9 +222,14 @@ pub(crate) fn check_pattern_is_applicable(code: &str, check: impl FnOnce(SyntaxE assert!(check(NodeOrToken::Token(token))); } -pub(crate) fn get_all_items(config: CompletionConfig, code: &str) -> Vec<CompletionItem> { +pub(crate) fn get_all_items( + config: CompletionConfig, + code: &str, + trigger_character: Option<&str>, +) -> Vec<CompletionItem> { let (db, position) = position(code); - let res = crate::completions(&db, &config, position).map_or_else(Vec::default, Into::into); + let res = crate::completions(&db, &config, position, trigger_character) + .map_or_else(Vec::default, Into::into); // validate res.iter().for_each(|it| { let sr = it.source_range(); |