Fix spaceBeforeSeparator in Jackson Gradle plugin #2103
Merged
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.

spaceBeforeSeparatorsetter inJsonExtensionHi, I was trying to set a custom value for
spaceBeforeSeparatorin Gradle Kotlin DSL, as shown in the Gradle plugin example for the Jackson formatted. However, the relevant property fromJacksonJsonConfigwas not exposed toJsonExtension.spaceBeforeSeparatoralwaysfalseAfter tweaking the plugin with a local snapshot to add the relevant setter, I noticed that the rule that I was trying to achieve (i.e.
spaceBeforeSeparator=true) was not respected by spotless. The effective behavior was that expected withspaceBeforeSeparator=false. I digged a little bit more:SpotlessJsonPrettyPrinter#withSeparators(Separators)is responsible for tweaking_objectFieldValueSeparatorWithSpacesaccording to the user-provided value ofspaceBeforeSeparator. However, this method is called by the default constructor ofDefaultPrettyPrinter, before we have a chance to set the value of the fieldspaceBeforeSeparator. Thus,SpotlessJsonPrettyPrinter#spaceBeforeSeparatoris alwaysfalsewhenSpotlessJsonPrettyPrinter#withSeparators(Separators)is called.PR content
In this PR, I address the following:
JsonExtension);JacksonJsonFormatterFunc).Let me know if I'm missing something, I've tried the tweaked plugin and I observed the expected behavior.