summaryrefslogtreecommitdiff
path: root/src/library/mod.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-08-02 16:31:34 +0200
committerLaurenz <laurmaedje@gmail.com>2020-08-02 16:31:34 +0200
commit533374db14087ac54fdc86afa5f009487ac1b850 (patch)
tree0970eb1ca893fe45369d622b5bc1f226f0f66004 /src/library/mod.rs
parent2188ef6b899cc10c84ed985e9ad9049fcc3eb662 (diff)
Refactor argument parsing 🔬
Diffstat (limited to 'src/library/mod.rs')
-rw-r--r--src/library/mod.rs32
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) }
}