summaryrefslogtreecommitdiff
path: root/src/syntax/lexer.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-02-02 14:27:31 +0100
committerLaurenz <laurmaedje@gmail.com>2023-02-02 14:27:31 +0100
commitbb12624e8e970915e41363809139f168d4c545c6 (patch)
tree33787a13e8c1e03377d7044d9b5d703d791fc6a0 /src/syntax/lexer.rs
parent5f5c65927982447133b625edea3f5c9bab4f9e3d (diff)
Fix heading and list markers
Diffstat (limited to 'src/syntax/lexer.rs')
-rw-r--r--src/syntax/lexer.rs17
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)
}
}