unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH] completion: update bash completion
@ 2013-11-06 19:25 Jani Nikula
  2013-11-07 13:30 ` Tomi Ollila
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jani Nikula @ 2013-11-06 19:25 UTC (permalink / raw)
  To: notmuch

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

---

This logically depends on id:cover.1383481295.git.jani@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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] completion: update bash completion
  2013-11-06 19:25 [PATCH] completion: update bash completion Jani Nikula
@ 2013-11-07 13:30 ` Tomi Ollila
  2013-11-09 13:26 ` David Bremner
  2013-11-11  3:18 ` David Bremner
  2 siblings, 0 replies; 4+ messages in thread
From: Tomi Ollila @ 2013-11-07 13:30 UTC (permalink / raw)
  To: Jani Nikula, notmuch

On Wed, Nov 06 2013, Jani Nikula <jani@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@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@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] completion: update bash completion
  2013-11-06 19:25 [PATCH] completion: update bash completion Jani Nikula
  2013-11-07 13:30 ` Tomi Ollila
@ 2013-11-09 13:26 ` David Bremner
  2013-11-11  3:18 ` David Bremner
  2 siblings, 0 replies; 4+ messages in thread
From: David Bremner @ 2013-11-09 13:26 UTC (permalink / raw)
  To: Jani Nikula, notmuch

Jani Nikula <jani@nikula.org> writes:

>  completion/notmuch-completion.bash | 89 +++++++++++++++++++++++++++++++++++---
>  1 file changed, 82 insertions(+), 7 deletions(-)

I tested some of the new options, and they seem to work.  I'm not very
confident about my understanding of the code, but it does seem
consistent with the existing completion code. 

d

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] completion: update bash completion
  2013-11-06 19:25 [PATCH] completion: update bash completion Jani Nikula
  2013-11-07 13:30 ` Tomi Ollila
  2013-11-09 13:26 ` David Bremner
@ 2013-11-11  3:18 ` David Bremner
  2 siblings, 0 replies; 4+ messages in thread
From: David Bremner @ 2013-11-11  3:18 UTC (permalink / raw)
  To: Jani Nikula, notmuch

Jani Nikula <jani@nikula.org> writes:

> 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
>

pushed

d

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-11-11  3:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-06 19:25 [PATCH] completion: update bash completion Jani Nikula
2013-11-07 13:30 ` Tomi Ollila
2013-11-09 13:26 ` David Bremner
2013-11-11  3:18 ` David Bremner

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).