unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH 1/2] emacs: Add auto-tagging for replied messages.
@ 2010-04-27 13:06 Jesse Rosenthal
  2010-04-27 13:08 ` [PATCH 2/2] emacs: require notmuch-message.el from notmuch.el Jesse Rosenthal
  2010-04-27 15:29 ` [PATCH 1/2] emacs: Add auto-tagging for replied messages Carl Worth
  0 siblings, 2 replies; 7+ messages in thread
From: Jesse Rosenthal @ 2010-04-27 13:06 UTC (permalink / raw)
  To: Notmuch developer list

Add `notmuch-message-mark-replied', a function for automatically tagging
replied messages with user-defined tags. The tags (which can be either
added or removed) can be customized with the customization variable
`notmuch-message-replied-tags'. This is a simple list of strings. Any
string prefaced with a "-" will be removed; any string prefaced with a "+"
(or neither "+" nor "-") will be added.

This adds a new file notmuch-message.el, for functions which target
message mode (and in the future, notmuch-message mode). Based on some
conversation, notmuch-message.el will probably end up subsuming
notmuch-mua.el, but until we figure out exactly how we want to do that,
they will remain separate files.
---
 emacs/notmuch-message.el |   47 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)
 create mode 100644 emacs/notmuch-message.el

diff --git a/emacs/notmuch-message.el b/emacs/notmuch-message.el
new file mode 100644
index 0000000..584bcde
--- /dev/null
+++ b/emacs/notmuch-message.el
@@ -0,0 +1,47 @@
+;; notmuch-message.el --- message-mode functions specific to notmuch
+;;
+;; Copyright © Jesse Rosenthal
+;;
+;; This file is part of Notmuch.
+;;
+;; Notmuch is free software: you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; Notmuch is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with Notmuch.  If not, see <http://www.gnu.org/licenses/>.
+;;
+;; Authors: Jesse Rosenthal <jrosenthal@jhu.edu>
+
+(require 'message)
+(require 'notmuch-mua)
+
+(defcustom notmuch-message-replied-tags '("replied")
+  "A set of tags to be added or, if prefaced with a `-', removed. For 
+example, \(\"replied\" \"-inbox\" \"-todo\"\)"
+  :type 'list
+  :group 'notmuch)
+
+(defun notmuch-message-mark-replied ()
+  ;; get the in-reply-to header and parse it for the message id. 
+  (let ((rep (mail-header-parse-addresses (message-field-value "In-Reply-To"))))
+    (when (and notmuch-message-replied-tags rep)
+      ;; add a "+" to any tag that is doesn't already begin with a "+"
+      ;; or "-"
+      (let ((tags (mapcar '(lambda (str)
+			     (if (not (string-match "^[+-]" str))
+				 (concat "+" str)
+			       str))
+			  notmuch-message-replied-tags)))
+	(apply 'notmuch-call-notmuch-process "tag"
+	       (append tags (list (concat "id:" (car (car rep)))) nil))))))
+
+(add-hook 'message-send-hook 'notmuch-message-mark-replied)
+
+(provide 'notmuch-message)
\ No newline at end of file
-- 
1.6.3.3

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

* [PATCH 2/2] emacs: require notmuch-message.el from notmuch.el
  2010-04-27 13:06 [PATCH 1/2] emacs: Add auto-tagging for replied messages Jesse Rosenthal
@ 2010-04-27 13:08 ` Jesse Rosenthal
  2010-04-27 15:29 ` [PATCH 1/2] emacs: Add auto-tagging for replied messages Carl Worth
  1 sibling, 0 replies; 7+ messages in thread
From: Jesse Rosenthal @ 2010-04-27 13:08 UTC (permalink / raw)
  To: Notmuch developer list

Add a (require 'notmuch-message) to notmuch.el. This is for functions that
specifically target message mode (and, in the future, notmuch-message
mode).
---
 emacs/notmuch.el |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 488458a..57e1140 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -56,6 +56,7 @@
 (require 'notmuch-mua)
 (require 'notmuch-hello)
 (require 'notmuch-maildir-fcc)
+(require 'notmuch-message)
 
 (defcustom notmuch-search-result-format
   `(("date" . "%s ")
-- 
1.6.3.3

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

* Re: [PATCH 1/2] emacs: Add auto-tagging for replied messages.
  2010-04-27 13:06 [PATCH 1/2] emacs: Add auto-tagging for replied messages Jesse Rosenthal
  2010-04-27 13:08 ` [PATCH 2/2] emacs: require notmuch-message.el from notmuch.el Jesse Rosenthal
@ 2010-04-27 15:29 ` Carl Worth
  2010-04-27 15:53   ` [PATCH-V2 " Jesse Rosenthal
  1 sibling, 1 reply; 7+ messages in thread
From: Carl Worth @ 2010-04-27 15:29 UTC (permalink / raw)
  To: Jesse Rosenthal, Notmuch developer list

[-- Attachment #1: Type: text/plain, Size: 1184 bytes --]

On Tue, 27 Apr 2010 09:06:59 -0400, Jesse Rosenthal <jrosenthal@jhu.edu> wrote:
> Add `notmuch-message-mark-replied', a function for automatically tagging
> replied messages with user-defined tags.

A nice, feature. Thanks!

A couple of points on the patch:

> +(defcustom notmuch-message-replied-tags '("replied")
> +  "A set of tags to be added or, if prefaced with a `-', removed. For 
> +example, \(\"replied\" \"-inbox\" \"-todo\"\)"

This documentation string needs to be improved a bit. Look in customize
and see if only the first line appears by default. If so, we don't want
a widowed "For" at the end of the line.

Also, this documentation string doesn't actually give a new user enough
information to learn what this actually does.

Should say something like:

"Tags to be added/removed from messages when sending a reply to that message."

as the first sentence. That tells the user what the feature does and
whether it's interesting. If so, the user can expand the documentation
and subsequent sentences can explain things like '-', etc.

Finally, since this is a new feature it needs to add a new blurb to the
NEWS file.

Thanks,

-Carl

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* [PATCH-V2 1/2] emacs: Add auto-tagging for replied messages.
  2010-04-27 15:29 ` [PATCH 1/2] emacs: Add auto-tagging for replied messages Carl Worth
@ 2010-04-27 15:53   ` Jesse Rosenthal
  2010-04-27 16:03     ` [PATCH-V2 2/2] emacs: require notmuch-message.el from notmuch.el Jesse Rosenthal
  2010-04-27 16:21     ` [PATCH-V2 1/2] emacs: Add auto-tagging for replied messages Carl Worth
  0 siblings, 2 replies; 7+ messages in thread
From: Jesse Rosenthal @ 2010-04-27 15:53 UTC (permalink / raw)
  To: Carl Worth, Notmuch developer list


Add `notmuch-message-mark-replied', a function for automatically tagging
replied messages with user-defined tags. The tags (which can be either
added or removed) can be customized with the customization variable
`notmuch-message-replied-tags'. This is a simple list of strings. Any
string prefaced with a "-" will be removed; any string prefaced with a "+"
(or neither "+" nor "-") will be added.

This adds a new file notmuch-message.el, for functions which target
message mode (and in the future, notmuch-message mode). Based on some
conversation, notmuch-message.el will probably end up subsuming
notmuch-mua.el, but until we figure out exactly how we want to do that,
they will remain separate files.
---
 emacs/notmuch-message.el |   52 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)
 create mode 100644 emacs/notmuch-message.el

diff --git a/emacs/notmuch-message.el b/emacs/notmuch-message.el
new file mode 100644
index 0000000..0cc4608
--- /dev/null
+++ b/emacs/notmuch-message.el
@@ -0,0 +1,52 @@
+;; notmuch-message.el --- message-mode functions specific to notmuch
+;;
+;; Copyright © Jesse Rosenthal
+;;
+;; This file is part of Notmuch.
+;;
+;; Notmuch is free software: you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; Notmuch is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with Notmuch.  If not, see <http://www.gnu.org/licenses/>.
+;;
+;; Authors: Jesse Rosenthal <jrosenthal@jhu.edu>
+
+(require 'message)
+(require 'notmuch-mua)
+
+(defcustom notmuch-message-replied-tags '("replied")
+  "Tags to be automatically added to or removed from a message when it is replied to.
+Any tag in the list will be added to a replied message or, 
+if it is prefaced with a \"-\", removed.
+
+For example, if you wanted to add a \"replied\" tag and remove 
+the \"inbox\" and \"todo\", you would set
+    (\"replied\" \"-inbox\" \"-todo\"\)"
+  :type 'list
+  :group 'notmuch)
+
+(defun notmuch-message-mark-replied ()
+  ;; get the in-reply-to header and parse it for the message id. 
+  (let ((rep (mail-header-parse-addresses (message-field-value "In-Reply-To"))))
+    (when (and notmuch-message-replied-tags rep)
+      ;; add a "+" to any tag that is doesn't already begin with a "+"
+      ;; or "-"
+      (let ((tags (mapcar '(lambda (str)
+			     (if (not (string-match "^[+-]" str))
+				 (concat "+" str)
+			       str))
+			  notmuch-message-replied-tags)))
+	(apply 'notmuch-call-notmuch-process "tag"
+	       (append tags (list (concat "id:" (car (car rep)))) nil))))))
+
+(add-hook 'message-send-hook 'notmuch-message-mark-replied)
+
+(provide 'notmuch-message)
\ No newline at end of file
-- 
1.6.3.3

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

* [PATCH-V2 2/2] emacs: require notmuch-message.el from notmuch.el
  2010-04-27 15:53   ` [PATCH-V2 " Jesse Rosenthal
@ 2010-04-27 16:03     ` Jesse Rosenthal
  2010-04-27 16:11       ` Subject: [PATCH] NEWS: add mention of auto-tagging Jesse Rosenthal
  2010-04-27 16:21     ` [PATCH-V2 1/2] emacs: Add auto-tagging for replied messages Carl Worth
  1 sibling, 1 reply; 7+ messages in thread
From: Jesse Rosenthal @ 2010-04-27 16:03 UTC (permalink / raw)
  To: Carl Worth, Notmuch developer list


Add a (require 'notmuch-message) to notmuch.el. This is for functions that
specifically target message mode (and, in the future, notmuch-message
mode).
---
 emacs/notmuch.el |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 488458a..57e1140 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -56,6 +56,7 @@
 (require 'notmuch-mua)
 (require 'notmuch-hello)
 (require 'notmuch-maildir-fcc)
+(require 'notmuch-message)
 
 (defcustom notmuch-search-result-format
   `(("date" . "%s ")
-- 
1.6.3.3

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

* Subject: [PATCH] NEWS: add mention of auto-tagging.
  2010-04-27 16:03     ` [PATCH-V2 2/2] emacs: require notmuch-message.el from notmuch.el Jesse Rosenthal
@ 2010-04-27 16:11       ` Jesse Rosenthal
  0 siblings, 0 replies; 7+ messages in thread
From: Jesse Rosenthal @ 2010-04-27 16:11 UTC (permalink / raw)
  To: Carl Worth, Notmuch developer list


Describe new auto-tagging functionality in the NEWS.
---
 NEWS |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/NEWS b/NEWS
index b5f3ee3..05ffaca 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,14 @@
+Auto-tagging replied messages
+
+  Add functionality for auto-tagging messages when they are replied
+  to. The tags (which can be either added or removed) can be
+  customized with the customization variable
+  `notmuch-message-replied-tags': a list of strings. Any string
+  prefaced with a "-" will be removed; any string prefaced with a "+"
+  (or neither "+" nor "-") will be added. The default is for all
+  replied messages to be marked "replied"
+
+
 Notmuch 0.3 (2010-04-27)
 ========================
 New command-line features
-- 
1.6.3.3

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

* Re: [PATCH-V2 1/2] emacs: Add auto-tagging for replied messages.
  2010-04-27 15:53   ` [PATCH-V2 " Jesse Rosenthal
  2010-04-27 16:03     ` [PATCH-V2 2/2] emacs: require notmuch-message.el from notmuch.el Jesse Rosenthal
@ 2010-04-27 16:21     ` Carl Worth
  1 sibling, 0 replies; 7+ messages in thread
From: Carl Worth @ 2010-04-27 16:21 UTC (permalink / raw)
  To: Jesse Rosenthal, Notmuch developer list

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

On Tue, 27 Apr 2010 11:53:30 -0400, Jesse Rosenthal <jrosenthal@jhu.edu> wrote:
> Add `notmuch-message-mark-replied', a function for automatically tagging
> replied messages with user-defined tags.

Thanks for the nice patch series.

I just cleaned up some trailing whitespace and pushed this out.

-Carl

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

end of thread, other threads:[~2010-04-27 16:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-27 13:06 [PATCH 1/2] emacs: Add auto-tagging for replied messages Jesse Rosenthal
2010-04-27 13:08 ` [PATCH 2/2] emacs: require notmuch-message.el from notmuch.el Jesse Rosenthal
2010-04-27 15:29 ` [PATCH 1/2] emacs: Add auto-tagging for replied messages Carl Worth
2010-04-27 15:53   ` [PATCH-V2 " Jesse Rosenthal
2010-04-27 16:03     ` [PATCH-V2 2/2] emacs: require notmuch-message.el from notmuch.el Jesse Rosenthal
2010-04-27 16:11       ` Subject: [PATCH] NEWS: add mention of auto-tagging Jesse Rosenthal
2010-04-27 16:21     ` [PATCH-V2 1/2] emacs: Add auto-tagging for replied messages Carl Worth

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