Skip to content

Commit 4e96d71

Browse files
committed
Revert "Merge pull request #1124 from HubSpot/legacy-text-merging"
This reverts commit 3b99a0a, reversing changes made to 264ac2b.
1 parent 3b99a0a commit 4e96d71

4 files changed

Lines changed: 2 additions & 71 deletions

File tree

src/main/java/com/hubspot/jinjava/LegacyOverrides.java

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,16 @@
33
/**
44
* This class allows Jinjava to be configured to override legacy behaviour.
55
* LegacyOverrides.NONE signifies that none of the legacy functionality will be overridden.
6-
* LegacyOverrides.ALL signifies that all new functionality will be used; avoid legacy "bugs".
76
*/
87
public class LegacyOverrides {
98
public static final LegacyOverrides NONE = new LegacyOverrides.Builder().build();
10-
public static final LegacyOverrides ALL = new LegacyOverrides.Builder()
11-
.withEvaluateMapKeys(true)
12-
.withIterateOverMapKeys(true)
13-
.withUsePyishObjectMapper(true)
14-
.withUseSnakeCasePropertyNaming(true)
15-
.withWhitespaceRequiredWithinTokens(true)
16-
.withUseNaturalOperatorPrecedence(true)
17-
.withParseWhitespaceControlStrictly(true)
18-
.withAllowAdjacentTextNodes(true)
19-
.build();
209
private final boolean evaluateMapKeys;
2110
private final boolean iterateOverMapKeys;
2211
private final boolean usePyishObjectMapper;
2312
private final boolean useSnakeCasePropertyNaming;
2413
private final boolean whitespaceRequiredWithinTokens;
2514
private final boolean useNaturalOperatorPrecedence;
2615
private final boolean parseWhitespaceControlStrictly;
27-
private final boolean allowAdjacentTextNodes;
2816

2917
private LegacyOverrides(Builder builder) {
3018
evaluateMapKeys = builder.evaluateMapKeys;
@@ -34,7 +22,6 @@ private LegacyOverrides(Builder builder) {
3422
whitespaceRequiredWithinTokens = builder.whitespaceRequiredWithinTokens;
3523
useNaturalOperatorPrecedence = builder.useNaturalOperatorPrecedence;
3624
parseWhitespaceControlStrictly = builder.parseWhitespaceControlStrictly;
37-
allowAdjacentTextNodes = builder.allowAdjacentTextNodes;
3825
}
3926

4027
public static Builder newBuilder() {
@@ -69,10 +56,6 @@ public boolean isParseWhitespaceControlStrictly() {
6956
return parseWhitespaceControlStrictly;
7057
}
7158

72-
public boolean isAllowAdjacentTextNodes() {
73-
return allowAdjacentTextNodes;
74-
}
75-
7659
public static class Builder {
7760
private boolean evaluateMapKeys = false;
7861
private boolean iterateOverMapKeys = false;
@@ -81,7 +64,6 @@ public static class Builder {
8164
private boolean whitespaceRequiredWithinTokens = false;
8265
private boolean useNaturalOperatorPrecedence = false;
8366
private boolean parseWhitespaceControlStrictly = false;
84-
private boolean allowAdjacentTextNodes = false;
8567

8668
private Builder() {}
8769

@@ -101,8 +83,7 @@ public static Builder from(LegacyOverrides legacyOverrides) {
10183
.withUseNaturalOperatorPrecedence(legacyOverrides.useNaturalOperatorPrecedence)
10284
.withParseWhitespaceControlStrictly(
10385
legacyOverrides.parseWhitespaceControlStrictly
104-
)
105-
.withAllowAdjacentTextNodes(legacyOverrides.allowAdjacentTextNodes);
86+
);
10687
}
10788

10889
public Builder withEvaluateMapKeys(boolean evaluateMapKeys) {
@@ -145,10 +126,5 @@ public Builder withParseWhitespaceControlStrictly(
145126
this.parseWhitespaceControlStrictly = parseWhitespaceControlStrictly;
146127
return this;
147128
}
148-
149-
public Builder withAllowAdjacentTextNodes(boolean allowAdjacentTextNodes) {
150-
this.allowAdjacentTextNodes = allowAdjacentTextNodes;
151-
return this;
152-
}
153129
}
154130
}

src/main/java/com/hubspot/jinjava/tree/TreeParser.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,7 @@ public Node buildTree() {
6262
Node node = nextNode();
6363

6464
if (node != null) {
65-
if (
66-
node instanceof TextNode &&
67-
getLastSibling() instanceof TextNode &&
68-
!interpreter.getConfig().getLegacyOverrides().isAllowAdjacentTextNodes()
69-
) {
70-
// merge adjacent text nodes so whitespace control properly applies
71-
((TextToken) getLastSibling().getMaster()).mergeImageAndContent(
72-
(TextToken) node.getMaster()
73-
);
74-
} else {
75-
parent.getChildren().add(node);
76-
}
65+
parent.getChildren().add(node);
7766
}
7867
}
7968

src/main/java/com/hubspot/jinjava/tree/parse/TextToken.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,6 @@ public TextToken(
2929
super(image, lineNumber, startPosition, symbols);
3030
}
3131

32-
public void mergeImageAndContent(TextToken otherToken) {
33-
String thisOutput = output();
34-
String otherTokenOutput = otherToken.output();
35-
this.image = thisOutput + otherTokenOutput;
36-
this.content = image;
37-
}
38-
3932
@Override
4033
public int getType() {
4134
return getSymbols().getFixed();

src/test/java/com/hubspot/jinjava/tree/TreeParserTest.java

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.hubspot.jinjava.BaseInterpretingTest;
77
import com.hubspot.jinjava.Jinjava;
88
import com.hubspot.jinjava.JinjavaConfig;
9-
import com.hubspot.jinjava.LegacyOverrides;
109
import com.hubspot.jinjava.interpret.TemplateError.ErrorType;
1110
import java.nio.charset.StandardCharsets;
1211
import org.junit.Test;
@@ -232,39 +231,13 @@ public void itTrimsNotes() {
232231
assertThat(interpreter.render(tree)).isEqualTo("AB");
233232
}
234233

235-
@Test
236-
public void itMergesTextNodesWhileRespectingTrim() {
237-
String expression = "{% print 'A' -%}\n{#- note -#}\nB\n{%- print 'C' %}";
238-
final Node tree = new TreeParser(interpreter, expression).buildTree();
239-
assertThat(interpreter.render(tree)).isEqualTo("ABC");
240-
}
241-
242234
@Test
243235
public void itTrimsExpressions() {
244236
String expression = "A\n{{- 'B' -}}\nC";
245237
final Node tree = new TreeParser(interpreter, expression).buildTree();
246238
assertThat(interpreter.render(tree)).isEqualTo("ABC");
247239
}
248240

249-
@Test
250-
public void itDoesNotMergeAdjacentTextNodesWhenLegacyOverrideIsApplied() {
251-
String expression = "A\n{%- if true -%}\n{# comment #}\nB{% endif %}";
252-
final Node tree = new TreeParser(interpreter, expression).buildTree();
253-
assertThat(interpreter.render(tree)).isEqualTo("AB");
254-
interpreter =
255-
new Jinjava(
256-
JinjavaConfig
257-
.newBuilder()
258-
.withLegacyOverrides(
259-
LegacyOverrides.newBuilder().withAllowAdjacentTextNodes(true).build()
260-
)
261-
.build()
262-
)
263-
.newInterpreter();
264-
final Node overriddenTree = new TreeParser(interpreter, expression).buildTree();
265-
assertThat(interpreter.render(overriddenTree)).isEqualTo("A\nB");
266-
}
267-
268241
Node parse(String fixture) {
269242
try {
270243
return new TreeParser(

0 commit comments

Comments
 (0)