-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: Set a default completion function #2209
Comments
I agree. I regret making file completion the default behaviour; in retrospect, no completion should have been the default. But now we are stuck with this default behaviour. Adding an option to change the default completion sounds like a good idea. |
Thanks! And thanks for opening @albers - were you planning to work on this? I just recalled I had that other issue with custom flags that can be set multiple times, but were not detected for completion (multiple times); I just pushed a PR with some changes In had stashed locally; |
@thaJeztah I will give it a try. |
@marckhouzam File completion was an obvious choice though, as it is exactly what bash completion resorts to in case no completion is defined. |
In my experience, not many flags actually require completion of files.
Some have dynamic completions, but a great deal of them take free-form string parameters where no completion can be offered.
Unfortunately, the default completion for a flag with no completion function in Cobra is file completion.
This forces me to register a
cobra.NoFileCompletions
for each flag of that category.As an example, completion for
docker run
has 56 flags where no meaningful FlagCompletionFunc exists.In a first attempt, I registered 56 handlers with
cmd.RegisterFlagCompletionFunc("flag-name", cobra.NoFileCompletions)
just to silence their file completion.Following a hint of @thaJeztah, I replaced them with a programmatically installed default handler, see here.
I would very much welcome a solution in Cobra, where I can set a default handler on command level, something like
With this feature, I'd only have to define the completion functions for flags that actually have meaningful completions.
/cc @thaJeztah
The text was updated successfully, but these errors were encountered: