Skip to content

v0.23.0 - WrapIdentifier and SearchTerminals configuration system and simplification

Pre-release
Pre-release
Compare
Choose a tag to compare
@douira douira released this 12 May 02:14
· 645 commits to main since this release
c1a4f50

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 and SearchTerminals. This includes a number of methods for each individual configuration property.
  • Added ConfigurableTransformation that provides a basis for configurable transformations
  • Added ValueSupplier and CachingSupplier together with CachePolicy that are used to configure how the configuration properties within the configurable transformations are evaluated
  • Removed impl and dynamic versions of WrapIdentifier and SearchTerminals as these are now encompassed by the configurable main classes
  • Removed now superfluous utility methods from WrapIdentifier and SearchTerminals
  • Moved a lot of transformation phase base functionality into TransformationPhaseBase
  • Refactored the base class of HandlerTarget to be the new TransformationPhaseBase and not a full transformation phase which has extra things that handler targets don't need
  • Added Activatable and ActivatableLifecycleUser 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 and TerminalReplaceTarget
  • 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