mirror of
https://github.com/typst/typst
synced 2025-05-16 01:55:28 +08:00
initial decorator parsing in markup
This commit is contained in:
parent
9f9ba7ba5a
commit
3e69560267
@ -121,6 +121,7 @@ fn markup_expr(p: &mut Parser, at_start: &mut bool) {
|
|||||||
| SyntaxKind::Link
|
| SyntaxKind::Link
|
||||||
| SyntaxKind::Label => p.eat(),
|
| SyntaxKind::Label => p.eat(),
|
||||||
|
|
||||||
|
SyntaxKind::DecoratorMarker => decorator(p),
|
||||||
SyntaxKind::Hash => embedded_code_expr(p),
|
SyntaxKind::Hash => embedded_code_expr(p),
|
||||||
SyntaxKind::Star => strong(p),
|
SyntaxKind::Star => strong(p),
|
||||||
SyntaxKind::Underscore => emph(p),
|
SyntaxKind::Underscore => emph(p),
|
||||||
@ -146,6 +147,19 @@ fn markup_expr(p: &mut Parser, at_start: &mut bool) {
|
|||||||
*at_start = false;
|
*at_start = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn decorator(p: &mut Parser) {
|
||||||
|
let m = p.marker();
|
||||||
|
p.enter(LexMode::Decorator);
|
||||||
|
p.assert(SyntaxKind::DecoratorMarker);
|
||||||
|
|
||||||
|
while !p.end() {
|
||||||
|
p.eat();
|
||||||
|
}
|
||||||
|
|
||||||
|
p.exit();
|
||||||
|
p.wrap(m, SyntaxKind::Decorator);
|
||||||
|
}
|
||||||
|
|
||||||
/// Parses strong content: `*Strong*`.
|
/// Parses strong content: `*Strong*`.
|
||||||
fn strong(p: &mut Parser) {
|
fn strong(p: &mut Parser) {
|
||||||
const END: SyntaxSet = SyntaxSet::new()
|
const END: SyntaxSet = SyntaxSet::new()
|
||||||
|
@ -54,6 +54,7 @@ pub const MARKUP_EXPR: SyntaxSet = SyntaxSet::new()
|
|||||||
.add(SyntaxKind::Parbreak)
|
.add(SyntaxKind::Parbreak)
|
||||||
.add(SyntaxKind::LineComment)
|
.add(SyntaxKind::LineComment)
|
||||||
.add(SyntaxKind::BlockComment)
|
.add(SyntaxKind::BlockComment)
|
||||||
|
.add(SyntaxKind::DecoratorMarker)
|
||||||
.add(SyntaxKind::Text)
|
.add(SyntaxKind::Text)
|
||||||
.add(SyntaxKind::Linebreak)
|
.add(SyntaxKind::Linebreak)
|
||||||
.add(SyntaxKind::Escape)
|
.add(SyntaxKind::Escape)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user