Fix spaceBeforeSeparator
in Jackson Gradle plugin
#2103
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.
spaceBeforeSeparator
setter inJsonExtension
Hi, I was trying to set a custom value for
spaceBeforeSeparator
in Gradle Kotlin DSL, as shown in the Gradle plugin example for the Jackson formatted. However, the relevant property fromJacksonJsonConfig
was not exposed toJsonExtension
.spaceBeforeSeparator
alwaysfalse
After 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_objectFieldValueSeparatorWithSpaces
according 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#spaceBeforeSeparator
is alwaysfalse
whenSpotlessJsonPrettyPrinter#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.