zsh-workers
 help / color / mirror / code / Atom feed
* Re: Tar file and Re: Bad interaction between -iprefix and -string
@ 1999-02-12  9:54 Sven Wischnowsky
  0 siblings, 0 replies; 5+ messages in thread
From: Sven Wischnowsky @ 1999-02-12  9:54 UTC (permalink / raw)
  To: zsh-workers


Peter Stephenson wrote:

>  I
> vaguely thought of some extension to allow binding of multiple keys at
> once by this, either
>   #key-array \e/ \M/ history-complete
> or perhaps better
>   #key-array history-complete \e/ \M/
> but I haven't done that here.

Neither have I, but sounds good.

The patch below at least puts that key-completion stuff in a separate
function (`defkeycomp') and makes it be used.

It also fixes `__main_key_complete' to work with the widget-name-is-
function-name style and it fixes `__find'.

Bye
 Sven

diff -u om/Completion/__find Misc/Completion/__find
--- om/Completion/__find	Fri Feb 12 10:23:45 1999
+++ Misc/Completion/__find	Fri Feb 12 10:46:21 1999
@@ -6,9 +6,9 @@
   compsub
 elif [[ -iprefix - ]]; then
   complist -s 'daystart {max,min,}depth follow noleaf version xdev \
-a,c,}newer {a,c,m}{min,time} empty false {fs,x,}type gid inum links \
-i,}{l,}name {no,}{user,group} path perm regex size true uid used \
-xec {f,}print{f,0,} ok prune ls'
+{a,c,}newer {a,c,m}{min,time} empty false {fs,x,}type gid inum links \
+{i,}{l,}name {no,}{user,group} path perm regex size true uid used \
+exec {f,}print{f,0,} ok prune ls'
   compreset
 elif [[ -position 1 ]]; then
   complist -g '. ..'
diff -u om/Completion/__main_key_complete Misc/Completion/__main_key_complete
--- om/Completion/__main_key_complete	Fri Feb 12 10:23:46 1999
+++ Misc/Completion/__main_key_complete	Fri Feb 12 10:39:01 1999
@@ -3,4 +3,4 @@
 # The widget name looks like `__complete_key_<num>' where <num> can be
 # used as an index into the `keycomps' array to get at the definition.
 
-callcomplete keycomps "$WIDGET[16,-1]" "$@"
+callcomplete keycomps "$WIDGET" "$@"
diff -u om/Completion/init Misc/Completion/init
--- om/Completion/init	Fri Feb 12 10:23:47 1999
+++ Misc/Completion/init	Fri Feb 12 10:44:11 1999
@@ -56,10 +56,11 @@
 # are the names of the command, the values are names of functions or variables
 # that are to be used to generate the matches.
 # Pattern completions will be stored in an normal array named `patcomps'.
-# Completion definitions bound directly to keys are store in an assoc array
+# Completion definitions bound directly to keys are stored in an assoc array
 # named `keycomps'.
 
 typeset -A comps
+typeset -A keycomps
 
 
 # This may be used to define completion handlers. The first argument is the
@@ -106,6 +107,30 @@
 }
 
 
+# This is used to define completion handlers directly bound to keys. The
+# first argument is as for `defcomp', giving the handler. The second argument
+# is a key-sequence usable fo `bindkey'. The third argument is the name of one
+# of the built-in completion widgets. Typing the given key sequence will
+# complete the word the cursor is on according to the completion definition
+# given and will behave as if the built-in completion widget was used.
+
+defkeycomp() {
+  local name
+
+  if [[ "$1" = -a ]]; then
+    shift
+    autoload "$1"
+    name="$1"
+  elif [[ "${1[1]}" = ' ' ]]; then
+    name="${1:t}"
+  else
+    name="$1"
+  fi
+  zle -C "$name" "$3" __main_key_complete
+  bindkey "$2" "$name"
+  keycomps[$name]="$1"
+}
+
 # These can be used to easily save and restore the state of the special
 # variables used by the completion code.
 
@@ -192,16 +217,9 @@
     elif [[ $line[1] = '#pattern-array' ]]; then
       defcomp " $file" "$line[2]"
     elif [[ $line[1] = '#key-function' ]]; then
-      (( ${+keycomps} )) || typeset -A keycomps
-      zle -C ${file:t} $line[3] __main_key_complete
-      bindkey "$line[2]" ${file:t}
-      autoload ${file:t}
-      keycomps[${file:t}]=${file:t}
+      defkeycomp -a "${file:t}" "$line[2]" "$line[3]"
     elif [[ $line[1] = '#key-array' ]]; then
-      (( ${+keycomps} )) || typeset -A keycomps
-      zle -C ${file:t} $line[3] __main_key_complete
-      bindkey "$line[2]" ${file:t}
-      keycomps[${file:t}]=" $file"
+      defkeycomp " $file" "$line[2]" "$line[3]"
     elif [[ $line[1] = '#helper' ]]; then
       autoload ${file:t}
     fi

--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Tar file and Re: Bad interaction between -iprefix and -string
@ 1999-02-12  8:53 Sven Wischnowsky
  0 siblings, 0 replies; 5+ messages in thread
From: Sven Wischnowsky @ 1999-02-12  8:53 UTC (permalink / raw)
  To: zsh-workers


Bart Schaefer wrote:

> On Feb 11,  6:08pm, Peter Stephenson wrote:
> } Subject: Re: Tar file and Re: Bad interaction between -iprefix and -string
> }
> } [...]  for some reason
> } 
> } for i in "$patcomps[@]"; do
> } 
> } was being called when patcomps was empty (should it really do that?)
> 
> Hmm.  You mean the for loop, looped?  Obviously it shouldn't do that.
> How was patcomps initialized up to that point?

The array isn't initialised at all, look:

  % foo() { echo $# }
  % unset a
  % foo $a[@]
  0                    # fine
  % foo "$a[@]"
  1                    # oops

The same for `$a[*]' and `$a'.

Bye
 Sven


--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Tar file and Re: Bad interaction between -iprefix and -string
  1999-02-11 17:08 ` Peter Stephenson
@ 1999-02-11 18:39   ` Bart Schaefer
  0 siblings, 0 replies; 5+ messages in thread
From: Bart Schaefer @ 1999-02-11 18:39 UTC (permalink / raw)
  To: zsh-workers

On Feb 11,  6:08pm, Peter Stephenson wrote:
} Subject: Re: Tar file and Re: Bad interaction between -iprefix and -string
}
} [...]  for some reason
} 
} for i in "$patcomps[@]"; do
} 
} was being called when patcomps was empty (should it really do that?)

Hmm.  You mean the for loop, looped?  Obviously it shouldn't do that.
How was patcomps initialized up to that point?

} >   - I also added support for Peter-like (sorry ;-) special completion
} >     keys, see the comment in `init'
} 
} I think this could be a bit neater: in the patch, the widget defined
} now has the same name as the file with the #key-array or #key-function
} in it.  This was easy, it just needed $keycomps to be an assoc array.

This is all getting amazingly perl-ish.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Tar file and Re: Bad interaction between -iprefix and -string
  1999-02-11 15:27 Sven Wischnowsky
@ 1999-02-11 17:08 ` Peter Stephenson
  1999-02-11 18:39   ` Bart Schaefer
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Stephenson @ 1999-02-11 17:08 UTC (permalink / raw)
  To: zsh-workers

Sven Wischnowsky wrote:
> If Peter sends us his autoloading stuff, maybe we can join all the
> nice ideas both of us had.

You've done a good bit more than I have; most of my time was spent
constructing replacement functions.  I found a couple of problems.
One was that autoloaded arrays needed an extra "" around to allow null
elements to be passed through; I found this from complist -H 0 ''
which was dropping the last part.  Another was that for some reason

for i in "$patcomps[@]"; do

was being called when patcomps was empty (should it really do that?)
when was calling all sorts of bother, so I added a (( $#patcomps ))
test.

>   - I also added support for Peter-like (sorry ;-) special completion
>     keys, see the comment in `init'

I think this could be a bit neater: in the patch, the widget defined
now has the same name as the file with the #key-array or #key-function
in it.  This was easy, it just needed $keycomps to be an assoc array.
This would be a limitation if you wanted to have widgets of a
different type (e.g. listing instead of completing) associated with
the same function; we could concatenate the names in that case.  I
vaguely thought of some extension to allow binding of multiple keys at
once by this, either
  #key-array \e/ \M/ history-complete
or perhaps better
  #key-array history-complete \e/ \M/
but I haven't done that here.

--- Misc/Completion/init	Thu Feb 11 16:16:40 1999
+++ /home/user2/pws/bin/comp/init	Thu Feb 11 17:38:02 1999
@@ -56,7 +56,7 @@
 # are the names of the command, the values are names of functions or variables
 # that are to be used to generate the matches.
 # Pattern completions will be stored in an normal array named `patcomps'.
-# Completion definitions bound directly to keys are store in an array
+# Completion definitions bound directly to keys are store in an assoc array
 # named `keycomps'.
 
 typeset -A comps
@@ -166,7 +166,7 @@
   if [[ ${(P)+def} -eq 1 ]]; then
     # It is a parameter name, call complist directly.
 
-    complist ${(@P)def}
+    complist "${(@P)def}"
   else
     # Otherwise it's a function name, call this function.
 
@@ -177,9 +177,10 @@
 
 # Now we make the files automatically autoloaded.
 
-local dir file line key=1
+local dir file line
 
 for dir in $fpath; do
+  [[ $dir = . ]] && continue
   for file in $dir/__*~*~(N); do
     read -rA line < $file
     if [[ $line[1] = '#function' ]]; then
@@ -191,16 +192,16 @@
     elif [[ $line[1] = '#pattern-array' ]]; then
       defcomp " $file" "$line[2]"
     elif [[ $line[1] = '#key-function' ]]; then
-      zle -C __complete_key_$key $line[3] __main_key_complete
-      bindkey "$line[2]" __complete_key_$key
+      (( ${+keycomps} )) || typeset -A keycomps
+      zle -C ${file:t} $line[3] __main_key_complete
+      bindkey "$line[2]" ${file:t}
       autoload ${file:t}
-      keycomps[key]=${file:t}
-      (( key++ ))
+      keycomps[${file:t}]=${file:t}
     elif [[ $line[1] = '#key-array' ]]; then
-      zle -C __complete_key_$key $line[3] __main_key_complete
-      bindkey "$line[2]" __complete_key_$key
-      keycomps[key]=" $file"
-      (( key++ ))
+      (( ${+keycomps} )) || typeset -A keycomps
+      zle -C ${file:t} $line[3] __main_key_complete
+      bindkey "$line[2]" ${file:t}
+      keycomps[${file:t}]=" $file"
     elif [[ $line[1] = '#helper' ]]; then
       autoload ${file:t}
     fi
--- Misc/Completion/__normal	Thu Feb 11 16:06:29 1999
+++ /home/user2/pws/bin/comp/__normal	Thu Feb 11 17:45:47 1999
@@ -23,13 +23,15 @@
 
 # See if there are any matching pattern completions.
 
-for i in "$patcomps[@]"; do
-  pat="${i% *}"
-  val="${i#* }"
-  if [[ "$cmd1" == $~pat || "$cmd2" == $~pat ]]; then
-    callcomplete patcomps "$pat" "$@" || return 1
-  fi
-done
+if (( $#patcomps )); then
+  for i in "$patcomps[@]"; do
+    pat="${i% *}"
+    val="${i#* }"
+    if [[ "$cmd1" == $~pat || "$cmd2" == $~pat ]]; then
+      callcomplete patcomps "$pat" "$@" || return 1
+    fi
+  done
+fi
 
 # Now look up the two names in the normal completion array.
 
-- 
Peter Stephenson <pws@ibmth.df.unipi.it>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Tar file and Re:  Bad interaction between -iprefix and -string
@ 1999-02-11 15:27 Sven Wischnowsky
  1999-02-11 17:08 ` Peter Stephenson
  0 siblings, 1 reply; 5+ messages in thread
From: Sven Wischnowsky @ 1999-02-11 15:27 UTC (permalink / raw)
  To: zsh-workers


Peter Stephenson wrote:

> I'm gradually working through my compctl's; I'll try and make the
> result, including autodefcomping of functions and rebinding of
> completion widgets etc., available when it looks presentable.

I almost feared this, now that I have been working all day on this.

> This came out of my attempts to handle dd, but here's a simpler test.
> The [[ ... ]] stuck on its own looks funny, but it relies on the side
> effect on IPREFIX.
> 
> % defcomp stest
> % which __stest
> __stest () {
>         if [[ -iprefix name= ]]
>         then
>                 [[ -string , ]]
>                 complist -k '(yan tan tethera dick)'
>         fi
> }
> % stest name=y<TAB>                # produces...
> % stest name=yan                   # OK so far, add `,te' by hand...
> % stest name=yan,te<TAB>           # produces...
> % stest name=yan,tedick            # The te is being ignored, too.
> 
> I checked and the corresponding compctl:
> 
> % compctl -x 's[name=] n[-1,,],s[name=]' -k '(yan tan tethera dick)' -- stest
> 
> works OK.

I'll have a look at this in a moment...

> While I'm here, another comment on compadd: it's a well-known fact
> that it doesn't check whether what you are adding actually matches
> what's on the command line.  Is it easy to get it to do the check
> unless the -U option is given?  It would be a little neater than
> having to call complist with -s for a list produced by $(...) if you
> don't want to postprocess the list. 

The `-m' option turns on normal matching. So `compadd -m ...' is a lot 
like `complist', only that one still has direct access to all the
match-internals.

> In fact, what effect does -U have
> on compadd at the moment, given that the existing prefix is deleted
> with or without it?

Turn on menu-completion if auto_menu is set, the same rule as for
compctl.


Ok, the thing below adds a directory Misc/Completion with several
files. These files mostly contain the stuff from
new-completion-examples which I will no longer support.

If Peter sends us his autoloading stuff, maybe we can join all the
nice ideas both of us had.

I don't want to repeat anything I wrote in the comments, so just:

  - The first thing to look at is the file `init' which contains the
    code to set up new style completion, defines some helpers,
    re-binds the appropriate keys and makes the files be autoloaded
  - I added some comments, and cleaned things up a bit, especially
    __path_files (the former pfiles()). I don't want to say that any
    of this is in a final state, though.
  - I also added support for Peter-like (sorry ;-) special completion
    keys, see the comment in `init'

Bye
 Sven

begin 600 new-comp.tar.gz
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
@^!2?XE-\BD_Q*3[%I_@4G^)3?#[P\_\!O*X$%0!``0`Z
`
end

--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~1999-02-12  9:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-02-12  9:54 Tar file and Re: Bad interaction between -iprefix and -string Sven Wischnowsky
  -- strict thread matches above, loose matches on Subject: below --
1999-02-12  8:53 Sven Wischnowsky
1999-02-11 15:27 Sven Wischnowsky
1999-02-11 17:08 ` Peter Stephenson
1999-02-11 18:39   ` Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).