* Re: PATCH: completion for zstyle
@ 2000-01-04 9:20 Sven Wischnowsky
0 siblings, 0 replies; 2+ messages in thread
From: Sven Wischnowsky @ 2000-01-04 9:20 UTC (permalink / raw)
To: zsh-workers
Peter Stephenson wrote:
> Here's some completion support for zstyle. In the first argument it will
> complete only :completion: or :zftp:; for the second all the standard styles;
> for the third, it knows about most completable values for the various
> styles (and knows whether they are specific to :completion:* or :zftp:*).
> Goodness knows if I've used contexts and tags in a consistent fashion
> within _zstyle itself.
I'm not Goodness but I think it looks fine. Just one typo and two
omissions.
Bye
Sven
diff -ru ../z.old/Completion/Builtins/_zstyle Completion/Builtins/_zstyle
--- ../z.old/Completion/Builtins/_zstyle Tue Jan 4 10:16:06 2000
+++ Completion/Builtins/_zstyle Tue Jan 4 10:17:34 2000
@@ -1,7 +1,8 @@
#compdef zstyle
-local curcontext="$curcontext" state ostate line expl ctop
-local nm=$compstat[nmatches]
+local curcontext="$curcontext" state context ostate line expl ctop
+local nm=$compstate[nmatches]
+typeset -A opt_args
typeset -A styles
# Assoc array of styles; the values give the possible top-level
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
^ permalink raw reply [flat|nested] 2+ messages in thread
* PATCH: completion for zstyle
@ 1999-12-23 21:54 Peter Stephenson
0 siblings, 0 replies; 2+ messages in thread
From: Peter Stephenson @ 1999-12-23 21:54 UTC (permalink / raw)
To: Zsh hackers list
Here's some completion support for zstyle. In the first argument it will
complete only :completion: or :zftp:; for the second all the standard styles;
for the third, it knows about most completable values for the various
styles (and knows whether they are specific to :completion:* or :zftp:*).
Goodness knows if I've used contexts and tags in a consistent fashion
within _zstyle itself.
It's possible that styles and tags will need moving out to _styles and,
say, _complete_tags, but it's not yet necessary.
It also adds some .distfiles stuff I missed before.
Index: Completion/Builtins/.distfiles
===================================================================
RCS file: /home/pws/CVSROOT/projects/zsh/Completion/Builtins/.distfiles,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 .distfiles
--- Completion/Builtins/.distfiles 1999/11/28 17:42:27 1.1.1.1
+++ Completion/Builtins/.distfiles 1999/12/23 17:32:43
@@ -4,5 +4,5 @@
_compdef _disable _echotc _enable _fc _fg_jobs _functions _hash _kill
_limits _nothing _pids _popd _sched _set _setopt _source _stat _trap
_unhash _unsetopt _vars _vars_eq _wait _which _zftp _zle _zmodload
- _signals
+ _signals _zstyle
'
Index: Completion/Builtins/_zstyle
===================================================================
RCS file: _zstyle
diff -N _zstyle
--- /dev/null Tue May 5 21:32:27 1998
+++ _zstyle Thu Dec 23 17:28:31 1999
@@ -0,0 +1,177 @@
+#compdef zstyle
+
+local curcontext="$curcontext" state ostate line expl ctop
+local nm=$compstat[nmatches]
+
+typeset -A styles
+# Assoc array of styles; the values give the possible top-level
+# contexts (currently c for completion, z for zftp or cz for both),
+# followed by a colon, followed by a state to enter, empty if none.
+styles=(
+ accept-exact c:bool
+ arguments c:
+ auto-description c:
+ cache-path 'c:_path_files -/'
+ completer c:completer
+ completions c:
+ condition c:
+ cursor c:bool
+ disable-stat c:bool
+ expand c:
+ format c:
+ glob c:
+ group-name c:
+ group-order c:tag
+ groups c:_groups
+ hidden c:bool
+ hosts c:_hosts
+ hosts-ports c:host-port
+ hosts-ports-users c:host-port-user
+ ignored-suffixes c:
+ insert-unambiguous c:bool
+ last-prompt c:bool
+ list c:listwhen
+ list-arguments c:
+ list-colors c:
+ list-packed c:bool
+ list-rows-first c:bool
+ local c:
+ max-errors c:
+ menu c:boolauto
+ numbers c:bool
+ original c:bool
+ path 'c:_path_files -/'
+ ports c:_ports
+ prefix-hidden c:bool
+ prefix-needed c:bool
+ prompt c:
+ remove-all-dups c:bool
+ sort c:bool
+ tag-order c:tag
+ special-dirs c:sdirs
+ stop c:stop
+ substitute c:
+ users c:_users
+ users-hosts c:user-host
+ verbose c:bool
+ word c:bool
+
+ chpwd z:bool
+ progress z:progress
+ remote_glob z:bool
+ titlebar z:bool
+ update z:
+)
+
+local taglist
+taglist=(accounts all-files all-expansions arguments arrays
+association-keys bookmarks builtins characters colors commands corrections
+cursors cvs default descriptions devices directories directory-stack
+displays expansions extensions files fonts functions globbed-files groups
+history-words hosts indexes jobs keymaps keysyms local-directories
+libraries limits manuals maps messages modifiers modules my-accounts
+named-directories names nicknames options original other-accounts packages
+parameters path-directories paths pods ports prefixes processes ps regex
+sequences sessions signals strings tags targets types urls users values
+warnings widgets windows zsh-options)
+
+_arguments ':context:->contexts' ':style:->styles' '*:argument:->style-arg'
+
+while [[ -n $state ]]; do
+ ostate=$state
+ state=
+
+ case "$ostate" in
+ contexts)
+ if [[ $PREFIX != :*: ]]; then
+ _wanted contexts expl context &&
+ compadd -P : -S : "$expl[@]" completion zftp
+ fi
+ ;;
+
+ styles)
+ # Get the top-level context we're completing for, if any.
+ if [[ $words[2] = :(completion|zftp):* ]]; then
+ ctop=${words[2][2]}
+ else
+ ctop=cz
+ fi
+ _wanted styles expl style &&
+ compadd "$expl[@]" - ${(k)styles[(R)[^:]#[$ctop][^:]#:*]}
+ ;;
+
+ style-arg)
+ state="${styles[$words[3]]#*:}"
+ ;;
+
+ bool)
+ _wanted values expl boolean &&
+ compadd "$expl[@]" true false
+ ;;
+
+ boolauto)
+ _wanted values expl boolean &&
+ compadd "$expl[@]" true false auto select
+ ;;
+
+ completer)
+ _wanted values expl completer &&
+ compadd "$expl[@]" _complete _approximate _correct _match \
+ _expand _list _menu _oldlist
+ ;;
+
+ host-port*)
+ if [[ $PREFIX != *:* ]]; then
+ _hosts -S :
+ elif [[ $ostate != *user || $PREFIX != *:*:* ]]; then
+ compset -P 1 '*:'
+ _ports
+ else
+ compset -P 2 '*:'
+ _users
+ fi
+ ;;
+
+ listwhen)
+ _wanted values expl 'when to list completions' &&
+ compadd "$expl[@]" always never sometimes
+ ;;
+
+ progress)
+ _wanted values expl 'progress meter style' &&
+ compadd "$expl[@]" none bar percent
+ ;;
+
+ sdirs)
+ _wanted values expl 'whether to complete . or ..' &&
+ compadd "$expl[@]" true false ..
+ ;;
+
+ stop)
+ _wanted values expl 'when to insert matches' &&
+ compadd "$expl[@]" true false verbose
+ ;;
+
+ tag)
+ _wanted tags expl tag && compadd "$expl[@]" - $taglist
+ ;;
+
+ user-host)
+ if [[ $PREFIX = *:* ]]; then
+ compset -P '*:'
+ _hosts
+ else
+ _users
+ fi
+ ;;
+
+ _*)
+ ${=ostate}
+ ;;
+
+ *)
+ ;;
+ esac
+done
+
+[[ $compstate[nmatches] != $nm ]]
Index: Test/.distfiles
===================================================================
RCS file: /home/pws/CVSROOT/projects/zsh/Test/.distfiles,v
retrieving revision 1.2
diff -u -r1.2 .distfiles
--- Test/.distfiles 1999/12/13 20:03:25 1.2
+++ Test/.distfiles 1999/12/23 17:34:29
@@ -1,5 +1,6 @@
DISTFILES_SRC='
.cvsignore .distfiles Makefile.in
ztst.zsh
- 01grammar.ztst 02alias.ztst 03quoting.ztst 50cd.ztst
+ 01grammar.ztst 02alias.ztst 03quoting.ztst 04redirect.ztst
+ 05command.ztst 06arith.ztst 07cond.ztst 50cd.ztst
'
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2000-01-04 9:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-01-04 9:20 PATCH: completion for zstyle Sven Wischnowsky
-- strict thread matches above, loose matches on Subject: below --
1999-12-23 21:54 Peter Stephenson
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).