[Orgmode] re-search and org-link

2009-01-21 Thread Christopher Suckling
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.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] re-search and org-link

2009-01-21 Thread Carsten Dominik

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.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode




___
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode