68 lines
2.0 KiB
Typst
68 lines
2.0 KiB
Typst
--- get-rule-basic ---
|
|
// Test basic get rule.
|
|
#context test(text.lang, "en")
|
|
#set text(lang: "de")
|
|
#context test(text.lang, "de")
|
|
#text(lang: "es", context test(text.lang, "es"))
|
|
|
|
--- get-rule-in-function ---
|
|
// Test whether context is retained in nested function.
|
|
#let translate(..args) = args.named().at(text.lang)
|
|
#set text(lang: "de")
|
|
#context test(translate(de: "Inhalt", en: "Contents"), "Inhalt")
|
|
|
|
--- get-rule-in-array-callback ---
|
|
// Test whether context is retained in built-in callback.
|
|
#set text(lang: "de")
|
|
#context test(
|
|
("en", "de", "fr").sorted(key: v => v != text.lang),
|
|
("de", "en", "fr"),
|
|
)
|
|
|
|
--- get-rule-folding ---
|
|
// Test folding.
|
|
#set rect(stroke: red)
|
|
#context {
|
|
test(type(rect.stroke), stroke)
|
|
test(rect.stroke.paint, red)
|
|
}
|
|
#[
|
|
#set rect(stroke: 4pt)
|
|
#context test(rect.stroke, 4pt + red)
|
|
]
|
|
#context test(rect.stroke, stroke(red))
|
|
|
|
--- get-rule-figure-caption-collision ---
|
|
// We have one collision: `figure.caption` could be both the element and a get
|
|
// rule for the `caption` field, which is settable. We always prefer the
|
|
// element. It's unfortunate, but probably nobody writes
|
|
// `set figure(caption: ..)` anyway.
|
|
#test(type(figure.caption), function)
|
|
#context test(type(figure.caption), function)
|
|
|
|
--- get-rule-assertion-failure ---
|
|
// Error: 10-31 Assertion failed: "en" != "de"
|
|
#context test(text.lang, "de")
|
|
|
|
--- get-rule-unknown-field ---
|
|
// Error: 15-20 function `text` does not contain field `langs`
|
|
#context text.langs
|
|
|
|
--- get-rule-inherent-field ---
|
|
// Error: 18-22 function `heading` does not contain field `body`
|
|
#context heading.body
|
|
|
|
--- get-rule-missing-context-no-context ---
|
|
// Error: 7-11 can only be used when context is known
|
|
// Hint: 7-11 try wrapping this in a `context` expression
|
|
// Hint: 7-11 the `context` expression should wrap everything that depends on this function
|
|
#text.lang
|
|
|
|
--- get-rule-unknown-field-no-context ---
|
|
// Error: 7-12 function `text` does not contain field `langs`
|
|
#text.langs
|
|
|
|
--- get-rule-inherent-field-no-context ---
|
|
// Error: 10-14 function `heading` does not contain field `body`
|
|
#heading.body
|