diff options
| author | Laurenz <laurmaedje@gmail.com> | 2020-08-02 16:31:34 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2020-08-02 16:31:34 +0200 |
| commit | 533374db14087ac54fdc86afa5f009487ac1b850 (patch) | |
| tree | 0970eb1ca893fe45369d622b5bc1f226f0f66004 /src/library/mod.rs | |
| parent | 2188ef6b899cc10c84ed985e9ad9049fcc3eb662 (diff) | |
Refactor argument parsing 🔬
Diffstat (limited to 'src/library/mod.rs')
| -rw-r--r-- | src/library/mod.rs | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/src/library/mod.rs b/src/library/mod.rs index eac45567..7b7034a0 100644 --- a/src/library/mod.rs +++ b/src/library/mod.rs @@ -1,6 +1,6 @@ //! The _Typst_ standard library. -use crate::syntax::Scope; +use crate::syntax::scope::Scope; use crate::func::prelude::*; pub_use_mod!(font); @@ -12,31 +12,15 @@ pub_use_mod!(spacing); pub fn std() -> Scope { let mut std = Scope::new::<ValFunc>(); - // Basics std.add::<ValFunc>("val"); - - // Font setup std.add::<FontFunc>("font"); - std.add_with_meta::<ContentSpacingFunc>("word.spacing", ContentKind::Word); - - // Layout - std.add_with_meta::<ContentSpacingFunc>("line.spacing", ContentKind::Line); - std.add_with_meta::<ContentSpacingFunc>("par.spacing", ContentKind::Paragraph); + std.add::<PageFunc>("page"); std.add::<AlignFunc>("align"); - std.add::<DirectionFunc>("direction"); std.add::<BoxFunc>("box"); - - // Spacing - std.add::<LineBreakFunc>("n"); - std.add::<LineBreakFunc>("line.break"); - std.add::<ParBreakFunc>("par.break"); - std.add::<PageBreakFunc>("page.break"); - std.add_with_meta::<SpacingFunc>("spacing", None); - std.add_with_meta::<SpacingFunc>("h", Some(Horizontal)); - std.add_with_meta::<SpacingFunc>("v", Some(Vertical)); - - // Page setup - std.add::<PageFunc>("page"); + std.add_with_meta::<SpacingFunc>("h", Horizontal); + std.add_with_meta::<SpacingFunc>("v", Vertical); + std.add::<ParBreakFunc>("parbreak"); + std.add::<PageBreakFunc>("pagebreak"); std } @@ -49,8 +33,8 @@ function! { } parse(header, body, state, f) { - header.args.pos.items.clear(); - header.args.key.pairs.clear(); + header.args.pos.0.clear(); + header.args.key.0.clear(); ValFunc { body: body!(opt: body, state, f) } } |
