[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: What's the best (i.e. least bad) way to re-redisplay?
From: |
Eli Zaretskii |
Subject: |
Re: What's the best (i.e. least bad) way to re-redisplay? |
Date: |
Mon, 23 Aug 2021 22:35:22 +0300 |
> Date: Mon, 23 Aug 2021 18:41:59 +0000
> From: Alan Mackenzie <acm@muc.de>
>
> I envisage a situation where an identifier is identified as a type during
> jit-lock fontification, and thus font-lock-type-face needs to be applied
> to all occurrences of this identifier.
>
> The problem is, there will be occurences in the foreground window before
> the one which triggered the fontification. Redisplay will already have
> passed this earlier buffer position. So I need to trigger another
> redisplay immediately after the current one.
>
> What is the least bad way of doing this?
You mean, the same identifier is somewhere in the same window-ful, but
before the position where you suddenly decided your previous
fontification was incorrect? (Why is this a reasonable scenario,
btw?)
> Currently, I'm thinking of something like the CC Mode fontification
> functions setting a flag, and a repeating timer function testing this
> flag every 0.025s, say, and triggering a redisplay if it's set.
Why not simply call a one-time timer function that runs
jit-lock-force-redisplay, when you decide that you need to refontify?
jit-lock.el already does that in some cases. I see no reason to have
a periodic timer and a flag, because the same code that sets the flag
could instead arm a one-time timer.
> One problem is knowing whether or not redisplay is currently active. Is
> there a simple way to do this in Lisp? (I know there is in C.)
I don't understand your problem here. Timers cannot run while
redisplay works, because timers are only run by the main loop. So
when a timer runs, redisplay by definition isn't.
- What's the best (i.e. least bad) way to re-redisplay?, Alan Mackenzie, 2021/08/23
- Re: What's the best (i.e. least bad) way to re-redisplay?,
Eli Zaretskii <=
- Re: What's the best (i.e. least bad) way to re-redisplay?, Stefan Monnier, 2021/08/24
- Re: What's the best (i.e. least bad) way to re-redisplay?, Alan Mackenzie, 2021/08/25
- Re: What's the best (i.e. least bad) way to re-redisplay?, Stefan Monnier, 2021/08/25
- Re: What's the best (i.e. least bad) way to re-redisplay?, Eli Zaretskii, 2021/08/26
- Re: What's the best (i.e. least bad) way to re-redisplay?, Stefan Monnier, 2021/08/26
- Re: What's the best (i.e. least bad) way to re-redisplay?, Alan Mackenzie, 2021/08/26
- Re: What's the best (i.e. least bad) way to re-redisplay?, Stefan Monnier, 2021/08/26
- Re: What's the best (i.e. least bad) way to re-redisplay?, Alan Mackenzie, 2021/08/30