all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: Is there something like `on-display-functions'?
Date: Fri, 29 Jan 2010 13:09:05 +0000	[thread overview]
Message-ID: <20100129130905.GB3272@muc.de> (raw)
In-Reply-To: <83fx5qt4wi.fsf@gnu.org>

Hi, Eli,

On Thu, Jan 28, 2010 at 09:18:05PM +0200, Eli Zaretskii wrote:
> > Date: Thu, 28 Jan 2010 14:47:07 +0000
> > Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
> > From: Alan Mackenzie <acm@muc.de>

> > > >    (defun foo-before-display (buffer beg end) .....)

> > > > , BEG and END defining the piece of BUFFER about to be displayed.
> > > > The hook would be called before fontification.

> > > What do you mean by ``before fontification'', and why does it have to
> > > be before that?

> > I don't really know what I mean by "before fontification".  I want it
> > so that if in `foo-before-display' I put syntax-table TP on < and >,
> > and point happens to be at one of them, show-paren-mode will work to
> > highlight them.

> Why do you need to do that only when the text is about to be displayed?
> Is it too expensive to do that in the whole buffer or something?

People have complained before about "sluggish start up time" when I've
added things that scan the whole buffer.  Adding 0.5s to startup time
could be serious if you've got 50 big C++ buffers in your .emacs.desktop.
Maybe.  I'm more exploring the possibilities; I might well end up just
scanning the whole buffer - PCs aren't getting any slower as time goes
by.  Currently, the TPs are being added in CC Mode's font locking stuff,
which is kind of irritating (to me at least).

> Anyway, show-paren-mode works off an idle timer, so I think it is
> not necessary to run the kind of function you have in mind before
> redisplay; near its end is okay.

Thanks.  I didn't know that.  Maybe `after-redisplay-functions' is really
what I'm looking for.

> > Maybe an alternative to a hook here would be to allow an application
> > to specify that some text property (say, 'c-templatified) is to be
> > "special", and when the displayer detects the TP has changed, it
> > calls an associated function.  'c-templatified would be analogous to
> > 'fontified.

> Don't we already have text properties that cause Lisp forms to be
> evaluated?

Er, yes.  help-echo, display (as David pointed out).  So it seems I've
got what I need, if I need it.

> And again, why can't you put your text property everywhere in the
> buffer where you want this effect?

I can.  Maybe I will.

-- 
Alan Mackenzie (Nuremberg, Germany).




  reply	other threads:[~2010-01-29 13:09 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-27 13:57 Is there something like `on-display-functions'? Alan Mackenzie
2010-01-27 13:53 ` Lennart Borgman
2010-01-27 14:55   ` Alan Mackenzie
2010-01-27 15:11   ` Stefan Monnier
2010-01-27 15:37     ` Alan Mackenzie
2010-01-27 17:44       ` Eli Zaretskii
2010-01-27 19:24         ` Stefan Monnier
2010-01-27 20:08           ` Eli Zaretskii
2010-01-27 21:04             ` Stefan Monnier
2010-01-28  6:49               ` Eli Zaretskii
2010-01-28 19:37                 ` Stefan Monnier
2010-01-28 20:53                   ` Eli Zaretskii
2010-01-28 23:12                     ` Stefan Monnier
2010-01-29  9:09                       ` Eli Zaretskii
2010-01-29 18:08                         ` Stefan Monnier
2010-01-28  6:55               ` Eli Zaretskii
2010-01-28 10:38                 ` Alan Mackenzie
2010-01-28 12:54                   ` Eli Zaretskii
2010-01-28 14:47                     ` Alan Mackenzie
2010-01-28 19:18                       ` Eli Zaretskii
2010-01-29 13:09                         ` Alan Mackenzie [this message]
2010-01-28 19:37                   ` Stefan Monnier
2010-01-29 13:17                     ` Alan Mackenzie
2010-01-29 18:13                       ` Stefan Monnier
2010-01-29 19:17                         ` Alan Mackenzie
2010-01-30 21:02                           ` Stefan Monnier
2010-01-27 17:55       ` Eli Zaretskii
2010-01-28 10:27         ` Alan Mackenzie
2010-01-28 11:30       ` Doc patch for `fontification-functions': [was: Is there something like `on-display-functions'?] Alan Mackenzie
2010-01-28 15:34         ` Doc patch for `fontification-functions': Chong Yidong
2010-01-28 16:40           ` Alan Mackenzie
2010-01-28 18:38         ` Doc patch for `fontification-functions': [was: Is there something like `on-display-functions'?] Eli Zaretskii
2010-01-28 19:44         ` Doc patch for `fontification-functions': Stefan Monnier
2010-01-27 14:16 ` Is there something like `on-display-functions'? alin.s
2010-01-27 14:27 ` David Kastrup
2010-01-27 15:20   ` Alan Mackenzie
2010-01-27 16:31   ` Stephen J. Turnbull
2010-01-27 14:59 ` Davis Herring
2010-01-28  1:41 ` Daniel Colascione
2010-01-28 10:14   ` Alan Mackenzie
2010-01-28 19:39     ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100129130905.GB3272@muc.de \
    --to=acm@muc.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.