On 04/11/2012 03:51 AM, Felipe Contreras wrote: > On Wed, Apr 11, 2012 at 1:29 PM, Stephen Boyd <bebarino@xxxxxxxxx> wrote: >> The bash completion script wants to know what the long options are for a >> certain command at runtime. Add a magical long option that nobody could >> possibly ever use (--dump-raw-long-options) to get this information. > > I thought about doing this, but I would like more than just dumping > the options. In zsh one can show more than just the options; each > option can have a description. Cool. I don't use zsh but it sounds interesting. Perhaps the magical long option should grow an optional argument? i.e. --dump-raw-long-option=zsh which would dump the options in a format that zsh would like? Alternatively, we can make a tiny option description grammar that's easily parsed. I probably won't have time for this any time soon though. > > I was thinking on something like 'git help --raw'. We also need > something like that to list all the plumbing commands, and options for > certain options, like merge strategies, and so on. Perhaps it would > even make sense to have a new 'git raw-help' command. > I'd like to avoid tying the long option stuff to git help so that other users of parse-options besides git (perhaps perf?) get the dumping support for free. Actually it works well for 'git notes <subcommand>' right now so it probably has to stay tied to each git command. Plus I think we've covered merge strategies and command lists already so I don't know how useful 'git help --raw' would be. I have been pondering ways to get all the possible config keys dynamically. That would remove a huge list (~2000 lines) in the completion script that always needs updating. Doing that would probably require some sort of grep over all the source files and a special key comparison function to look for (#define CONFIG_MATCH strcmp might work). Even then I don't know how we would handle color.branch.* and similar things. Maybe we would just do those by hand. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html