Skip to content

Argcomplete support to tab completion of python and xonsh scripts in xonsh shell.

License

Notifications You must be signed in to change notification settings

anki-code/xontrib-argcomplete

Repository files navigation

Argcomplete support for python and xonsh scripts in xonsh shell.

If you like the idea click ⭐ on the repo and and tweet.

[Demo]
Screenshot made with xontrib-prompt-bar and Konsole.

Install

xpip install xontrib-argcomplete
echo 'xontrib load argcomplete' >> ~/.xonshrc
# Reload xonsh

Usage

First of all you need to add the argcomplete support to your script:

  • The PYTHON_ARGCOMPLETE_OK marker should be found in the first 10 lines of the file (example).
  • Additional .completer was set for add_argument (example).
  • argcomplete.autocomplete(parser) added before parser.parse_args() (example).

Example for proto.py sample:

xpip install xontrib-argcomplete
xontrib load argcomplete

cd /tmp && git clone https://github.com/anki-code/xontrib-argcomplete
cd xontrib-argcomplete/tests

python proto.py <Tab>  # Suggestions: --help --proto -h
./proto.py --proto tt<Tab>  # Suggestions: http https
./proto.xsh --proto tt<Tab>  # Suggestions: http https
./proto --proto tt<Tab>  # Suggestions: http https

$PATH.append($PWD)
proto --proto tt<Tab>  # Suggestions: http https

The argcomplete xonsh completer will be activated with this cases:

python script.py <Tab>
./script.py <Tab>
./path/script.py <Tab>

xonsh script.xsh <Tab>
./script.xsh <Tab>
./path/script.xsh <Tab>

# scripts without extension should have "env python" or "env xonsh" or path to python/xonsh in the shebang
./script <Tab>
script <Tab>    # script should be found in $PATH

Known issues

Windows is not supported. PRs are welcome!

Development

Links