Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/render.rs')
| -rw-r--r-- | crates/ide-completion/src/render.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/crates/ide-completion/src/render.rs b/crates/ide-completion/src/render.rs index c1f51aabb9..514a684726 100644 --- a/crates/ide-completion/src/render.rs +++ b/crates/ide-completion/src/render.rs @@ -14,6 +14,7 @@ use hir::{AsAssocItem, HasAttrs, HirDisplay, ScopeDef}; use ide_db::{ helpers::item_name, imports::import_assets::LocatedImport, RootDatabase, SnippetCap, SymbolKind, }; +use itertools::Itertools; use syntax::{AstNode, SmolStr, SyntaxKind, TextRange}; use crate::{ @@ -32,11 +33,17 @@ pub(crate) struct RenderContext<'a> { completion: &'a CompletionContext<'a>, is_private_editable: bool, import_to_add: Option<LocatedImport>, + doc_aliases: Vec<SmolStr>, } impl<'a> RenderContext<'a> { pub(crate) fn new(completion: &'a CompletionContext<'a>) -> RenderContext<'a> { - RenderContext { completion, is_private_editable: false, import_to_add: None } + RenderContext { + completion, + is_private_editable: false, + import_to_add: None, + doc_aliases: vec![], + } } pub(crate) fn private_editable(mut self, private_editable: bool) -> Self { @@ -49,6 +56,11 @@ impl<'a> RenderContext<'a> { self } + pub(crate) fn doc_aliases(mut self, doc_aliases: Vec<SmolStr>) -> Self { + self.doc_aliases = doc_aliases; + self + } + fn snippet_cap(&self) -> Option<SnippetCap> { self.completion.config.snippet_cap } @@ -348,6 +360,12 @@ fn render_resolution_simple_( if let Some(import_to_add) = ctx.import_to_add { item.add_import(import_to_add); } + + let doc_aliases = ctx.doc_aliases; + if !doc_aliases.is_empty() { + let doc_aliases = doc_aliases.into_iter().join(", ").into(); + item.doc_aliases(doc_aliases); + } item } |