From af2d81c919347bcf2e323f473bbfb5462d6d7355 Mon Sep 17 00:00:00 2001 From: adam j hartz Date: Sat, 28 May 2016 21:19:29 -0400 Subject: [PATCH] add base completer --- xonsh/completers/__init__.py | 2 ++ xonsh/completers/base.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 xonsh/completers/base.py diff --git a/xonsh/completers/__init__.py b/xonsh/completers/__init__.py index 17d5d2957..98095e4c7 100644 --- a/xonsh/completers/__init__.py +++ b/xonsh/completers/__init__.py @@ -1,11 +1,13 @@ from collections import OrderedDict +from xonsh.completers.base import complete_base from xonsh.completers.path import complete_path from xonsh.completers.dirs import complete_cd, complete_rmdir from xonsh.completers.python import complete_python, complete_import from xonsh.completers.commands import complete_skipper completers = OrderedDict() +completers['base'] = complete_base completers['skip'] = complete_skipper completers['cd'] = complete_cd completers['rmdir'] = complete_cd diff --git a/xonsh/completers/base.py b/xonsh/completers/base.py new file mode 100644 index 000000000..e4e03cb4c --- /dev/null +++ b/xonsh/completers/base.py @@ -0,0 +1,16 @@ +from collections import Sequence + +from xonsh.completers.path import complete_path +from xonsh.completers.python import complete_python +from xonsh.completers.commands import complete_command + +def complete_base(prefix, line, start, end, ctx): + if line.strip() == '': + out = (complete_python(prefix, line, start, end, ctx) | + complete_command(prefix, line, start, end, ctx)) + paths = complete_path(prefix, line, start, end, ctx) + return (out | paths[0]), paths[1] + elif prefix == line: + return (complete_python(prefix, line, start, end, ctx) | + complete_command(prefix, line, start, end, ctx)) + return set()