summaryrefslogtreecommitdiff
path: root/crates/typst-library/src/foundations
diff options
context:
space:
mode:
authorcAttte <26514199+cAttte@users.noreply.github.com>2025-06-12 11:09:37 -0300
committerGitHub <noreply@github.com>2025-06-12 14:09:37 +0000
commitf9897479d2a8a865c4033bc44ec9a85fb5000795 (patch)
tree498f159589cb1cf14c171a31750189023cad8327 /crates/typst-library/src/foundations
parentbd41fb9427f3965b91ac467fe12045bbb793b5e9 (diff)
Unify `EvalMode` and `LexMode` into `SyntaxMode` (#6432)
Diffstat (limited to 'crates/typst-library/src/foundations')
-rw-r--r--crates/typst-library/src/foundations/cast.rs17
-rw-r--r--crates/typst-library/src/foundations/mod.rs6
2 files changed, 19 insertions, 4 deletions
diff --git a/crates/typst-library/src/foundations/cast.rs b/crates/typst-library/src/foundations/cast.rs
index 73645491..5e0ba688 100644
--- a/crates/typst-library/src/foundations/cast.rs
+++ b/crates/typst-library/src/foundations/cast.rs
@@ -9,7 +9,7 @@ use std::ops::Add;
use ecow::eco_format;
use smallvec::SmallVec;
-use typst_syntax::{Span, Spanned};
+use typst_syntax::{Span, Spanned, SyntaxMode};
use unicode_math_class::MathClass;
use crate::diag::{At, HintedStrResult, HintedString, SourceResult, StrResult};
@@ -460,6 +460,21 @@ impl FromValue for Never {
}
cast! {
+ SyntaxMode,
+ self => IntoValue::into_value(match self {
+ SyntaxMode::Markup => "markup",
+ SyntaxMode::Math => "math",
+ SyntaxMode::Code => "code",
+ }),
+ /// Evaluate as markup, as in a Typst file.
+ "markup" => SyntaxMode::Markup,
+ /// Evaluate as math, as in an equation.
+ "math" => SyntaxMode::Math,
+ /// Evaluate as code, as after a hash.
+ "code" => SyntaxMode::Code,
+}
+
+cast! {
MathClass,
self => IntoValue::into_value(match self {
MathClass::Normal => "normal",
diff --git a/crates/typst-library/src/foundations/mod.rs b/crates/typst-library/src/foundations/mod.rs
index d42be15b..6840f855 100644
--- a/crates/typst-library/src/foundations/mod.rs
+++ b/crates/typst-library/src/foundations/mod.rs
@@ -69,6 +69,7 @@ pub use self::ty::*;
pub use self::value::*;
pub use self::version::*;
pub use typst_macros::{scope, ty};
+use typst_syntax::SyntaxMode;
#[rustfmt::skip]
#[doc(hidden)]
@@ -83,7 +84,6 @@ use typst_syntax::Spanned;
use crate::diag::{bail, SourceResult, StrResult};
use crate::engine::Engine;
-use crate::routines::EvalMode;
use crate::{Feature, Features};
/// Hook up all `foundations` definitions.
@@ -273,8 +273,8 @@ pub fn eval(
/// #eval("1_2^3", mode: "math")
/// ```
#[named]
- #[default(EvalMode::Code)]
- mode: EvalMode,
+ #[default(SyntaxMode::Code)]
+ mode: SyntaxMode,
/// A scope of definitions that are made available.
///
/// ```example