[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Refontifying after revert in hi-lock-mode
From: |
Robert Thorpe |
Subject: |
Re: Refontifying after revert in hi-lock-mode |
Date: |
23 Nov 2006 09:57:20 -0800 |
User-agent: |
G2/1.0 |
Denis Bueno wrote:
> I would like a synergy between auto-revert-tail-mode and hi-lock-mode.
> I frequently tail log files, and would like live updates of
> highlighted terms in those log files. In my Emacs (GNU Emacs 22.0.90.2
> (powerpc-apple-darwin8.8.0, Carbon Version 1.6.0) of 2006-11-11 on
> ford.local), after a revert performed by auto-revert-tail-mode, I
> would like any new terms matching active regexps to be highlighted.
> But they aren't.
>
> I tried the following hook, it my .emacs, and I'm not quite sure why it fails:
>
> ,----
> | ;; In auto-revert mode, after reverting, if font-lock is turned on,
> | ;; fontify the buffer. I intend for this to re-fontify my buffers when they
> | ;; revert and I'm using hi-lock-mode.
> | (require 'autorevert)
> | (add-hook 'after-revert-hook
> | (lambda ()
> | (if font-lock-mode
> | (progn
> | (message "Re-fontifying buffer...")
> | (font-lock-fontify-buffer)))
> | (message "dbueno's after-revert-hook finished.")))
> `----
>
> I looked into autorevert.el to verify that auto-revert-tail-mode
> indeed uses `revert-buffer', so, I think that hook should be executed.
> I figured that maybe there was a `revert-buffer-function' in use when
> `revert-buffer' is called, which (as the doc for `revert-buffer' says:
>
> "If the value of `revert-buffer-function' is non-nil, it is called to
> do all the work for this command. Otherwise, the hooks
> `before-revert-hook' and `after-revert-hook' are run at the beginning
> and the end, and if `revert-buffer-insert-file-contents-function' is
> non-nil, it is called instead of rereading visited file contents."
>
> Does anyone know why my hook wouldn't run? and if so, how I can fix it?
Looks like it should to me. I think you need to check that it isn't.
Instead of emitting a message at the end that could be wiped over by a
subsequent message try setting a variable, or look in the *Messages*
buffer.
In the bit starting (if font-lock-mode... note
The variable font-lock-mode is strange, even if you have
global-font-lock-mode set to t the global variable font-lock-mode will
stay nil. So the code will work if you're in the right context when it
is executed, but not otherwise.