Open travis-bear opened 3 years ago
@travis-bear, you'd need to add a custom script for bash/zsh and then need to register it.
You can take an example of how we do in DVC: https://github.com/iterative/dvc/blob/master/dvc/command/completion.py
To go into steps, first you need to add custom scripts to generate completions, eg: https://github.com/iterative/dvc/blob/aa74712576855b82fc31364056cea9f8a6a1b37b/dvc/command/completion.py#L97
Then, you'd have to register the function that you'd want to call for that particular completion for zsh and bash.
At last, you just need to specify it for the particular option to autocomplete for. https://github.com/iterative/dvc/blob/e7686f90a695b327a81b16563d603238ee96cfcf/dvc/command/repro.py#L53
@skshetry @casperdcl what if I need custom actions that depend on other provided arguments? e.g. https://github.com/kislyuk/argcomplete has the following example in the README.md:
./describe_github_user.py --organization heroku --member <TAB>
def github_org_members(prefix, parsed_args, **kwargs):
resource = "https://api.github.com/orgs/{org}/members".format(org=parsed_args.organization)
return (member['login'] for member in requests.get(resource).json() if member['login'].startswith(prefix))
parser = argparse.ArgumentParser()
parser.add_argument("--organization", help="GitHub organization")
parser.add_argument("--member", help="GitHub member").completer = github_org_members
I need to know the value of organization
when I complete member
. This is not currently supported, right?
@balta2ar that level of inter-dependent completion (--member
choices conditional on --org
's value) isn't yet supported, no.
I didn't see any info on how to set up custom completion logic. E.g. generate a list of completions that are the result of a sql query, etc. It's unclear if this is simply not supported, or merely a gap in the current documentation.