]> Sergey Matveev's repositories - dotfiles.git/blob - zsh/.zsh/rc/015completion.zsh
Slightly refactored completion
[dotfiles.git] / zsh / .zsh / rc / 015completion.zsh
1 zstyle ":completion:*" list-colors ""
2
3 zstyle ":completion:*:functions" ignored-patterns "_*"
4 zstyle ":completion:*:manuals" separate-sections true
5
6 zstyle ":completion:*" group-name ""
7 zstyle ":completion:*:messages" format "%d"
8 zstyle ":completion:*:warnings" format "%F{red}no matches: %d%f"
9 zstyle ":completion:*:*:*:*:descriptions" format "%B... %d%b"
10 zstyle ":completion:*:files:*:*:descriptions" format ""
11
12 zstyle ":completion:*" file-patterns "%p:globbed" "*"
13 zstyle ":completion:*" matcher-list "" "m:{a-z-}={A-Z_}" "r:|?=** m:{a-z-}={A-Z_}"
14 zstyle ":completion:*:man:*:*:*" matcher-list "" "m:{a-zA-Z}={A-Za-z} l:|=* r:|=*"
15 zstyle ":completion:*" completer \
16     _mycomp_mbox \
17     _mycomp \
18     _mycomp_man:man \
19     _mycomp_info \
20     _parameters \
21     _ignored
22
23 _mycomp() {
24     [[ $CURRENT -eq 1 ]] && curcontext="${curcontext%:*:*}:-command-:" \
25         _command_names && return
26     [[ $IPREFIX =~ ~.* ]] && _tilde && return
27     local has_files
28     curcontext=:files:${curcontext#:*:} _files && has_files=1
29     [[ $has_files ]] && return
30
31     # MAGIC_EQUAL_SUBST {{{
32     [[ $PREFIX = *\=* ]] || return 1
33     compstate[parameter]=${PREFIX%%\=*}
34     compset -P 1 "*="
35     _value
36     # }}}
37 }
38
39 _mycomp_man() {
40     [[ ${words[1]} == man ]] && _dispatch man man man "" -default- && _value && return
41 }
42
43 _mycomp_info() {
44     [[ ${words[1]} == info ]] && _dispatch info info info "" -default- && return
45 }
46
47 local mboxes=()
48 for m ($MAILDIR/*(/on)) mboxes=($mboxes $m:t)
49
50 _mycomp_mbox() {
51     [[ ${words[1]} == mbox ]] && _values mboxes $mboxes && return
52 }
53
54 autoload -U compinit ; compinit -d /tmp/.zcompdump
55 autoload -U complist