X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=completion%2Fnotmuch-completion.bash;h=e0498903f22f763f47576be79a7fefa719403dc4;hp=0f132043dea5e89219f6853714b63c74ac101476;hb=647c0b0692379e434a3ccb213f88b89fae8b4321;hpb=28d7544ae2adfe6467c6b64a3284f5ed13f81e1a diff --git a/completion/notmuch-completion.bash b/completion/notmuch-completion.bash index 0f132043..e0498903 100644 --- a/completion/notmuch-completion.bash +++ b/completion/notmuch-completion.bash @@ -49,8 +49,19 @@ _notmuch_search_terms() from:*) COMPREPLY=( $(compgen -P "from:" -W "`_notmuch_user_emails`" -- ${cur##from:}) ) ;; + path:*) + local path=`notmuch config get database.path` + compopt -o nospace + COMPREPLY=( $(compgen -d "$path/${cur##path:}" | sed "s|^$path/||" ) ) + ;; + folder:*) + local path=`notmuch config get database.path` + compopt -o nospace + COMPREPLY=( $(compgen -d "$path/${cur##folder:}" | \ + sed "s|^$path/||" | grep -v "\(^\|/\)\(cur\|new\|tmp\)$" ) ) + ;; *) - local search_terms="from: to: subject: attachment: tag: id: thread: folder: date:" + local search_terms="from: to: subject: attachment: mimetype: tag: id: thread: folder: path: date:" compopt -o nospace COMPREPLY=( $(compgen -W "${search_terms}" -- ${cur}) ) ;; @@ -67,7 +78,7 @@ _notmuch_compact() $split && case "${prev}" in --backup) - _filedir + _filedir -d return ;; esac @@ -96,7 +107,7 @@ _notmuch_config() ;; # these will also complete on config get, but we don't care database.path) - _filedir + _filedir -d ;; maildir.synchronize_flags) COMPREPLY=( $(compgen -W "true false" -- ${cur}) ) @@ -158,7 +169,7 @@ _notmuch_dump() ! $split && case "${cur}" in -*) - local options="--format= --output=" + local options="--gzip --format= --output=" compopt -o nospace COMPREPLY=( $(compgen -W "$options" -- ${cur}) ) ;; @@ -177,7 +188,10 @@ _notmuch_insert() $split && case "${prev}" in --folder) - _filedir + local path=`notmuch config get database.path` + compopt -o nospace + COMPREPLY=( $(compgen -d "$path/${cur}" | \ + sed "s|^$path/||" | grep -v "\(^\|/\)\(cur\|new\|tmp\)$" ) ) return ;; esac @@ -185,7 +199,7 @@ _notmuch_insert() ! $split && case "${cur}" in --*) - local options="--create-folder --folder=" + local options="--create-folder --folder= --keep --no-hooks" compopt -o nospace COMPREPLY=( $(compgen -W "$options" -- ${cur}) ) return @@ -309,6 +323,44 @@ _notmuch_search() esac } +_notmuch_address() +{ + local cur prev words cword split + _init_completion -s || return + + $split && + case "${prev}" in + --format) + COMPREPLY=( $( compgen -W "json sexp text text0" -- "${cur}" ) ) + return + ;; + --output) + COMPREPLY=( $( compgen -W "sender recipients count" -- "${cur}" ) ) + return + ;; + --sort) + COMPREPLY=( $( compgen -W "newest-first oldest-first" -- "${cur}" ) ) + return + ;; + --exclude) + COMPREPLY=( $( compgen -W "true false flag all" -- "${cur}" ) ) + return + ;; + esac + + ! $split && + case "${cur}" in + -*) + local options="--format= --output= --sort= --exclude=" + compopt -o nospace + COMPREPLY=( $(compgen -W "$options" -- ${cur}) ) + ;; + *) + _notmuch_search_terms + ;; + esac +} + _notmuch_show() { local cur prev words cword split @@ -382,8 +434,12 @@ _notmuch_tag() _notmuch() { - local _notmuch_commands="compact config count dump help insert new reply restore search setup show tag" + local _notmuch_commands="compact config count dump help insert new reply restore search address setup show tag" local arg cur prev words cword split + + # require bash-completion with _init_completion + type -t _init_completion >/dev/null 2>&1 || return + _init_completion || return COMPREPLY=()