summaryrefslogtreecommitdiff
path: root/crates/typst-syntax/src
diff options
context:
space:
mode:
authorMALO <57839069+MDLC01@users.noreply.github.com>2023-10-09 15:30:40 +0200
committerGitHub <noreply@github.com>2023-10-09 15:30:40 +0200
commit0804a9e25d865dc25d10aae22b0a39c4e16cab19 (patch)
tree80550c88a91238e8018ccfb89aae891a7e4c368c /crates/typst-syntax/src
parentdf49d3f0c6ea17e9dcf552106f7b5464bc99c4dc (diff)
Use/allow U+2212 MINUS SIGN instead of U+002D HYPHEN MINUS everywhere (#2318)
Diffstat (limited to 'crates/typst-syntax/src')
-rw-r--r--crates/typst-syntax/src/ast.rs1
-rw-r--r--crates/typst-syntax/src/lexer.rs5
2 files changed, 4 insertions, 2 deletions
diff --git a/crates/typst-syntax/src/ast.rs b/crates/typst-syntax/src/ast.rs
index cb1d05b2..447903c5 100644
--- a/crates/typst-syntax/src/ast.rs
+++ b/crates/typst-syntax/src/ast.rs
@@ -454,6 +454,7 @@ impl Shorthand<'_> {
pub const MARKUP_LIST: &'static [(&'static str, char)] = &[
("...", '…'),
("~", '\u{00A0}'),
+ ("-", '\u{2212}'), // Only before a digit
("--", '\u{2013}'),
("---", '\u{2014}'),
("-?", '\u{00AD}'),
diff --git a/crates/typst-syntax/src/lexer.rs b/crates/typst-syntax/src/lexer.rs
index b96b3c07..509f5d73 100644
--- a/crates/typst-syntax/src/lexer.rs
+++ b/crates/typst-syntax/src/lexer.rs
@@ -171,6 +171,7 @@ impl Lexer<'_> {
'-' if self.s.eat_if("--") => SyntaxKind::Shorthand,
'-' if self.s.eat_if('-') => SyntaxKind::Shorthand,
'-' if self.s.eat_if('?') => SyntaxKind::Shorthand,
+ '-' if self.s.at(char::is_numeric) => SyntaxKind::Shorthand,
'*' if !self.in_word() => SyntaxKind::Star,
'_' if !self.in_word() => SyntaxKind::Underscore,
@@ -480,7 +481,7 @@ impl Lexer<'_> {
'<' if self.s.eat_if('=') => SyntaxKind::LtEq,
'>' if self.s.eat_if('=') => SyntaxKind::GtEq,
'+' if self.s.eat_if('=') => SyntaxKind::PlusEq,
- '-' if self.s.eat_if('=') => SyntaxKind::HyphEq,
+ '-' | '\u{2212}' if self.s.eat_if('=') => SyntaxKind::HyphEq,
'*' if self.s.eat_if('=') => SyntaxKind::StarEq,
'/' if self.s.eat_if('=') => SyntaxKind::SlashEq,
'.' if self.s.eat_if('.') => SyntaxKind::Dots,
@@ -498,7 +499,7 @@ impl Lexer<'_> {
':' => SyntaxKind::Colon,
'.' => SyntaxKind::Dot,
'+' => SyntaxKind::Plus,
- '-' => SyntaxKind::Minus,
+ '-' | '\u{2212}' => SyntaxKind::Minus,
'*' => SyntaxKind::Star,
'/' => SyntaxKind::Slash,
'=' => SyntaxKind::Eq,