More math shorthands

This commit is contained in:
Laurenz 2023-03-21 10:29:59 +01:00
parent a14eb1952d
commit 69136b74dc
2 changed files with 52 additions and 20 deletions

View File

@ -427,6 +427,8 @@ node! {
impl Shorthand {
/// A list of all shorthands.
pub const LIST: &[(&'static str, char)] = &[
// Both.
("...", '…'),
// Text only.
("~", '\u{00A0}'),
("--", '\u{2013}'),
@ -437,25 +439,39 @@ impl Shorthand {
("'", ''),
("*", ''),
("!=", '≠'),
(":=", '≔'),
("::=", '⩴'),
("=:", '≕'),
("<<", '≪'),
("<<<", '⋘'),
(">>", '≫'),
(">>>", '⋙'),
("<=", '≤'),
(">=", '≥'),
("<-", '←'),
("->", '→'),
("=>", '⇒'),
("-->", '⟶'),
("|->", '↦'),
("|=>", '⤇'),
(">->", '↣'),
("->>", '↠'),
("<-", '←'),
("<--", '⟵'),
("<-<", '↢'),
("<<-", '↞'),
("<->", '↔'),
("<-->", '⟷'),
("~>", '⇝'),
("~~>", '⟿'),
("<~", '⇜'),
("<~~", '⬳'),
("=>", '⇒'),
("|=>", '⤇'),
("==>", '⟹'),
("<==", '⟸'),
("<=>", '⇔'),
(":=", '≔'),
("<==>", '⟺'),
("[|", '⟦'),
("|]", '⟧'),
("||", '‖'),
// Both.
("...", '…'),
];
/// Get the shorthanded character.

View File

@ -375,25 +375,41 @@ impl Lexer<'_> {
'\\' => self.backslash(),
'"' => self.string(),
'-' if self.s.eat_if(">>") => SyntaxKind::Shorthand,
'-' if self.s.eat_if('>') => SyntaxKind::Shorthand,
'-' if self.s.eat_if("->") => SyntaxKind::Shorthand,
':' if self.s.eat_if('=') => SyntaxKind::Shorthand,
':' if self.s.eat_if(":=") => SyntaxKind::Shorthand,
'!' if self.s.eat_if('=') => SyntaxKind::Shorthand,
'.' if self.s.eat_if("..") => SyntaxKind::Shorthand,
'[' if self.s.eat_if('|') => SyntaxKind::Shorthand,
'<' if self.s.eat_if("==>") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("-->") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("--") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("-<") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("->") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("<-") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("<<") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("=>") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("==") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("~~") => SyntaxKind::Shorthand,
'<' if self.s.eat_if('=') => SyntaxKind::Shorthand,
'<' if self.s.eat_if('<') => SyntaxKind::Shorthand,
'<' if self.s.eat_if('-') => SyntaxKind::Shorthand,
'<' if self.s.eat_if('~') => SyntaxKind::Shorthand,
'>' if self.s.eat_if("->") => SyntaxKind::Shorthand,
'>' if self.s.eat_if(">>") => SyntaxKind::Shorthand,
'=' if self.s.eat_if("=>") => SyntaxKind::Shorthand,
'=' if self.s.eat_if('>') => SyntaxKind::Shorthand,
'=' if self.s.eat_if(':') => SyntaxKind::Shorthand,
'>' if self.s.eat_if('=') => SyntaxKind::Shorthand,
'>' if self.s.eat_if('>') => SyntaxKind::Shorthand,
'|' if self.s.eat_if("->") => SyntaxKind::Shorthand,
'|' if self.s.eat_if("=>") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("<<") => SyntaxKind::Shorthand,
'>' if self.s.eat_if(">>") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("=>") => SyntaxKind::Shorthand,
'<' if self.s.eat_if("->") => SyntaxKind::Shorthand,
'!' if self.s.eat_if('=') => SyntaxKind::Shorthand,
'<' if self.s.eat_if('<') => SyntaxKind::Shorthand,
'>' if self.s.eat_if('>') => SyntaxKind::Shorthand,
'<' if self.s.eat_if('=') => SyntaxKind::Shorthand,
'>' if self.s.eat_if('=') => SyntaxKind::Shorthand,
'<' if self.s.eat_if('-') => SyntaxKind::Shorthand,
'-' if self.s.eat_if('>') => SyntaxKind::Shorthand,
'=' if self.s.eat_if('>') => SyntaxKind::Shorthand,
':' if self.s.eat_if('=') => SyntaxKind::Shorthand,
'[' if self.s.eat_if('|') => SyntaxKind::Shorthand,
'|' if self.s.eat_if(']') => SyntaxKind::Shorthand,
'|' if self.s.eat_if('|') => SyntaxKind::Shorthand,
'~' if self.s.eat_if("~>") => SyntaxKind::Shorthand,
'~' if self.s.eat_if('>') => SyntaxKind::Shorthand,
'*' | '\'' | '-' => SyntaxKind::Shorthand,
'#' => SyntaxKind::Hashtag,