From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2060 invoked from network); 12 Jul 2000 10:15:35 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 12 Jul 2000 10:15:35 -0000 Received: (qmail 2192 invoked by alias); 12 Jul 2000 10:15:21 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 12227 Received: (qmail 2183 invoked from network); 12 Jul 2000 10:15:21 -0000 Date: Wed, 12 Jul 2000 11:14:53 +0100 From: Peter Stephenson Subject: PATCH: Re: PATCH: Re: long completion selections and listings In-reply-to: "Your message of Wed, 12 Jul 2000 11:23:27 +0200." <200007120923.LAA20826@beta.informatik.hu-berlin.de> To: zsh-workers@sunsite.auc.dk (Zsh hackers list) Message-id: <0FXK00LBPXSS5Y@la-la.cambridgesiliconradio.com> Content-transfer-encoding: 7BIT Sven wrote: > Peter Stephenson wrote: > > > According to the manual, select-prompt has a default when you used > > scrolling with menus. It doesn't show up for me --- I had to set it > > explicitly. (If I remember right, I didn't put it in compinstall because > > there was already a sensible default.) > > You get the default when setting select-prompt to the empty string and > that works for me. It does say that in the manual. What's confusing me is that (if I've read this right), list-prompt uses a default if you don't set it to the empty string, and select-prompt is the other way round. I think I've handled that difference in the following. This adds select-prompt to compinstall and corrects the menu at the previous level (I had moved handling of scrolling but hadn't changed the description in the menu). Index: Completion/Core/compinstall =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Core/compinstall,v retrieving revision 1.16 diff -u -r1.16 compinstall --- Completion/Core/compinstall 2000/07/03 14:00:44 1.16 +++ Completion/Core/compinstall 2000/07/12 10:12:01 @@ -1243,7 +1243,7 @@ __ci_do_selection() { - local key listc menu select amenu elt + local key listc menu select amenu elt listp selectp haslistp hasselectp integer num __ci_get_this_style list-colors listc @@ -1251,6 +1251,9 @@ __ci_get_this_style list-prompt listp [[ -n $listp ]] && haslistp=1 listp=${(Q)listp} + __ci_get_this_style select-prompt selectp + [[ -n $selectp ]] && hasselectp=1 + selectp=${(Q)selectp} while true; do clear @@ -1319,6 +1322,7 @@ - a negative number to turn this feature off - an empty line to leave the setting the way it is. " + # Better to parse and display the current setting. while true; do vared -eh -p 'value> ' select [[ -z $select || $select = ((-|)<->|l|<->#ll<->#) ]] && break; @@ -1363,6 +1367,23 @@ menu="$amenu" ;; esac + if [[ $menu = *select* ]]; then + print "\ +You can also set a prompt to use for menu selection when it would scroll +off the screen. Unless this is set, you won't see a prompt, but the feature +is still enabled. + +Edit a prompt below. It can contain \`%l' to show the number of matches +as \`current_number/total_number', \`%p' to show the fraction of +the way down the list, or font-control sequences such as %B, %U, %S and +the corresponding %b, %u, %s; quotes will be added automatically. Delete +the whole line to turn it off. Hit return to keep the current value. +" + [[ -z $hasselectp ]] && + selectp='%SScrolling active: current selection at %p%s' + vared -eh -p 'prompt> ' -c selectp + [[ -z $selectp ]] && hasselectp= + fi ;; 3) print "\ You can make completion lists scroll when they don't fit on the screen. @@ -1395,6 +1416,8 @@ __ci_set_this_style menu menu [[ -n $haslistp ]] && listp=${(qq)listp} __ci_set_this_style list-prompt listp + [[ -n $hasselectp ]] && selectp=${(qq)selectp} + __ci_set_this_style select-prompt selectp return 0 } @@ -1411,8 +1434,7 @@ *** compinstall: display and insertion options *** 1. Change appearance of completion lists: allows descriptions of - completions to appear, sorting of different types of completions, - and scrolling of completion lists. + completions to appear and sorting of different types of completions. 2. Change how completions are inserted: includes options for sorting, and keeping the original or an unambiguous prefix with correction etc.