Skip to content

Commit 9ae9c90

Browse files
committed
[FEATURE] rename setting, added tests, prepare new version
1 parent e04e4e0 commit 9ae9c90

File tree

8 files changed

+52
-28
lines changed

8 files changed

+52
-28
lines changed

CHANGELOG

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
2.14.4
2+
Feb 14, 2021
3+
4+
NEW: Auto detect value separator (by count)
5+
16
2.14.3
27
Oct 10, 2020
38

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jacocoTestReport {
2424
}
2525

2626
group 'net.seesharpsoft.intellij.plugins'
27-
version '2.14.3'
27+
version '2.14.4'
2828

2929
apply plugin: 'java'
3030
project.sourceCompatibility = JavaVersion.VERSION_11

src/main/java/net/seesharpsoft/intellij/plugins/csv/components/CsvFileAttributes.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,14 @@ public void resetValueSeparator(@NotNull PsiFile psiFile) {
117117
}
118118

119119
private @NotNull
120-
CsvValueSeparator guessOrGetValueSeparator(Project project, VirtualFile virtualFile) {
121-
return CsvEditorSettings.getInstance().isGuessValueSeparator() ?
122-
guessValueSeparator(project, virtualFile) :
120+
CsvValueSeparator autoDetectOrGetDefaultValueSeparator(Project project, VirtualFile virtualFile) {
121+
return CsvEditorSettings.getInstance().isAutoDetectValueSeparator() ?
122+
autoDetectSeparator(project, virtualFile) :
123123
CsvEditorSettings.getInstance().getDefaultValueSeparator();
124124
}
125125

126126
private @NotNull
127-
CsvValueSeparator guessValueSeparator(Project project, VirtualFile virtualFile) {
127+
CsvValueSeparator autoDetectSeparator(Project project, VirtualFile virtualFile) {
128128
Document document = FileDocumentManager.getInstance().getDocument(virtualFile);
129129
final String text = document == null ? "" : document.getText();
130130
Pair<CsvValueSeparator, Integer> separatorWithCount =
@@ -160,7 +160,7 @@ CsvValueSeparator getValueSeparator(Project project, VirtualFile virtualFile) {
160160
}
161161
Attribute attribute = getFileAttribute(project, virtualFile);
162162
return attribute == null || attribute.separator == null ?
163-
guessOrGetValueSeparator(project, virtualFile) :
163+
autoDetectOrGetDefaultValueSeparator(project, virtualFile) :
164164
attribute.separator;
165165
}
166166

src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvEditorSettings.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public static final class OptionSet {
8484
public boolean KEEP_TRAILING_SPACES = false;
8585
public String COMMENT_INDICATOR = COMMENT_INDICATOR_DEFAULT;
8686
public ValueColoring VALUE_COLORING = ValueColoring.RAINBOW;
87-
public boolean GUESS_VALUE_SEPARATOR = true;
87+
public boolean AUTO_DETECT_VALUE_SEPARATOR = true;
8888

8989
public OptionSet() {
9090
EditorSettingsExternalizable editorSettingsExternalizable = EditorSettingsExternalizable.getInstance();
@@ -313,12 +313,12 @@ public void setHeaderRowFixed(boolean headerRowFixed) {
313313
getState().TABLE_HEADER_ROW_FIXED = headerRowFixed;
314314
}
315315

316-
public boolean isGuessValueSeparator() {
317-
return getState().GUESS_VALUE_SEPARATOR;
316+
public boolean isAutoDetectValueSeparator() {
317+
return getState().AUTO_DETECT_VALUE_SEPARATOR;
318318
}
319319

320-
public void setGuessValueSeparator(boolean guessValueSeparator) {
321-
getState().GUESS_VALUE_SEPARATOR = guessValueSeparator;
320+
public void setAutoDetectValueSeparator(boolean autoDetectValueSeparator) {
321+
getState().AUTO_DETECT_VALUE_SEPARATOR = autoDetectValueSeparator;
322322
}
323323

324324
public boolean checkCurrentPluginVersion(String actualVersion) {

src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvEditorSettingsProvider.form

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,12 +372,12 @@
372372
</constraints>
373373
<properties/>
374374
</component>
375-
<component id="aed54" class="javax.swing.JCheckBox" binding="cbGuessSeparator">
375+
<component id="aed54" class="javax.swing.JCheckBox" binding="cbAutoDetectSeparator">
376376
<constraints>
377377
<grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
378378
</constraints>
379379
<properties>
380-
<text value="Initial separator guessing"/>
380+
<text value="auto detect initially"/>
381381
</properties>
382382
</component>
383383
</children>

src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvEditorSettingsProvider.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class CsvEditorSettingsProvider implements EditorOptionsProvider {
4343
private JTextField tfCommentIndicator;
4444
private JComboBox comboValueColoring;
4545
private JCheckBox cbHeaderRowFixed;
46-
private JCheckBox cbGuessSeparator;
46+
private JCheckBox cbAutoDetectSeparator;
4747

4848
@NotNull
4949
@Override
@@ -96,7 +96,7 @@ public boolean isModified() {
9696
isModified(tfCommentIndicator, csvEditorSettings.getCommentIndicator()) ||
9797
!Objects.equals(comboValueColoring.getSelectedItem(), csvEditorSettings.getValueColoring()) ||
9898
isModified(cbHeaderRowFixed, csvEditorSettings.isHeaderRowFixed()) ||
99-
isModified(cbGuessSeparator, csvEditorSettings.isGuessValueSeparator());
99+
isModified(cbAutoDetectSeparator, csvEditorSettings.isAutoDetectValueSeparator());
100100
}
101101

102102
@Override
@@ -122,7 +122,7 @@ public void reset() {
122122
tfCommentIndicator.setText(csvEditorSettings.getCommentIndicator());
123123
comboValueColoring.setSelectedItem(csvEditorSettings.getValueColoring());
124124
cbHeaderRowFixed.setSelected(csvEditorSettings.isHeaderRowFixed());
125-
cbGuessSeparator.setSelected(csvEditorSettings.isGuessValueSeparator());
125+
cbAutoDetectSeparator.setSelected(csvEditorSettings.isAutoDetectValueSeparator());
126126
}
127127

128128
@Override
@@ -148,7 +148,7 @@ public void apply() throws ConfigurationException {
148148
csvEditorSettings.setCommentIndicator(tfCommentIndicator.getText());
149149
csvEditorSettings.setValueColoring((CsvEditorSettings.ValueColoring) comboValueColoring.getSelectedItem());
150150
csvEditorSettings.setHeaderRowFixed(cbHeaderRowFixed.isSelected());
151-
csvEditorSettings.setGuessValueSeparator(cbGuessSeparator.isSelected());
151+
csvEditorSettings.setAutoDetectValueSeparator(cbAutoDetectSeparator.isSelected());
152152
}
153153

154154
protected void createUIComponents() {

src/main/resources/META-INF/plugin.xml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@
5050

5151
<change-notes><![CDATA[
5252
<pre style="font-family: sans-serif">
53-
NEW: Added default "Header row fixed" setting
54-
NEW: Support "Comment with line comment" #247
55-
FIX: "Value coloring" change not applied to open files
53+
NEW: Auto detect value separator (by count)
5654
</pre>
5755
]]>
5856
</change-notes>

src/test/java/net/seesharpsoft/intellij/plugins/csv/parser/CsvParsingTest.java

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,49 +13,70 @@ public CsvParsingTest() {
1313
super("", "csv", new CsvParserDefinition());
1414
}
1515

16+
@Override
17+
protected void setUp() throws Exception {
18+
super.setUp();
19+
CsvEditorSettings.getInstance().setAutoDetectValueSeparator(false);
20+
}
21+
22+
@Override
23+
protected void tearDown() throws Exception {
24+
CsvEditorSettings.getInstance().setAutoDetectValueSeparator(true);
25+
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvEditorSettings.VALUE_SEPARATOR_DEFAULT);
26+
CsvEditorSettings.getInstance().setCommentIndicator(COMMENT_INDICATOR_DEFAULT);
27+
super.tearDown();
28+
}
29+
1630
public void testParsingTestData() {
1731
// without comment support, default lexer is used
1832
CsvEditorSettings.getInstance().setCommentIndicator("");
1933
doTest(true);
20-
CsvEditorSettings.getInstance().setCommentIndicator(COMMENT_INDICATOR_DEFAULT);
2134
}
2235

2336
public void testParsingTestDataWithCustomParser() {
2437
setName("ParsingTestData");
2538
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvValueSeparator.create(","));
2639
doTest(true);
27-
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvEditorSettings.VALUE_SEPARATOR_DEFAULT);
2840
}
2941

3042
public void testCustomMultiSymbolSeparator() {
3143
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvValueSeparator.create("~§"));
3244
doTest(true);
33-
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvEditorSettings.VALUE_SEPARATOR_DEFAULT);
3445
}
3546

3647
public void testColonSeparator() {
3748
// without comment support, default lexer is used
3849
CsvEditorSettings.getInstance().setCommentIndicator("");
3950
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvValueSeparator.COLON);
4051
doTest(true);
41-
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvEditorSettings.VALUE_SEPARATOR_DEFAULT);
42-
CsvEditorSettings.getInstance().setCommentIndicator(COMMENT_INDICATOR_DEFAULT);
4352
}
4453

4554
public void testAllSeparators() {
4655
// without comment support, default lexer is used
4756
CsvEditorSettings.getInstance().setCommentIndicator("");
4857
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvValueSeparator.COMMA);
4958
doTest(true);
50-
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvEditorSettings.VALUE_SEPARATOR_DEFAULT);
51-
CsvEditorSettings.getInstance().setCommentIndicator(COMMENT_INDICATOR_DEFAULT);
5259
}
5360

5461
public void testCsvWithComments() {
5562
// comment support by default (custom lexer is used)
5663
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvValueSeparator.COMMA);
5764
doTest(true);
58-
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvEditorSettings.VALUE_SEPARATOR_DEFAULT);
65+
}
66+
67+
public void testParsingTestDataWithAutoDetect() {
68+
setName("ParsingTestData");
69+
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvValueSeparator.PIPE);
70+
CsvEditorSettings.getInstance().setAutoDetectValueSeparator(true);
71+
doTest(true);
72+
}
73+
74+
public void testColonSeparatorWithAutoDetect() {
75+
setName("ColonSeparator");
76+
CsvEditorSettings.getInstance().setCommentIndicator("");
77+
CsvEditorSettings.getInstance().setDefaultValueSeparator(CsvValueSeparator.PIPE);
78+
CsvEditorSettings.getInstance().setAutoDetectValueSeparator(true);
79+
doTest(true);
5980
}
6081

6182
@Override

0 commit comments

Comments
 (0)