aboutsummaryrefslogtreecommitdiff
path: root/crates/completion/src/render/macro_.rs
diff options
context:
space:
mode:
authorIgor Aleksanov <[email protected]>2020-11-03 07:33:13 +0000
committerIgor Aleksanov <[email protected]>2020-11-03 07:33:13 +0000
commit4d333ebb6372c135e5a723da899528cc22d07faa (patch)
tree7ab4c7f113a1686d7378502e2685d3529cb6f5ba /crates/completion/src/render/macro_.rs
parentcaf0fa20a7d895612ceee1948d6a9895e53bee4a (diff)
Get rid of do-er antipattern
Diffstat (limited to 'crates/completion/src/render/macro_.rs')
-rw-r--r--crates/completion/src/render/macro_.rs18
1 files changed, 11 insertions, 7 deletions
diff --git a/crates/completion/src/render/macro_.rs b/crates/completion/src/render/macro_.rs
index 066185559..96be59cc3 100644
--- a/crates/completion/src/render/macro_.rs
+++ b/crates/completion/src/render/macro_.rs
@@ -9,8 +9,16 @@ use crate::{
9 render::RenderContext, 9 render::RenderContext,
10}; 10};
11 11
12pub(crate) fn render_macro<'a>(
13 ctx: RenderContext<'a>,
14 name: String,
15 macro_: hir::MacroDef,
16) -> Option<CompletionItem> {
17 MacroRender::new(ctx, name, macro_).render()
18}
19
12#[derive(Debug)] 20#[derive(Debug)]
13pub(crate) struct MacroRender<'a> { 21struct MacroRender<'a> {
14 ctx: RenderContext<'a>, 22 ctx: RenderContext<'a>,
15 name: String, 23 name: String,
16 macro_: hir::MacroDef, 24 macro_: hir::MacroDef,
@@ -20,11 +28,7 @@ pub(crate) struct MacroRender<'a> {
20} 28}
21 29
22impl<'a> MacroRender<'a> { 30impl<'a> MacroRender<'a> {
23 pub(crate) fn new( 31 fn new(ctx: RenderContext<'a>, name: String, macro_: hir::MacroDef) -> MacroRender<'a> {
24 ctx: RenderContext<'a>,
25 name: String,
26 macro_: hir::MacroDef,
27 ) -> MacroRender<'a> {
28 let docs = ctx.docs(macro_); 32 let docs = ctx.docs(macro_);
29 let docs_str = docs.as_ref().map_or("", |s| s.as_str()); 33 let docs_str = docs.as_ref().map_or("", |s| s.as_str());
30 let (bra, ket) = guess_macro_braces(&name, docs_str); 34 let (bra, ket) = guess_macro_braces(&name, docs_str);
@@ -32,7 +36,7 @@ impl<'a> MacroRender<'a> {
32 MacroRender { ctx, name, macro_, docs, bra, ket } 36 MacroRender { ctx, name, macro_, docs, bra, ket }
33 } 37 }
34 38
35 pub(crate) fn render(&self) -> Option<CompletionItem> { 39 fn render(&self) -> Option<CompletionItem> {
36 // FIXME: Currently proc-macro do not have ast-node, 40 // FIXME: Currently proc-macro do not have ast-node,
37 // such that it does not have source 41 // such that it does not have source
38 if self.macro_.is_proc_macro() { 42 if self.macro_.is_proc_macro() {