From fdbc20f04baa3587ff39a9b055609224c28fe706 Mon Sep 17 00:00:00 2001 From: Myles English Date: Thu, 26 Jul 2012 15:12:56 +0100 Subject: [PATCH 1/2] added defcustom org-mu4e-link-description Allows the user to customise the org link, e.g. (setq org-mu4e-link-description '(concat date " " subject)) --- mu4e/org-mu4e.el | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/mu4e/org-mu4e.el b/mu4e/org-mu4e.el index cefdabad..35969a9d 100644 --- a/mu4e/org-mu4e.el +++ b/mu4e/org-mu4e.el @@ -32,6 +32,17 @@ (eval-when-compile (require 'cl)) (eval-when-compile (require 'mu4e)) +(defgroup org-mu4e nil + "Settings for the org interface." + :group 'org-mu4e) + +(defcustom org-mu4e-link-description 'subject + "How to make the org-mode link description." + :type 'string + :group 'org-mu4e) + +;;(setq org-mu4e-link-description '(concat date " " subject)) + (defun org-mu4e-store-link () "Store a link to a mu4e query or message." (cond @@ -51,11 +62,15 @@ (let* ((msg (mu4e-message-at-point)) (msgid (or (plist-get msg :message-id) "")) (subject (or (plist-get msg :subject) "No subject")) + (date (or (format-time-string mu4e-headers-date-format + (mu4e-msg-field msg :date)) + "No date")) link) (org-store-link-props :type "mu4e" :link link - :message-id msgid :subject subject) + :message-id msgid :subject subject :date date) (setq link (org-make-link "mu4e:msgid:" msgid)) - (org-add-link-props :link link :description subject) + (org-add-link-props :link link + :description (eval org-mu4e-link-description)) link)))) (org-add-link-type "mu4e" 'org-mu4e-open) From 143b0b0ff44279d2477d95bbebe3e59cb437c203 Mon Sep 17 00:00:00 2001 From: Myles English Date: Tue, 31 Jul 2012 13:47:13 +0100 Subject: [PATCH 2/2] added org-mu4e-link-desc-func Replaces org-mu4e-link-description, a customisable function is nicer than a string. --- mu4e/org-mu4e.el | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/mu4e/org-mu4e.el b/mu4e/org-mu4e.el index 35969a9d..22a61a49 100644 --- a/mu4e/org-mu4e.el +++ b/mu4e/org-mu4e.el @@ -36,12 +36,26 @@ "Settings for the org interface." :group 'org-mu4e) -(defcustom org-mu4e-link-description 'subject - "How to make the org-mode link description." - :type 'string - :group 'org-mu4e) +(defcustom org-mu4e-link-desc-func (lambda (msg) + (or (plist-get msg :subject) + "No subject")) + "Function that takes a msg and returns a string for the + description part of an org-mode link. -;;(setq org-mu4e-link-description '(concat date " " subject)) + Example usage: + + (defun my-link-descr (msg) + (let + ((subject (or (plist-get msg :subject) + \"No subject\")) + (date (or (format-time-string mu4e-headers-date-format + (mu4e-msg-field msg :date)) + \"No date\"))) + (concat subject \" \" date))) + + (setq org-mu4e-link-desc-func 'my-link-descr)" + :type 'function + :group 'org-mu4e) (defun org-mu4e-store-link () "Store a link to a mu4e query or message." @@ -60,18 +74,14 @@ ;; storing links to messages ((eq major-mode 'mu4e-view-mode) (let* ((msg (mu4e-message-at-point)) - (msgid (or (plist-get msg :message-id) "")) - (subject (or (plist-get msg :subject) "No subject")) - (date (or (format-time-string mu4e-headers-date-format - (mu4e-msg-field msg :date)) - "No date")) - link) - (org-store-link-props :type "mu4e" :link link - :message-id msgid :subject subject :date date) - (setq link (org-make-link "mu4e:msgid:" msgid)) - (org-add-link-props :link link - :description (eval org-mu4e-link-description)) - link)))) + (msgid (or (plist-get msg :message-id) "")) + link) + (org-store-link-props :type "mu4e" :link link + :message-id msgid) + (setq link (org-make-link "mu4e:msgid:" msgid)) + (org-add-link-props :link link + :description (funcall org-mu4e-link-desc-func msg)) + link)))) (org-add-link-type "mu4e" 'org-mu4e-open) (add-hook 'org-store-link-functions 'org-mu4e-store-link)