Skip to content

Commit c63d41a

Browse files
committed
fix(#230): fix dict parsing by manually getting document content in span so quotes aren't escaped
1 parent 24e0551 commit c63d41a

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

harper-core/src/parsers/typst.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,10 @@ fn map_token(
210210
constant_token!(doc, float, TokenKind::Number(float.get().into(), None))
211211
}
212212
Expr::Numeric(a) => constant_token!(doc, a, TokenKind::Unlintable),
213-
Expr::Str(text) => parse_english(text.get(), doc, parser, &text.span()),
213+
Expr::Str(text) => {
214+
// Using `text.get()` doesn't work here, because it escapes quotes
215+
parse_english(doc.get(doc.range(text.span())?)?, doc, parser, &text.span())
216+
}
214217
Expr::Code(a) => constant_token!(doc, a, TokenKind::Unlintable),
215218
Expr::Content(content_block) => {
216219
recursive_env(&mut content_block.body().exprs(), doc, parser)
@@ -478,7 +481,7 @@ mod tests {
478481
dbg!(typst_tree.exprs().collect_vec());
479482

480483
let charslice = source.chars().collect_vec();
481-
assert_eq!(tokens[2].span.get_content_string(&charslice), "Typst");
484+
assert_eq!(tokens[3].span.get_content_string(&charslice), "Typst");
482485
assert!(matches!(
483486
token_kinds.as_slice(),
484487
&[

0 commit comments

Comments
 (0)