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_.rs20
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> {