diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-02-02 14:27:31 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-02-02 14:27:31 +0100 |
| commit | bb12624e8e970915e41363809139f168d4c545c6 (patch) | |
| tree | 33787a13e8c1e03377d7044d9b5d703d791fc6a0 /src/syntax/lexer.rs | |
| parent | 5f5c65927982447133b625edea3f5c9bab4f9e3d (diff) | |
Fix heading and list markers
Diffstat (limited to 'src/syntax/lexer.rs')
| -rw-r--r-- | src/syntax/lexer.rs | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/syntax/lexer.rs b/src/syntax/lexer.rs index 0bf7966f..b79b4c7f 100644 --- a/src/syntax/lexer.rs +++ b/src/syntax/lexer.rs @@ -191,15 +191,15 @@ impl Lexer<'_> { ':' => SyntaxKind::Colon, '=' => { self.s.eat_while('='); - if self.space_and_more() { + if self.space_or_end() { SyntaxKind::HeadingMarker } else { self.text() } } - '-' if self.space_and_more() => SyntaxKind::ListMarker, - '+' if self.space_and_more() => SyntaxKind::EnumMarker, - '/' if self.space_and_more() => SyntaxKind::TermMarker, + '-' if self.space_or_end() => SyntaxKind::ListMarker, + '+' if self.space_or_end() => SyntaxKind::EnumMarker, + '/' if self.space_or_end() => SyntaxKind::TermMarker, _ => self.text(), } @@ -363,13 +363,8 @@ impl Lexer<'_> { alphanum(prev) && alphanum(next) } - fn space_and_more(&self) -> bool { - let mut s = self.s; - if !s.at(char::is_whitespace) { - return false; - } - s.eat_while(|c: char| c.is_whitespace() && !is_newline(c)); - !s.done() && !s.at(is_newline) + fn space_or_end(&self) -> bool { + self.s.done() || self.s.at(char::is_whitespace) } } |
