Skip to content

Commit 129666c

Browse files
committed
fix tests & highlight-handling & codestyle
1 parent 4b50d1c commit 129666c

File tree

3 files changed

+25
-25
lines changed

3 files changed

+25
-25
lines changed

src/main/java/net/seesharpsoft/intellij/plugins/csv/CsvHelper.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,18 +130,19 @@ public static int getFieldIndex(@NotNull final PsiElement element) {
130130
@Nullable
131131
public static PsiElement getNthChild(@Nullable final PsiElement parent, int n, @Nullable IElementType countable) {
132132
if (parent != null) {
133+
int count = 0;
133134
for (PsiElement child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
134135
if (countable != null && getElementType(child) != countable) continue;
135-
if (n == 0) return child;
136-
--n;
136+
if (count == n) return child;
137+
++count;
137138
}
138139
}
139140
return null;
140141
}
141142

142143
public static int findIndex(@Nullable final PsiElement parent, @NotNull PsiElement needle, @Nullable IElementType countable) {
143-
int index = 0;
144144
if (parent != null) {
145+
int index = 0;
145146
for (PsiElement child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
146147
if (countable != null && getElementType(child) != countable) continue;
147148
if (needle == child) return index;

src/main/java/net/seesharpsoft/intellij/plugins/csv/highlighter/CsvHighlightUsagesHandler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
public class CsvHighlightUsagesHandler extends HighlightUsagesHandlerBase {
1717

18-
private static int MAX_HIGHLIGHTING_ROWS = 200;
18+
private static int MAX_HIGHLIGHTING_ROWS = 1000;
1919

2020
protected CsvHighlightUsagesHandler(@NotNull Editor editor, @NotNull CsvFile file) {
2121
super(editor, file);
@@ -51,8 +51,8 @@ public void computeUsages(List list) {
5151
int index = CsvHelper.getFieldIndex(psiElement);
5252
if (index == -1) continue;
5353
CsvRecord csvRecord = (CsvRecord) psiElement.getParent();
54-
int leftOverRows = addOccurrence(csvRecord, index, MAX_HIGHLIGHTING_ROWS / 2, true);
55-
addOccurrence(csvRecord, index, MAX_HIGHLIGHTING_ROWS / 2 + leftOverRows, false);
54+
int leftOverRows = addOccurrence(csvRecord, index, MAX_HIGHLIGHTING_ROWS / 2, false);
55+
addOccurrence(csvRecord, index, MAX_HIGHLIGHTING_ROWS / 2 + leftOverRows, true);
5656
}
5757
}
5858

@@ -63,7 +63,7 @@ protected void selectTargets(List list, Consumer consumer) {
6363

6464
protected int addOccurrence(@NotNull CsvRecord csvRecord, int index, int noOfSiblings, boolean backward) {
6565
int count = noOfSiblings;
66-
for (PsiElement sibling = backward ? csvRecord.getPrevSibling() : csvRecord.getNextSibling();
66+
for (PsiElement sibling = backward ? csvRecord.getPrevSibling() : csvRecord;
6767
count != 0 && sibling != null;
6868
sibling = backward ? sibling.getPrevSibling() : sibling.getNextSibling(), --count) {
6969
PsiElement field = CsvHelper.getNthChild(sibling, index, CsvTypes.FIELD);

src/test/java/net/seesharpsoft/intellij/plugins/csv/highlighter/CsvHighlightUsagesHandlerTest.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,24 @@
88
import com.intellij.openapi.util.TextRange;
99
import com.intellij.testFramework.fixtures.BasePlatformTestCase;
1010

11+
import java.util.ArrayList;
12+
import java.util.Arrays;
13+
import java.util.List;
14+
1115
public class CsvHighlightUsagesHandlerTest extends BasePlatformTestCase {
1216

1317
@Override
1418
protected String getTestDataPath() {
1519
return "./src/test/resources/highlighter";
1620
}
1721

18-
private void assertHighlightedText(RangeHighlighter rangeHighlighter, String text) {
19-
assertEquals(text, rangeHighlighter.getDocument().getText(TextRange.create(rangeHighlighter.getStartOffset(), rangeHighlighter.getEndOffset())));
22+
private void assertHighlightedTexts(RangeHighlighter[] rangeHighlighters, String... texts) {
23+
assertSize(texts.length, rangeHighlighters);
24+
List<String> needles = new ArrayList(Arrays.asList(texts));
25+
for (RangeHighlighter rangeHighlighter : rangeHighlighters) {
26+
needles.removeIf(text -> text.equals(rangeHighlighter.getDocument().getText(TextRange.create(rangeHighlighter.getStartOffset(), rangeHighlighter.getEndOffset()))));
27+
}
28+
assertSize(0, needles);
2029
}
2130

2231
private RangeHighlighter[] testHighlightUsages(String... fileNames) {
@@ -38,47 +47,37 @@ private RangeHighlighter[] testHighlightUsages(String... fileNames) {
3847
public void testHighlightUsages01() {
3948
RangeHighlighter[] rangeHighlighters = testHighlightUsages("HighlightUsagesTestData01.csv");
4049

41-
assertSize(2, rangeHighlighters);
42-
assertHighlightedText(rangeHighlighters[0], "Header 2");
43-
assertHighlightedText(rangeHighlighters[1], "Value 2");
50+
assertHighlightedTexts(rangeHighlighters, "Header 2", "Value 2");
4451
}
4552

4653
public void testHighlightUsages02() {
4754
RangeHighlighter[] rangeHighlighters = testHighlightUsages("HighlightUsagesTestData02.csv");
4855

49-
assertSize(2, rangeHighlighters);
50-
assertHighlightedText(rangeHighlighters[0], "Header 2");
51-
assertHighlightedText(rangeHighlighters[1], "Value 2");
56+
assertHighlightedTexts(rangeHighlighters, "Header 2", "Value 2");
5257
}
5358

5459
public void testHighlightUsages03() {
5560
RangeHighlighter[] rangeHighlighters = testHighlightUsages("HighlightUsagesTestData03.csv");
5661

57-
assertSize(2, rangeHighlighters);
58-
assertHighlightedText(rangeHighlighters[0], "Header 1");
59-
assertHighlightedText(rangeHighlighters[1], "Value 1");
62+
assertHighlightedTexts(rangeHighlighters, "Header 1", "Value 1");
6063
}
6164

6265
public void testHighlightUsages04() {
6366
RangeHighlighter[] rangeHighlighters = testHighlightUsages("HighlightUsagesTestData04.csv");
6467

65-
assertSize(1, rangeHighlighters);
66-
assertHighlightedText(rangeHighlighters[0], "Value 3");
68+
assertHighlightedTexts(rangeHighlighters, "Value 3");
6769
}
6870

6971
public void testHighlightUsages05() {
7072
RangeHighlighter[] rangeHighlighters = testHighlightUsages("HighlightUsagesTestData05.csv");
7173

72-
assertSize(2, rangeHighlighters);
73-
assertHighlightedText(rangeHighlighters[0], "Header 2");
74-
assertHighlightedText(rangeHighlighters[1], "Value 2");
74+
assertHighlightedTexts(rangeHighlighters, "Header 2", "Value 2");
7575
}
7676

7777
public void testHighlightUsages06() {
7878
RangeHighlighter[] rangeHighlighters = testHighlightUsages("HighlightUsagesTestData06.csv");
7979

80-
assertSize(1, rangeHighlighters);
81-
assertHighlightedText(rangeHighlighters[0], "Value 3");
80+
assertHighlightedTexts(rangeHighlighters, "Value 3");
8281
}
8382

8483
public void testHighlightUsages07() {

0 commit comments

Comments
 (0)