## YarnSpinnerTool/YarnSpinner — v3.0.2…v3.1.0

_73 commits._

### Features
- **Add a test case for tracking visit counts of node groups** (895e71f)
- **Add a method for manually signalling that a command completed synchronously** (f11c126)
- **Updated tests and test plan to support fallthrough options.** (d2ef034)
- **Added in support for falling through on options.** (d7cbb46)
- **Add ParseSourceText, deprecate ParseSource** (7a2bc40)
- **Add getDocumentState to language server** (9561d3d)
- **Add body argument to AddNodeToDocumentAsync** (5b65e59)
- **Add enum declarations to code completions** (84486c1)
- **Add changelog entry** (dbef48b)
- **Add NodeInfo.ContainsExternalJumps** (d15224e)
- **Add test for not adding line tags to shadow lines** (b94b29c)

### Fixes
- **Make language server compilation asynchronous; fix failing unit tests** (59e888a)
- **Fix for C# error, update the Microsoft.CodeAnalysis.CSharp to latest** (e3b2ed1)
- **Fix failing unit test** (338ae03)
- **Fix invalid testplans** (cf3c973)

### Backend
- **Update changelog for release** (560b765)
- **Include language version in compiled output** (53621d7)
- **Slightly tidyup** (e1fe4d3)
- **logdebug and logerror are now wrappers around the vm** (6f31bb7)
- **Update changelog** (c2f56fe)
- **Update changelog** (0e0c6ad)
- **Parse negative numbers as values, not as unary expressions containg a literal (fixes #421)** (530e270)
- **Rename 'SetCommandComplete' to 'SignalContentComplete'** (cda38ec)
- **Start work on the lightweight node-structure-only parser** (54cc455)
- **Extract unique node name calculation into its own method** (a2ca38b)
- **Type Checker: Fixed a crash that could occur if multiple declarations with the same name were provided.** (bd2ce4d)
- **Merge branch 'main' of https://github.com/YarnSpinnerTool/YarnSpinner** (d2d3927)
- **Added an early out check for Continue in the VM.** (bf1b00e)
- **Update README.md** (e0581ad)
- **Update CHANGELOG.md** (c7a1c44)
- **added convenience constructor of ReplacementMarkerResult** (0ffa56b)
- **Replacement markup parsing changes.** (4907eb3)
- **Compile source asynchronously** (aa22bf0)
- **Cache existing ASTs in the language server** (d409726)
- **Include existing diagnostics when compiling from existing FileParseResults** (668325a)
- **Finish implementing 'reused ASTs produce same result' test** (587c600)
- **Use correct type when constructing ConstantTypeProperties** (bacb16c)
- **Include source context for smart variable Declarations** (9a8052d)
- **Start working on AST reuse in compilation** (a159cd6)
- **Make compilation jobs deal in Inputs, not Files** (87c7d3b)
- **Roll back compilation cancellation in WIP language server** (1f9c667)
- **Change 'undeclared variable' diagnostic severity from warning to hint** (641dc95)
- **Update Server_OnAddNodeCommand_ReturnsTextEdit** (020aa75)
- **Increase timeout of Server_OnEnteringACommand_ShouldReceiveCompletions** (4b48088)
- **Update changelog** (05d4cde)
- **Show definition when hovering smart variables, not initial values (which smart variables don't actually have)** (d7634de)
- **Offer enums as completion items in expressions** (c3c0c65)
- **Offer identifiers for completions in if statements, else statements, set statements, expressions in formatted text** (34b967d)
- **Include user-defined types in TypeCheck compilations** (b7dd493)
- **Emit expression-start { tokens as EXPRESSION_START, no matter where they appear** (5b105f2)
- **Show stored variable names when code completing after "<<set "** (5fb1c51)
- **Update node-counting logic for Server_OnChangingDocument_SendsNodesChangedNotification** (31e4d6d)
- **Expose NodeInfo.nodeGroupComplexity in language server** (3bb3ce4)
- **Merge pull request #415 from pappleby/ls-compile-include-shadowlines** (b91f027)
- **Merge branch 'main' into ls-compile-include-shadowlines** (db3f545)
- **Go back to original unit test change; don't think pipeline failure is related** (2fa2452)
- **check if it's really xunit causing issues** (6b43c22)
- **Assert.NotNull breaks the test build on github for some reason** (3aca4b2)
- **undo unrelated merge** (9c3b523)
- **Update changelog** (daaaaa0)
- **Repro for error where C#11 feature breaks C# command parsing** (71106f2)
- **Reword changelog entry** (0c5211c)
- **Compile command should include strings and metadata for shadow lines** (3e544bb)
- **Update CHANGELOG** (b3e7ec3)
- **Test for node group subtitle tracking** (12af900)
- **Track node group hub nodes when a node group member's tracking header is 'always'** (9639674)
- **Improve node group visit tracking** (a6958ec)
- **Throw slightly more detailed error message** (2b55ac5)
- **Require testplans to consume the entire input** (e91694a)
- **Remove NodeHeaders testplan (already got an equivalent C# test)** (ca25c34)
- **Replace identifier parsing testplan with C# test** (e8e729b)
- **Return empty tag collection when tags: header is blank, not [""]** (3f7fe5b)
- **Update documentation** (b932ab7)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/YarnSpinnerTool/YarnSpinner?utm_source=github-action)._