[ESS] [Bug-AUCTeX] 11.83; folding, fontification and noweb ie Rnw file

Patrick Drechsler patrick at pdrechsler.de
Wed Dec 20 19:16:37 CET 2006


I am including the ESS list..

For ESS readers: My original post containing a complete problem 
description can be found here:

http://article.gmane.org/gmane.emacs.auctex.bugs/84

Ralf Angeli wrote:
> * Patrick Drechsler (2006-12-14) writes:
[...]
> Here as well.  Without actually looking at the code my guess would be
> that this is a problem of ESS.  It seems to use its own ways for font
> locking because font locking is still done in buffers where ESS is
> active even if Global Font Lock mode is disabled.

> [...]
>> 7. Now move the cursor downward one line using the down-arrow key 
>> passing the end of the noweb chunk. The figure environment is 
>> collapsed/folded before you can edit the figure caption.
> 
> When you leave the noweb chunk, Noweb mode calls the mode function of
> the mode which is active at point.  In your case this is LaTeX mode.
> The mode function of LaTeX mode will call its hook to which you added
> a function which calls `TeX-fold-buffer'.  This makes the figure
> collapse.
> 
> I'm not sure why Noweb mode has to call the mode function every time
> it leaves a noweb chunk.  This might become resource intensive if the
> mode does a lot of initialization stuff and does not keep track of
> running it only once.  Whatever.  In your case this means you should
> make sure that `TeX-fold-buffer' is run only once after you load a
> LaTeX/noweb file.  You could do this by introducing a buffer-local
> variable you check and set in your hook:
> 
> (defvar pd-folding-done-p nil)
> (make-variable-buffer-local 'pd-folding-done-p)
> (add-hook 'LaTeX-mode-hook (lambda ()
> 			     (unless pd-folding-done-p
> 			       (TeX-fold-mode 1)
> 			       (TeX-fold-buffer)
> 			       (setq pd-folding-done-p t))))

Thanks for taking the time Ralf!

I have tried your code both using the Emacs version mentioned in the OP 
as well as with Emacs 23[1]. I do not see any difference in behaviour.

This is off course no show stopper...

Cheers

Patrick

[1] GNU Emacs 23.0.0.1 (i686-pc-linux-gnu, GTK+ Version 2.8.20) of 
2006-12-14 on trurl




More information about the ESS-help mailing list