summaryrefslogtreecommitdiff
path: root/src/parse
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-04-05 14:51:06 +0200
committerLaurenz <laurmaedje@gmail.com>2022-04-05 15:04:31 +0200
commitb865accae6c5e9f5d62afe4637c985c81b70eb4f (patch)
tree752e0c3cc73b32b7ec16c1b26516610b79a29544 /src/parse
parent2eacfcfa8121e1002db45232b343ce846c0c8b2f (diff)
Don't allow headings to span multiple lines
Diffstat (limited to 'src/parse')
-rw-r--r--src/parse/incremental.rs2
-rw-r--r--src/parse/mod.rs8
2 files changed, 7 insertions, 3 deletions
diff --git a/src/parse/incremental.rs b/src/parse/incremental.rs
index a2ba502b..66318790 100644
--- a/src/parse/incremental.rs
+++ b/src/parse/incremental.rs
@@ -364,7 +364,7 @@ mod tests {
test("hey #myfriend", 4 .. 4, "\\", 0 .. 14);
test("hey #myfriend", 4 .. 4, "\\", 3 .. 6);
test("= foo\nbar\n - a\n - b", 6 .. 9, "", 0 .. 11);
- test("= foo\n bar\n baz", 6 .. 8, "", 0 .. 15);
+ test("= foo\n bar\n baz", 6 .. 8, "", 0 .. 9);
}
#[test]
diff --git a/src/parse/mod.rs b/src/parse/mod.rs
index 58b81521..55f2fd49 100644
--- a/src/parse/mod.rs
+++ b/src/parse/mod.rs
@@ -161,6 +161,11 @@ fn markup(p: &mut Parser, mut at_start: bool) {
});
}
+/// Parse a single line of markup.
+fn markup_line(p: &mut Parser) {
+ markup_indented(p, usize::MAX);
+}
+
/// Parse markup that stays right of the given `column`.
fn markup_indented(p: &mut Parser, column: usize) {
p.eat_while(|t| match t {
@@ -272,8 +277,7 @@ fn heading(p: &mut Parser, at_start: bool) {
while p.eat_if(&NodeKind::Eq) {}
if at_start && p.peek().map_or(true, |kind| kind.is_space()) {
- let column = p.column(p.prev_end());
- markup_indented(p, column);
+ markup_line(p);
marker.end(p, NodeKind::Heading);
} else {
let text = p.get(current_start .. p.prev_end()).into();