polylux icon indicating copy to clipboard operation
polylux copied to clipboard

Replace uses of locate(loc => {}) with context expressions

Open dblsaiko opened this issue 1 year ago • 0 comments

locate() with function argument is deprecated. Generally

#let fn() = {
  locate(loc => {
    let value = state.at(loc)

    // ...
  })
}

can be replaced with

#let fn() = context {
  let value = state.get()

  // ...
}

and if you actually need a position reference like the loc parameter, you can use the here() function. https://typst.app/docs/reference/introspection/here/

From https://typst.app/docs/reference/introspection/locate/:

Compatibility

In Typst 0.10 and lower, the locate function took a closure that made the current location in the document available (like here does now). Compatibility with the old way will remain for a while to give package authors time to upgrade. To that effect, locate detects whether it received a selector or a user-defined function and adjusts its semantics accordingly. This behaviour will be removed in the future.

dblsaiko avatar Jun 30 '24 12:06 dblsaiko