1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-11 13:01:28 +02:00

expand style in compinstall

This commit is contained in:
Peter Stephenson 2001-10-05 16:33:34 +00:00
parent a5890553e8
commit 2dcb35efe0
2 changed files with 55 additions and 0 deletions

View file

@ -1,3 +1,7 @@
2001-10-05 Peter Stephenson <pws@csr.com>
* 15949: Completion/compinstall: add handling for expand style.
2001-10-05 Oliver Kiddle <opk@zsh.org> 2001-10-05 Oliver Kiddle <opk@zsh.org>
* 15851, 15948: Src/builtin.c, Doc/Zsh/builtins.yo: add printf * 15851, 15948: Src/builtin.c, Doc/Zsh/builtins.yo: add printf

View file

@ -1529,11 +1529,13 @@ completions?
# squeeze-slashes, # squeeze-slashes,
__ci_do_file_styles() { __ci_do_file_styles() {
local key files cursor expand speciald ignorep squeezes select local key files cursor expand speciald ignorep squeezes select
local prefon suffon
__ci_get_this_style file-sort files __ci_get_this_style file-sort files
__ci_get_this_style ignore-parents ignorep __ci_get_this_style ignore-parents ignorep
__ci_get_this_style special-dirs speciald __ci_get_this_style special-dirs speciald
__ci_get_this_style squeeze-slashes squeezes __ci_get_this_style squeeze-slashes squeezes
__ci_get_this_style expand expand
while true; do while true; do
clear clear
@ -1548,6 +1550,8 @@ __ci_do_file_styles() {
4. When expanding paths, \`foo//bar' is treated as \`foo/bar'. 4. When expanding paths, \`foo//bar' is treated as \`foo/bar'.
5. Configure how multiple paths are expanded, e.g. /f/b -> /foo/bar
q. Return without saving. q. Return without saving.
0. Done setting options for filename completion. 0. Done setting options for filename completion.
" "
@ -1655,6 +1659,52 @@ one ([y]es, [n]o, [k]eep current setting)?
([nN]) squeezes=;; ([nN]) squeezes=;;
esac esac
;; ;;
(5) if [[ $expand = *prefix* ]]; then
prefon=prefix
else
prefon=
fi
if [[ $expand = *suffix* ]]; then
suffon=suffix
else
suffon=
fi
print "
When expanding /f/b, the shell will attempt to match /f*/b* (e.g. /foo/bar),
and so on to any depth. If the first part of the expansion fails, by default
the shell will not expand the remainder. However, you can force it always
to expand the first part. Currently this feature is ${${prefon:+on}:-off}.
Do you want it on ([y]es, [n]o, [k]eep current setting)?
"
while true; do
read -k key'?--- Hit selection --- '
[[ $key = [yYnNkK] ]] && break
print "Type one of y, n or k."
done
case $key in
([yY]) prefon=prefix;;
([nN]) prefon=prefix;;
esac
print "
Further, if /f*/b* is ambiguous, the shell will usually only expand
as far as the part that is unambiguous; for example, if /foo/bar and
/food/basket exist, it will wait for you to choose either /foo or /food,
and not attempt to expand the rest of the match. However, you can force
it to add all possible completions for you to resolve conflicts in the
normal way. Currently this feature is ${${suffon:+on}:-off}.
Do you want it on ([y]es, [n]o, [k]eep current settign)?
"
while true; do
read -k key'?--- Hit selection --- '
[[ $key = [yYnNkK] ]] && break
print "Type one of y, n or k."
done
case $key in
([yY]) suffon=suffix;;
([nN]) suffon=suffix;;
esac
expand=${prefon:+$prefon${suffon:+ }}${suffon}
;;
(q) return 1 (q) return 1
;; ;;
esac esac
@ -1665,6 +1715,7 @@ one ([y]es, [n]o, [k]eep current setting)?
__ci_set_this_style ignore-parents ignorep __ci_set_this_style ignore-parents ignorep
__ci_set_this_style special-dirs speciald __ci_set_this_style special-dirs speciald
__ci_set_this_style squeeze-slashes squeezes __ci_set_this_style squeeze-slashes squeezes
__ci_set_this_style expand expand
return 0 return 0
} }