Re: [PATCH v3 5/7] completion: get rid of compgen

2013-04-12 Thread Junio C Hamano
Felipe Contreras felipe.contre...@gmail.com writes:

 Here are some numbers filtering N amount of words:

Nice table.  N amount of words sounded somewhat funny to me, but I
am not a native.

 ...
   == 1000 ==
   original: 0.012s
   new: 0.011s
   == 1 ==
   original: 0.056s
   new: 0.066s
   == 10 ==
   original: 2.669s
   new: 0.622s

 If the results are not narrowed:
 ...
   == 1000 ==
   original: 0.020s
   new: 0.015s
   == 1 ==
   original: 0.101s
   new: 0.355s
   == 10 ==
   original: 2.850s
   new: 31.941s

 So, unless 'git checkout tab' usually gives you more than 10
 results, you'll get an improvement :)

Nice numbers.  I think you meant 1 not 10 here.

 diff --git a/contrib/completion/git-completion.bash 
 b/contrib/completion/git-completion.bash
 index 90b54ab..d8009f5 100644
 --- a/contrib/completion/git-completion.bash
 +++ b/contrib/completion/git-completion.bash
 @@ -197,11 +197,16 @@ fi
  
  __gitcompadd ()
  {
 - COMPREPLY=($(compgen -W $1 -P $2 -S $4 -- $3))
 + local i=0
 + for x in $1; do
 + if [[ $x == $3* ]]; then
 + COMPREPLY[i++]=$2$x$4
 + fi
 + done
  }

Nice; can't be simpler than that ;-)
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 5/7] completion: get rid of compgen

2013-04-10 Thread Eric Sunshine
On Wed, Apr 10, 2013 at 2:57 AM, Felipe Contreras
felipe.contre...@gmail.com wrote:
 The functionality we use from compgen is not much, we can do the same
 manually, with drastical improvements in speed, specially when dealing

s/drastical/drastic/
s/specially/especially/

 with only a few words.

 This patch also has the sideffect that brekage reported by Jeroen Meijer

s/sideffect/side effect/
s/brekage/breakage/

 and SZEDER Gábor gets fixed because we no longer expand the resulting
 words.

 So, unless 'git checkout tab' usually gives you more than 10
 results, you'll get an improvement :)

 Other possible solutions perform better after 1000 words, but worst if

s/worst/worse/

 less than that:

   COMPREPLY=($(awk -v cur=$3 -v pre=$2 -v suf=$4
 '$0 ~ cur { print pre$0suf }'  $1 ))

   COMPREPLY=($(printf -- $2%s$4\n $1 | grep ^$2$3))

 Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 5/7] completion: get rid of compgen

2013-04-10 Thread John Keeping
On Wed, Apr 10, 2013 at 06:07:33AM -0500, Felipe Contreras wrote:
 On Wed, Apr 10, 2013 at 5:10 AM, Eric Sunshine sunsh...@sunshineco.com 
 wrote:
  s/specially/especially/
 
 http://www.merriam-webster.com/dictionary/specially

But see also:

http://www.merriam-webster.com/dictionary/especially

which notes in particular as a synonym, which is what makes it more
natural in the case under discussion here.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html