-
Jamie Tanna authored
As this is the work of ~6 weeks effort, there is unfortunately not a nice commit history, implementing piece-by-piece that can be added. To ensure that this works correctly, we've utilised feature files from [gherkin-java], as well as a few custom ones, with a test harness to ensure that we're able to handle all valid - and invalid - forms of feature files. This is bundled in with a test harness, utilising abstract classes to enable reusability across test cases to validate that: - we can check whitespace independent - quicker feedback while testing, allows making changes without worrying about indentation, and that semantically there's nothing lost - we can check whitespace dependent - the truly important tests We've gone with method calls in a nested fashion as this lends to easier selective incrementing of the indentation level. We pass the `State` around so we can remain stateless, which allows re-using the `PrettyFormatter` in a thread-safe fashion. Because we cannot create a new `ParseError` as its visibility is hidden for external construction, we can instead wrap it within a `CouldNotParseException`. This also includes the lookup for comments in a method adapted from a suggestion from Jack Gough. I'm releasing this as v1.0.0 straight away as I'd like to keep stability for consumers - or bump the major version accordingly. This also provides: - Spotless configuration for Java + Gradle - Required configuration for SonarCloud - Required configuration for publishing to OSSRH Closes #1. [gherkin-java]: https://github.com/cucumber/gherkin-java/tree/6c30803ae99a278b73f08df1a77194dd59974a9f
e48a00deJamie Tanna authoredAs this is the work of ~6 weeks effort, there is unfortunately not a nice commit history, implementing piece-by-piece that can be added. To ensure that this works correctly, we've utilised feature files from [gherkin-java], as well as a few custom ones, with a test harness to ensure that we're able to handle all valid - and invalid - forms of feature files. This is bundled in with a test harness, utilising abstract classes to enable reusability across test cases to validate that: - we can check whitespace independent - quicker feedback while testing, allows making changes without worrying about indentation, and that semantically there's nothing lost - we can check whitespace dependent - the truly important tests We've gone with method calls in a nested fashion as this lends to easier selective incrementing of the indentation level. We pass the `State` around so we can remain stateless, which allows re-using the `PrettyFormatter` in a thread-safe fashion. Because we cannot create a new `ParseError` as its visibility is hidden for external construction, we can instead wrap it within a `CouldNotParseException`. This also includes the lookup for comments in a method adapted from a suggestion from Jack Gough. I'm releasing this as v1.0.0 straight away as I'd like to keep stability for consumers - or bump the major version accordingly. This also provides: - Spotless configuration for Java + Gradle - Required configuration for SonarCloud - Required configuration for publishing to OSSRH Closes #1. [gherkin-java]: https://github.com/cucumber/gherkin-java/tree/6c30803ae99a278b73f08df1a77194dd59974a9f
This project is licensed under the MIT License.
Learn more
Loading