Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 16 May 00:09

This is the compiler for Yarn Spinner. If you want to use Yarn Spinner in a Unity game, please see the releases page for Yarn Spinner for Unity!

Yarn Spinner is made possible by your generous patronage. Please consider supporting Yarn Spinner's development by becoming a patron!

Yarn Spinner 3.0.0 includes all updates from 3.0.0 Beta 1 and 3.0.0 Beta 2.

Added

  • Added support for variadic functions.
  • Added support for cancelling compilation.
    • To enable cancelling a compilation, supply a CancellationToken to your CompilationJob object. You can request that the compilation be cancelled by cancelling the token. For more information, see Task Cancellation.
  • Added NodeDebugInfo.Range, which contains the range in which a node appears in the source code.
  • Added NodeDebugInfo.IsImplicit, which indicates whether the node was created by the compiler (and does not appear in the source code).
  • Language Server: Warn on jump statements if destination node that does not exist. Offer to create a stub node, or rename to an existing node title.
  • The subtitle header on a node can be used to control its internal name, for debugging purposes.
  • A .NET Standard 2.1 version of the YarnSpinner and YarnSpinner.Compiler packages have been added.

Changed

  • Improved the performance of the type checker when dealing with large numbers of variable declarations.
  • Fixed an issue where Utility.TagLines would add #line: tags to lines with #shadow: tags (which isn't allowed.)
  • Language Server: Fixed an error that would crash the language server if a YarnCommand- and YarnFunction-tagged method was declared inside a nested C# class
  • CompilationJob.VariableDeclarations has been renamed to CompilationJob.Declarations. (VariableDeclarations now forwards to Declarations, and is marked as deprecated.)
  • Language Server: completions now contain node groups, and no longer include the names of individual nodes in a group (which cannot be jumped to directly.)
  • LineParser now correctly detects the first : in a line for the implicit character name
  • The select marker now converts its value using the invariant culture, not the user's current culture. (This is realistically not a huge change, since values passed to select are either integers or non-user-facing strings, but it avoids a potential bug.)
  • The language version for YarnSpinner and YarnSpinner.Compiler has changed from C# 8 to C# 9.
  • Language Server: Keyword highlighting for built-in syntax like jump and enum is now more consistent.

Removed

  • Yarn.Analysis types are now removed from the public API.