1.1 --- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java Sat Aug 15 14:40:48 2015 +0200
1.2 +++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java Sat Aug 15 16:12:06 2015 +0200
1.3 @@ -19,6 +19,7 @@
1.4
1.5 import info.globalcode.sql.dk.ColorfulPrintWriter;
1.6 import static info.globalcode.sql.dk.ColorfulPrintWriter.*;
1.7 +import info.globalcode.sql.dk.Functions;
1.8 import static info.globalcode.sql.dk.Functions.lpad;
1.9 import static info.globalcode.sql.dk.Functions.rpad;
1.10 import static info.globalcode.sql.dk.Functions.repeat;
1.11 @@ -26,8 +27,6 @@
1.12 import static info.globalcode.sql.dk.formatting.CommonProperties.COLORFUL;
1.13 import static info.globalcode.sql.dk.formatting.CommonProperties.COLORFUL_DESCRIPTION;
1.14 import java.util.List;
1.15 -import java.util.regex.Matcher;
1.16 -import java.util.regex.Pattern;
1.17
1.18 /**
1.19 * <p>
1.20 @@ -53,8 +52,6 @@
1.21 private static final String HEADER_TYPE_SUFFIX = ")";
1.22 public static final String PROPERTY_ASCII = "ascii";
1.23 public static final String PROPERTY_TRIM = "trim";
1.24 - private static final String NBSP = " ";
1.25 - private static final Pattern whitespaceToReplace = Pattern.compile("\\n|\\r|\\t|" + NBSP);
1.26 protected ColorfulPrintWriter out;
1.27 private boolean firstResult = true;
1.28 private int[] columnWidth;
1.29 @@ -165,8 +162,7 @@
1.30 printTableBorder(" │ ");
1.31 }
1.32
1.33 - String valueString = toString(value);
1.34 - printValueWithWhitespaceReplaced(valueString);
1.35 + Functions.printValueWithWhitespaceReplaced(out, toString(value), TerminalColor.Cyan, TerminalColor.Red);
1.36
1.37 if (isCurrentColumnLast()) {
1.38 printTableBorder(" │");
1.39 @@ -277,36 +273,4 @@
1.40 protected void printTableIndent() {
1.41 out.print(" ");
1.42 }
1.43 -
1.44 - protected void printValueWithWhitespaceReplaced(String valueString) {
1.45 -
1.46 - Matcher m = whitespaceToReplace.matcher(valueString);
1.47 -
1.48 - int start = 0;
1.49 - while (m.find(start)) {
1.50 -
1.51 - out.print(TerminalColor.Cyan, valueString.substring(start, m.start()));
1.52 -
1.53 - switch (m.group()) {
1.54 - case "\n":
1.55 - out.print(TerminalColor.Red, "↲");
1.56 - break;
1.57 - case "\r":
1.58 - out.print(TerminalColor.Red, "⏎");
1.59 - break;
1.60 - case "\t":
1.61 - out.print(TerminalColor.Red, "↹");
1.62 - break;
1.63 - case NBSP:
1.64 - out.print(TerminalColor.Red, "⎵");
1.65 - break;
1.66 - default:
1.67 - throw new IllegalStateException("Unexpected whitespace token: „" + m.group() + "“");
1.68 - }
1.69 -
1.70 - start = m.end();
1.71 - }
1.72 -
1.73 - out.print(TerminalColor.Cyan, valueString.substring(start, valueString.length()));
1.74 - }
1.75 }