diff options
author | kjeremy <[email protected]> | 2019-10-29 16:16:55 +0000 |
---|---|---|
committer | kjeremy <[email protected]> | 2019-10-29 16:16:55 +0000 |
commit | eb220a081b5e5867a1c063b42c02ec35535a19e5 (patch) | |
tree | 037c39ac54a4c0943960756f46e314a85c118c82 /crates/ra_ide_api/src/display | |
parent | de16f94ada933cfd394ddab34c31410cf05268f1 (diff) |
Primitive signature help for mbe
Diffstat (limited to 'crates/ra_ide_api/src/display')
-rw-r--r-- | crates/ra_ide_api/src/display/function_signature.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/crates/ra_ide_api/src/display/function_signature.rs b/crates/ra_ide_api/src/display/function_signature.rs index e21f8378d..9075ca443 100644 --- a/crates/ra_ide_api/src/display/function_signature.rs +++ b/crates/ra_ide_api/src/display/function_signature.rs | |||
@@ -17,6 +17,7 @@ pub enum CallableKind { | |||
17 | Function, | 17 | Function, |
18 | StructConstructor, | 18 | StructConstructor, |
19 | VariantConstructor, | 19 | VariantConstructor, |
20 | Macro, | ||
20 | } | 21 | } |
21 | 22 | ||
22 | /// Contains information about a function signature | 23 | /// Contains information about a function signature |
@@ -123,6 +124,26 @@ impl FunctionSignature { | |||
123 | .with_doc_opt(variant.docs(db)), | 124 | .with_doc_opt(variant.docs(db)), |
124 | ) | 125 | ) |
125 | } | 126 | } |
127 | |||
128 | pub(crate) fn from_macro(db: &db::RootDatabase, macro_def: hir::MacroDef) -> Option<Self> { | ||
129 | let node: ast::MacroCall = macro_def.source(db).ast; | ||
130 | |||
131 | let params = vec![]; | ||
132 | |||
133 | Some( | ||
134 | FunctionSignature { | ||
135 | kind: CallableKind::Macro, | ||
136 | visibility: None, | ||
137 | name: node.name().map(|n| n.text().to_string()), | ||
138 | ret_type: None, | ||
139 | parameters: params, | ||
140 | generic_parameters: vec![], | ||
141 | where_predicates: vec![], | ||
142 | doc: None, | ||
143 | } | ||
144 | .with_doc_opt(macro_def.docs(db)), | ||
145 | ) | ||
146 | } | ||
126 | } | 147 | } |
127 | 148 | ||
128 | impl From<&'_ ast::FnDef> for FunctionSignature { | 149 | impl From<&'_ ast::FnDef> for FunctionSignature { |
@@ -167,6 +188,7 @@ impl Display for FunctionSignature { | |||
167 | CallableKind::Function => write!(f, "fn {}", name)?, | 188 | CallableKind::Function => write!(f, "fn {}", name)?, |
168 | CallableKind::StructConstructor => write!(f, "struct {}", name)?, | 189 | CallableKind::StructConstructor => write!(f, "struct {}", name)?, |
169 | CallableKind::VariantConstructor => write!(f, "{}", name)?, | 190 | CallableKind::VariantConstructor => write!(f, "{}", name)?, |
191 | CallableKind::Macro => write!(f, "{}!", name)?, | ||
170 | } | 192 | } |
171 | } | 193 | } |
172 | 194 | ||