Re: [PATCH 2/2] completion: Use parse-options raw output for simple long options
- From
SZEDER Gábor <szeder@ira.uka.de>
- Date
- Apr 11, 2012, 13:56 UTC
- Message-ID
- <20120411135614.GQ2289@goldbirke>
- In-Reply-To
- <1334140165-24958-3-git-send-email-bebarino@gmail.com>
Hi,
On Wed, Apr 11, 2012 at 03:29:25AM -0700, Stephen Boyd wrote:
Show 14 quoted lines
> Now that parse-options supports generating lists of long options for any > parse-optified git program we can remove the hand-coded lists in the > completion script. Replace these lists with code to generate the lists > lazily when a user tab completes that specific command. Unforunately, > doing lazy evalution takes more lines than before, but the benefit is we > reduce the amount of trivial patches to update the script for new and/or > removed options. It also mildly encourages the migration of git commands > to the parse-options API. > > Signed-off-by: Stephen Boyd <bebarino@gmail.com> > --- > > Is there some way to compute these lists with some magical function instead > of duplicating that logic over and over?
Maybe a function like this:
__git_compute_command_options ()
{
local varname="__git_${@//[ -]/_}_options"
eval "test -n \"\$$varname\" || $varname=\"$(git $@ --dump-raw-long-options)\""
}And then in each completion function just need to call this function with the command (and possibly subcommand) as parameter:
__git_compute_command_options add
Best, Gábor