]> Sergey Matveev's repositories - dotfiles.git/commitdiff
Complete mailboxes
authorSergey Matveev <stargrave@stargrave.org>
Wed, 2 Nov 2022 19:38:39 +0000 (22:38 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 2 Nov 2022 19:38:39 +0000 (22:38 +0300)
zsh/.zsh/rc/015completion.zsh

index 98d2283cd6a7e59e50ec386c4b21cbd19fa277c0..80166d9883d2a2c3c1d45403cba52aaa59f9aad9 100644 (file)
@@ -12,7 +12,7 @@ zstyle ":completion:*:files:*:*:descriptions" format ""
 zstyle ":completion:*" file-patterns "%p:globbed" "*"
 zstyle ":completion:*" matcher-list "" "m:{a-z-}={A-Z_}" "r:|?=** m:{a-z-}={A-Z_}"
 zstyle ":completion:*:man:*:*:*" matcher-list "" "m:{a-zA-Z}={A-Za-z} l:|=* r:|=*"
 zstyle ":completion:*" file-patterns "%p:globbed" "*"
 zstyle ":completion:*" matcher-list "" "m:{a-z-}={A-Z_}" "r:|?=** m:{a-z-}={A-Z_}"
 zstyle ":completion:*:man:*:*:*" matcher-list "" "m:{a-zA-Z}={A-Za-z} l:|=* r:|=*"
-zstyle ":completion:*" completer _mycomp _mycomp_man:man _parameters _ignored
+zstyle ":completion:*" completer _mycomp_mbox:mbox _mycomp _mycomp_man:man _parameters _ignored
 
 _mycomp () {
     [[ $CURRENT -eq 1 ]] && curcontext="${curcontext%:*:*}:-command-:" \
 
 _mycomp () {
     [[ $CURRENT -eq 1 ]] && curcontext="${curcontext%:*:*}:-command-:" \
@@ -37,5 +37,13 @@ _mycomp_man () {
         _dispatch "" info info "" -default- && return
 }
 
         _dispatch "" info info "" -default- && return
 }
 
+local mboxes=()
+for m ($MAILDIR/*(/on)) mboxes=($mboxes $m:t)
+
+_mycomp_mbox () {
+    [[ ${words[1]} == mbox ]] && curcontext=:mbox:${curcontext#:*:} \
+        _values mailboxes $mboxes && return
+}
+
 autoload -U compinit ; compinit -d /tmp/.zcompdump
 autoload -U complist
 autoload -U compinit ; compinit -d /tmp/.zcompdump
 autoload -U complist