Releases: sempare/sempare-delphi-template-engine
Releases · sempare/sempare-delphi-template-engine
Release v1.8.0
- NEW support calling methods on interfaces
- NEW support accessing properties on interfaces
- NEW simplified white space removal
- NEW License change to Apache 2.0
- FIX to support issues under XE7
- FIX AV when method method does not exist
- FIX improved error messaging on exceptions
- FIX regex threadsafety issue in lexer
Release v.1.7.7
- github actions updated to support 64bit build
- updated docs
- fixed internal passing of variables for function taking dynarray as param
- fixed a 64bit tests
- fixed some tests where records were not in interface section
- added more examples
- support functional includes
Release v.1.7.6
This release features:
- Release build fails when the Sempare License check is not confirmed
- Refactoring
- Support allowing for RTTI context to reference across DLL boundaries (but based off the same version of Delphi)
- Main package marked as runtime only
- Commits are now under GitHub Actions CI
- DPM support
Release v1.7.5
This release features:
- FIX: Improved JSON (System.JSON) support
- FIX: Refactor RTTI deref methods
Release v1.7.4
This release features:
- NEW: Assignment can now be done using both Pascal (:=) and C (=) operators. This is a flexibility feature to support users.
- NEW: default(value, default) method. Default is returned when IsEmpty(value) is true.
- NEW: domid(record_or_class [, context:str] )
- NEW: pascal-like ternary: <% greet := true; print( 'hello' if greet else 'bye' ) %>
- FIX: refactor old C-like ternary <% print(greet? 'hello':'bye' ) %>
- FIX: some of the language constructs required open and close brackets. These are now optional. Close bracket will be forced when the open bracket is used.
- FIX: semi colons can be used more liberally within the script blocks, even with empty statements. <% print('hello'); ; ; ; print('world') ; %>
Release v1.7.3
NEW: add some helper debug methods for probing the stack frames
NEW: add Context.VariableResolver
NEW: map values can now contain expressions
NEW: support for integration with the DelphiMVCFramework (bridge adaptor will be in that repository)
FIX: context missing on two of the TTemplateRegistry.Eval overloads which resulted in some of the config being missing
FIX: general refactorings
FIX: VCL dependency removed. Introductory licensing text is now included in template output when run without the define.
FIX: refactor SempareVersion() helper
Release 1.7.2
- NEW: add manage(object) and unmanage(object) to allow scripts to hint to evaluation engine to dispose of dynamically created objects
- NEW: updated Template Engine Playground to show evaluation time in ms
- NEW: updated Template Engine Playground to extract variables from a script into the grid
- NEW: updated Template Engine Playground with Carbon theme
- NEW: initial support for json/map like variables
- FIX: remove caching of TRttiMethod to ensure calls on virtual methods work correctly
- FIX: type coercion to TValue reapplied
Release 1.7.1
- NEW: update template resolution in TTemplateRegistry using contextual information
- NEW: add convenience helpers Template.Resolver(), Template.Resolve(), Template.ResolveWithContext()
- NEW: add Context.TemplateResolverWithContext
- FIX: stack overflow on TemplateRegistry when resolving templates explicitly added to the context.
- FIX: resource leak in TTemplateRegistry on shutdown
- FIX: TTemplateRegistry shutdown could potentially block
Release v1.7.0
- NEW: add extends/block support
- NEW: add whitespace stripping hints to script tokens
- NEW: add WebBroker demo
- NEW: add TTemplateRegistry helper (experimental)
- NEW: reformat docs with working navigation and function ordering
- NEW: add Sempare.Template.RCGenerator
- NEW: add hash comment support <%# comment %>
- NEW: support multiple statements in a script block. e.g. <% print('a'); print('b') %>
- NEW: add Template.ExtractBlocks
- NEW: add Context.WhitespaceChar
- NEW: added != alias for <>, == alias for =
- CHANGE: Remove eoAllowIgnoreNL, eoStripEmptyLines, eoReplaceNewline
- CHANGE: Rename Demo to Playground
- CHANGE: removed (* *) style comments within script blocks which didn't really work
- FIX: bug in elif
- FIX: cycle statement support in while loops
- FIX: various internal refactorings