summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2003-07-21 17:01:34 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2003-07-21 17:01:34 +0000
commit48205cc72ff7ce3a1470226ae508e5194252db4e (patch)
tree2726d7ddc7ac72cdf7988dc490afcdfa7852d1e7
parent7209f6be5a34cfe936a3d14b0bd61a468e830838 (diff)
downloadzsh-48205cc72ff7ce3a1470226ae508e5194252db4e.tar.gz
zsh-48205cc72ff7ce3a1470226ae508e5194252db4e.zip
18859: Allow the sort style to override sorting by setting explicitly to false.
-rw-r--r--ChangeLog6
-rw-r--r--Completion/Base/Core/_description14
-rw-r--r--Doc/Zsh/compsys.yo22
3 files changed, 35 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 3f63516be..e1b218f51 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-07-21 Peter Stephenson <pws@csr.com>
+
+ * 18859: Completion/Base/Core/_description, Doc/Zsh/compsys.yo:
+ Allow sort style to be set to false to turn off sorting when
+ on by default.
+
2003-07-21 Doug Kearns <djkea2@mugca.its.monash.edu.au>
* 18872: Completion/Unix/Command/_java: update javac completion for
diff --git a/Completion/Base/Core/_description b/Completion/Base/Core/_description
index 41f4f2483..573bfbc3d 100644
--- a/Completion/Base/Core/_description
+++ b/Completion/Base/Core/_description
@@ -1,6 +1,6 @@
#autoload
-local name gropt nopt xopt format gname hidden hide match opts tag
+local name gropt nopt xopt format gname hidden hide match opts tag sort
opts=()
@@ -31,6 +31,18 @@ zstyle -s ":completion:${curcontext}:$1" matcher match &&
opts=($opts -M "$match")
[[ -n "$_matcher" ]] && opts=($opts -M "$_matcher")
+# Use sort style, but ignore `menu' value to help _expand.
+# Also don't override explicit use of -V.
+if { zstyle -s ":completion:${curcontext}:$1" sort sort ||
+ zstyle -s ":completion:${curcontext}:" sort sort; } &&
+ [[ "$gropt" = -J && $sort != menu ]]; then
+ if [[ "$sort" = (yes|true|1|on) ]]; then
+ gropt=(-J)
+ else
+ gropt=(-V)
+ fi
+fi
+
if [[ -z "$_comp_no_ignore" ]]; then
zstyle -a ":completion:${curcontext}:$1" ignored-patterns _comp_ignore ||
_comp_ignore=()
diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo
index e48a057f7..6b77fb8f8 100644
--- a/Doc/Zsh/compsys.yo
+++ b/Doc/Zsh/compsys.yo
@@ -2162,12 +2162,22 @@ is started, making it easy to select either of them.
)
kindex(sort, completion style)
item(tt(sort))(
-If set to `true', completing words from the command
-history sorts the words alphabetically instead of
-keeping them in the order in which they appear in the history (from
-youngest to oldest).
-
-This is also used by the tt(_expand) completer. If it is set to
+Many completion widgets call tt(_description) at some point which
+decides whether the matches are added sorted or unsorted (often
+indirectly via tt(_wanted) or tt(_requested)). This style can be set
+explicitly to one of the usual true or false values as an override.
+If it is not set for the context, the standard behaviour of the
+calling widget is used.
+
+The style is tested first against the full context including the tag, and
+if that fails to produce a value against the context without the tag.
+
+If the calling widget explicitly requests unsorted matches, this is usually
+honoured. However, the default (unsorted) behaviour of completion
+for the command history may be overridden by setting the style to
+tt(true).
+
+In the tt(_expand) completer, if it is set to
`true', the expansions generated will always be sorted. If it is set
to `tt(menu)', then the expansions are only sorted when they are offered
as single strings but not in the string containing all possible