[PATCH] completion: update bash completion

Tomi Ollila tomi.ollila at iki.fi
Thu Nov 7 05:30:10 PST 2013


On Wed, Nov 06 2013, Jani Nikula <jani at nikula.org> wrote:

> Update bash completion to cover new commands and options:
>
> notmuch compact --quiet --backup=DIR
> notmuch count --output=files --batch --input=FILE
> notmuch insert --folder=DIR --create-folder
> notmuch search --exclude=all --duplicate=N
> notmuch show --include-html
> notmuch tag --batch --input=FILE --remove-all

These changes looks sensible and consistent to me. +1

Tomi


>
> ---
>
> This logically depends on id:cover.1383481295.git.jani at nikula.org
> which adds --quiet and --backup=DIR parameters to compact.
> ---
>  completion/notmuch-completion.bash | 89 +++++++++++++++++++++++++++++++++++---
>  1 file changed, 82 insertions(+), 7 deletions(-)
>
> diff --git a/completion/notmuch-completion.bash b/completion/notmuch-completion.bash
> index 7bd7745..04324bb 100644
> --- a/completion/notmuch-completion.bash
> +++ b/completion/notmuch-completion.bash
> @@ -59,6 +59,29 @@ _notmuch_search_terms()
>      __ltrim_colon_completions "${cur}"
>  }
>  
> +_notmuch_compact()
> +{
> +    local cur prev words cword split
> +    _init_completion -s || return
> +
> +    $split &&
> +    case "${prev}" in
> +	--backup)
> +	    _filedir
> +	    return
> +	    ;;
> +    esac
> +
> +    ! $split &&
> +    case "${cur}" in
> +	-*)
> +	    local options="--backup= --quiet"
> +	    compopt -o nospace
> +	    COMPREPLY=( $(compgen -W "$options" -- ${cur}) )
> +	    ;;
> +    esac
> +}
> +
>  _notmuch_config()
>  {
>      local cur prev words cword split
> @@ -89,19 +112,23 @@ _notmuch_count()
>      $split &&
>      case "${prev}" in
>  	--output)
> -	    COMPREPLY=( $( compgen -W "messages threads" -- "${cur}" ) )
> +	    COMPREPLY=( $( compgen -W "messages threads files" -- "${cur}" ) )
>  	    return
>  	    ;;
>  	--exclude)
>  	    COMPREPLY=( $( compgen -W "true false" -- "${cur}" ) )
>  	    return
>  	    ;;
> +	--input)
> +	    _filedir
> +	    return
> +	    ;;
>      esac
>  
>      ! $split &&
>      case "${cur}" in
>  	-*)
> -	    local options="--output= --exclude="
> +	    local options="--output= --exclude= --batch --input="
>  	    compopt -o nospace
>  	    COMPREPLY=( $(compgen -W "$options" -- ${cur}) )
>  	    ;;
> @@ -141,6 +168,39 @@ _notmuch_dump()
>      esac
>  }
>  
> +_notmuch_insert()
> +{
> +    local cur prev words cword split
> +    # handle tags with colons and equal signs
> +    _init_completion -s -n := || return
> +
> +    $split &&
> +    case "${prev}" in
> +	--folder)
> +	    _filedir
> +	    return
> +	    ;;
> +    esac
> +
> +    ! $split &&
> +    case "${cur}" in
> +	--*)
> +	    local options="--create-folder --folder="
> +	    compopt -o nospace
> +	    COMPREPLY=( $(compgen -W "$options" -- ${cur}) )
> +	    return
> +	    ;;
> +	+*)
> +	    COMPREPLY=( $(compgen -P "+" -W "`notmuch search --output=tags \*`" -- ${cur##+}) )
> +	    ;;
> +	-*)
> +	    COMPREPLY=( $(compgen -P "-" -W "`notmuch search --output=tags \*`" -- ${cur##-}) )
> +	    ;;
> +    esac
> +    # handle tags with colons
> +    __ltrim_colon_completions "${cur}"
> +}
> +
>  _notmuch_new()
>  {
>      local cur prev words cword split
> @@ -231,7 +291,7 @@ _notmuch_search()
>  	    return
>  	    ;;
>  	--exclude)
> -	    COMPREPLY=( $( compgen -W "true false flag" -- "${cur}" ) )
> +	    COMPREPLY=( $( compgen -W "true false flag all" -- "${cur}" ) )
>  	    return
>  	    ;;
>      esac
> @@ -239,7 +299,7 @@ _notmuch_search()
>      ! $split &&
>      case "${cur}" in
>  	-*)
> -	    local options="--format= --output= --sort= --offset= --limit= --exclude="
> +	    local options="--format= --output= --sort= --offset= --limit= --exclude= --duplicate="
>  	    compopt -o nospace
>  	    COMPREPLY=( $(compgen -W "$options" -- ${cur}) )
>  	    ;;
> @@ -273,7 +333,7 @@ _notmuch_show()
>      ! $split &&
>      case "${cur}" in
>  	-*)
> -	    local options="--entire-thread= --format= --exclude= --body= --format-version= --part= --verify --decrypt"
> +	    local options="--entire-thread= --format= --exclude= --body= --format-version= --part= --verify --decrypt --include-html"
>  	    compopt -o nospace
>  	    COMPREPLY=( $(compgen -W "$options" -- ${cur}) )
>  	    ;;
> @@ -287,9 +347,24 @@ _notmuch_tag()
>  {
>      local cur prev words cword split
>      # handle tags with colons and equal signs
> -    _init_completion -n := || return
> +    _init_completion -s -n := || return
> +
> +    $split &&
> +    case "${prev}" in
> +	--input)
> +	    _filedir
> +	    return
> +	    ;;
> +    esac
>  
> +    ! $split &&
>      case "${cur}" in
> +	--*)
> +	    local options="--batch --input= --remove-all"
> +	    compopt -o nospace
> +	    COMPREPLY=( $(compgen -W "$options" -- ${cur}) )
> +	    return
> +	    ;;
>  	+*)
>  	    COMPREPLY=( $(compgen -P "+" -W "`notmuch search --output=tags \*`" -- ${cur##+}) )
>  	    ;;
> @@ -307,7 +382,7 @@ _notmuch_tag()
>  
>  _notmuch()
>  {
> -    local _notmuch_commands="config count dump help new reply restore search setup show tag"
> +    local _notmuch_commands="compact config count dump help insert new reply restore search setup show tag"
>      local arg cur prev words cword split
>      _init_completion || return
>  
> -- 
> 1.8.4.rc3
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list