]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-completion.bash
Add a .desktop file entry.
[notmuch] / notmuch-completion.bash
index ad55f6d3c9d4d84f1157bb5208ad755dde665460..03412117bb1c6240c0d7c7fe8b481341d8146c8e 100644 (file)
@@ -1,4 +1,4 @@
-# Bash completion for notmutch
+# Bash completion for notmuch
 #
 # Copyright © 2009 Carl Worth
 #
 #
 #      new
 #
-#      search <search-term> [...]
+#      search [options] <search-term> [...]
 #
-#      show <thread-id>
+#      show <search-terms>
+#
+#      reply <search-terms>
+#
+#      tag +<tag>|-<tag> [...] [--] <search-terms> [...]
 #
 #      dump [<filename>]
 #
 #      restore <filename>
+#
+#      help [<command>]
 
 _notmuch()
 {
-    current="$2"
+    local current previous commands help_options
 
-    commands="help setup new search show dump restore"
+    previous=${COMP_WORDS[COMP_CWORD-1]}
+    current="${COMP_WORDS[COMP_CWORD]}"
+
+    commands="setup new search show reply tag dump restore help"
+    help_options="setup new search show reply tag dump restore search-terms"
+    search_options="--max-threads= --first= --sort=oldest-first --sort=newest-first"
 
     COMPREPLY=()
 
-    if [ "$COMP_CWORD" = "1" ]; then
-       COMPREPLY=( $(compgen -W "${commands}" -- ${current}) )
-    fi
+    case $COMP_CWORD in
+        1)
+            COMPREPLY=( $(compgen -W "${commands}" -- ${current}) ) ;;
+        2)
+            case $previous in
+                help)
+                    COMPREPLY=( $(compgen -W "${help_options}" -- ${current}) ) ;;
+                search)
+                    COMPREPLY=( $(compgen -W "${search_options}" -- ${current}) ) ;;
+            esac
+            ;;
+    esac
 }
+
 complete -o default -o bashdefault -F _notmuch notmuch