From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16984 invoked from network); 27 Apr 2000 14:15:14 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 27 Apr 2000 14:15:14 -0000 Received: (qmail 29066 invoked by alias); 27 Apr 2000 14:14:45 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 10979 Received: (qmail 29034 invoked from network); 27 Apr 2000 14:14:42 -0000 Date: Thu, 27 Apr 2000 16:14:29 +0200 (MET DST) Message-Id: <200004271414.QAA18243@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: Felix Rosencrantz's message of Wed, 26 Apr 2000 23:50:04 -0700 (PDT) Subject: PATCH: Re: Proposed _history completer Felix Rosencrantz wrote: > I'm not currently doing any work on the _history completer. So if you > want to commit the changes that would be fine with me. Though I think > my testing is pretty limited (e.g. I don't use NUMERIC arguments, and I didn't > try various zstyle configurations.) I was thinking that in case there were > any obvious problems with the completer (e.g. _wanted shouldn't be used in > a completer) someone would post that feedback. > > Also, I don't have a lot of time to work on it, this completer has been on my > list for a while. So if other people want work on it I would be happy. I'll be committing it in a second. As everyone can see by the patch below, I haven't changed it yet, apart from adding a comment to the top. That's because it really looks like one of our functions that just generate matches of a certain type. And it could be used like that, but using it as a completer is certainly sensible, too. Bye Sven Index: Completion/Core/.distfiles =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Core/.distfiles,v retrieving revision 1.4 diff -u -r1.4 .distfiles --- Completion/Core/.distfiles 2000/04/20 00:48:28 1.4 +++ Completion/Core/.distfiles 2000/04/27 14:10:39 @@ -2,8 +2,8 @@ .distfiles _all_labels _alternative _approximate _call _compalso _complete _correct _description _expand - _file_descriptors _files _funcall _ignored _list _main_complete _match - _menu _multi_parts _message _next_label _normal _oldlist _options + _file_descriptors _files _funcall _history _ignored _list _main_complete + _match _menu _multi_parts _message _next_label _normal _oldlist _options _parameters _path_files _prefix _requested _sep_parts _set_options _setup _sort_tags _tags _unset_options _wanted Index: Completion/Core/_history =================================================================== RCS file: _history diff -N _history --- /dev/null Tue May 5 13:32:27 1998 +++ _history Thu Apr 27 07:10:39 2000 @@ -0,0 +1,36 @@ +#autoload + +# Hm, this *can* sensibly be used as a completer. But it could also be used +# as a utility function, so maybe it should be moved into another directory. +# Or maybe not. Hm. +# +# +# Complete words from the history +# +# Code taken from _history_complete_words. +# +# Available styles: +# +# :history-words:sort -- sort matches lexically (default is to sort by age) +# :history-words:remove-all-dups -- +# remove /all/ duplicate matches rather than just +# consecutives + +local opt expl + +if zstyle -t ":completion:${curcontext}:" remove-all-dups; then + opt=- +else + opt=-1 +fi + +if zstyle -t ":completion:${curcontext}:" sort; then + opt="${opt}J" +else + opt="${opt}V" +fi + +# We skip the first element of historywords so the current word doesn't +# interfere with the completion +_wanted "$opt" history-words expl 'history word' \ + compadd -Q - "${(@)historywords[2,-1]}" Index: Doc/Zsh/compsys.yo =================================================================== RCS file: /cvsroot/zsh/zsh/Doc/Zsh/compsys.yo,v retrieving revision 1.24 diff -u -r1.24 compsys.yo --- Doc/Zsh/compsys.yo 2000/04/27 09:24:38 1.24 +++ Doc/Zsh/compsys.yo 2000/04/27 14:10:41 @@ -2138,6 +2138,14 @@ In a different mode selected by the tt(completions) style, all em(completions) generated for the string on the line are inserted. ) +findex(_history) +item(tt(_history))( +Complete words from the shell's command history. This completer +uses the tt(remove-all-dups), and tt(sort) styles also used by the +tt(_history_complete_word) bindable command, see +ifzman(the section `Completion System Configuration' above)\ +ifnzman(noderef(Completion System Configuration)). +) findex(_list) item(tt(_list))( This completer allows one to delay the insertion of matches until -- Sven Wischnowsky wischnow@informatik.hu-berlin.de