Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/completions/pattern.rs')
| -rw-r--r-- | crates/ide-completion/src/completions/pattern.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/crates/ide-completion/src/completions/pattern.rs b/crates/ide-completion/src/completions/pattern.rs index 40b2c831a5..60cfb7e5a8 100644 --- a/crates/ide-completion/src/completions/pattern.rs +++ b/crates/ide-completion/src/completions/pattern.rs @@ -14,25 +14,27 @@ pub(crate) fn complete_pattern( ctx: &CompletionContext<'_>, pattern_ctx: &PatternContext, ) { + let mut add_keyword = |kw, snippet| acc.add_keyword_snippet(ctx, kw, snippet); + match pattern_ctx.parent_pat.as_ref() { Some(Pat::RangePat(_) | Pat::BoxPat(_)) => (), Some(Pat::RefPat(r)) => { if r.mut_token().is_none() { - acc.add_keyword(ctx, "mut"); + add_keyword("mut", "mut $0"); } } _ => { let tok = ctx.token.text_range().start(); match (pattern_ctx.ref_token.as_ref(), pattern_ctx.mut_token.as_ref()) { (None, None) => { - acc.add_keyword(ctx, "ref"); - acc.add_keyword(ctx, "mut"); + add_keyword("ref", "ref $0"); + add_keyword("mut", "mut $0"); } (None, Some(m)) if tok < m.text_range().start() => { - acc.add_keyword(ctx, "ref"); + add_keyword("ref", "ref $0"); } (Some(r), None) if tok > r.text_range().end() => { - acc.add_keyword(ctx, "mut"); + add_keyword("mut", "mut $0"); } _ => (), } |