def _colors( style: Annotated[str, Arg(nargs="?", completer=xonfig_color_completer)] = None ): """Preview color style Parameters ---------- style name of the style to preview. If not given, current style name is used. """ columns, _ = shutil.get_terminal_size() columns -= int(bool(ON_WINDOWS)) style_stash = XSH.env["XONSH_COLOR_STYLE"] if style is not None: if style not in color_style_names(): print(f"Invalid style: {style}") return XSH.env["XONSH_COLOR_STYLE"] = style color_map = color_style() if not color_map: print("Empty color map - using non-interactive shell?") return akey = next(iter(color_map)) if isinstance(akey, str): s = _str_colors(color_map, columns) else: s = _tok_colors(color_map, columns) print_color(s) XSH.env["XONSH_COLOR_STYLE"] = style_stash
def complete_xonfig(command: CommandContext): """Completion for ``xonfig``""" curix = command.arg_index if curix == 1: possible = set(XONFIG_MAIN_ACTIONS.keys()) | {"-h"} elif curix == 2 and command.args[1].value == "colors": possible = set(xt.color_style_names()) else: raise StopIteration return {i for i in possible if i.startswith(command.prefix)}
def complete_xonfig(prefix, line, start, end, ctx): """Completion for ``xonfig``""" args = line.split(" ") if len(args) == 0 or args[0] != "xonfig": return None curix = args.index(prefix) if curix == 1: possible = set(XONFIG_MAIN_ACTIONS.keys()) | {"-h"} elif curix == 2 and args[1] == "colors": possible = set(xt.color_style_names()) else: raise StopIteration return {i for i in possible if i.startswith(prefix)}
def complete_xonfig(prefix, line, start, end, ctx): """Completion for ``xonfig``""" args = line.split(' ') if len(args) == 0 or args[0] != 'xonfig': return None curix = args.index(prefix) if curix == 1: possible = {'info', 'wizard', 'styles', 'colors', '-h'} elif curix == 2 and args[1] == 'colors': possible = set(xt.color_style_names()) else: raise StopIteration return {i for i in possible if i.startswith(prefix)}
def complete_xonfig(prefix, line, start, end, ctx): """Completion for ``xonfig``""" args = line.split(" ") if len(args) == 0 or args[0] != "xonfig": return None curix = args.index(prefix) if curix == 1: possible = {"info", "wizard", "styles", "colors", "-h"} elif curix == 2 and args[1] == "colors": possible = set(xt.color_style_names()) else: raise StopIteration return {i for i in possible if i.startswith(prefix)}
def _styles(ns): env = builtins.__xonsh__.env curr = env.get("XONSH_COLOR_STYLE") styles = sorted(color_style_names()) if ns.json: s = json.dumps(styles, sort_keys=True, indent=1) print(s) return lines = [] for style in styles: if style == curr: lines.append("* {GREEN}" + style + "{RESET}") else: lines.append(" " + style) s = "\n".join(lines) print_color(s)
def _styles(ns): env = builtins.__xonsh_env__ curr = env.get('XONSH_COLOR_STYLE') styles = sorted(color_style_names()) if ns.json: s = json.dumps(styles, sort_keys=True, indent=1) print(s) return lines = [] for style in styles: if style == curr: lines.append('* {GREEN}' + style + '{NO_COLOR}') else: lines.append(' ' + style) s = '\n'.join(lines) print_color(s)
def _styles(ns): env = builtins.__xonsh__.env curr = env.get("XONSH_COLOR_STYLE") styles = sorted(color_style_names()) if ns.json: s = json.dumps(styles, sort_keys=True, indent=1) print(s) return lines = [] for style in styles: if style == curr: lines.append("* {GREEN}" + style + "{NO_COLOR}") else: lines.append(" " + style) s = "\n".join(lines) print_color(s)
def _colors(args): columns, _ = shutil.get_terminal_size() columns -= int(ON_WINDOWS) style_stash = builtins.__xonsh__.env["XONSH_COLOR_STYLE"] if args.style is not None: if args.style not in color_style_names(): print("Invalid style: {}".format(args.style)) return builtins.__xonsh__.env["XONSH_COLOR_STYLE"] = args.style color_map = color_style() akey = next(iter(color_map)) if isinstance(akey, str): s = _str_colors(color_map, columns) else: s = _tok_colors(color_map, columns) print_color(s) builtins.__xonsh__.env["XONSH_COLOR_STYLE"] = style_stash
def _colors(args): columns, _ = shutil.get_terminal_size() columns -= int(ON_WINDOWS) style_stash = builtins.__xonsh_env__["XONSH_COLOR_STYLE"] if args.style is not None: if args.style not in color_style_names(): print("Invalid style: {}".format(args.style)) return builtins.__xonsh_env__["XONSH_COLOR_STYLE"] = args.style color_map = color_style() akey = next(iter(color_map)) if isinstance(akey, str): s = _str_colors(color_map, columns) else: s = _tok_colors(color_map, columns) print_color(s) builtins.__xonsh_env__["XONSH_COLOR_STYLE"] = style_stash
def _styles(to_json=False, _stdout=None): """Prints available xonsh color styles Parameters ---------- to_json: -j, --json reports results as json """ env = XSH.env curr = env.get("XONSH_COLOR_STYLE") styles = sorted(color_style_names()) if to_json: s = json.dumps(styles, sort_keys=True, indent=1) print(s) return lines = [] for style in styles: if style == curr: lines.append("* {GREEN}" + style + "{RESET}") else: lines.append(" " + style) s = "\n".join(lines) print_color(s, file=_stdout)
def xonfig_color_completer(*_, **__): yield from color_style_names()