public class Parser
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private static java.util.regex.Pattern |
ansiPattern |
static char |
BACK_SLASH |
static char |
DOLLAR |
static char |
DOUBLE_QUOTE |
private static char |
NULL_CHAR |
static char |
SINGLE_QUOTE |
static java.lang.String |
SPACE |
static char |
SPACE_CHAR |
private static java.lang.String |
spaceEscapedMatcher |
private static java.util.regex.Pattern |
spaceEscapedPattern |
private static java.util.regex.Pattern |
spacePattern |
| Constructor and Description |
|---|
Parser() |
| Modifier and Type | Method and Description |
|---|---|
private static int[] |
calculateColumnSizes(java.util.List<TerminalString> displayList,
int numColumns,
int numRows,
int termWidth) |
private static boolean |
canDisplayColumns(java.util.List<TerminalString> displayList,
int numRows,
int terminalWidth)
Decides if it's possible to format provided Strings into calculated number of columns while the output will not exceed
terminal width
|
static boolean |
containsNonEscapedDollar(java.lang.String buffer) |
static boolean |
doesStringContainOpenQuote(java.lang.String text)
Check if a string contain open quotes.
|
static boolean |
doWordContainEscapedSpace(java.lang.String word) |
static boolean |
doWordContainOnlyEscapedSpace(java.lang.String word) |
static int |
findAllOccurrences(java.lang.String word,
java.lang.String pattern) |
static AeshLine |
findAllWords(java.lang.String text)
Split up the text into words, escaped spaces and quotes are handled
|
static java.lang.String |
findCurrentWordFromCursor(java.lang.String text,
int cursor)
Return the word "connected" to cursor, the word ends at cursor position.
|
static java.lang.String |
findEscapedSpaceWordCloseToEnd(java.lang.String text)
Search backwards for a non-escaped space and only return work containing non-escaped space
|
static java.lang.String |
findFirstWord(java.lang.String buffer)
If string contain space, return the text before the first space.
|
static boolean |
findIfWordEndWithSpace(java.lang.String word) |
static int |
findNumberOfSpacesInWord(java.lang.String word)
find number of spaces in the given word.
|
static java.lang.String |
findStartsWith(java.util.List<java.lang.String> completionList)
Return the biggest common startsWith string
|
static java.lang.String |
findStartsWithOperation(java.util.List<CompleteOperation> coList)
If there is any common start string in the completion list, return it
|
static java.lang.String |
findStartsWithTerminalString(java.util.List<TerminalString> completionList)
Return the biggest common startsWith string
|
static java.lang.String |
findWordClosestToCursor(java.lang.String text,
int cursor) |
static java.lang.String |
formatDisplayCompactListTerminalString(java.util.List<TerminalString> displayList,
int termWidth)
Format output to columns with flexible sizes and no redundant space between them
|
static java.lang.String |
formatDisplayList(java.util.List<java.lang.String> displayList,
int termHeight,
int termWidth)
Format completions so that they look similar to GNU Readline
|
static java.lang.String |
formatDisplayList(java.lang.String[] displayList,
int termHeight,
int termWidth)
Format completions so that they look similar to GNU Readline
|
static java.lang.String |
formatDisplayListTerminalString(java.util.List<TerminalString> displayList,
int termHeight,
int termWidth)
Format completions so that they look similar to GNU Readline
|
static java.lang.String |
padLeft(int n,
java.lang.String s) |
static java.lang.String |
padRight(int n,
java.lang.String s) |
static java.util.List<java.lang.String> |
splitBySizeKeepWords(java.lang.String words,
int size) |
private static boolean |
startsWith(java.lang.String criteria,
java.util.List<java.lang.String> completionList) |
private static boolean |
startsWithTerminalString(java.lang.String criteria,
java.util.List<TerminalString> completionList) |
static java.lang.String |
stripAwayAnsiCodes(java.lang.String text) |
static java.util.List<java.lang.String> |
switchEscapedSpacesToSpacesInList(java.util.List<java.lang.String> list) |
static void |
switchEscapedSpacesToSpacesInTerminalStringList(java.util.List<TerminalString> list) |
static java.lang.String |
switchEscapedSpacesToSpacesInWord(java.lang.String word) |
static java.lang.String |
switchSpacesToEscapedSpacesInWord(java.lang.String word) |
static java.lang.String |
trim(java.lang.String buffer)
Similar to String.trim(), but do not remove spaces that are escaped
|
static java.lang.String |
trimInFront(java.lang.String buffer)
Only trim space in front of the word
|
static java.lang.String |
trimOptionName(java.lang.String word)
remove leading dashes from word
|
private static final java.lang.String spaceEscapedMatcher
public static final java.lang.String SPACE
public static final char SPACE_CHAR
public static final char BACK_SLASH
public static final char SINGLE_QUOTE
public static final char DOUBLE_QUOTE
public static final char DOLLAR
private static final java.util.regex.Pattern spaceEscapedPattern
private static final java.util.regex.Pattern spacePattern
private static final java.util.regex.Pattern ansiPattern
private static final char NULL_CHAR
public static java.lang.String formatDisplayList(java.lang.String[] displayList,
int termHeight,
int termWidth)
displayList - to formattermHeight - max heighttermWidth - max widthpublic static java.lang.String formatDisplayList(java.util.List<java.lang.String> displayList,
int termHeight,
int termWidth)
displayList - to formattermHeight - max heighttermWidth - max widthpublic static java.lang.String formatDisplayListTerminalString(java.util.List<TerminalString> displayList, int termHeight, int termWidth)
displayList - to formattermHeight - max heighttermWidth - max widthpublic static java.lang.String formatDisplayCompactListTerminalString(java.util.List<TerminalString> displayList, int termWidth)
displayList - to formattermWidth - max widthprivate static boolean canDisplayColumns(java.util.List<TerminalString> displayList, int numRows, int terminalWidth)
displayList - numRows - terminalWidth - private static int[] calculateColumnSizes(java.util.List<TerminalString> displayList, int numColumns, int numRows, int termWidth)
public static java.lang.String padRight(int n,
java.lang.String s)
public static java.lang.String padLeft(int n,
java.lang.String s)
public static java.util.List<java.lang.String> splitBySizeKeepWords(java.lang.String words,
int size)
public static java.lang.String trimOptionName(java.lang.String word)
public static boolean findIfWordEndWithSpace(java.lang.String word)
public static java.lang.String findStartsWithOperation(java.util.List<CompleteOperation> coList)
coList - completion listpublic static java.lang.String findStartsWith(java.util.List<java.lang.String> completionList)
completionList - list to compareprivate static boolean startsWith(java.lang.String criteria,
java.util.List<java.lang.String> completionList)
public static java.lang.String findStartsWithTerminalString(java.util.List<TerminalString> completionList)
completionList - list to compareprivate static boolean startsWithTerminalString(java.lang.String criteria,
java.util.List<TerminalString> completionList)
public static java.lang.String findWordClosestToCursor(java.lang.String text,
int cursor)
public static java.lang.String findCurrentWordFromCursor(java.lang.String text,
int cursor)
text - to parsecursor - positionpublic static java.lang.String findEscapedSpaceWordCloseToEnd(java.lang.String text)
text - textpublic static boolean doesStringContainOpenQuote(java.lang.String text)
text - textpublic static AeshLine findAllWords(java.lang.String text)
text - testpublic static boolean doWordContainOnlyEscapedSpace(java.lang.String word)
public static boolean doWordContainEscapedSpace(java.lang.String word)
public static int findNumberOfSpacesInWord(java.lang.String word)
word - to checkpublic static int findAllOccurrences(java.lang.String word,
java.lang.String pattern)
public static java.util.List<java.lang.String> switchEscapedSpacesToSpacesInList(java.util.List<java.lang.String> list)
public static void switchEscapedSpacesToSpacesInTerminalStringList(java.util.List<TerminalString> list)
public static java.lang.String switchSpacesToEscapedSpacesInWord(java.lang.String word)
public static java.lang.String switchEscapedSpacesToSpacesInWord(java.lang.String word)
public static java.lang.String trim(java.lang.String buffer)
buffer - inputpublic static java.lang.String trimInFront(java.lang.String buffer)
buffer - inputpublic static java.lang.String findFirstWord(java.lang.String buffer)
buffer - inputpublic static boolean containsNonEscapedDollar(java.lang.String buffer)
public static java.lang.String stripAwayAnsiCodes(java.lang.String text)