Performance, Custom Renderes, Isolation, Bugfixes
This Update contains a number of smaller improvements, Performance fixes, QOL features and a the addition of renderes.
- Added an Index property to
CharacterLocation
- Fixed the NullCoalescing Operator
- Added global Formatter "ParseBool" that will parse a string containing ether "true","yes","valid" or "1" to true otherwise to false.
- Added Isolation keyword. See: https://github.com/JPVenson/morestachio/wiki/Keywords#isolation---block
- Fixed an StackOverflow in Tokenizer
- Added IDocumentCompiler and IRenderer see: https://github.com/JPVenson/morestachio/wiki/IRenderer-and-IDocumentCompiler
- Performance improvement for Path handing in CompiledRenderer
- Performance improvement for Expression execution in CompiledRenderer
- Performance improvement for EachDocument loop
- Breaking Change: Removed the AbortGeneration property
- Breaking Change: Expressions no longer overwrites the ToString method but uses the DebuggerProxys ToString method
- Huge Performance Improvement with the usage of
ReadOnlySpan<char>
in the ByteCounterStream for compatible .Net versions - TextInstructions are now added to the Content as a Child instead of being an distinct DocumentItem
- Breaking Change: Moved the ParserOptions property from ContextObject to ScopeData
- Bugfix: AsyncPartialStore now uses ValueTask where applicable
- EachDocument now reuses its Context object
- NumberExpression and StringExpression now evaluates its ContextObject in CompileTime instead of RenderTime
- Feature: It is now possible to overwrite the TargetStream directly when calling
IRenderer.RenderAsync()
- Feature: Added
ByteCounterTextWriter
andByteCounterStringBuilder
for pure In-Memory generation. (both are way faster than theByteCounterStream
) - Feature: All build-in ByteCounters overwrite the ToString method to to allow easy result-to-string generation
- Added .Net-Configuration transformation with Morestachio (WIP)