Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/render/macro_.rs')
| -rw-r--r-- | crates/ide_completion/src/render/macro_.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/crates/ide_completion/src/render/macro_.rs b/crates/ide_completion/src/render/macro_.rs index b1ddfab0cb..1f76583adb 100644 --- a/crates/ide_completion/src/render/macro_.rs +++ b/crates/ide_completion/src/render/macro_.rs @@ -2,7 +2,7 @@ use hir::HasSource; use ide_db::SymbolKind; -use syntax::display::macro_label; +use syntax::{display::macro_label, SmolStr}; use crate::{ context::CallKind, @@ -23,7 +23,7 @@ pub(crate) fn render_macro( #[derive(Debug)] struct MacroRender<'a> { ctx: RenderContext<'a>, - name: String, + name: SmolStr, macro_: hir::MacroDef, docs: Option<hir::Documentation>, bra: &'static str, @@ -32,7 +32,7 @@ struct MacroRender<'a> { impl<'a> MacroRender<'a> { fn new(ctx: RenderContext<'a>, name: hir::Name, macro_: hir::MacroDef) -> MacroRender<'a> { - let name = name.to_string(); + let name = name.to_smol_str(); let docs = ctx.docs(macro_); let docs_str = docs.as_ref().map_or("", |s| s.as_str()); let (bra, ket) = guess_macro_braces(&name, docs_str); @@ -47,7 +47,7 @@ impl<'a> MacroRender<'a> { } else { Some(self.ctx.source_range()) }?; - let mut item = CompletionItem::new(SymbolKind::Macro, source_range, &self.label()); + let mut item = CompletionItem::new(SymbolKind::Macro, source_range, self.label()); item.set_documentation(self.docs.clone()) .set_deprecated(self.ctx.is_deprecated(self.macro_)) .set_detail(self.detail()); @@ -72,7 +72,7 @@ impl<'a> MacroRender<'a> { } _ => { cov_mark::hit!(dont_insert_macro_call_parens_unncessary); - item.insert_text(&self.name); + item.insert_text(&*self.name); } }; @@ -84,18 +84,18 @@ impl<'a> MacroRender<'a> { && !matches!(self.ctx.completion.path_call_kind(), Some(CallKind::Mac)) } - fn label(&self) -> String { + fn label(&self) -> SmolStr { if self.needs_bang() && self.ctx.snippet_cap().is_some() { - format!("{}!{}…{}", self.name, self.bra, self.ket) + SmolStr::from_iter([&*self.name, "!", self.bra, "…", self.ket]) } else if self.macro_.kind() == hir::MacroKind::Derive { - self.name.to_string() + self.name.clone() } else { self.banged_name() } } - fn banged_name(&self) -> String { - format!("{}!", self.name) + fn banged_name(&self) -> SmolStr { + SmolStr::from_iter([&*self.name, "!"]) } fn detail(&self) -> Option<String> { |