Skip to content

Suggestions for autocompletion behavior#1

Closed
bckohan wants to merge 1 commit intosvlandeg:feat/autocompletionfrom
bckohan:feat/autocompletion
Closed

Suggestions for autocompletion behavior#1
bckohan wants to merge 1 commit intosvlandeg:feat/autocompletionfrom
bckohan:feat/autocompletion

Conversation

@bckohan
Copy link
Copy Markdown

@bckohan bckohan commented Sep 18, 2024

Implementations of suggestions noted here, with a few differences.

This PR does 3 things:

  1. Allows autocompletion functions to accept a param: click.core.Parameter argument. I think this is necessary because without it you can't define generic completer functions that don't know what CLI options or arguments they may be attached to and that need to alter their behavior based on how click has processed the arguments before the incomplete argument. Concrete example: you have an option or argument that accepts multiple values but you do not wish those values to be repeated.

  2. Allows CompletionItems to be returned in addition to strings and 2-tuples from autocompletion functions.

  3. Fixes arg: List[str] parameter to be passed what it used to be given in click 7 (i.e. the raw command line string minus the script and incomplete string). In click 7 this parameter was being set to the arguments passed in the environment variables via the completion scripts installed on the system that are invoked when you hit tab. These parameters do not show up in ctx.args or sys.argv. Click has a general purpose obj attribute on the context that is available for downstream use. This PR sets that object to a dictionary in the completer classes and attaches the args from the environment variables to it. If obj is already defined it'll just not do that and nothing will break accept the args will be passed as an empty list to the autocompletion functions.

I think numbers 1 and 2 are important. Number 3 is mostly for backwards compatibility but I don't think its that critical - I just wanted to show that there is a way to do it.

I did not update the docs but would be happy to if ya'll are inclined to accept this PR.

…s through CompletionItem return values, fix args to match what it was in click 7
@svlandeg
Copy link
Copy Markdown
Owner

Hi @bckohan, thanks for your contribution! But you've opened this PR on the wrong repo - this is my personal fork. You should target https://github.com/fastapi/typer instead. 🙏

@svlandeg svlandeg closed this Sep 18, 2024
@bckohan
Copy link
Copy Markdown
Author

bckohan commented Sep 18, 2024

Hi @bckohan, thanks for your contribution! But you've opened this PR on the wrong repo - this is my personal fork. You should target https://github.com/fastapi/typer instead. 🙏

Ah sorry, I had intended for this to add to your open PR on the upstream repo. I'll open on a new PR on fastapi/typer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants