/** * Highlights the given text * * @param text the text to highlight (can be blank) * @return the highlighted text */ static String highlight(final String text) { return decorate(text, FG_CYAN); }
/** * Constructor * * @param value * @param formattedValue * @param heading * @param order */ public Completion(final String value, final String formattedValue, String heading, final int order) { this.formattedValue = formattedValue; this.order = order; this.value = value; if (StringUtils.isNotBlank(heading)) { heading = AnsiEscapeCode.decorate(heading, AnsiEscapeCode.UNDERSCORE, AnsiEscapeCode.FG_CYAN); } this.heading = heading; }
@Override public void setPromptPath(final String path, final boolean overrideStyle) { if (reader.getTerminal().isANSISupported()) { if (StringUtils.isBlank(path)) { shellPrompt = AnsiEscapeCode.decorate(ROO_PROMPT, AnsiEscapeCode.FG_YELLOW); } else { final String decoratedPath = overrideStyle ? AnsiEscapeCode.decorate(path) : AnsiEscapeCode.decorate(path, AnsiEscapeCode.FG_CYAN); shellPrompt = decoratedPath + AnsiEscapeCode.decorate(" " + ROO_PROMPT, AnsiEscapeCode.FG_YELLOW); } } else { // The superclass will do for this non-ANSI terminal super.setPromptPath(path); } // The shellPrompt is now correct; let's ensure it now gets used reader.setDefaultPrompt(AbstractShell.shellPrompt); }
private void addCompletionsForOtherModuleNames(final List<Completion> completions, final Pom targetModule) { for (final String moduleName : projectOperations.getModuleNames()) { if (StringUtils.isNotBlank(moduleName) && !moduleName.equals(targetModule.getModuleName())) { completions.add(new Completion(moduleName + MODULE_PATH_SEPARATOR, decorate(moduleName + MODULE_PATH_SEPARATOR, FG_CYAN), "Modules", 0)); } } }
@Override public void setRooPrompt(final String prompt) { if (reader.getTerminal().isANSISupported()) { if (StringUtils.isBlank(prompt)) { shellPrompt = AnsiEscapeCode.decorate(ROO_PROMPT, AnsiEscapeCode.FG_YELLOW); } else { final String decoratedPath = AnsiEscapeCode.decorate(prompt, AnsiEscapeCode.FG_CYAN); shellPrompt = decoratedPath; } } else { // The superclass will do for this non-ANSI terminal super.setPromptPath(prompt); } // The shellPrompt is now correct; let's ensure it now gets used reader.setDefaultPrompt(AbstractShell.shellPrompt); }
private void updateRooVersion(String shellVersion) { String homePath = getHome().getPath(); String pomPath = homePath + "/pom.xml"; File pom = new File(pomPath); try { if (pom.exists()) { InputStream is = new FileInputStream(pom); Document docXml = XmlUtils.readXml(is); Element document = docXml.getDocumentElement(); Element rooVersionElement = XmlUtils.findFirstElement("properties/roo.version", document); rooVersionElement.setTextContent(shellVersion); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(docXml); StreamResult result = new StreamResult(new File(pomPath)); transformer.transform(source, result); String changes = "[" + AnsiEscapeCode.decorate("updated property", AnsiEscapeCode.FG_CYAN) + " 'roo.version' to '" + shellVersion + "']"; LOGGER.log(Level.FINE, "Updated ROOT/pom.xml " + changes); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } }
private void addCompletionsForOtherModuleNames(final Collection<Completion> completions, final Pom targetModule, String optionContext) { for (final Pom pom : getValidModules(optionContext)) { if (StringUtils.isNotBlank(pom.getModuleName()) && (targetModule == null || !pom.getModuleName().equals(targetModule.getModuleName()))) { completions.add(new Completion(pom.getModuleName() + MODULE_PATH_SEPARATOR, decorate( pom.getModuleName() + MODULE_PATH_SEPARATOR, FG_CYAN), "Modules", 0)); } } }
private void setPromptPath(final String fullyQualifiedName) { if (topLevelPackage == null) { return; } String moduleName = ""; if (module != null && StringUtils.isNotBlank(module.getModuleName())) { moduleName = AnsiEscapeCode.decorate(module.getModuleName() + MODULE_PATH_SEPARATOR, AnsiEscapeCode.FG_CYAN); } topLevelPackage = new JavaPackage(typeLocationService.getTopLevelPackageForModule(projectOperations .getFocusedModule())); final String path = moduleName + fullyQualifiedName.replace(topLevelPackage.getFullyQualifiedPackageName(), TOP_LEVEL_PACKAGE_SYMBOL); shell.setPromptPath(path, StringUtils.isNotBlank(moduleName)); }
heading = ""; prefix = targetModuleName + MODULE_PATH_SEPARATOR; formattedPrefix = decorate(targetModuleName + MODULE_PATH_SEPARATOR, FG_CYAN); typeName = StringUtils.substringAfterLast(existingData, MODULE_PATH_SEPARATOR); } else {
heading = ""; prefix = targetModuleName + MODULE_PATH_SEPARATOR; formattedPrefix = decorate(targetModuleName + MODULE_PATH_SEPARATOR, FG_CYAN);
/** * Constructor * * @param value * @param formattedValue * @param heading * @param order */ public Completion(final String value, final String formattedValue, String heading, final int order) { this.formattedValue = formattedValue; this.order = order; this.value = value; if (StringUtils.isNotBlank(heading)) { heading = AnsiEscapeCode.decorate(heading, AnsiEscapeCode.UNDERSCORE, AnsiEscapeCode.FG_CYAN); } this.heading = heading; }
@Override public void setPromptPath(final String path, final boolean overrideStyle) { if (reader.getTerminal().isANSISupported()) { if (StringUtils.isBlank(path)) { shellPrompt = AnsiEscapeCode.decorate(ROO_PROMPT, AnsiEscapeCode.FG_YELLOW); } else { final String decoratedPath = overrideStyle ? AnsiEscapeCode.decorate(path) : AnsiEscapeCode.decorate(path, AnsiEscapeCode.FG_CYAN); shellPrompt = decoratedPath + AnsiEscapeCode.decorate(" " + ROO_PROMPT, AnsiEscapeCode.FG_YELLOW); } } else { // The superclass will do for this non-ANSI terminal super.setPromptPath(path); } // The shellPrompt is now correct; let's ensure it now gets used reader.setDefaultPrompt(AbstractShell.shellPrompt); }
@Override public void setRooPrompt(final String prompt) { if (reader.getTerminal().isANSISupported()) { if (StringUtils.isBlank(prompt)) { shellPrompt = AnsiEscapeCode.decorate(ROO_PROMPT, AnsiEscapeCode.FG_YELLOW); } else { final String decoratedPath = AnsiEscapeCode.decorate(prompt, AnsiEscapeCode.FG_CYAN); shellPrompt = decoratedPath; } } else { // The superclass will do for this non-ANSI terminal super.setPromptPath(prompt); } // The shellPrompt is now correct; let's ensure it now gets used reader.setDefaultPrompt(AbstractShell.shellPrompt); }
private void updateRooVersion(String shellVersion) { String homePath = getHome().getPath(); String pomPath = homePath + "/pom.xml"; File pom = new File(pomPath); try { if (pom.exists()) { InputStream is = new FileInputStream(pom); Document docXml = XmlUtils.readXml(is); Element document = docXml.getDocumentElement(); Element rooVersionElement = XmlUtils.findFirstElement("properties/roo.version", document); rooVersionElement.setTextContent(shellVersion); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(docXml); StreamResult result = new StreamResult(new File(pomPath)); transformer.transform(source, result); String changes = "[" + AnsiEscapeCode.decorate("updated property", AnsiEscapeCode.FG_CYAN) + " 'roo.version' to '" + shellVersion + "']"; LOGGER.log(Level.FINE, "Updated ROOT/pom.xml " + changes); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } }