diff options
Diffstat (limited to 'crates/ide_completion/src/completions/fn_param.rs')
-rw-r--r-- | crates/ide_completion/src/completions/fn_param.rs | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/crates/ide_completion/src/completions/fn_param.rs b/crates/ide_completion/src/completions/fn_param.rs index 38e33a93e..1bcc8727f 100644 --- a/crates/ide_completion/src/completions/fn_param.rs +++ b/crates/ide_completion/src/completions/fn_param.rs | |||
@@ -25,9 +25,12 @@ pub(crate) fn complete_fn_param(acc: &mut Completions, ctx: &CompletionContext) | |||
25 | return; | 25 | return; |
26 | } | 26 | } |
27 | func.param_list().into_iter().flat_map(|it| it.params()).for_each(|param| { | 27 | func.param_list().into_iter().flat_map(|it| it.params()).for_each(|param| { |
28 | let text = param.syntax().text().to_string(); | 28 | if let Some(pat) = param.pat() { |
29 | params.entry(text).or_insert(param); | 29 | let text = param.syntax().text().to_string(); |
30 | }) | 30 | let lookup = pat.syntax().text().to_string(); |
31 | params.entry(text).or_insert(lookup); | ||
32 | } | ||
33 | }); | ||
31 | }; | 34 | }; |
32 | 35 | ||
33 | for node in ctx.token.parent().ancestors() { | 36 | for node in ctx.token.parent().ancestors() { |
@@ -50,18 +53,12 @@ pub(crate) fn complete_fn_param(acc: &mut Completions, ctx: &CompletionContext) | |||
50 | }; | 53 | }; |
51 | } | 54 | } |
52 | 55 | ||
53 | params | 56 | params.into_iter().for_each(|(label, lookup)| { |
54 | .into_iter() | 57 | CompletionItem::new(CompletionKind::Magic, ctx.source_range(), label) |
55 | .filter_map(|(label, param)| { | 58 | .kind(CompletionItemKind::Binding) |
56 | let lookup = param.pat()?.syntax().text().to_string(); | 59 | .lookup_by(lookup) |
57 | Some((label, lookup)) | 60 | .add_to(acc) |
58 | }) | 61 | }); |
59 | .for_each(|(label, lookup)| { | ||
60 | CompletionItem::new(CompletionKind::Magic, ctx.source_range(), label) | ||
61 | .kind(CompletionItemKind::Binding) | ||
62 | .lookup_by(lookup) | ||
63 | .add_to(acc) | ||
64 | }); | ||
65 | } | 62 | } |
66 | 63 | ||
67 | #[cfg(test)] | 64 | #[cfg(test)] |