You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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;
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: