Skip to content

Commit 041cfbe

Browse files
committed
Render the expansion of snippets as their docs
1 parent 77cbf4a commit 041cfbe

File tree

4 files changed

+10
-17
lines changed

4 files changed

+10
-17
lines changed

crates/ide_completion/src/completions/postfix.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
mod format_like;
44

5+
use hir::Documentation;
56
use ide_db::{
67
helpers::{insert_use::ImportScope, FamousDefs, SnippetCap},
78
ty_filter::TryEnum,
@@ -236,11 +237,10 @@ fn add_custom_postfix_completions(
236237
Some(imports) => imports,
237238
None => return,
238239
};
239-
let mut builder = postfix_snippet(
240-
trigger,
241-
snippet.description.as_deref().unwrap_or_default(),
242-
&snippet.postfix_snippet(&receiver_text),
243-
);
240+
let body = snippet.postfix_snippet(&receiver_text);
241+
let mut builder =
242+
postfix_snippet(trigger, snippet.description.as_deref().unwrap_or_default(), &body);
243+
builder.documentation(Documentation::new(format!("```rust\n{}\n```", body)));
244244
for import in imports.into_iter() {
245245
builder.add_import(import);
246246
}
@@ -481,7 +481,7 @@ fn main() {
481481
snippets: vec![Snippet::new(
482482
&[],
483483
&["break".into()],
484-
&["ControlFlow::Break($receiver)".into()],
484+
&["ControlFlow::Break(${receiver})".into()],
485485
"",
486486
&["core::ops::ControlFlow".into()],
487487
crate::SnippetScope::Expr,

crates/ide_completion/src/completions/snippet.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
//! This file provides snippet completions, like `pd` => `eprintln!(...)`.
22
3+
use hir::Documentation;
34
use ide_db::helpers::{insert_use::ImportScope, SnippetCap};
45
use syntax::T;
56

@@ -109,7 +110,9 @@ fn add_custom_completions(
109110
Some(imports) => imports,
110111
None => return,
111112
};
112-
let mut builder = snippet(ctx, cap, &trigger, &snip.snippet());
113+
let body = snip.snippet();
114+
let mut builder = snippet(ctx, cap, &trigger, &body);
115+
builder.documentation(Documentation::new(format!("```rust\n{}\n```", body)));
113116
for import in imports.into_iter() {
114117
builder.add_import(import);
115118
}

docs/user/generated_config.adoc

-5
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,6 @@ Custom completion snippets.
146146
--
147147
Whether to show postfix snippets like `dbg`, `if`, `not`, etc.
148148
--
149-
[[rust-analyzer.completion.postfix.snippets]]rust-analyzer.completion.postfix.snippets (default: `{}`)::
150-
+
151-
--
152-
Custom postfix completion snippets.
153-
--
154149
[[rust-analyzer.completion.autoimport.enable]]rust-analyzer.completion.autoimport.enable (default: `true`)::
155150
+
156151
--

editors/code/package.json

-5
Original file line numberDiff line numberDiff line change
@@ -595,11 +595,6 @@
595595
"default": true,
596596
"type": "boolean"
597597
},
598-
"rust-analyzer.completion.postfix.snippets": {
599-
"markdownDescription": "Custom postfix completion snippets.",
600-
"default": {},
601-
"type": "object"
602-
},
603598
"rust-analyzer.completion.autoimport.enable": {
604599
"markdownDescription": "Toggles the additional completions that automatically add imports when completed.\nNote that your client must specify the `additionalTextEdits` LSP client capability to truly have this feature enabled.",
605600
"default": true,

0 commit comments

Comments
 (0)