From 5c58e804330954e74c08195249006b7f992e4ab5 Mon Sep 17 00:00:00 2001 From: fAndreuzzi Date: Wed, 1 May 2024 00:32:54 +0200 Subject: [PATCH 1/6] allow setting spaceBeforeSeparator --- .../java/com/diffplug/gradle/spotless/JsonExtension.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JsonExtension.java b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JsonExtension.java index 441e25b93d..2e3900cbe6 100644 --- a/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JsonExtension.java +++ b/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JsonExtension.java @@ -194,6 +194,11 @@ public JacksonJsonGradleConfig jsonFeature(String feature, boolean toggle) { return this; } + public JacksonJsonGradleConfig setSpaceBeforeSeparator(boolean value) { + jacksonConfig.setSpaceBeforeSeparator(value); + return this; + } + @Override public JacksonJsonGradleConfig self() { return this; From 4e5e8e6874ae410541bbe3fd95cf3e5ffb9e9ce9 Mon Sep 17 00:00:00 2001 From: fAndreuzzi Date: Wed, 1 May 2024 00:33:03 +0200 Subject: [PATCH 2/6] fix pretty printer impl --- .../glue/json/JacksonJsonFormatterFunc.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java b/lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java index 71215eb4a3..b7b1f0f507 100644 --- a/lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java +++ b/lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java @@ -88,23 +88,23 @@ protected static class SpotlessJsonPrettyPrinter extends DefaultPrettyPrinter { public SpotlessJsonPrettyPrinter(boolean spaceBeforeSeparator) { this.spaceBeforeSeparator = spaceBeforeSeparator; + + if (_objectFieldValueSeparatorWithSpaces == null || _objectFieldValueSeparatorWithSpaces.isEmpty()) { + return; + } + + // Keep the behavior consistent even if Jackson changes default behavior + boolean startsWithSpace = Character.isWhitespace(_objectFieldValueSeparatorWithSpaces.charAt(0)); + if (spaceBeforeSeparator && !startsWithSpace) { + _objectFieldValueSeparatorWithSpaces = String.format(" %s", _objectFieldValueSeparatorWithSpaces); + } else if (!spaceBeforeSeparator && startsWithSpace) { + _objectFieldValueSeparatorWithSpaces = _objectFieldValueSeparatorWithSpaces.substring(1); + } } @Override public DefaultPrettyPrinter createInstance() { return new SpotlessJsonPrettyPrinter(spaceBeforeSeparator); } - - @Override - public DefaultPrettyPrinter withSeparators(Separators separators) { - this._separators = separators; - if (spaceBeforeSeparator) { - // This is Jackson default behavior - this._objectFieldValueSeparatorWithSpaces = " " + separators.getObjectFieldValueSeparator() + " "; - } else { - this._objectFieldValueSeparatorWithSpaces = separators.getObjectFieldValueSeparator() + " "; - } - return this; - } } } From 6699fcdebc4c697b16e510d2532bb268ad283a57 Mon Sep 17 00:00:00 2001 From: fAndreuzzi Date: Wed, 1 May 2024 00:40:55 +0200 Subject: [PATCH 3/6] changelog --- plugin-maven/CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin-maven/CHANGES.md b/plugin-maven/CHANGES.md index af419b1ad3..e721c53162 100644 --- a/plugin-maven/CHANGES.md +++ b/plugin-maven/CHANGES.md @@ -6,6 +6,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( ### Fixed * Ignore system git config when running tests ([#1990](https://github.com/diffplug/spotless/issues/1990)) * Correctly provide EditorConfig property types for Ktlint ([#2052](https://github.com/diffplug/spotless/issues/2052)) +* Fix `spaceBeforeSeparator` in Jackson formatter ### Changes * Bump default `ktfmt` version to latest `0.46` -> `0.47`. ([#2045](https://github.com/diffplug/spotless/pull/2045)) * Bump default `sortpom` version to latest `3.2.1` -> `3.4.0`. ([#2049](https://github.com/diffplug/spotless/pull/2049)) From d0ac740bc93b524f3c788c50e34d0115644c0b06 Mon Sep 17 00:00:00 2001 From: fAndreuzzi Date: Mon, 1 Jul 2024 16:04:43 +0200 Subject: [PATCH 4/6] spotless run --- .../diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java b/lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java index b7b1f0f507..350c8baea2 100644 --- a/lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java +++ b/lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java @@ -1,5 +1,5 @@ /* - * Copyright 2021-2023 DiffPlug + * Copyright 2021-2024 DiffPlug * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.util.DefaultIndenter; import com.fasterxml.jackson.core.util.DefaultPrettyPrinter; -import com.fasterxml.jackson.core.util.Separators; import com.diffplug.spotless.FormatterFunc; import com.diffplug.spotless.json.JacksonJsonConfig; From 378522dc88fa2bf678a723c0df5a5be521f78c75 Mon Sep 17 00:00:00 2001 From: fAndreuzzi Date: Mon, 1 Jul 2024 16:05:26 +0200 Subject: [PATCH 5/6] update changelogs --- CHANGES.md | 1 + plugin-gradle/CHANGES.md | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 77e8e109d8..1e10188e8c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -17,6 +17,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( * Bump default `eclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) * Bump default `greclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179), [#2190](https://github.com/diffplug/spotless/pull/2190)) * Bump default `cdt` version to latest `11.3` -> `11.6`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) +* Fix `spaceBeforeSeparator` in Jackson formatter ### Fixed * Fix compatibility issue introduced by `ktfmt` `0.51`. ([#2172](https://github.com/diffplug/spotless/issues/2172)) ### Added diff --git a/plugin-gradle/CHANGES.md b/plugin-gradle/CHANGES.md index 91c9f03661..ea8c57e888 100644 --- a/plugin-gradle/CHANGES.md +++ b/plugin-gradle/CHANGES.md @@ -10,6 +10,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( * Bump default `eclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) * Bump default `greclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179), [#2190](https://github.com/diffplug/spotless/pull/2190)) * Bump default `cdt` version to latest `11.3` -> `11.6`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) +* Fix `spaceBeforeSeparator` in Jackson formatter ### Fixed * Fix compatibility issue introduced by `ktfmt` `0.51`. ([#2172](https://github.com/diffplug/spotless/issues/2172)) ### Added From 803244912a8697a6c6012918cceda21d21881cbc Mon Sep 17 00:00:00 2001 From: fAndreuzzi Date: Mon, 1 Jul 2024 16:06:46 +0200 Subject: [PATCH 6/6] pr link --- CHANGES.md | 2 +- plugin-gradle/CHANGES.md | 2 +- plugin-maven/CHANGES.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 1e10188e8c..42e8a61ce9 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -17,7 +17,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( * Bump default `eclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) * Bump default `greclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179), [#2190](https://github.com/diffplug/spotless/pull/2190)) * Bump default `cdt` version to latest `11.3` -> `11.6`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) -* Fix `spaceBeforeSeparator` in Jackson formatter +* Fix `spaceBeforeSeparator` in Jackson formatter. ([#2103](https://github.com/diffplug/spotless/pull/2103)) ### Fixed * Fix compatibility issue introduced by `ktfmt` `0.51`. ([#2172](https://github.com/diffplug/spotless/issues/2172)) ### Added diff --git a/plugin-gradle/CHANGES.md b/plugin-gradle/CHANGES.md index ea8c57e888..504cbb8f43 100644 --- a/plugin-gradle/CHANGES.md +++ b/plugin-gradle/CHANGES.md @@ -10,7 +10,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( * Bump default `eclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) * Bump default `greclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179), [#2190](https://github.com/diffplug/spotless/pull/2190)) * Bump default `cdt` version to latest `11.3` -> `11.6`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) -* Fix `spaceBeforeSeparator` in Jackson formatter +* Fix `spaceBeforeSeparator` in Jackson formatter. ([#2103](https://github.com/diffplug/spotless/pull/2103)) ### Fixed * Fix compatibility issue introduced by `ktfmt` `0.51`. ([#2172](https://github.com/diffplug/spotless/issues/2172)) ### Added diff --git a/plugin-maven/CHANGES.md b/plugin-maven/CHANGES.md index 58bcaedd85..23fc3fabcc 100644 --- a/plugin-maven/CHANGES.md +++ b/plugin-maven/CHANGES.md @@ -10,7 +10,7 @@ We adhere to the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format ( * Bump default `eclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) * Bump default `greclipse` version to latest `4.29` -> `4.32`. ([#2179](https://github.com/diffplug/spotless/pull/2179), [#2190](https://github.com/diffplug/spotless/pull/2190)) * Bump default `cdt` version to latest `11.3` -> `11.6`. ([#2179](https://github.com/diffplug/spotless/pull/2179)) -* Fix `spaceBeforeSeparator` in Jackson formatter +* Fix `spaceBeforeSeparator` in Jackson formatter. ([#2103](https://github.com/diffplug/spotless/pull/2103)) ### Fixed * Fix compatibility issue introduced by `ktfmt` `0.51`. ([#2172](https://github.com/diffplug/spotless/issues/2172)) ### Added