summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-06-10 23:53:20 +0200
committerLaurenz <laurmaedje@gmail.com>2022-06-10 23:54:16 +0200
commited6550fdb08eae92bffab6b6b137b1e0eebf62c6 (patch)
tree74152a38f7aa2ed2ac2fa190e81494422700ca36 /src/library
parent6aff11057bc88257c9383137952bb41b5b85c3dc (diff)
Bump dependencies
Diffstat (limited to 'src/library')
-rw-r--r--src/library/layout/page.rs5
-rw-r--r--src/library/math/rex.rs6
-rw-r--r--src/library/structure/list.rs6
-rw-r--r--src/library/text/raw.rs7
-rw-r--r--src/library/text/shaping.rs6
5 files changed, 19 insertions, 11 deletions
diff --git a/src/library/layout/page.rs b/src/library/layout/page.rs
index 115a1923..c2fbaba0 100644
--- a/src/library/layout/page.rs
+++ b/src/library/layout/page.rs
@@ -201,7 +201,10 @@ impl Cast<Spanned<Value>> for Marginal {
Value::Str(v) => Ok(Self::Content(Content::Text(v))),
Value::Content(v) => Ok(Self::Content(v)),
Value::Func(v) => Ok(Self::Func(v, value.span)),
- _ => Err("expected none, content or function")?,
+ v => Err(format!(
+ "expected none, content or function, found {}",
+ v.type_name(),
+ )),
}
}
}
diff --git a/src/library/math/rex.rs b/src/library/math/rex.rs
index f839a9e8..47de4b3a 100644
--- a/src/library/math/rex.rs
+++ b/src/library/math/rex.rs
@@ -1,5 +1,5 @@
use rex::error::{Error, LayoutError};
-use rex::font::{FontContext, MathFont};
+use rex::font::FontContext;
use rex::layout::{LayoutSettings, Style};
use rex::parser::color::RGBA;
use rex::render::{Backend, Cursor, Renderer};
@@ -38,7 +38,7 @@ impl Layout for RexNode {
let face = ctx.fonts.get(face_id);
let ctx = face
.math()
- .and_then(FontContext::new)
+ .map(|math| FontContext::new(face.ttf(), math))
.ok_or("font is not suitable for math")
.at(span)?;
@@ -110,7 +110,7 @@ impl FrameBackend {
}
impl Backend for FrameBackend {
- fn symbol(&mut self, pos: Cursor, gid: u16, scale: f64, _: &MathFont) {
+ fn symbol(&mut self, pos: Cursor, gid: u16, scale: f64) {
self.frame.push(
self.transform(pos),
Element::Text(Text {
diff --git a/src/library/structure/list.rs b/src/library/structure/list.rs
index 015ef520..c4167cf9 100644
--- a/src/library/structure/list.rs
+++ b/src/library/structure/list.rs
@@ -238,6 +238,7 @@ impl Cast<Spanned<Value>> for Label {
fn cast(value: Spanned<Value>) -> StrResult<Self> {
match value.v {
+ Value::None => Ok(Self::Content(Content::Empty)),
Value::Str(pattern) => {
let mut s = Scanner::new(&pattern);
let mut prefix;
@@ -258,7 +259,10 @@ impl Cast<Spanned<Value>> for Label {
}
Value::Content(v) => Ok(Self::Content(v)),
Value::Func(v) => Ok(Self::Func(v, value.span)),
- _ => Err("expected pattern, content or function")?,
+ v => Err(format!(
+ "expected string, content or function, found {}",
+ v.type_name(),
+ )),
}
}
}
diff --git a/src/library/text/raw.rs b/src/library/text/raw.rs
index 31db811a..8db4cf3e 100644
--- a/src/library/text/raw.rs
+++ b/src/library/text/raw.rs
@@ -90,7 +90,9 @@ impl Show for RawNode {
seq.push(Content::Linebreak { justified: false });
}
- for (style, piece) in highlighter.highlight(line, &SYNTAXES) {
+ for (style, piece) in
+ highlighter.highlight_line(line, &SYNTAXES).into_iter().flatten()
+ {
seq.push(styled(piece, foreground, style));
}
}
@@ -177,6 +179,7 @@ pub static THEME: Lazy<Theme> = Lazy::new(|| Theme {
item("string", Some("#298e0d"), None),
item("punctuation.shortcut", Some("#1d6c76"), None),
item("constant.character.escape", Some("#1d6c76"), None),
+ item("invalid", Some("#ff0000"), None),
],
});
@@ -185,7 +188,7 @@ fn item(scope: &str, color: Option<&str>, font_style: Option<FontStyle>) -> Them
ThemeItem {
scope: scope.parse().unwrap(),
style: StyleModifier {
- foreground: color.map(|s| s.parse().unwrap()),
+ foreground: color.map(|s| s.parse::<RgbaColor>().unwrap().into()),
background: None,
font_style,
},
diff --git a/src/library/text/shaping.rs b/src/library/text/shaping.rs
index 1f3d2f55..591abb5e 100644
--- a/src/library/text/shaping.rs
+++ b/src/library/text/shaping.rs
@@ -221,14 +221,12 @@ impl<'a> ShapedText<'a> {
let x_advance = face.to_em(ttf.glyph_hor_advance(glyph_id)?);
let cluster = self.glyphs.last().map(|g| g.cluster).unwrap_or_default();
self.width += x_advance.at(self.size);
- let baseline_shift = self.styles.get(TextNode::BASELINE);
-
self.glyphs.to_mut().push(ShapedGlyph {
face_id,
glyph_id: glyph_id.0,
x_advance,
x_offset: Em::zero(),
- y_offset: Em::from_length(baseline_shift, self.size),
+ y_offset: Em::zero(),
cluster,
safe_to_break: true,
c: '-',
@@ -491,7 +489,7 @@ fn shape_tofus(ctx: &mut ShapingContext, base: usize, text: &str, face_id: FaceI
glyph_id: 0,
x_advance,
x_offset: Em::zero(),
- y_offset: Em::from_length(ctx.styles.get(TextNode::BASELINE), ctx.size),
+ y_offset: Em::zero(),
cluster: base + cluster,
safe_to_break: true,
c,