From 849bb632f77c6543c7e9979c9cbef46029a2f0c3 Mon Sep 17 00:00:00 2001 From: PgBiel <9021226+PgBiel@users.noreply.github.com> Date: Fri, 7 Jun 2024 16:38:24 -0300 Subject: [PATCH] decorator syntax --- crates/typst-syntax/src/highlight.rs | 3 +++ crates/typst-syntax/src/kind.rs | 4 ++++ crates/typst-syntax/src/lexer.rs | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/crates/typst-syntax/src/highlight.rs b/crates/typst-syntax/src/highlight.rs index 0c1f3d5fd..7128c3584 100644 --- a/crates/typst-syntax/src/highlight.rs +++ b/crates/typst-syntax/src/highlight.rs @@ -286,6 +286,9 @@ pub fn highlight(node: &LinkedNode) -> Option { SyntaxKind::Destructuring => None, SyntaxKind::DestructAssignment => None, + // TODO + SyntaxKind::Decorator => Some(Tag::Comment), + SyntaxKind::LineComment => Some(Tag::Comment), SyntaxKind::BlockComment => Some(Tag::Comment), SyntaxKind::Error => Some(Tag::Error), diff --git a/crates/typst-syntax/src/kind.rs b/crates/typst-syntax/src/kind.rs index 7505dbc61..769cdd72d 100644 --- a/crates/typst-syntax/src/kind.rs +++ b/crates/typst-syntax/src/kind.rs @@ -278,6 +278,9 @@ pub enum SyntaxKind { Destructuring, /// A destructuring assignment expression: `(x, y) = (1, 2)`. DestructAssignment, + + /// A decorator: `/! allow("amogus")` + Decorator, } impl SyntaxKind { @@ -498,6 +501,7 @@ impl SyntaxKind { Self::FuncReturn => "`return` expression", Self::Destructuring => "destructuring pattern", Self::DestructAssignment => "destructuring assignment expression", + Self::Decorator => "decorator", } } } diff --git a/crates/typst-syntax/src/lexer.rs b/crates/typst-syntax/src/lexer.rs index dd05e73f2..502c458de 100644 --- a/crates/typst-syntax/src/lexer.rs +++ b/crates/typst-syntax/src/lexer.rs @@ -151,6 +151,10 @@ impl Lexer<'_> { } } + fn decorator(&mut self) -> SyntaxKind { + todo!() + } + fn line_comment(&mut self) -> SyntaxKind { self.s.eat_until(is_newline); SyntaxKind::LineComment