summaryrefslogtreecommitdiff
path: root/extra/completion/alot-completion.zsh
blob: 2f2da2a3070ea2174ba5f61e3026e9bd2298973a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#compdef alot

# ZSH completion for `alot`, Shamelessly copied from notmuch's zsh completion file
# Copyright © 2009 Ingmar Vanhassel <ingmar@exherbo.org>
# Copyright © 2012 Patrick Totzke <patricktotzke@gmail.com>

_alot_subcommands()
{
  local -a alot_subcommands
  alot_subcommands=(
    'search:search for messages matching the search terms, display matching threads as results'
    'compose:compose a new message'
  )

  _describe -t command 'command' alot_subcommands
}

_alot_search()
{
  _arguments -s : \
    '--sort=[sort results]:sorting:((newest_first\:"reverse chronological order" oldest_first\:"chronological order" message_id\:"lexicographically by Message Id"))'
}

_alot_compose()
{
  _arguments -s : \
    '--omit_signature[do not add signature]' \
    '--sender=[From header]' \
    '--subject=[Subject header]' \
    '--cc=[Carbon Copy header]' \
    '--bcc=[Blind Carbon Copy header]' \
    '--template=[template file to use]' \
    '--attach=[Attach files]:attach:_files -/'\
}

_alot()
{
  if (( CURRENT > 2 )) ; then
    local cmd=${words[2]}
    curcontext="${curcontext%:*:*}:alot-$cmd"
    (( CURRENT-- ))
    shift words
    _call_function ret _alot_$cmd
    return ret
  else
    _alot_subcommands
  fi
}

_alot "$@"

# vim: set sw=2 sts=2 ts=2 et ft=zsh :