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.rs12
1 files changed, 7 insertions, 5 deletions
diff --git a/crates/ide_completion/src/completions/snippet.rs b/crates/ide_completion/src/completions/snippet.rs
index 9812f25b40..1dace20102 100644
--- a/crates/ide_completion/src/completions/snippet.rs
+++ b/crates/ide_completion/src/completions/snippet.rs
@@ -104,13 +104,15 @@ fn add_custom_completions(
let import_scope =
ImportScope::find_insert_use_container_with_macros(&ctx.token.parent()?, &ctx.sema)?;
ctx.config.snippets.iter().filter(|snip| snip.scope == scope).for_each(|snip| {
- // FIXME: Support multiple imports
- let import = match snip.imports(ctx, &import_scope) {
- Ok(mut imports) => imports.pop(),
+ let imports = match snip.imports(ctx, &import_scope) {
+ Ok(imports) => imports,
Err(_) => return,
};
let mut builder = snippet(ctx, cap, &snip.label, &snip.snippet);
- builder.add_import(import).detail(snip.description.as_deref().unwrap_or_default());
+ for import in imports.into_iter() {
+ builder.add_import(import);
+ }
+ builder.detail(snip.description.as_deref().unwrap_or_default());
builder.add_to(acc);
});
None
@@ -132,7 +134,7 @@ mod tests {
&["ControlFlow::Break(())".into()],
&[],
&["core::ops::ControlFlow".into()],
- None,
+ crate::SnippetScope::Expr,
)
.unwrap()],
..TEST_CONFIG