v0.23.0 - WrapIdentifier and SearchTerminals configuration system and simplification
Pre-release
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