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)}