emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* re-search and org-link
@ 2009-01-21 14:17 Christopher Suckling
  2009-01-22  6:46 ` Carsten Dominik
  0 siblings, 1 reply; 3+ messages in thread
From: Christopher Suckling @ 2009-01-21 14:17 UTC (permalink / raw)
  To: emacs-orgmode

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

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

* Re: re-search and org-link
  2009-01-21 14:17 re-search and org-link Christopher Suckling
@ 2009-01-22  6:46 ` Carsten Dominik
  2009-01-22 18:58   ` Christopher Suckling
  0 siblings, 1 reply; 3+ messages in thread
From: Carsten Dominik @ 2009-01-22  6:46 UTC (permalink / raw)
  To: Christopher Suckling; +Cc: emacs-orgmode

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

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

* Re: re-search and org-link
  2009-01-22  6:46 ` Carsten Dominik
@ 2009-01-22 18:58   ` Christopher Suckling
  0 siblings, 0 replies; 3+ messages in thread
From: Christopher Suckling @ 2009-01-22 18:58 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: emacs-orgmode, Christopher Suckling


On 22 Jan 2009, at 06:46, Carsten Dominik wrote:

> The reason hy your hook runs into problem is:

Organisation, publication and now programming lessons. Is there  
anything org-mode^H^H^H Carsten can't do?

Many thanks,

Christopher

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

end of thread, other threads:[~2009-01-22 18:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-01-21 14:17 re-search and org-link Christopher Suckling
2009-01-22  6:46 ` Carsten Dominik
2009-01-22 18:58   ` Christopher Suckling

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.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).