[PATCH] emacs: Tab completion for notmuch-search and notmuch-search-filter

2011-06-06 Thread Daniel Schoepe
I accidentally left a, now unnecessary, defvar in the patch from one of
the previous attempts, here is the updated version (thanks Austin for
noticing).

-- next part --
A non-text attachment was scrubbed...
Name: 0001-emacs-Tab-completion-for-notmuch-search-and-notmuch-.patch
Type: text/x-diff
Size: 2965 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20110606/6d6f349a/attachment.patch>
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20110606/6d6f349a/attachment.pgp>


tag sharing [was: Re: release-candidate/0.6 redux]

2011-06-06 Thread Jesse Rosenthal

On Mon, 06 Jun 2011 09:28:13 -0700, Jameson Graef Rollins  wrote:
> I've been thinking about this more and it really seems we need a way to
> just share tags.  What if we had a way to export all the tags for a set
> of messages as a notmuch dump file, that could just be piped into
> notmuch to modify tags?  This would be a great way for lots of people to
> keep tags synced on a set of messages.

After a conversation with David last year about bug-tracking, I worked
up a rough python-based prototype of this. It worked in terms of
namespaces, so Carl could associate the namespace "public" with a list
of tags he publishes to a http-accessable location. And you could
associate the namespace "cworth" with those same tags.

He types `whatevercommand push public` and all tags "public.*" go to an
config-associated URL.

You type `whatevercommand pull cworth` and the tags come down from that
URL as "cworth.*".

So what he has as "public.to-push" comes down to your notmuch as
"cworth.to-push".

It's available here:

http://commonmeasure.org/~jkr/git/nm-remote.git

See these emails for more (but note that the repo url has changed to the
above).

id:"m1k4rkkchy.fsf at watt.gilman.jhu.edu"
id:"m1hbmokbxj.fsf at watt.gilman.jhu.edu"

There were some details and inherent ambiguities about conflict
resolution, and the above emails explain how I dealt with them. 

Note also that it uses python's configparser, which will overwrite your
config -- which means it'll get rid of your comments. So if you use any
of the config-writing commands, make sure you back up your config first.

Best,
Jesse


tag sharing [was: Re: release-candidate/0.6 redux]

2011-06-06 Thread Jameson Graef Rollins
On Mon, 06 Jun 2011 05:17:27 -0700, Carl Worth  wrote:
> Hopefully, someone will provide me with a good way to publish my queue
> soon, ("notmuch search --output=html" ?), and then communication like
> this will be a bit easier. ;-)

I've been thinking about this more and it really seems we need a way to
just share tags.  What if we had a way to export all the tags for a set
of messages as a notmuch dump file, that could just be piped into
notmuch to modify tags?  This would be a great way for lots of people to
keep tags synced on a set of messages.

The main difficulty (seems to me) would be the sharing of -tags.  You
wouldn't want the absence of a tag on a message in the tag file to mean
that the tag should be removed.  So we would need to represent both
+tags and -tags in the dump file [0].

It seems a little crazy, but would it be possible to store -tags in the
database somehow?

jamie.

[0] This would actually help with tags applied when the message is
indexed as well, like "signed" and "encrypted", since it would allow for
tagging messages that were indexed before the "signed"/"encrypted"
tagging was a feature.
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20110606/5498afda/attachment.pgp>


release-candidate/0.6 redux

2011-06-06 Thread Carl Worth
On Sun, 05 Jun 2011 17:35:40 -0700, Jameson Graef Rollins  wrote:
> On Fri, 03 Jun 2011 18:27:42 -0700, Carl Worth  wrote:
> > From a quick rebase of your release-candidate branch and a comparison
> > with what I have queued it looks like only the following commits are
> > left on your branch and not in my email queue:
> > 
> > emacs: update notmuch-crypto-process-mime config variable documentation.
> 
> Hey, Carl.  This is actually a five-patch series that starts at:
> 
>  emacs: add notmuch-show-refresh-view function
>   id:"1306627784-3401-1-git-send-email-jrollins at finestructure.net"

OK, good. That is actually part of my queue.

> You should also look at the following two patch series to fix the
> message/rfc822 part handling:
> 
>  Do not attept to output part raw if part is not GMimePart.
>   id:"1307120466-4980-1-git-send-email-jrollins at finestructure.net"
> 
>  improving message/rfc822 part handling
>   id:"1307320169-29905-1-git-send-email-jrollins at finestructure.net"

OK. These are also already queued.

Hopefully, someone will provide me with a good way to publish my queue
soon, ("notmuch search --output=html" ?), and then communication like
this will be a bit easier. ;-)

-Carl

-- 
carl.d.worth at intel.com
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: 
<http://notmuchmail.org/pipermail/notmuch/attachments/20110606/fe70513d/attachment.pgp>


Re: release-candidate/0.6 redux

2011-06-06 Thread Carl Worth
On Sun, 05 Jun 2011 17:35:40 -0700, Jameson Graef Rollins 
jroll...@finestructure.net wrote:
 On Fri, 03 Jun 2011 18:27:42 -0700, Carl Worth cwo...@cworth.org wrote:
  From a quick rebase of your release-candidate branch and a comparison
  with what I have queued it looks like only the following commits are
  left on your branch and not in my email queue:
  
  emacs: update notmuch-crypto-process-mime config variable documentation.
 
 Hey, Carl.  This is actually a five-patch series that starts at:
 
  emacs: add notmuch-show-refresh-view function
   id:1306627784-3401-1-git-send-email-jroll...@finestructure.net

OK, good. That is actually part of my queue.

 You should also look at the following two patch series to fix the
 message/rfc822 part handling:
 
  Do not attept to output part raw if part is not GMimePart.
   id:1307120466-4980-1-git-send-email-jroll...@finestructure.net
 
  improving message/rfc822 part handling
   id:1307320169-29905-1-git-send-email-jroll...@finestructure.net

OK. These are also already queued.

Hopefully, someone will provide me with a good way to publish my queue
soon, (notmuch search --output=html ?), and then communication like
this will be a bit easier. ;-)

-Carl

-- 
carl.d.wo...@intel.com


pgp97VBjumIaN.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


tag sharing [was: Re: release-candidate/0.6 redux]

2011-06-06 Thread Jameson Graef Rollins
On Mon, 06 Jun 2011 05:17:27 -0700, Carl Worth cwo...@cworth.org wrote:
 Hopefully, someone will provide me with a good way to publish my queue
 soon, (notmuch search --output=html ?), and then communication like
 this will be a bit easier. ;-)

I've been thinking about this more and it really seems we need a way to
just share tags.  What if we had a way to export all the tags for a set
of messages as a notmuch dump file, that could just be piped into
notmuch to modify tags?  This would be a great way for lots of people to
keep tags synced on a set of messages.

The main difficulty (seems to me) would be the sharing of -tags.  You
wouldn't want the absence of a tag on a message in the tag file to mean
that the tag should be removed.  So we would need to represent both
+tags and -tags in the dump file [0].

It seems a little crazy, but would it be possible to store -tags in the
database somehow?

jamie.

[0] This would actually help with tags applied when the message is
indexed as well, like signed and encrypted, since it would allow for
tagging messages that were indexed before the signed/encrypted
tagging was a feature.


pgp5zi4sZlKn7.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] emacs: Tab completion for notmuch-search and notmuch-search-filter

2011-06-06 Thread Daniel Schoepe
I accidentally left a, now unnecessary, defvar in the patch from one of
the previous attempts, here is the updated version (thanks Austin for
noticing).

From f3bc7376edc66e947d8fdf5931a9aa697b9be5cf Mon Sep 17 00:00:00 2001
From: Daniel Schoepe daniel.scho...@googlemail.com
Date: Sat, 4 Jun 2011 14:17:44 +0200
Subject: [PATCH] emacs: Tab completion for notmuch-search and
 notmuch-search-filter

This patch adds completion with tab in the minibuffer for
notmuch-search and notmuch-search-filter.
---
 emacs/notmuch.el |   33 +++--
 1 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 3311fe8..7ffbc3a 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -882,6 +882,35 @@ characters as well as `_.+-'.
 	   (concat *notmuch-search- query *))
 	  )))
 
+(defun notmuch-read-query (prompt)
+  Read a notmuch-query from the minibuffer with completion.
+
+PROMPT is the string to prompt with.
+  (lexical-let
+  ((completions 
+	(append (list folder: thread: id: date: from: to:
+		  subject: attachment:)
+		(mapcar (lambda (tag)
+			  (concat tag: tag))
+			(process-lines notmuch search-tags)
+(let ((keymap (copy-keymap minibuffer-local-map))
+	  (minibuffer-completion-table
+	   (completion-table-dynamic
+	(lambda (string)
+	  ;; generate a list of possible completions for the current input
+	  (cond
+	   ;; this ugly regexp is used to get the last word of the input
+	   ;; possibly preceded by a '('
+	   ((string-match \\(^\\|.* (?\\)\\([^ ]*\\)$ string)
+		(mapcar (lambda (compl)
+			  (concat (match-string-no-properties 1 string) compl))
+			(all-completions (match-string-no-properties 2 string)
+	 completions)))
+	   (t (list string)))
+  ;; this was simpler than convincing completing-read to accept spaces:
+  (define-key keymap (kbd tab) 'minibuffer-complete)
+  (read-from-minibuffer prompt nil keymap nil minibuffer-history nil nil
+
 ;;;###autoload
 (defun notmuch-search (query optional oldest-first target-thread target-line continuation)
   Run \notmuch search\ with the given query string and display results.
@@ -893,7 +922,7 @@ The optional parameters are used as follows:
  current if it appears in the search results.
   target-line: The line number to move to if the target thread does not
appear in the search results.
-  (interactive sNotmuch search: )
+  (interactive (list (notmuch-read-query Notmuch search: )))
   (let ((buffer (get-buffer-create (notmuch-search-buffer-title query
 (switch-to-buffer buffer)
 (notmuch-search-mode)
@@ -991,7 +1020,7 @@ search.
 
 Runs a new search matching only messages that match both the
 current search results AND the additional query string provided.
-  (interactive sFilter search: )
+  (interactive (list (notmuch-read-query Filter search: )))
   (let ((grouped-query (if (string-match-p notmuch-search-disjunctive-regexp query)
 			   (concat (  query  ))
 			 query)))
-- 
1.7.5.3



pgpNfSijOMaXX.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: tag sharing [was: Re: release-candidate/0.6 redux]

2011-06-06 Thread Jesse Rosenthal

On Mon, 06 Jun 2011 09:28:13 -0700, Jameson Graef Rollins 
jroll...@finestructure.net wrote:
 I've been thinking about this more and it really seems we need a way to
 just share tags.  What if we had a way to export all the tags for a set
 of messages as a notmuch dump file, that could just be piped into
 notmuch to modify tags?  This would be a great way for lots of people to
 keep tags synced on a set of messages.

After a conversation with David last year about bug-tracking, I worked
up a rough python-based prototype of this. It worked in terms of
namespaces, so Carl could associate the namespace public with a list
of tags he publishes to a http-accessable location. And you could
associate the namespace cworth with those same tags.

He types `whatevercommand push public` and all tags public.* go to an
config-associated URL.

You type `whatevercommand pull cworth` and the tags come down from that
URL as cworth.*.

So what he has as public.to-push comes down to your notmuch as
cworth.to-push.

It's available here:

http://commonmeasure.org/~jkr/git/nm-remote.git

See these emails for more (but note that the repo url has changed to the
above).

id:m1k4rkkchy@watt.gilman.jhu.edu
id:m1hbmokbxj@watt.gilman.jhu.edu

There were some details and inherent ambiguities about conflict
resolution, and the above emails explain how I dealt with them. 

Note also that it uses python's configparser, which will overwrite your
config -- which means it'll get rid of your comments. So if you use any
of the config-writing commands, make sure you back up your config first.

Best,
Jesse
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH] Add dir-locals style variables for C++ and Elisp code.

2011-06-06 Thread Austin Clements
Also, slightly reformat dir-locals.el so that the settings align and
to make it friendlier for future additions.
---
 .dir-locals.el |   18 ++
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/.dir-locals.el b/.dir-locals.el
index cbdb1f9..eff29fc 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -1,7 +1,17 @@
 ; emacs local configuration settings for notmuch source
 ; surmised by dkg on 2010-11-23 13:43:18-0500
+; amended by amdragon on 2011-06-06
 
-((c-mode . ((indent-tabs-mode . t)
-(tab-width . 8)
-(c-basic-offset . 4)
-(c-file-style . linux
+((c-mode
+  (indent-tabs-mode . t)
+  (tab-width . 8)
+  (c-basic-offset . 4)
+  (c-file-style . linux))
+ (c++-mode
+  (indent-tabs-mode . t)
+  (tab-width . 8)
+  (c-basic-offset . 4)
+  (c-file-style . linux))
+ (emacs-lisp-mode
+  (indent-tabs-mode . t))
+ )
-- 
1.7.5.1

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] Add dir-locals style variables for C++ and Elisp code.

2011-06-06 Thread Dmitry Kurochkin
Hi Austin.

On Tue,  7 Jun 2011 01:20:25 -0400, Austin Clements amdra...@mit.edu wrote:
 Also, slightly reformat dir-locals.el so that the settings align and
 to make it friendlier for future additions.
 ---
  .dir-locals.el |   18 ++
  1 files changed, 14 insertions(+), 4 deletions(-)
 
 diff --git a/.dir-locals.el b/.dir-locals.el
 index cbdb1f9..eff29fc 100644
 --- a/.dir-locals.el
 +++ b/.dir-locals.el
 @@ -1,7 +1,17 @@
  ; emacs local configuration settings for notmuch source
  ; surmised by dkg on 2010-11-23 13:43:18-0500
 +; amended by amdragon on 2011-06-06
  
 -((c-mode . ((indent-tabs-mode . t)
 -(tab-width . 8)
 -(c-basic-offset . 4)
 -(c-file-style . linux
 +((c-mode
 +  (indent-tabs-mode . t)
 +  (tab-width . 8)
 +  (c-basic-offset . 4)
 +  (c-file-style . linux))
 + (c++-mode
 +  (indent-tabs-mode . t)
 +  (tab-width . 8)
 +  (c-basic-offset . 4)
 +  (c-file-style . linux))
 + (emacs-lisp-mode
 +  (indent-tabs-mode . t))
 + )

Why tab-width is not set for the emacs-lisp-mode?

Also, perhaps we should set these variables for all modes?  Setting
c-basic-offset and c-file-style should not hurt.  And indent-tabs-mode
and tab-width should be relevant for any file in notmuch (shell, python,
probably even text files), no?

Regards,
  Dmitry

 -- 
 1.7.5.1
 
 ___
 notmuch mailing list
 notmuch@notmuchmail.org
 http://notmuchmail.org/mailman/listinfo/notmuch
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch