|
1 | 1 | /* |
2 | | - * Copyright 2021-2023 DiffPlug |
| 2 | + * Copyright 2021-2025 DiffPlug |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
|
23 | 23 | import com.fasterxml.jackson.core.JsonGenerator; |
24 | 24 | import com.fasterxml.jackson.core.util.DefaultIndenter; |
25 | 25 | import com.fasterxml.jackson.core.util.DefaultPrettyPrinter; |
26 | | -import com.fasterxml.jackson.core.util.Separators; |
27 | 26 |
|
28 | 27 | import com.diffplug.spotless.FormatterFunc; |
29 | 28 | import com.diffplug.spotless.json.JacksonJsonConfig; |
@@ -88,23 +87,23 @@ protected static class SpotlessJsonPrettyPrinter extends DefaultPrettyPrinter { |
88 | 87 |
|
89 | 88 | public SpotlessJsonPrettyPrinter(boolean spaceBeforeSeparator) { |
90 | 89 | this.spaceBeforeSeparator = spaceBeforeSeparator; |
| 90 | + |
| 91 | + if (_objectFieldValueSeparatorWithSpaces == null || _objectFieldValueSeparatorWithSpaces.isEmpty()) { |
| 92 | + return; |
| 93 | + } |
| 94 | + |
| 95 | + // Keep the behavior consistent even if Jackson changes default behavior |
| 96 | + boolean startsWithSpace = Character.isWhitespace(_objectFieldValueSeparatorWithSpaces.charAt(0)); |
| 97 | + if (spaceBeforeSeparator && !startsWithSpace) { |
| 98 | + _objectFieldValueSeparatorWithSpaces = String.format(" %s", _objectFieldValueSeparatorWithSpaces); |
| 99 | + } else if (!spaceBeforeSeparator && startsWithSpace) { |
| 100 | + _objectFieldValueSeparatorWithSpaces = _objectFieldValueSeparatorWithSpaces.substring(1); |
| 101 | + } |
91 | 102 | } |
92 | 103 |
|
93 | 104 | @Override |
94 | 105 | public DefaultPrettyPrinter createInstance() { |
95 | 106 | return new SpotlessJsonPrettyPrinter(spaceBeforeSeparator); |
96 | 107 | } |
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 | | - } |
109 | 108 | } |
110 | 109 | } |
0 commit comments