Releases: IrisShaders/glsl-transformer
Releases · IrisShaders/glsl-transformer
v0.25.2 - Return type passthrough
- Made return types of activation method on
WrapIdentifier
andSearchTerminals
return each class' type instead of a more generic one - Added generic type passthrough to all single-argument
Transformation
graph-building methods
Full Changelog: v0.25.1...v0.25.2
v0.25.1 - Test release for debugging Maven Central downloads
There are no changes. The issue has been fixed and it was something on Sonatype's side.
Full Changelog: v0.25.0...v0.25.1
v0.25.0 - Tensor improvements
- @Burgerguy has contributed an updated and expanded
Tensor
Full Changelog: v0.24.0...v0.25.0
v0.24.0 - Printer fixes, more efficient walk continuation checks and more flexible config options in WrapIdentifier
Pre-release
- Added option for multiple detection results and external declarations for injection in
WrapIdentifier
SearchTerminal
will now throw if there are no targets- Refactors in
SearchTerminal
for tidiness and efficiency - Added
canStop
with which parse tree listeners (like walk phases) have to signal that they want to participate in theisDeepEnough
andisFinished
tests - More efficient is deep
isDeepEnough
andisFinished
tests by removing nodes that are finished - Removed unused methods from
ProxyParseTreeListener
- Added tests for
ProxyParseTreeListener
- Added "opening detection" to
PrintVisitor
which prints newly inserted nodes in the same whitespace context as nodes that were removed and left whitespace. This fixes issues where the whitespace around replacements was only after the inserted node causing identifiers to be concatenated. - Refactored
ExtendedContext
and added new functionality for keeping track of openings in the whitespace in the token stream left by removed nodes
Meta
- Added more compact version of the diagrams for
Transformation
methods - Fixed the Readme's code example
Full Changelog: v0.23.2...v0.24.0
v0.23.2 - WrapIdentifier parsed replacement fix
- Fix for
WrapIdentifier
's behavior with regard to the parsed replacement. It wasn't reading the config value correctly which is now fixed.
Full Changelog: v0.23.1...v0.23.2
v0.23.1 - Fix activation on SearchTerminals
- Fix the activation of the nested transformation phase in the SearchTerminals transformation. The activation of the transformation is now applied to the inner transformation phase.
- Added tests for this behavior
Full Changelog: v0.23.0...v0.23.1
v0.23.0 - WrapIdentifier and SearchTerminals configuration system and simplification
Pre-release
This update primarily brings a new configuration system to WrapIdentifier
and SearchTerminals
that makes them more flexible and covers more use-cases at once. Other changes include a refactoring TransformationPhase
and more tests.
- Added configuration system to
WrapIdentifier
andSearchTerminals
. This includes a number of methods for each individual configuration property. - Added
ConfigurableTransformation
that provides a basis for configurable transformations - Added
ValueSupplier
andCachingSupplier
together withCachePolicy
that are used to configure how the configuration properties within the configurable transformations are evaluated - Removed
impl
anddynamic
versions ofWrapIdentifier
andSearchTerminals
as these are now encompassed by the configurable main classes - Removed now superfluous utility methods from
WrapIdentifier
andSearchTerminals
- Moved a lot of transformation phase base functionality into
TransformationPhaseBase
- Refactored the base class of
HandlerTarget
to be the newTransformationPhaseBase
and not a full transformation phase which has extra things that handler targets don't need - Added
Activatable
andActivatableLifecycleUser
that abstract the activation concept that is similar in usage to the configuration methods on the new configurable transformations. This means lifecycle users can now more easily be made activatable. However, this activation doesn't necessarily have to be respected by whatever is executing the lifecycle user. This depends on what kind of lifecycle user it is. - Extracted
InjectionPoint
to its own class - Added option to turn off the insertion of newlines before consecutive groups of unparsable AST nodes in the printer. This is used by string nodes inserted by
TerminalReplaceTarget
. - Added methods to
Transformation
for generating repetitions of other lifecycle users - Added
ConfigUtil
that provides default-handling methods currently only used in determining activation of lifecycle users - Added tests for
WrapIdentifier
,SearchTerminals
andTerminalReplaceTarget
- Added assertions to
ExecutionPlanner
and accompanying tests that make sure that weird broken dependency graphs aren't accepted - Refactors to tests and additions of utility structures
- Fixed an issue where the
FilterTokenSource
used the wrong initialization method on lifecycle users
Full Changelog: v0.22.2...v0.23.0
v0.22.2 - WrapIdentifierExternalDeclaration hotfix
- Same hotfix for WrapIdentifierExternalDeclaration as in the previous release
- Internal improvements in test code
Full Changelog: v0.22.1...v0.22.2
v0.22.1 - WrapIdentifierDynamic hotfix and formatting
- Hotfix for WrapIdentifierDynamic dependency setup
- Added test for a custom root transformation
Meta:
- The codebase is now using wildcard import formatting for more succinct import blocks
Full Changelog: v0.22.0...v0.22.1
v0.22.0 - Custom root transformations for conditional dependencies
- Allowed setting a custom root transformation on
ExecutionPlanner
and thereby alsoTransformationManager
. This gives the flexibility to use conditional dependencies in the root transformation which is the most common use of conditional dependencies. - An empty root transformation is only used by
ExecutionPlanner
if necessary now - Made
TransformationManager
throw on parse errors by default - Updated ANTLR to version 4.10.1
Full Changelog: v0.21.0...v0.22.0