summaryrefslogtreecommitdiff
path: root/src/syntax
diff options
context:
space:
mode:
Diffstat (limited to 'src/syntax')
-rw-r--r--src/syntax/ast.rs7
-rw-r--r--src/syntax/lexer.rs8
2 files changed, 10 insertions, 5 deletions
diff --git a/src/syntax/ast.rs b/src/syntax/ast.rs
index 1cc29b04..e844f622 100644
--- a/src/syntax/ast.rs
+++ b/src/syntax/ast.rs
@@ -426,11 +426,14 @@ node! {
impl Shorthand {
/// A list of all shorthands.
pub const LIST: &[(&'static str, char)] = &[
+ // Text only.
("~", '\u{00A0}'),
("--", '\u{2013}'),
("---", '\u{2014}'),
("-?", '\u{00AD}'),
- ("...", '…'),
+ // Math only.
+ ("-", '\u{2212}'),
+ ("'", '′'),
("*", '∗'),
("!=", '≠'),
("<<", '≪'),
@@ -450,6 +453,8 @@ impl Shorthand {
("[|", '⟦'),
("|]", '⟧'),
("||", '‖'),
+ // Both.
+ ("...", '…'),
];
/// Get the shorthanded character.
diff --git a/src/syntax/lexer.rs b/src/syntax/lexer.rs
index 471e437a..0bf7966f 100644
--- a/src/syntax/lexer.rs
+++ b/src/syntax/lexer.rs
@@ -380,17 +380,16 @@ impl Lexer<'_> {
'\\' => self.backslash(),
'"' => self.string(),
- '*' => 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,
@@ -400,6 +399,7 @@ impl Lexer<'_> {
'[' 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,
'_' => SyntaxKind::Underscore,