mirror of
https://github.com/typst/typst
synced 2025-05-14 04:56:26 +08:00
Hint for labels in code mode (#4319)
This commit is contained in:
parent
df6e347bc5
commit
ada0f5da65
@ -633,6 +633,10 @@ fn code_exprs(p: &mut Parser, mut stop: impl FnMut(&Parser) -> bool) {
|
||||
code_expr(p);
|
||||
if !p.end() && !stop(p) && !p.eat_if(SyntaxKind::Semicolon) {
|
||||
p.expected("semicolon or line break");
|
||||
if p.at(SyntaxKind::Label) {
|
||||
p.hint("labels can only be applied in markup mode");
|
||||
p.hint("try wrapping your code in a markup block (`[ ]`)");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1838,6 +1842,14 @@ impl<'s> Parser<'s> {
|
||||
self.nodes.insert(m.0, error);
|
||||
}
|
||||
|
||||
/// Produce a hint.
|
||||
fn hint(&mut self, hint: &str) {
|
||||
let m = self.before_trivia();
|
||||
if let Some(error) = self.nodes.get_mut(m.0 - 1) {
|
||||
error.hint(hint);
|
||||
}
|
||||
}
|
||||
|
||||
/// Consume the next token (if any) and produce an error stating that it was
|
||||
/// unexpected.
|
||||
fn unexpected(&mut self) {
|
||||
|
@ -68,3 +68,9 @@ _Visible_
|
||||
#test(str(<hey>), "hey")
|
||||
#test(str(label("hey")), "hey")
|
||||
#test(str([Hmm<hey>].label), "hey")
|
||||
|
||||
--- label-in-code-mode-hint ---
|
||||
// Error: 7-7 expected semicolon or line break
|
||||
// Hint: 7-7 labels can only be applied in markup mode
|
||||
// Hint: 7-7 try wrapping your code in a markup block (`[ ]`)
|
||||
#{ [A] <a> }
|
||||
|
Loading…
x
Reference in New Issue
Block a user