emacs: Fix i-search to open up invisible citations as necessary
authorDavid Edmondson <dme@dme.org>
Fri, 23 Apr 2010 17:39:33 +0000 (18:39 +0100)
committerCarl Worth <cworth@cworth.org>
Sat, 24 Apr 2010 14:38:28 +0000 (07:38 -0700)
Add an `isearch-open-invisible' property to the overlays used to hide
citations and signatures, together with an appropriate function to
leave the invisible text visible should that be required.

emacs/notmuch-wash.el

index 54a380a1ba426f103115727da48590ea26ab527e..5ca567f59be6ad1cc43a4864253e1e9f44979012 100644 (file)
@@ -77,6 +77,9 @@ collapse the remaining lines into a button.")
   'help-echo "mouse-1, RET: Show signature"
   :supertype 'notmuch-wash-button-invisibility-toggle-type)
 
+(defun notmuch-wash-region-isearch-show (overlay)
+  (remove-from-invisibility-spec (overlay-get overlay 'invisible)))
+
 (defun notmuch-wash-region-to-button (beg end type prefix button-text)
   "Auxilary function to do the actual making of overlays and buttons
 
@@ -96,6 +99,7 @@ is what to put on the button."
                                          type "-toggle-type"))))
     (add-to-invisibility-spec invis-spec)
     (overlay-put overlay 'invisible invis-spec)
+    (overlay-put overlay 'isearch-open-invisible #'notmuch-wash-region-isearch-show)
     (goto-char (1+ end))
     (save-excursion
       (goto-char (1- beg))