Skip to content

v0.2.3

Choose a tag to compare

@math3usmartins math3usmartins released this 13 Jun 21:32
· 19 commits to main since this release
08bed05

What's Changed

Full changelog at v0.2.2...v0.2.3

Fixed

Generics semantic tokens now read correctly.

Concrete type arguments at turbofish call sites were highlighted as typeParameter, which (per the LSP spec) denotes a formal type variable like T -- not a type supplied at a use site. Each argument is now classified by what it actually is:

  • builtin/scalar args (int, string, bool, ...) -> type
  • named user types (User, Banana, ...) -> class
  • a forwarded in-scope type variable (passing T along inside a generic body) -> typeParameter

Formal type parameters in declarations (class Box<T>, fn<T>) and reified-T uses stay typeParameter as before.

Added

  • Turbofish punctuation is now highlighted. The ::, <, and > delimiters of a generic clause emit operator tokens instead of rendering uncolored.

Notes

  • This is purely a server-side token-emission change -- no client/plugin updates required. The type and operator token types were already in the published legend.
  • serverInfo.version now reports 0.2.3.

Example
Util::identity::<int>(42)

  • Util = class
  • identity = method
  • int = type (was typeParameter)
  • :: < > = operator (were uncolored).