Re: an emacs macro

Subject: Re: an emacs macro

Date: Fri, 06 Jun 2014 14:20:53 +0200

To: notmuch@notmuchmail.org

Cc:

From: Tom Hirschowitz


Thanks, you were right, although that's what i had tried. No idea what i
did wrong the first time.

Here's the code in case anyone is interested (i actually tweaked *-add-tag):

(defun notmuch-search-move  (tag-changes &optional beg end) 
  "Add the local tag, plus possibly others, given as interactive arguments,  
for the current thread or region (defaulting to add)." 
  (interactive (notmuch-search-interactive-tag-changes "+")) 
  (notmuch-search-tag (cons "+local" tag-changes) beg end)) 

(defun notmuch-tree-move (tag-changes)
  "Add the local tag, plus possibly others, given as interactive arguments,  
for the current thread or region (defaulting to add)." 
  (interactive
   (list (notmuch-read-tag-changes (notmuch-tree-get-tags) "Tag message" "+")))
  (notmuch-tree-tag (cons "+local" tag-changes)))

Cheers,
Tom

Mark Walters <markwalters1009@gmail.com> writes:

> On Thu, 05 Jun 2014, Tom Hirschowitz <tom.hirschowitz@univ-savoie.fr> wrote:
>> Hi all, 
>>
>> I'm trying to define a macro for notmuch/emacs which in show-mode would
>>
>>  - prompt the user for tags (possibly starting with "+"),
>>
>>  - tag the shown message with these tags plus an additional fixed tag,
>>    say "+local".
>>
>> I know next to nothing about emacs/lisp, so I tried to mimick notmuch*.el.
>>
>> Here's my most plausible attempt:
>>
>> (defun notmuch-show-move (tag-changes)
>>   "Add the local tag, plus possibly others, given as interactive arguments."
>>   (interactive (list (notmuch-read-tag-changes (notmuch-show-get-tags)
>> 					       "Tag message" "+")))
>>   (let* ((tag-changes-with-local (cons "+local" tag-changes))
>> 	 (rien (notmuch-tag (notmuch-show-get-message-id) tag-changes-with-local))
>> 	 (current-tags (notmuch-show-get-tags))
>> 	 (new-tags (notmuch-update-tags current-tags tag-changes-with-local)))
>>     (unless (equal current-tags new-tags)
>>       (notmuch-show-set-tags new-tags))))
>
> Yes this looks fine for notmuch-show. It won't work for search mode as
> notmuch-show- commands basically only work in notmuch-show. I would
> suggest copying notmuch-search-tag and tweaking it to use
> tag-changes-with-local (as you have done for the show version
> above). Something similar should work for tree-mode (ie copy
> notmuch-tree-tag)
>
> I think you will need separate functions for the three modes.
>
> Best wishes
>
> Mark

Thread: