static int consoleWidth(String s) { return consoleWidth(new AnsiString(s)); }
private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
result.append(c); if (c == '$') { AnsiString as = new AnsiString(result.toString()); String s = as.getPlain().toString(); s = s.replaceAll("\n", "<br>"); AnsiConsole.systemUninstall();
@Override public int getLength(Object content) { return new AnsiString(content.toString()).length(); } }
@Override public String toString() { return getEncoded().toString(); } }
public AnsiString(final CharSequence str) { assert str != null; this.encoded = str; this.plain = chew(str); }
private String readLine(boolean firstLine) throws IOException { String line = null; int promptLength = new AnsiString(getPrompt()).length(); StringBuilder morePrompt = new StringBuilder(); for (int i = 0; i < promptLength - 5; i++) { morePrompt.append(" "); } morePrompt.append(color(BLUE, "...: ")); morePrompt.append(revertToDefaultColor()); while (line == null) { if (firstLine) { line = reader.readLine(getPrompt()); } else { line = reader.readLine(morePrompt.toString()); } if (line == null) { System.out.print("\nDo you really want to exit ([y]/n)? "); char input = (char) reader.readCharacter('y', 'n', (char) 10); if (input != 'n') { return null; } else { System.out.println(); System.out.println(); reader.flush(); } } } return line; }
@Override public boolean equals(final Object obj) { return getEncoded().equals(obj); }
static int consoleWidth(String s) { return consoleWidth(new AnsiString(s)); }
public int length() { return getPlain().length(); }
@Override public int hashCode() { return getEncoded().hashCode(); }
static int consoleWidth(String s) { return consoleWidth(new AnsiString(s)); }
private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
public CharSequence subSequence(final int start, final int end) { return getEncoded().subSequence(start, end); }
static int consoleWidth(String s) { return consoleWidth(new AnsiString(s)); }
private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
public char charAt(final int index) { return getEncoded().charAt(index); }
static int consoleWidth(String s) { return consoleWidth(new AnsiString(s)); }
private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
private CharSequence render(final File file) { assert file != null; String name = file.getName(); if (file.isDirectory()) { name = ansi().fg(BLUE).a(name).a(File.separator).reset().toString(); } // else if (file.canExecute()) { // name = ansi().fg(GREEN).a(name).a("*").reset().toString(); // } if (file.isHidden()) { name = ansi().a(INTENSITY_FAINT).a(name).reset().toString(); } return new AnsiString(name); } }