diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-03-07 15:17:13 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-03-07 15:17:13 +0100 |
| commit | 25b5bd117529cd04bb789e1988eb3a3db8025a0e (patch) | |
| tree | 2fbb4650903123da047a1f1f11a0abda95286e12 /macros/src/func.rs | |
| parent | 6ab7760822ccd24b4ef126d4737d41f1be15fe19 (diff) | |
Fully untyped model
Diffstat (limited to 'macros/src/func.rs')
| -rw-r--r-- | macros/src/func.rs | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/macros/src/func.rs b/macros/src/func.rs index f65c135e..01c3ca0e 100644 --- a/macros/src/func.rs +++ b/macros/src/func.rs @@ -1,30 +1,22 @@ -use unscanny::Scanner; - use super::*; /// Expand the `#[func]` macro. pub fn func(item: syn::Item) -> Result<TokenStream> { - let docs = match &item { + let mut docs = match &item { syn::Item::Struct(item) => documentation(&item.attrs), syn::Item::Enum(item) => documentation(&item.attrs), syn::Item::Fn(item) => documentation(&item.attrs), _ => String::new(), }; - let first = docs.lines().next().unwrap(); - let display = first.strip_prefix("# ").unwrap(); - let display = display.trim(); - - let mut docs = docs[first.len()..].to_string(); let (params, returns) = params(&mut docs)?; - let category = section(&mut docs, "Category", 2).expect("missing category"); let docs = docs.trim(); let info = quote! { ::typst::eval::FuncInfo { name, - display: #display, - category: #category, + display: "TODO", + category: "TODO", docs: #docs, params: ::std::vec![#(#params),*], returns: ::std::vec![#(#returns),*] @@ -82,7 +74,7 @@ pub fn func(item: syn::Item) -> Result<TokenStream> { } /// Extract a section. -pub fn section(docs: &mut String, title: &str, level: usize) -> Option<String> { +fn section(docs: &mut String, title: &str, level: usize) -> Option<String> { let hashtags = "#".repeat(level); let needle = format!("\n{hashtags} {title}\n"); let start = docs.find(&needle)?; |
