aboutsummaryrefslogtreecommitdiffhomepage
path: root/completion/notmuch-completion.zsh
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-04-06 10:48:21 -0700
committerGravatar Carl Worth <cworth@cworth.org>2010-04-06 14:36:31 -0700
commite1a84ab1733c78fce8afeef8f022122988fc8a10 (patch)
tree8169b1020e2a6748eababe0494d0077feb76c811 /completion/notmuch-completion.zsh
parentf23b233e3ad7217c207ff2d4b223d729f4002330 (diff)
Rename the "contrib" directory to "completion".
The original "contrib" name is lousy. Everything in notmuch has been contributed, and we are integrating as much of it as possible, (rather than making users grub through contrib looking for useful pieces to install). Meanwhile, the only things we have in contrib are command-line completion scripts, so "completion" makes more sense as a name, (and helps make "./configure" slightly less ambiguous).
Diffstat (limited to 'completion/notmuch-completion.zsh')
-rw-r--r--completion/notmuch-completion.zsh74
1 files changed, 74 insertions, 0 deletions
diff --git a/completion/notmuch-completion.zsh b/completion/notmuch-completion.zsh
new file mode 100644
index 00000000..67a9aba8
--- /dev/null
+++ b/completion/notmuch-completion.zsh
@@ -0,0 +1,74 @@
+#compdef notmuch
+
+# ZSH completion for `notmuch`
+# Copyright © 2009 Ingmar Vanhassel <ingmar@exherbo.org>
+
+_notmuch_commands()
+{
+ local -a notmuch_commands
+ notmuch_commands=(
+ 'setup:interactively set up notmuch for first use'
+ 'new:find and import any new message to the database'
+ 'search:search for messages matching the search terms, display matching threads as results'
+ 'reply:constructs a reply template for a set of messages'
+ 'show:show all messages matching the search terms'
+ 'tag:add or remove tags for all messages matching the search terms'
+ 'dump:creates a plain-text dump of the tags of each message'
+ 'restore:restores the tags from the given file'
+ 'help:show details on a command'
+ )
+
+ _describe -t command 'command' notmuch_commands
+}
+
+_notmuch_dump()
+{
+ _files
+}
+
+_notmuch_help_topics()
+{
+ local -a notmuch_help_topics
+ notmuch_help_topics=(
+ 'search-terms:show common search-terms syntax'
+ )
+ _describe -t notmuch-help-topics 'topic' notmuch_help_topics
+}
+
+_notmuch_help()
+{
+ _alternative \
+ _notmuch_commands \
+ _notmuch_help_topics
+}
+
+_notmuch_restore()
+{
+ _files
+}
+
+_notmuch_search()
+{
+ _arguments -s : \
+ '--max-threads=[display only the first x threads from the search results]:number of threads to show: ' \
+ '--first=[omit the first x threads from the search results]:number of threads to omit: ' \
+ '--sort=[sort results]:sorting:((newest-first\:"reverse chronological order" oldest-first\:"chronological order"))'
+}
+
+_notmuch()
+{
+ if (( CURRENT > 2 )) ; then
+ local cmd=${words[2]}
+ curcontext="${curcontext%:*:*}:notmuch-$cmd"
+ (( CURRENT-- ))
+ shift words
+ _call_function ret _notmuch_$cmd
+ return ret
+ else
+ _notmuch_commands
+ fi
+}
+
+_notmuch "$@"
+
+# vim: set sw=2 sts=2 ts=2 et ft=zsh :