v3.0.0
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
CancellationTokento yourCompilationJobobject. You can request that the compilation be cancelled by cancelling the token. For more information, see Task Cancellation.
- To enable cancelling a compilation, supply a
- 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
jumpstatements if destination node that does not exist. Offer to create a stub node, or rename to an existing node title. - The
subtitleheader on a node can be used to control its internal name, for debugging purposes. - A .NET Standard 2.1 version of the
YarnSpinnerandYarnSpinner.Compilerpackages have been added.
Changed
- Improved the performance of the type checker when dealing with large numbers of variable declarations.
- Fixed an issue where
Utility.TagLineswould 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- andYarnFunction-tagged method was declared inside a nested C# class CompilationJob.VariableDeclarationshas been renamed toCompilationJob.Declarations. (VariableDeclarationsnow forwards toDeclarations, 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.)
LineParsernow correctly detects the first:in a line for the implicit character name- The
selectmarker now converts its value using the invariant culture, not the user's current culture. (This is realistically not a huge change, since values passed toselectare either integers or non-user-facing strings, but it avoids a potential bug.) - The language version for
YarnSpinnerandYarnSpinner.Compilerhas changed from C# 8 to C# 9. - Language Server: Keyword highlighting for built-in syntax like
jumpandenumis now more consistent.
Removed
Yarn.Analysistypes are now removed from the public API.
