From c831dc63cda563da634907f8a1c61c63c9351561 Mon Sep 17 00:00:00 2001 From: Titouan Vervack Date: Tue, 27 Jul 2021 15:01:51 +0200 Subject: [PATCH] Fixed typo, NPE and small cleanup (#1713) --- .../debug/TextRegionAccessToString.java | 88 ++++++++++--------- .../internal/AbstractHiddenRegion.java | 9 +- .../regionaccess/internal/NodeRegion.java | 2 +- .../regionaccess/internal/StringRegion.java | 2 +- 4 files changed, 55 insertions(+), 46 deletions(-) diff --git a/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/debug/TextRegionAccessToString.java b/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/debug/TextRegionAccessToString.java index 18f0ab75d..f94e9273a 100644 --- a/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/debug/TextRegionAccessToString.java +++ b/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/debug/TextRegionAccessToString.java @@ -8,6 +8,7 @@ *******************************************************************************/ package org.eclipse.xtext.formatting2.debug; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -128,7 +129,7 @@ public class TextRegionAccessToString { for (ITextSegmentDiff diff : this.access.getRegionDifferences()) { ISequentialRegion current = toSequential(diff.getOriginalFirstRegion()); ISequentialRegion last = toSequential(diff.getOriginalLastRegion()); - List regions = Lists.newArrayList(); + List regions = new ArrayList<>(); while (current != null) { regions.add(current); if (current.getOffset() >= last.getOffset()) { @@ -174,7 +175,7 @@ public class TextRegionAccessToString { private boolean hideIndentation = false; - private boolean hightlightOrigin = false; + private boolean highlightOrigin = false; private ITextSegment origin; @@ -183,7 +184,7 @@ public class TextRegionAccessToString { protected void appendRegions(TextRegionListToString result, List list, DiffColumn diff, boolean isDiffAppendix) { Multimap hiddens = LinkedListMultimap.create(); - List errors = Lists.newArrayList(); + List errors = new ArrayList<>(); ITextRegionAccess access = list.get(0).getTextRegionAccess(); TreeIterator all = EcoreUtil2.eAll(access.regionForRootEObject().getSemanticElement()); while (all.hasNext()) { @@ -224,8 +225,8 @@ public class TextRegionAccessToString { } indentation = min < 0 ? min * -1 : 0; for (ITextSegment region : list) { - List previous = Lists.newArrayList(); - List next = Lists.newArrayList(); + List previous = new ArrayList<>(); + List next = new ArrayList<>(); List middle = Lists.newArrayList(toString(region)); if (region instanceof IHiddenRegion) { Collection found = hiddens.get((IHiddenRegion) region); @@ -273,8 +274,11 @@ public class TextRegionAccessToString { return this; } - public TextRegionAccessToString hightlightOrigin() { - this.hightlightOrigin = true; + /** + * @since 2.26 + */ + public TextRegionAccessToString highlightOrigin() { + this.highlightOrigin = true; return this; } @@ -292,8 +296,11 @@ public class TextRegionAccessToString { return hideIndentation; } - public boolean isHightlightOrigin() { - return hightlightOrigin; + /** + * @since 2.26 + */ + public boolean isHighlightOrigin() { + return highlightOrigin; } protected String quote(String string) { @@ -349,14 +356,17 @@ public class TextRegionAccessToString { return grammarToString.apply((AbstractElement) ele); if (ele instanceof AbstractRule) return ele.eClass().getName() + "'" + ((AbstractRule) ele).getName() + "'"; + if (ele == null) { + return "(null)"; + } return ele.toString(); } protected String toString(IComment comment) { String text = quote(comment.getText()); - String gammar = toString(comment.getGrammarElement()); + String grammar = toString(comment.getGrammarElement()); String association = comment.getAssociation() + ""; - return String.format("%s Comment:%s Association:%s", text, gammar, association); + return String.format("%s Comment:%s Association:%s", text, grammar, association); } protected String toString(IEObjectRegion region) { @@ -369,7 +379,7 @@ public class TextRegionAccessToString { builder.append(((AbstractRule) element).getName()); else builder.append(": ERROR: No grammar element."); - List segments = Lists.newArrayList(); + List segments = new ArrayList<>(); EObject current = obj; while (current.eContainer() != null) { EObject container = current.eContainer(); @@ -424,7 +434,7 @@ public class TextRegionAccessToString { result = region.getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(region)); else result = "null"; - if (hightlightOrigin && region == origin) + if (highlightOrigin && region == origin) return ">>>" + result + "<<<"; return result; } @@ -436,36 +446,34 @@ public class TextRegionAccessToString { } protected List toTokenAndGapList() { - final int range = this.hightlightOrigin ? 4 : (Integer.MAX_VALUE / 2); + int range = this.highlightOrigin ? 4 : (Integer.MAX_VALUE / 2); ITextSegment first = null; - { - ITextSegment current = origin; - for (int i = 0; i < range && current != null; i++) { - first = current; - if (current instanceof ITextRegionAccess) - current = ((ITextRegionAccess) current).regionForRootEObject().getPreviousHiddenRegion(); - else if (current instanceof ISequentialRegion) - current = ((ISequentialRegion) current).getPreviousHiddenRegion(); - else if (current instanceof IHiddenRegionPart) - current = ((IHiddenRegionPart) current).getHiddenRegion(); - else - throw new IllegalStateException("Unexpected Type: " + current.getClass()); - } + ITextSegment current = origin; + for (int i = 0; i < range && current != null; i++) { + first = current; + if (current instanceof ITextRegionAccess) + current = ((ITextRegionAccess) current).regionForRootEObject().getPreviousHiddenRegion(); + else if (current instanceof ISequentialRegion) + current = ((ISequentialRegion) current).getPreviousHiddenRegion(); + else if (current instanceof IHiddenRegionPart) + current = ((IHiddenRegionPart) current).getHiddenRegion(); + else + throw new IllegalStateException("Unexpected Type: " + current.getClass()); } + if (first == null) return Collections.emptyList(); - List result = Lists.newArrayList(); - { - ITextSegment current = first; - for (int i = 0; i <= (range * 2) && current != null; i++) { - result.add(current); - if (current instanceof ISemanticRegion) - current = ((ISemanticRegion) current).getNextHiddenRegion(); - else if (current instanceof IHiddenRegion) - current = ((IHiddenRegion) current).getNextSemanticRegion(); - else - throw new IllegalStateException("Unexpected Type: " + current.getClass()); - } + + List result = new ArrayList<>(); + ITextSegment currentRegion = first; + for (int i = 0; i <= (range * 2) && currentRegion != null; i++) { + result.add(currentRegion); + if (currentRegion instanceof ISemanticRegion) + currentRegion = ((ISemanticRegion) currentRegion).getNextHiddenRegion(); + else if (currentRegion instanceof IHiddenRegion) + currentRegion = ((IHiddenRegion) currentRegion).getNextSemanticRegion(); + else + throw new IllegalStateException("Unexpected Type: " + currentRegion.getClass()); } return result; } @@ -477,7 +485,7 @@ public class TextRegionAccessToString { public TextRegionAccessToString withRegionAccess(ITextRegionAccess access) { this.origin = access.regionForRootEObject(); - this.hightlightOrigin = false; + this.highlightOrigin = false; return this; } diff --git a/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/AbstractHiddenRegion.java b/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/AbstractHiddenRegion.java index 028984e26..85cb3aacb 100644 --- a/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/AbstractHiddenRegion.java +++ b/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/AbstractHiddenRegion.java @@ -8,6 +8,7 @@ *******************************************************************************/ package org.eclipse.xtext.formatting2.regionaccess.internal; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -48,10 +49,10 @@ public abstract class AbstractHiddenRegion extends AbstractTextSegment implement protected List collectAlternatingSpaceAndComments(boolean includeComments) { List parts = getParts(); if (parts.isEmpty()) { - return Collections.singletonList(this); + return Collections.singletonList(this); } else { ITextSegment lastWhitespace = null; - List result = Lists.newArrayList(); + List result = new ArrayList<>(); for (IHiddenRegionPart part : parts) { if (part instanceof IWhitespace) { if (lastWhitespace == null) { @@ -130,7 +131,7 @@ public abstract class AbstractHiddenRegion extends AbstractTextSegment implement @Override public List getParts() { - return ImmutableList.copyOf(hiddens); + return ImmutableList.copyOf(hiddens); } @Override @@ -168,7 +169,7 @@ public abstract class AbstractHiddenRegion extends AbstractTextSegment implement @Override public String toString() { - return new TextRegionAccessToString().withOrigin(this).hightlightOrigin().toString(); + return new TextRegionAccessToString().withOrigin(this).highlightOrigin().toString(); } @Override diff --git a/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/NodeRegion.java b/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/NodeRegion.java index d479047fe..1f5de5754 100644 --- a/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/NodeRegion.java +++ b/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/NodeRegion.java @@ -51,6 +51,6 @@ public class NodeRegion extends AbstractTextSegment { @Override public String toString() { - return new TextRegionAccessToString().withOrigin(this).hightlightOrigin().toString(); + return new TextRegionAccessToString().withOrigin(this).highlightOrigin().toString(); } } diff --git a/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/StringRegion.java b/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/StringRegion.java index 00129d2e8..b6eb30eb2 100644 --- a/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/StringRegion.java +++ b/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/StringRegion.java @@ -43,6 +43,6 @@ public class StringRegion extends AbstractTextSegment { @Override public String toString() { - return new TextRegionAccessToString().withOrigin(this).hightlightOrigin().toString(); + return new TextRegionAccessToString().withOrigin(this).highlightOrigin().toString(); } } \ No newline at end of file