about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2021-10-05 18:00:27 +0200
committerLukas Wirth <lukastw97@gmail.com>2021-10-05 18:11:22 +0200
commit041cfbe0f46c7f565ce1828857d35adb9cf2d7e7 (patch)
treec3ba44f7a9fa2a1524ec2b56f17328357aa10741
parent77cbf4adbc0cac53386eeba42223ee312aa02c0c (diff)
downloadrust-041cfbe0f46c7f565ce1828857d35adb9cf2d7e7.tar.gz
rust-041cfbe0f46c7f565ce1828857d35adb9cf2d7e7.zip
Render the expansion of snippets as their docs
-rw-r--r--crates/ide_completion/src/completions/postfix.rs12
-rw-r--r--crates/ide_completion/src/completions/snippet.rs5
-rw-r--r--docs/user/generated_config.adoc5
-rw-r--r--editors/code/package.json5
4 files changed, 10 insertions, 17 deletions
diff --git a/crates/ide_completion/src/completions/postfix.rs b/crates/ide_completion/src/completions/postfix.rs
index 4df6c36ebe7..b74030c1735 100644
--- a/crates/ide_completion/src/completions/postfix.rs
+++ b/crates/ide_completion/src/completions/postfix.rs
@@ -2,6 +2,7 @@
 
 mod format_like;
 
+use hir::Documentation;
 use ide_db::{
     helpers::{insert_use::ImportScope, FamousDefs, SnippetCap},
     ty_filter::TryEnum,
@@ -236,11 +237,10 @@ fn add_custom_postfix_completions(
                 Some(imports) => imports,
                 None => return,
             };
-            let mut builder = postfix_snippet(
-                trigger,
-                snippet.description.as_deref().unwrap_or_default(),
-                &snippet.postfix_snippet(&receiver_text),
-            );
+            let body = snippet.postfix_snippet(&receiver_text);
+            let mut builder =
+                postfix_snippet(trigger, snippet.description.as_deref().unwrap_or_default(), &body);
+            builder.documentation(Documentation::new(format!("```rust\n{}\n```", body)));
             for import in imports.into_iter() {
                 builder.add_import(import);
             }
@@ -481,7 +481,7 @@ fn main() {
                 snippets: vec![Snippet::new(
                     &[],
                     &["break".into()],
-                    &["ControlFlow::Break($receiver)".into()],
+                    &["ControlFlow::Break(${receiver})".into()],
                     "",
                     &["core::ops::ControlFlow".into()],
                     crate::SnippetScope::Expr,
diff --git a/crates/ide_completion/src/completions/snippet.rs b/crates/ide_completion/src/completions/snippet.rs
index ed6c4c74937..a0e5f56129e 100644
--- a/crates/ide_completion/src/completions/snippet.rs
+++ b/crates/ide_completion/src/completions/snippet.rs
@@ -1,5 +1,6 @@
 //! This file provides snippet completions, like `pd` => `eprintln!(...)`.
 
+use hir::Documentation;
 use ide_db::helpers::{insert_use::ImportScope, SnippetCap};
 use syntax::T;
 
@@ -109,7 +110,9 @@ fn add_custom_completions(
                 Some(imports) => imports,
                 None => return,
             };
-            let mut builder = snippet(ctx, cap, &trigger, &snip.snippet());
+            let body = snip.snippet();
+            let mut builder = snippet(ctx, cap, &trigger, &body);
+            builder.documentation(Documentation::new(format!("```rust\n{}\n```", body)));
             for import in imports.into_iter() {
                 builder.add_import(import);
             }
diff --git a/docs/user/generated_config.adoc b/docs/user/generated_config.adoc
index 7ec66c18be5..f80b9785458 100644
--- a/docs/user/generated_config.adoc
+++ b/docs/user/generated_config.adoc
@@ -146,11 +146,6 @@ Custom completion snippets.
 --
 Whether to show postfix snippets like `dbg`, `if`, `not`, etc.
 --
-[[rust-analyzer.completion.postfix.snippets]]rust-analyzer.completion.postfix.snippets (default: `{}`)::
-+
---
-Custom postfix completion snippets.
---
 [[rust-analyzer.completion.autoimport.enable]]rust-analyzer.completion.autoimport.enable (default: `true`)::
 +
 --
diff --git a/editors/code/package.json b/editors/code/package.json
index fd6d03cb8ad..d9afdfad1bc 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -595,11 +595,6 @@
                     "default": true,
                     "type": "boolean"
                 },
-                "rust-analyzer.completion.postfix.snippets": {
-                    "markdownDescription": "Custom postfix completion snippets.",
-                    "default": {},
-                    "type": "object"
-                },
                 "rust-analyzer.completion.autoimport.enable": {
                     "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.",
                     "default": true,