Skip to content

Commit 4e5e8e6

Browse files
committed
fix pretty printer impl
1 parent 5c58e80 commit 4e5e8e6

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

lib/src/jackson/java/com/diffplug/spotless/glue/json/JacksonJsonFormatterFunc.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,23 +88,23 @@ protected static class SpotlessJsonPrettyPrinter extends DefaultPrettyPrinter {
8888

8989
public SpotlessJsonPrettyPrinter(boolean spaceBeforeSeparator) {
9090
this.spaceBeforeSeparator = spaceBeforeSeparator;
91+
92+
if (_objectFieldValueSeparatorWithSpaces == null || _objectFieldValueSeparatorWithSpaces.isEmpty()) {
93+
return;
94+
}
95+
96+
// Keep the behavior consistent even if Jackson changes default behavior
97+
boolean startsWithSpace = Character.isWhitespace(_objectFieldValueSeparatorWithSpaces.charAt(0));
98+
if (spaceBeforeSeparator && !startsWithSpace) {
99+
_objectFieldValueSeparatorWithSpaces = String.format(" %s", _objectFieldValueSeparatorWithSpaces);
100+
} else if (!spaceBeforeSeparator && startsWithSpace) {
101+
_objectFieldValueSeparatorWithSpaces = _objectFieldValueSeparatorWithSpaces.substring(1);
102+
}
91103
}
92104

93105
@Override
94106
public DefaultPrettyPrinter createInstance() {
95107
return new SpotlessJsonPrettyPrinter(spaceBeforeSeparator);
96108
}
97-
98-
@Override
99-
public DefaultPrettyPrinter withSeparators(Separators separators) {
100-
this._separators = separators;
101-
if (spaceBeforeSeparator) {
102-
// This is Jackson default behavior
103-
this._objectFieldValueSeparatorWithSpaces = " " + separators.getObjectFieldValueSeparator() + " ";
104-
} else {
105-
this._objectFieldValueSeparatorWithSpaces = separators.getObjectFieldValueSeparator() + " ";
106-
}
107-
return this;
108-
}
109109
}
110110
}

0 commit comments

Comments
 (0)