mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
lst: remove unnecessary field
This commit is contained in:
@@ -526,10 +526,10 @@ public class LineStatusTracker {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
if (changedLine1 == changedLine2) {
|
||||
return Collections.singletonList(new Range(changedLine1, changedLine2, vcsLine1, vcsLine2, Range.DELETED));
|
||||
return Collections.singletonList(new Range(changedLine1, changedLine2, vcsLine1, vcsLine2));
|
||||
}
|
||||
if (vcsLine1 == vcsLine2) {
|
||||
return Collections.singletonList(new Range(changedLine1, changedLine2, vcsLine1, vcsLine2, Range.INSERTED));
|
||||
return Collections.singletonList(new Range(changedLine1, changedLine2, vcsLine1, vcsLine2));
|
||||
}
|
||||
|
||||
List<String> lines = new DocumentWrapper(myDocument).getLines(changedLine1, changedLine2 - 1);
|
||||
|
||||
@@ -18,16 +18,11 @@ package com.intellij.openapi.vcs.ex;
|
||||
import com.intellij.diff.util.DiffUtil;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.markup.RangeHighlighter;
|
||||
import com.intellij.util.diff.Diff;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* author: lesya
|
||||
*/
|
||||
public class Range {
|
||||
private static final Logger LOG = Logger.getInstance(Range.class);
|
||||
public static final byte EQUAL = 0;
|
||||
@@ -42,81 +37,64 @@ public class Range {
|
||||
private int myLine2;
|
||||
private final int myVcsLine1;
|
||||
private final int myVcsLine2;
|
||||
private final byte myType;
|
||||
@Nullable private RangeHighlighter myRangeHighlighter;
|
||||
|
||||
@Nullable private final List<InnerRange> myInnerRanges;
|
||||
|
||||
@Nullable private RangeHighlighter myRangeHighlighter;
|
||||
private boolean myValid = true;
|
||||
|
||||
public Range(@NotNull Range range) {
|
||||
this(range.getLine1(), range.getLine2(), range.getVcsLine1(), range.getVcsLine2(), range.getType());
|
||||
this(range.getLine1(), range.getLine2(), range.getVcsLine1(), range.getVcsLine2());
|
||||
}
|
||||
|
||||
public Range(int line1, int line2, int vcsLine1, int vcsLine2, byte type) {
|
||||
this(line1, line2, vcsLine1, vcsLine2, type, null);
|
||||
public Range(int line1, int line2, int vcsLine1, int vcsLine2) {
|
||||
this(line1, line2, vcsLine1, vcsLine2, null);
|
||||
}
|
||||
|
||||
public Range(int line1, int line2, int vcsLine1, int vcsLine2, byte type, @Nullable List<InnerRange> innerRanges) {
|
||||
public Range(int line1, int line2, int vcsLine1, int vcsLine2, @Nullable List<InnerRange> innerRanges) {
|
||||
assert line1 != line2 || vcsLine1 != vcsLine2;
|
||||
|
||||
myLine1 = line1;
|
||||
myLine2 = line2;
|
||||
myVcsLine1 = vcsLine1;
|
||||
myVcsLine2 = vcsLine2;
|
||||
myType = type;
|
||||
myInnerRanges = innerRanges;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return myVcsLine1 ^ myVcsLine2 ^ myType ^ myLine1 ^ myLine2;
|
||||
return myVcsLine1 ^ myVcsLine2 ^ myLine1 ^ myLine2;
|
||||
}
|
||||
|
||||
public boolean equals(Object object) {
|
||||
if (!(object instanceof Range)) return false;
|
||||
Range other = (Range)object;
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
if (myInnerRanges != null) {
|
||||
if (other.myInnerRanges == null) return false;
|
||||
if (myInnerRanges.size() != other.myInnerRanges.size()) return false;
|
||||
Range range = (Range)o;
|
||||
|
||||
for (int i = 0; i < myInnerRanges.size(); i++) {
|
||||
if (!myInnerRanges.get(i).equals(other.myInnerRanges.get(i))) return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (other.myInnerRanges != null) return false;
|
||||
if (myLine1 != range.myLine1) return false;
|
||||
if (myLine2 != range.myLine2) return false;
|
||||
if (myVcsLine1 != range.myVcsLine1) return false;
|
||||
if (myVcsLine2 != range.myVcsLine2) return false;
|
||||
|
||||
if (myInnerRanges == null) return range.myInnerRanges == null;
|
||||
if (range.myInnerRanges == null) return false;
|
||||
|
||||
if (myInnerRanges.size() != range.myInnerRanges.size()) return false;
|
||||
for (int i = 0; i < myInnerRanges.size(); i++) {
|
||||
if (!myInnerRanges.get(i).equals(range.myInnerRanges.get(i))) return false;
|
||||
}
|
||||
|
||||
return
|
||||
(myVcsLine1 == other.myVcsLine1)
|
||||
&& (myVcsLine2 == other.myVcsLine2)
|
||||
&& (myLine1 == other.myLine1)
|
||||
&& (myLine2 == other.myLine2)
|
||||
&& (myType == other.myType);
|
||||
return true;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%s, %s, %s, %s, %s", myLine1, myLine2, myVcsLine1, myVcsLine2, getTypeName());
|
||||
}
|
||||
|
||||
@NonNls
|
||||
private String getTypeName() {
|
||||
switch (myType) {
|
||||
case MODIFIED:
|
||||
return "MODIFIED";
|
||||
case INSERTED:
|
||||
return "INSERTED";
|
||||
case DELETED:
|
||||
return "DELETED";
|
||||
}
|
||||
return "UNKNOWN";
|
||||
return String.format("%s, %s, %s, %s", myLine1, myLine2, myVcsLine1, myVcsLine2);
|
||||
}
|
||||
|
||||
public byte getType() {
|
||||
return myType;
|
||||
}
|
||||
|
||||
public int getUpToDateRangeLength() {
|
||||
return myVcsLine2 - myVcsLine1;
|
||||
if (myLine1 == myLine2) return DELETED;
|
||||
if (myVcsLine1 == myVcsLine2) return INSERTED;
|
||||
return MODIFIED;
|
||||
}
|
||||
|
||||
public void shift(int shift) {
|
||||
@@ -151,15 +129,11 @@ public class Range {
|
||||
return myVcsLine2;
|
||||
}
|
||||
|
||||
public boolean rightBefore(@NotNull Range range) {
|
||||
return myLine2 == range.myLine1;
|
||||
}
|
||||
|
||||
public boolean hasHighlighter() {
|
||||
return myRangeHighlighter != null;
|
||||
}
|
||||
|
||||
public void setHighlighter(RangeHighlighter highlighter) {
|
||||
public void setHighlighter(@Nullable RangeHighlighter highlighter) {
|
||||
myRangeHighlighter = highlighter;
|
||||
}
|
||||
|
||||
@@ -211,8 +185,8 @@ public class Range {
|
||||
|
||||
InnerRange range = (InnerRange)o;
|
||||
|
||||
if (myLine2 != range.myLine2) return false;
|
||||
if (myLine1 != range.myLine1) return false;
|
||||
if (myLine2 != range.myLine2) return false;
|
||||
if (myType != range.myType) return false;
|
||||
|
||||
return true;
|
||||
@@ -227,22 +201,7 @@ public class Range {
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("%s, %s, %s", myLine1, myLine2, getTypeName());
|
||||
}
|
||||
|
||||
@NonNls
|
||||
private String getTypeName() {
|
||||
switch (myType) {
|
||||
case MODIFIED:
|
||||
return "MODIFIED";
|
||||
case INSERTED:
|
||||
return "INSERTED";
|
||||
case DELETED:
|
||||
return "DELETED";
|
||||
case EQUAL:
|
||||
return "EQUAL";
|
||||
}
|
||||
return "UNKNOWN";
|
||||
return String.format("%s, %s, %s", myLine1, myLine2, getTypeName(myType));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,4 +211,19 @@ public class Range {
|
||||
public boolean isSelectedByLine(int line) {
|
||||
return DiffUtil.isSelectedByLine(line, myLine1, myLine2);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String getTypeName(byte type) {
|
||||
switch (type) {
|
||||
case MODIFIED:
|
||||
return "MODIFIED";
|
||||
case INSERTED:
|
||||
return "INSERTED";
|
||||
case DELETED:
|
||||
return "DELETED";
|
||||
case EQUAL:
|
||||
return "EQUAL";
|
||||
}
|
||||
return "UNKNOWN(" + type + ")";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,15 +101,13 @@ public class RangesBuilder {
|
||||
}
|
||||
|
||||
private static Range createOn(@NotNull Diff.Change change, int shift, int vcsShift) {
|
||||
byte type = getChangeType(change);
|
||||
|
||||
int offset1 = shift + change.line1;
|
||||
int offset2 = offset1 + change.inserted;
|
||||
|
||||
int uOffset1 = vcsShift + change.line0;
|
||||
int uOffset2 = uOffset1 + change.deleted;
|
||||
|
||||
return new Range(offset1, offset2, uOffset1, uOffset2, type);
|
||||
return new Range(offset1, offset2, uOffset1, uOffset2);
|
||||
}
|
||||
|
||||
private static Range createOnSmart(@NotNull Diff.Change change,
|
||||
@@ -126,7 +124,7 @@ public class RangesBuilder {
|
||||
int uOffset2 = uOffset1 + change.deleted;
|
||||
|
||||
if (type != Range.MODIFIED) {
|
||||
return new Range(offset1, offset2, uOffset1, uOffset2, type, Collections.singletonList(new Range.InnerRange(offset1, offset2, type)));
|
||||
return new Range(offset1, offset2, uOffset1, uOffset2, Collections.singletonList(new Range.InnerRange(offset1, offset2, type)));
|
||||
}
|
||||
|
||||
LineWrapper[] lines1 = new LineWrapper[change.deleted];
|
||||
@@ -169,7 +167,7 @@ public class RangesBuilder {
|
||||
inner.add(new Range.InnerRange(innerStart, innerEnd, innerType));
|
||||
}
|
||||
|
||||
return new Range(offset1, offset2, uOffset1, uOffset2, type, inner);
|
||||
return new Range(offset1, offset2, uOffset1, uOffset2, inner);
|
||||
}
|
||||
|
||||
private static byte getChangeType(@NotNull Diff.Change change) {
|
||||
|
||||
+1
-1
@@ -80,6 +80,6 @@ public class ShowLineStatusRangeDiffAction extends BaseLineStatusRangeAction {
|
||||
int uOffset1 = range.getVcsLine1() - (canExpandBefore ? 1 : 0);
|
||||
int offset2 = range.getLine2() + (canExpandAfter ? 1 : 0);
|
||||
int uOffset2 = range.getVcsLine2() + (canExpandAfter ? 1 : 0);
|
||||
return new Range(offset1, offset2, uOffset1, uOffset2, range.getType());
|
||||
return new Range(offset1, offset2, uOffset1, uOffset2);
|
||||
}
|
||||
}
|
||||
+11
-11
@@ -44,7 +44,7 @@ public class UpToDateLineNumberProviderImpl implements UpToDateLineNumberProvide
|
||||
}
|
||||
return calcLineNumber(tracker, currentNumber);
|
||||
}
|
||||
|
||||
|
||||
public boolean isRangeChanged(final int start, final int end) {
|
||||
LineStatusTracker tracker = LineStatusTrackerManager.getInstance(myProject).getLineStatusTracker(myDocument);
|
||||
if (tracker == null) {
|
||||
@@ -60,7 +60,7 @@ public class UpToDateLineNumberProviderImpl implements UpToDateLineNumberProvide
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private static boolean lineInRange(final Range range, final int currentNumber) {
|
||||
return range.getLine1() <= currentNumber && range.getLine2() >= currentNumber;
|
||||
}
|
||||
@@ -106,23 +106,23 @@ public class UpToDateLineNumberProviderImpl implements UpToDateLineNumberProvide
|
||||
|
||||
private static int calcLineNumber(LineStatusTracker tracker, int currentNumber){
|
||||
if (tracker == null) return -1;
|
||||
List ranges = tracker.getRanges();
|
||||
List<Range> ranges = tracker.getRanges();
|
||||
int result = currentNumber;
|
||||
|
||||
for (final Object range1 : ranges) {
|
||||
Range range = (Range)range1;
|
||||
int startOffset = range.getLine1();
|
||||
int endOffset = range.getLine2();
|
||||
for (final Range range : ranges) {
|
||||
int startLine = range.getLine1();
|
||||
int endLine = range.getLine2();
|
||||
|
||||
if ((startOffset <= currentNumber) && (endOffset > currentNumber)) {
|
||||
if ((startLine <= currentNumber) && (endLine > currentNumber)) {
|
||||
return ABSENT_LINE_NUMBER;
|
||||
}
|
||||
|
||||
if (endOffset > currentNumber) return result;
|
||||
if (endLine > currentNumber) return result;
|
||||
|
||||
int currentRangeLength = endOffset - startOffset;
|
||||
int currentRangeLength = endLine - startLine;
|
||||
int vcsRangeLength = range.getVcsLine2() - range.getVcsLine1();
|
||||
|
||||
result += range.getUpToDateRangeLength() - currentRangeLength;
|
||||
result += vcsRangeLength - currentRangeLength;
|
||||
}
|
||||
return result;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user