diff --git a/crates/completion/src/render.rs b/crates/completion/src/render.rs index d78877421ad5..dd9edc51466e 100644 --- a/crates/completion/src/render.rs +++ b/crates/completion/src/render.rs @@ -23,11 +23,13 @@ pub(crate) use crate::render::{ macro_::MacroRender, type_alias::TypeAliasRender, }; +/// Generic renderer for completion items. #[derive(Debug)] pub(crate) struct Render<'a> { ctx: RenderContext<'a>, } +/// Interface for data and methods required for items rendering. #[derive(Debug)] pub(crate) struct RenderContext<'a> { completion: &'a CompletionContext<'a>, diff --git a/crates/completion/src/render/const_.rs b/crates/completion/src/render/const_.rs index 829eb574d0f9..3a1954211097 100644 --- a/crates/completion/src/render/const_.rs +++ b/crates/completion/src/render/const_.rs @@ -1,3 +1,5 @@ +//! Renderer for `const` fields. + use hir::HasSource; use syntax::{ ast::{Const, NameOwner}, diff --git a/crates/completion/src/render/enum_variant.rs b/crates/completion/src/render/enum_variant.rs index bc96cc303627..f8b151318e0e 100644 --- a/crates/completion/src/render/enum_variant.rs +++ b/crates/completion/src/render/enum_variant.rs @@ -1,3 +1,5 @@ +//! Renderer for `enum` variants. + use hir::{HasAttrs, HirDisplay, ModPath, StructKind}; use itertools::Itertools; use test_utils::mark; diff --git a/crates/completion/src/render/function.rs b/crates/completion/src/render/function.rs index cf3852bf6654..9d9bbe30920a 100644 --- a/crates/completion/src/render/function.rs +++ b/crates/completion/src/render/function.rs @@ -1,3 +1,5 @@ +//! Renderer for function calls. + use hir::{HasSource, Type}; use syntax::{ast::Fn, display::function_declaration}; diff --git a/crates/completion/src/render/macro_.rs b/crates/completion/src/render/macro_.rs index 6df121c66df0..06618555929b 100644 --- a/crates/completion/src/render/macro_.rs +++ b/crates/completion/src/render/macro_.rs @@ -1,3 +1,5 @@ +//! Renderer for macro invocations. + use hir::{Documentation, HasSource}; use syntax::display::macro_label; use test_utils::mark; @@ -66,7 +68,11 @@ impl<'a> MacroRender<'a> { } fn label(&self) -> String { - format!("{}!{}…{}", self.name, self.bra, self.ket) + if self.needs_bang() && self.ctx.snippet_cap().is_some() { + format!("{}!{}…{}", self.name, self.bra, self.ket) + } else { + self.banged_name() + } } fn snippet(&self) -> String { diff --git a/crates/completion/src/render/type_alias.rs b/crates/completion/src/render/type_alias.rs index 378aa8c6752e..50a6d06c236a 100644 --- a/crates/completion/src/render/type_alias.rs +++ b/crates/completion/src/render/type_alias.rs @@ -1,3 +1,5 @@ +//! Renderer for type aliases. + use hir::HasSource; use syntax::{ ast::{NameOwner, TypeAlias},