Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/completions/snippet.rs')
| -rw-r--r-- | crates/ide_completion/src/completions/snippet.rs | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/crates/ide_completion/src/completions/snippet.rs b/crates/ide_completion/src/completions/snippet.rs index 6a0e09dd64..c00de6ff50 100644 --- a/crates/ide_completion/src/completions/snippet.rs +++ b/crates/ide_completion/src/completions/snippet.rs @@ -43,7 +43,7 @@ pub(crate) fn complete_expr_snippet(acc: &mut Completions, ctx: &CompletionConte } pub(crate) fn complete_item_snippet(acc: &mut Completions, ctx: &CompletionContext) { - if !ctx.expects_item() + if !(ctx.expects_item() || ctx.has_block_expr_parent()) || ctx.previous_token_is(T![unsafe]) || ctx.path_qual().is_some() || ctx.has_impl_or_trait_prev_sibling() @@ -63,11 +63,13 @@ pub(crate) fn complete_item_snippet(acc: &mut Completions, ctx: &CompletionConte add_custom_completions(acc, ctx, cap, SnippetScope::Item); } - let mut item = snippet( - ctx, - cap, - "tmod (Test module)", - "\ + // Test-related snippets shouldn't be shown in blocks. + if !ctx.has_block_expr_parent() { + let mut item = snippet( + ctx, + cap, + "tmod (Test module)", + "\ #[cfg(test)] mod tests { use super::*; @@ -77,22 +79,23 @@ mod tests { $0 } }", - ); - item.lookup_by("tmod"); - item.add_to(acc); - - let mut item = snippet( - ctx, - cap, - "tfn (Test function)", - "\ + ); + item.lookup_by("tmod"); + item.add_to(acc); + + let mut item = snippet( + ctx, + cap, + "tfn (Test function)", + "\ #[test] fn ${1:feature}() { $0 }", - ); - item.lookup_by("tfn"); - item.add_to(acc); + ); + item.lookup_by("tfn"); + item.add_to(acc); + } let item = snippet( ctx, |