Source code for xonsh.completers.init

"""Constructor for xonsh completer objects."""

import collections

from xonsh.completers._aliases import complete_aliases
from xonsh.completers.base import complete_base
from xonsh.completers.bash import complete_from_bash
from xonsh.completers.commands import (
    complete_end_proc_keywords,
    complete_end_proc_tokens,
    complete_skipper,
    complete_xompletions,
)
from xonsh.completers.environment import complete_environment_vars
from xonsh.completers.imports import complete_import
from xonsh.completers.man import complete_from_man
from xonsh.completers.path import complete_path
from xonsh.completers.python import complete_python


[docs] def default_completers(cmd_cache): """Creates a copy of the default completers.""" defaults = [ # non-exclusive completers: ("end_proc_tokens", complete_end_proc_tokens), ("end_proc_keywords", complete_end_proc_keywords), ("environment_vars", complete_environment_vars), # exclusive completers: ("base", complete_base), ("skip", complete_skipper), ("alias", complete_aliases), ("xompleter", complete_xompletions), ("import", complete_import), ] for cmd, func in [ ("bash", complete_from_bash), ("man", complete_from_man), ]: if cmd in cmd_cache: defaults.append((cmd, func)) defaults.extend( [ ("python", complete_python), ("path", complete_path), ] ) return collections.OrderedDict(defaults)