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