def render_colors(): source = ("import sys\n" 'echo "Welcome $USER on" @(sys.platform)\n\n' "def func(x=42):\n" ' d = {"xonsh": True}\n' ' return d.get("xonsh") and you\n\n' "# This is a comment\n" "![env | uniq | sort | grep PATH]\n") lexer = XonshLexer() lexer.add_filter("tokenmerge") token_stream = list(pygments.lex(source, lexer=lexer)) token_stream = [(t, s.replace("\n", "\\n")) for t, s in token_stream] styles = sorted(get_all_styles()) styles.insert(0, styles.pop(styles.index("default"))) for style in styles: try: display = html_format(token_stream, style=style) except Exception as ex: logging.error(f"Failed to format Xonsh code {ex!r}. {style!r}", exc_info=True) display = source yield style, escape(display)
def color_style_names(self): """Returns an iterable of all available style names.""" if not HAS_PYGMENTS: return ["For other xonsh styles, please install pygments"] return get_all_styles()