mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-11-03 05:13:35 +00:00
Cleanup Name string rendering
This commit is contained in:
parent
c78cc2baa9
commit
76585539f5
38 changed files with 145 additions and 249 deletions
|
|
@ -14,10 +14,8 @@ pub(crate) fn render_const(ctx: RenderContext<'_>, const_: hir::Const) -> Option
|
|||
fn render(ctx: RenderContext<'_>, const_: hir::Const) -> Option<CompletionItem> {
|
||||
let db = ctx.db();
|
||||
let name = const_.name(db)?;
|
||||
let (name, escaped_name) = (
|
||||
name.unescaped().display(db).to_smolstr(),
|
||||
name.display(db, ctx.completion.edition).to_smolstr(),
|
||||
);
|
||||
let (name, escaped_name) =
|
||||
(name.as_str().to_smolstr(), name.display(db, ctx.completion.edition).to_smolstr());
|
||||
let detail = const_.display(db, ctx.completion.edition).to_string();
|
||||
|
||||
let mut item =
|
||||
|
|
|
|||
|
|
@ -59,13 +59,10 @@ fn render(
|
|||
|
||||
let (call, escaped_call) = match &func_kind {
|
||||
FuncKind::Method(_, Some(receiver)) => (
|
||||
format_smolstr!("{}.{}", receiver, name.unescaped().display(ctx.db())),
|
||||
format_smolstr!("{}.{}", receiver, name.as_str()),
|
||||
format_smolstr!("{}.{}", receiver, name.display(ctx.db(), completion.edition)),
|
||||
),
|
||||
_ => (
|
||||
name.unescaped().display(db).to_smolstr(),
|
||||
name.display(db, completion.edition).to_smolstr(),
|
||||
),
|
||||
_ => (name.as_str().to_smolstr(), name.display(db, completion.edition).to_smolstr()),
|
||||
};
|
||||
let has_self_param = func.self_param(db).is_some();
|
||||
let mut item = CompletionItem::new(
|
||||
|
|
@ -151,7 +148,7 @@ fn render(
|
|||
item.set_documentation(ctx.docs(func))
|
||||
.set_deprecated(ctx.is_deprecated(func) || ctx.is_deprecated_assoc_item(func))
|
||||
.detail(detail)
|
||||
.lookup_by(name.unescaped().display(db).to_smolstr());
|
||||
.lookup_by(name.as_str().to_smolstr());
|
||||
|
||||
if let Some((cap, (self_param, params))) = complete_call_parens {
|
||||
add_call_parens(
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ fn render(
|
|||
None => (name.clone().into(), name.into(), false),
|
||||
};
|
||||
let (qualified_name, escaped_qualified_name) = (
|
||||
qualified_name.unescaped().display(ctx.db()).to_string(),
|
||||
qualified_name.display_verbatim(ctx.db()).to_string(),
|
||||
qualified_name.display(ctx.db(), completion.edition).to_string(),
|
||||
);
|
||||
let snippet_cap = ctx.snippet_cap();
|
||||
|
|
|
|||
|
|
@ -46,21 +46,19 @@ fn render(
|
|||
ctx.source_range()
|
||||
};
|
||||
|
||||
let (name, escaped_name) = (
|
||||
name.unescaped().display(ctx.db()).to_smolstr(),
|
||||
name.display(ctx.db(), completion.edition).to_smolstr(),
|
||||
);
|
||||
let (name, escaped_name) =
|
||||
(name.as_str(), name.display(ctx.db(), completion.edition).to_smolstr());
|
||||
let docs = ctx.docs(macro_);
|
||||
let docs_str = docs.as_ref().map(Documentation::as_str).unwrap_or_default();
|
||||
let is_fn_like = macro_.is_fn_like(completion.db);
|
||||
let (bra, ket) = if is_fn_like { guess_macro_braces(&name, docs_str) } else { ("", "") };
|
||||
let (bra, ket) = if is_fn_like { guess_macro_braces(name, docs_str) } else { ("", "") };
|
||||
|
||||
let needs_bang = is_fn_like && !is_use_path && !has_macro_bang;
|
||||
|
||||
let mut item = CompletionItem::new(
|
||||
SymbolKind::from(macro_.kind(completion.db)),
|
||||
source_range,
|
||||
label(&ctx, needs_bang, bra, ket, &name),
|
||||
label(&ctx, needs_bang, bra, ket, &name.to_smolstr()),
|
||||
completion.edition,
|
||||
);
|
||||
item.set_deprecated(ctx.is_deprecated(macro_))
|
||||
|
|
@ -71,11 +69,11 @@ fn render(
|
|||
match ctx.snippet_cap() {
|
||||
Some(cap) if needs_bang && !has_call_parens => {
|
||||
let snippet = format!("{escaped_name}!{bra}$0{ket}");
|
||||
let lookup = banged_name(&name);
|
||||
let lookup = banged_name(name);
|
||||
item.insert_snippet(cap, snippet).lookup_by(lookup);
|
||||
}
|
||||
_ if needs_bang => {
|
||||
item.insert_text(banged_name(&escaped_name)).lookup_by(banged_name(&name));
|
||||
item.insert_text(banged_name(&escaped_name)).lookup_by(banged_name(name));
|
||||
}
|
||||
_ => {
|
||||
cov_mark::hit!(dont_insert_macro_call_parens_unnecessary);
|
||||
|
|
|
|||
|
|
@ -31,13 +31,11 @@ pub(crate) fn render_struct_pat(
|
|||
}
|
||||
|
||||
let name = local_name.unwrap_or_else(|| strukt.name(ctx.db()));
|
||||
let (name, escaped_name) = (
|
||||
name.unescaped().display(ctx.db()).to_smolstr(),
|
||||
name.display(ctx.db(), ctx.completion.edition).to_smolstr(),
|
||||
);
|
||||
let (name, escaped_name) =
|
||||
(name.as_str(), name.display(ctx.db(), ctx.completion.edition).to_smolstr());
|
||||
let kind = strukt.kind(ctx.db());
|
||||
let label = format_literal_label(name.as_str(), kind, ctx.snippet_cap());
|
||||
let lookup = format_literal_lookup(name.as_str(), kind);
|
||||
let label = format_literal_label(name, kind, ctx.snippet_cap());
|
||||
let lookup = format_literal_lookup(name, kind);
|
||||
let pat = render_pat(&ctx, pattern_ctx, &escaped_name, kind, &visible_fields, fields_omitted)?;
|
||||
|
||||
let db = ctx.db();
|
||||
|
|
@ -61,13 +59,13 @@ pub(crate) fn render_variant_pat(
|
|||
|
||||
let (name, escaped_name) = match path {
|
||||
Some(path) => (
|
||||
path.unescaped().display(ctx.db()).to_string().into(),
|
||||
path.display(ctx.db(), ctx.completion.edition).to_string().into(),
|
||||
path.display_verbatim(ctx.db()).to_smolstr(),
|
||||
path.display(ctx.db(), ctx.completion.edition).to_smolstr(),
|
||||
),
|
||||
None => {
|
||||
let name = local_name.unwrap_or_else(|| variant.name(ctx.db()));
|
||||
let it = (
|
||||
name.unescaped().display(ctx.db()).to_smolstr(),
|
||||
name.as_str().to_smolstr(),
|
||||
name.display(ctx.db(), ctx.completion.edition).to_smolstr(),
|
||||
);
|
||||
it
|
||||
|
|
|
|||
|
|
@ -32,14 +32,11 @@ fn render(
|
|||
let name = type_alias.name(db);
|
||||
let (name, escaped_name) = if with_eq {
|
||||
(
|
||||
SmolStr::from_iter([&name.unescaped().display(db).to_smolstr(), " = "]),
|
||||
SmolStr::from_iter([&name.as_str().to_smolstr(), " = "]),
|
||||
SmolStr::from_iter([&name.display_no_db(ctx.completion.edition).to_smolstr(), " = "]),
|
||||
)
|
||||
} else {
|
||||
(
|
||||
name.unescaped().display(db).to_smolstr(),
|
||||
name.display_no_db(ctx.completion.edition).to_smolstr(),
|
||||
)
|
||||
(name.as_str().to_smolstr(), name.display_no_db(ctx.completion.edition).to_smolstr())
|
||||
};
|
||||
let detail = type_alias.display(db, ctx.completion.edition).to_string();
|
||||
|
||||
|
|
|
|||
|
|
@ -23,12 +23,12 @@ pub(crate) fn render_union_literal(
|
|||
|
||||
let (qualified_name, escaped_qualified_name) = match path {
|
||||
Some(p) => (
|
||||
p.unescaped().display(ctx.db()).to_string(),
|
||||
p.display(ctx.db(), ctx.completion.edition).to_string(),
|
||||
p.display_verbatim(ctx.db()).to_smolstr(),
|
||||
p.display(ctx.db(), ctx.completion.edition).to_smolstr(),
|
||||
),
|
||||
None => (
|
||||
name.unescaped().display(ctx.db()).to_string(),
|
||||
name.display(ctx.db(), ctx.completion.edition).to_string(),
|
||||
name.as_str().to_smolstr(),
|
||||
name.display(ctx.db(), ctx.completion.edition).to_smolstr(),
|
||||
),
|
||||
};
|
||||
let label = format_literal_label(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue