Skip to content

Commit d7734d3

Browse files
committed
[FIX] Tab handling improvements
1 parent 6bb58d5 commit d7734d3

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

src/main/java/net/seesharpsoft/intellij/plugins/csv/CsvLexer.flex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ ESCAPED_TEXT=([,;\r\n]|\"\")+
3636
QUOTE=\"
3737
COMMA=[,;]
3838
EOL=\n
39-
WHITE_SPACE=[ \f\t]+
39+
WHITE_SPACE=[ \f]+
4040

4141
%state AFTER_TEXT
4242
%state ESCAPED_TEXT

src/main/java/net/seesharpsoft/intellij/plugins/csv/formatter/CsvCodeStyleSettings.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ public static String getCurrentSeparator() {
4242

4343
public CsvCodeStyleSettings(CodeStyleSettings settings) {
4444
super("CsvCodeStyleSettings", settings);
45+
settings.getIndentOptions().TAB_SIZE = 1;
46+
settings.getIndentOptions().INDENT_SIZE = 1;
47+
settings.getIndentOptions().USE_TAB_CHARACTER = false;
4548
}
4649

4750
public boolean SPACE_BEFORE_SEPARATOR = false;

src/main/java/net/seesharpsoft/intellij/plugins/csv/formatter/CsvFormatHelper.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,23 @@
1313
import java.util.HashMap;
1414
import java.util.List;
1515
import java.util.Map;
16+
import java.util.regex.Pattern;
1617

1718
public class CsvFormatHelper {
1819

20+
private static String WHITE_SPACE_PATTERN_STRING = "[ \\f]+";
21+
private static Pattern BEGIN_WHITE_SPACE_PATTERN = Pattern.compile("^" + WHITE_SPACE_PATTERN_STRING);
22+
private static Pattern END_WHITE_SPACE_PATTERN = Pattern.compile(WHITE_SPACE_PATTERN_STRING + "$");
23+
1924
public static int getTextLength(ASTNode node, CodeStyleSettings codeStyleSettings) {
2025
CsvCodeStyleSettings csvCodeStyleSettings = codeStyleSettings.getCustomSettings(CsvCodeStyleSettings.class);
2126
String text = node.getText();
2227
int length = 0;
2328
if (csvCodeStyleSettings.TABULARIZE && !csvCodeStyleSettings.WHITE_SPACES_OUTSIDE_QUOTES && text.startsWith("\"")) {
2429
text = text.substring(1, text.length() - 1);
25-
length = text.trim().length() + 2;
30+
text = BEGIN_WHITE_SPACE_PATTERN.matcher(text).replaceFirst("");
31+
text = END_WHITE_SPACE_PATTERN.matcher(text).replaceFirst("");
32+
length = text.length() + 2;
2633
} else {
2734
length = node.getTextLength();
2835
}

0 commit comments

Comments
 (0)