Hi Christopher,

turning font-lock off and on does seem to help, but it is a pretty big cannon.
The reason hy your hook runs into problem is:  When the match is in
text marked by an "intangible" property (like the link part of a link that
also has a description), then the command loop moves the cursor you of
this location. Apparently this happens here. A more direct solution might
be to move to the beginning of the line before continuing the search,
like this:

(add-hook 'org-occur-hook
          (lambda ()
            (goto-char (point-max))
            (while
                (re-search-backward regexp nil t)
              (show-subtree)
              (org-cycle)
              (org-cycle)
              (beginning-of-line 1))))

Or even better:

(add-hook 'org-occur-hook
          (lambda ()
            (goto-char (point-max))
            (while
                (re-search-backward regexp nil t)
              (org-back-to-heading) ;; in case match was deeper in entry
              (show-subtree)
              (org-cycle)
              (org-cycle)
              (beginning-of-line 1))))



HTH

- Carsten

On Jan 21, 2009, at 3:17 PM, Christopher Suckling wrote:

I currently use the following hook to achieve the level of detail I like from a sparse tree:

(add-hook 'org-occur-hook
          (lambda ()
            (goto-char (point-max))
            (while
                (re-search-backward regexp nil t)
              (show-subtree)
              (org-cycle)
              (org-cycle))))

I combine this hook with

(setq org-show-following-heading nil)
(setq org-show-entry-below t)

This works great unless regexp is within a fontified org-link. Then Emacs hangs and I get the OS X spinning beach-ball.

There is a very easy workaround as re-search-backward has no problem with an org-link if font-locking is turned off for the buffer:

(add-hook 'org-occur-hook
          (lambda ()
            (goto-char (point-max))
            (font-lock-mode)
            (while
                (re-search-backward regexp nil t)
              (show-subtree)
              (org-cycle)
              (org-cycle))
            (font-lock-mode)))

Practically, I'm content with my solution, but I thought I'd mention it should the bug lie within the org-link code and bite anyone else in other situations.

OS X 10.5.6, Emacs 23.0.60.1 (NS), Org-mode 6.18c

Best wishes,

Christopher





_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-orgmode



_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to