unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH 1/3] Use default face for the button types so that the underlines go away
@ 2009-12-01 16:15 aneesh.kumar
  2009-12-01 16:15 ` [PATCH 2/3] notmuch.el: Fix the message summary button to be active even on first column aneesh.kumar
  2009-12-03 21:04 ` [PATCH 1/3] Use default face for the button types so that the underlines go away Carl Worth
  0 siblings, 2 replies; 10+ messages in thread
From: aneesh.kumar @ 2009-12-01 16:15 UTC (permalink / raw)
  To: cworth, aneesh.kumar; +Cc: notmuch

From: Alexander Botero-Lowry <alex.boterolowry@gmail.com>

Since we know what these buttons do it seems like the underlines are
unnecessary. This also backs out the attempt at fixing the button
alignment on the message row, which is broken because of some
interaction with indent-rigidly in some threads
---
 notmuch.el |   27 +++++++++++++++++++--------
 1 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/notmuch.el b/notmuch.el
index 65473ba..c1e8257 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -560,15 +560,23 @@ which this thread was originally shown."
   (force-window-update)
   (redisplay t))
 
-(define-button-type 'notmuch-button-invisibility-toggle-type 'action 'notmuch-toggle-invisible-action 'follow-link t)
-(define-button-type 'notmuch-button-citation-toggle-type 'help-echo "mouse-1, RET: Show citation"
+(define-button-type 'notmuch-button-invisibility-toggle-type
+  'action 'notmuch-toggle-invisible-action
+  'follow-link t
+  'face "default")
+(define-button-type 'notmuch-button-citation-toggle-type
+  'help-echo "mouse-1, RET: Show citation"
   :supertype 'notmuch-button-invisibility-toggle-type)
-(define-button-type 'notmuch-button-signature-toggle-type 'help-echo "mouse-1, RET: Show signature"
+(define-button-type 'notmuch-button-signature-toggle-type
+  'help-echo "mouse-1, RET: Show signature"
   :supertype 'notmuch-button-invisibility-toggle-type)
-(define-button-type 'notmuch-button-headers-toggle-type 'help-echo "mouse-1, RET: Show headers"
-  :supertype 'notmuch-button-invisibility-toggle-type)
-(define-button-type 'notmuch-button-body-toggle-type 'help-echo "mouse-1, RET: Show message"
+(define-button-type 'notmuch-button-headers-toggle-type
+  'help-echo "mouse-1, RET: Show headers"
   :supertype 'notmuch-button-invisibility-toggle-type)
+(define-button-type 'notmuch-button-body-toggle-type 
+  'help-echo "mouse-1, RET: Show message"
+  'face '(:inverse-video . t)
+  :supertype 'notmuch-button-invisibility-toggle-type )
 
 (defun notmuch-show-markup-citations-region (beg end depth)
   (goto-char beg)
@@ -715,8 +723,11 @@ which this thread was originally shown."
         (btn nil))
     (end-of-line)
     ; Inverse video for subject
-    (overlay-put (make-overlay beg (point)) 'face '(:inverse-video t))
-    (setq btn (make-button beg (point) :type 'notmuch-button-body-toggle-type))
+    (let ((message-overlay (make-overlay beg (point))))
+      (overlay-put message-overlay 'face '(:inverse-video t))
+      (setq btn (make-button (line-beginning-position)
+			     (overlay-end message-overlay)
+			     :type 'notmuch-button-body-toggle-type)))
     (forward-line 1)
     (end-of-line)
     (let ((beg-hidden (point-marker)))
-- 
1.6.5.2.74.g610f9

^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [PATCH -V2] notmuch.el: Support for customizing search result display
@ 2010-01-23 10:09 Aneesh Kumar K.V
  2010-03-10 16:33 ` [PATCH -V3] " Aneesh Kumar K.V
  0 siblings, 1 reply; 10+ messages in thread
From: Aneesh Kumar K.V @ 2010-01-23 10:09 UTC (permalink / raw)
  To: cworth; +Cc: Aneesh Kumar K.V, notmuch

From: Aneesh Kumar K.V <aneesh.kumar@gmail.com>

This patch helps in customizing search result display
similar to mutt's index_format. The customization is done
by defining an alist as below

(setq notmuch-search-result-format '(("date" . "%s ")
				     ("authors" . "%-40s ")
				     ("subject" . "%s ")
				     ("tags" . "(%s)")))

The supported keywords are date, count, authors, subject and tags.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
---
 notmuch.el |   56 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 39 insertions(+), 17 deletions(-)

diff --git a/notmuch.el b/notmuch.el
index 97914f2..89dc32a 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -119,6 +119,14 @@ pattern can still test against the entire line).")
 (defvar notmuch-show-body-read-visible nil)
 (defvar notmuch-show-citations-visible nil)
 (defvar notmuch-show-signatures-visible nil)
+(defcustom notmuch-search-result-format nil
+  "Search result formating. Supported fields are
+	date, count, authors, subject, tags
+ex: (setq notmuch-search-result-format \(\(\"authors\" . \"%-40s\"\)
+					\(\"subject\" . \"%s\"\)\)\)"
+:type '(alist :key-type (string) :value-type (string))
+:group 'notmuch)
+
 (defvar notmuch-show-headers-visible nil)
 
 ; XXX: This should be a generic function in emacs somewhere, not here
@@ -1065,11 +1073,6 @@ matching this search term are shown if non-nil. "
   "Notmuch search mode face used to highligh tags."
   :group 'notmuch)
 
-(defvar notmuch-tag-face-alist nil
-  "List containing the tag list that need to be highlighed")
-
-(defvar notmuch-search-font-lock-keywords  nil)
-
 ;;;###autoload
 (defun notmuch-search-mode ()
   "Major mode displaying results of a notmuch search.
@@ -1105,17 +1108,7 @@ Complete list of currently available key bindings:
   (setq truncate-lines t)
   (setq major-mode 'notmuch-search-mode
 	mode-name "notmuch-search")
-  (setq buffer-read-only t)
-  (if (not notmuch-tag-face-alist)
-      (add-to-list 'notmuch-search-font-lock-keywords (list
-		"(\\([^)]*\\))$" '(1  'notmuch-tag-face)))
-    (let ((notmuch-search-tags (mapcar 'car notmuch-tag-face-alist)))
-      (loop for notmuch-search-tag  in notmuch-search-tags
-	    do (add-to-list 'notmuch-search-font-lock-keywords (list
-			(concat "([^)]*\\(" notmuch-search-tag "\\)[^)]*)$")
-			`(1  ,(cdr (assoc notmuch-search-tag notmuch-tag-face-alist))))))))
-  (set (make-local-variable 'font-lock-defaults)
-         '(notmuch-search-font-lock-keywords t)))
+  (setq buffer-read-only t))
 
 (defun notmuch-search-find-thread-id ()
   "Return the thread for the current thread"
@@ -1230,6 +1223,30 @@ This function advances the next thread when finished."
 			    (insert (format " (process returned %d)" exit-status)))
 			(insert "\n"))))))))))
 
+(defun insert-tags (tags)
+  (insert (concat "(" (propertize tags
+        'font-lock-face 'notmuch-tag-face) ")")))
+
+(defun insert-field (field date count authors subject tags)
+(if (string-equal field "date")
+    (insert (format (cdr (assoc field notmuch-search-result-format)) date))
+  (if (string-equal field "count")
+    (insert (format (cdr (assoc field notmuch-search-result-format)) count))
+  (if (string-equal field "authors")
+    (insert (format (cdr (assoc field notmuch-search-result-format)) authors))
+  (if (string-equal field "subject")
+      (insert (format (cdr (assoc field notmuch-search-result-format)) subject))
+  (if (string-equal field "tags")
+      (insert-tags (format (cdr (assoc field notmuch-search-result-format)) tags)))
+)))))
+
+(defun notmuch-search-show-result (date count authors subject tags)
+(let ((fields) (field))
+  (setq fields (mapcar 'car notmuch-search-result-format))
+  (loop for field in  fields
+	do (insert-field field date count authors subject tags)))
+(insert "\n"))
+
 (defun notmuch-search-process-filter (proc string)
   "Process and filter the output of \"notmuch search\""
   (let ((buffer (process-buffer proc)))
@@ -1252,7 +1269,12 @@ This function advances the next thread when finished."
 			  (set 'authors (concat (substring authors 0 (- 40 3)) "...")))
 		      (goto-char (point-max))
 		      (let ((beg (point-marker)))
-			(insert (format "%s %-7s %-40s %s (%s)\n" date count authors subject tags))
+			(if (not notmuch-search-result-format)
+			    (progn (insert (format "%s %-7s %-40s %s" date count authors subject))
+				   ;; insert the fontified tag
+				   (insert-tags (format "%s" tags))
+				   (insert "\n"))
+			  (notmuch-search-show-result date count authors subject tags))
 			(put-text-property beg (point-marker) 'notmuch-search-thread-id thread-id)
 			(put-text-property beg (point-marker) 'notmuch-search-authors authors)
 			(put-text-property beg (point-marker) 'notmuch-search-subject subject))
-- 
1.6.6.1.394.gdedc0

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

end of thread, other threads:[~2010-03-10 16:33 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-01 16:15 [PATCH 1/3] Use default face for the button types so that the underlines go away aneesh.kumar
2009-12-01 16:15 ` [PATCH 2/3] notmuch.el: Fix the message summary button to be active even on first column aneesh.kumar
2009-12-01 16:15   ` [PATCH 3/3] notmuch.el: Support for customizing search result display aneesh.kumar
2009-12-02 12:49     ` [PATCH -v2] " Aneesh Kumar K.V
2009-12-11  5:34       ` Aneesh Kumar K. V
2010-02-05 19:55       ` Carl Worth
2010-02-11 16:41         ` [PATCH -V3] " Aneesh Kumar K.V
2010-02-11 17:17           ` Aneesh Kumar K. V
2009-12-03 21:04 ` [PATCH 1/3] Use default face for the button types so that the underlines go away Carl Worth
  -- strict thread matches above, loose matches on Subject: below --
2010-01-23 10:09 [PATCH -V2] notmuch.el: Support for customizing search result display Aneesh Kumar K.V
2010-03-10 16:33 ` [PATCH -V3] " Aneesh Kumar K.V

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