Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: _git log arguments



On 10/1/07, Clint Adams <clint@xxxxxxx> wrote:
> On Mon, Oct 01, 2007 at 09:16:54AM +0200, Nikolai Weibull wrote:
> > Why use "$revision_arguments[@]"?  $revision_arguments works just as
> > good and you don't need all the quoting and expansion fluff.  I see
> > this style has been used for $merge_args as well, even though most of
> > the file doesn't.
>
> I seem to recall it being necessary for $merge_args, though I don't
> recall the specifics.
>
> > > +    '*:tree-ish: _alternative c\:\:__git_committishs f\:\:_files' && ret=0
> >
> > I don't like this at all.  Why not simply use __git_cached_files?  And
> > if we really need __git_committishs, let's at least use a separate
> > function for that with proper descriptions and tags.
>
> Your patch reworked against HEAD is below.   Now how do we accommodate
> the people that want to have a branch name completed after git log?

This should really be context sensitive, that is, what to complete
here is dependent on what arguments we've seen already.

Here's a patch that will suffice for the time being:

Index: Completion/Unix/Command/_git
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_git,v
retrieving revision 1.37
diff -u -r1.37 _git
--- Completion/Unix/Command/_git        1 Oct 2007 13:37:31 -0000       1.37
+++ Completion/Unix/Command/_git        1 Oct 2007 13:55:53 -0000
@@ -1702,11 +1702,22 @@

 (( $+functions[_git-log] )) ||
 _git-log () {
+  local curcontext=$curcontext state line
+  declare -A opt_args
+
   __git_setup_revision_arguments

   _arguments -S \
     $revision_arguments \
-    '*:file:__git_cached_files' && ret=0
+    '*:file-or-branch:->files' && ret=0
+
+  case $state in
+    (files)
+      _alternative \
+        'files:index file:__git_cached_files' \
+        'branches:branch:__git_branch_names' && ret=0
+      ;;
+  esac
 }

 # TODO: repository needs fixing

  nikolai



Messages sorted by: Reverse Date, Date, Thread, Author