public TerminalString cloneRenderingAttributes(String chars) { if(ignoreRendering) return new TerminalString(chars, true); else return new TerminalString(chars, color, style); }
@Override public void addCompleterValue(String value) { this.completerValues.add(new TerminalString(value, true)); }
private void addStringCandidate(String completionCandidate) { this.completionCandidates.add(new TerminalString(completionCandidate, true)); }
@Override public void setCompleterValues(Collection<String> completerValues) { for(String s : completerValues) this.completerValues.add(new TerminalString(s, true)); }
@Override public void addAllCompleterValues(Collection<String> completerValues) { for(String s : completerValues) this.completerValues.add(new TerminalString(s, true)); }
public static final String formatErrorMessage(String message) { return new TerminalString(message, ERROR_COLOR, BOLD_STYLE).toString(); }
public static final String formatSuccessMessage(String message) { return new TerminalString(message, SUCCESS_COLOR).toString(); }
public static final String formatWarnMessage(String message) { return new TerminalString(message, WARN_COLOR, BOLD_STYLE).toString(); }
public static final String formatWarnMessage(String message) { return new TerminalString(message, WARN_COLOR, BOLD_STYLE).toString(); }
public static final String formatErrorMessage(String message) { return new TerminalString(message, ERROR_COLOR, BOLD_STYLE).toString(); }
public static String formatWorkflowPrompt(String prompt) { return new TerminalString(prompt, WORKFLOW_COLOR).toString(); }
public static TerminalString formatRequired(TerminalString name) { return new TerminalString(name.toString(), REQUIRED_COLOR, BOLD_STYLE); }
public static String formatWorkflowPrompt(String prompt) { return new TerminalString(prompt, WORKFLOW_COLOR).toString(); }
public static TerminalString formatRequired(TerminalString name) { return new TerminalString(name.toString(), REQUIRED_COLOR, BOLD_STYLE); }
public static final String formatSuccessMessage(String message) { return new TerminalString(message, SUCCESS_COLOR).toString(); }
private List<TerminalString> formatFileList(List<Resource> fileList) { ArrayList<TerminalString> list = new ArrayList<>(fileList.size()); for(Resource file : fileList) { if (file.isSymbolicLink()) { list.add(new TerminalString(file.getName(), SYMBOLIC_LINK_COLOR)); } else if (file.isDirectory()) { list.add(new TerminalString(file.getName(), DIRECTORY_COLOR)); } else { list.add(new TerminalString(file.getName())); } } return list; }
public static void formatPrompt(StringBuilder buffer) { if (buffer.toString().contains("@")) { int at = buffer.indexOf("@"); int space = buffer.lastIndexOf(" "); String preAt = buffer.substring(1, at); String postAt = buffer.substring(at + 1, space + 1); buffer.delete(1, space + 1); buffer.append( new TerminalString(preAt, PROMPT_COLOR).toString()); buffer.append("@"); buffer.append( new TerminalString(postAt, PROMPT_COLOR).toString()); } else if (buffer.toString().contains("disconnected")) { String prompt = buffer.substring(1); buffer.replace(1, buffer.lastIndexOf(" ") + 1, new TerminalString(prompt, ERROR_COLOR).toString()); } else { String prompt = buffer.substring(1); buffer.replace(1, buffer.lastIndexOf(" ") + 1, new TerminalString(prompt, PROMPT_COLOR).toString()); } }
public TerminalString getRenderedNameWithDashes() { if(renderer == null || !ansiMode) //if hasValue append a = after the name return new TerminalString( hasValue() ? "--"+name+"=" : "--"+name, true); else return new TerminalString( hasValue() ? "--"+name+"=" : "--"+name, renderer.getColor(), renderer.getTextType()); }
@Override public List<TerminalString> getFormattedCompletionCandidatesTerminalString() { List<TerminalString> fixedCandidates = new ArrayList<>(completionCandidates.size()); for(TerminalString c : completionCandidates) { if(!ignoreOffset && offset < cursor) { int pos = cursor - offset; if(c.getCharacters().length() >= pos) { c.setCharacters(c.getCharacters().substring(pos)); fixedCandidates.add(c); } else fixedCandidates.add(new TerminalString("", true)); } else { fixedCandidates.add(c); } } return fixedCandidates; }
@Test public void testCompleterMultipleFile() throws IOException { File file = File.createTempFile("tmp", ".tmp"); file.delete(); file.mkdir(); file.deleteOnExit(); File child = new File(file, "child.txt"); child.createNewFile(); child.deleteOnExit(); File child2 = new File(file, "child2.txt"); child2.createNewFile(); child2.deleteOnExit(); aeshContext.setCurrentWorkingDirectory(new FileResource(file)); FileOptionCompleter completer = new FileOptionCompleter(); CompleterData data = new CompleterData(aeshContext, "", null); completer.complete(data); assertNotNull(data.getCompleterValues()); assertEquals(2, data.getCompleterValues().size()); assertTrue(data.getCompleterValues().contains(new TerminalString(child.getName(), true))); assertTrue(data.getCompleterValues().contains(new TerminalString(child.getName(), true))); }