Source code for xonsh.completers.xompletions

"""Provides completions for xonsh internal utilities"""

import xonsh.xontribs as xx
import xonsh.tools as xt


[docs]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 _list_installed_xontribs(): meta = xx.xontrib_metadata() installed = [] for md in meta["xontribs"]: name = md["name"] spec = xx.find_xontrib(name) if spec is not None: installed.append(spec.name.rsplit(".")[-1]) return installed
[docs]def complete_xontrib(prefix, line, start, end, ctx): """Completion for ``xontrib``""" args = line.split(" ") if len(args) == 0 or args[0] != "xontrib": return None curix = args.index(prefix) if curix == 1: possible = {"list", "load"} elif curix == 2: if args[1] == "load": possible = _list_installed_xontribs() else: raise StopIteration return {i for i in possible if i.startswith(prefix)}