From fe134ed0c4db55068e3b28ac9addd49a8c4801f9 Mon Sep 17 00:00:00 2001 From: A4-Tacks Date: Tue, 7 Apr 2026 18:26:14 +0800 Subject: [PATCH] minor: Fix self kw is snippet in type location Example --- ```rust const _: $0 ``` **Before this PR** ```text self::~ crate::~ ``` **After this PR** ```text self:: crate:: ``` --- .../crates/ide-completion/src/render.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/tools/rust-analyzer/crates/ide-completion/src/render.rs b/src/tools/rust-analyzer/crates/ide-completion/src/render.rs index f37b73a28ab6..b94644199138 100644 --- a/src/tools/rust-analyzer/crates/ide-completion/src/render.rs +++ b/src/tools/rust-analyzer/crates/ide-completion/src/render.rs @@ -590,14 +590,17 @@ pub(crate) fn render_type_keyword_snippet( let mut item = CompletionItem::new(CompletionItemKind::Keyword, source_range, label, ctx.edition); - let cap = ctx.config.snippet_cap; - if let Some(cap) = cap { + let insert_text = if !snippet.contains('$') { + item.insert_text(snippet); + snippet + } else if let Some(cap) = ctx.config.snippet_cap { item.insert_snippet(cap, snippet); - } - - let insert_text = if cap.is_some() { snippet } else { label }.to_owned(); - adds_ret_type_arrow(ctx, path_ctx, &mut item, insert_text); + snippet + } else { + label + }; + adds_ret_type_arrow(ctx, path_ctx, &mut item, insert_text.to_owned()); item }