[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is it safe to use the combine-after-change-calls like this?
From: |
Alan Mackenzie |
Subject: |
Re: Is it safe to use the combine-after-change-calls like this? |
Date: |
Fri, 26 Apr 2019 10:31:39 +0000 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
Hello, Zhang.
On Thu, Apr 18, 2019 at 05:34:56 +0000, Zhang Haijun wrote:
> > combine-after-change-calls is ignored when before-change-functions is
> > non-nil.
> I just recognize this. It is not nil in c++-mode buffers.
CC Mode maintains several caches of state information, which are updated
in the before-change-functions and after-change-functions hooks. This
is on the assumption that successive buffer changes are usually close to
eachother. Obviously, this is less true in iedit-mode, and it is likely
that these caches hinder rather than help in this case.
> > Also, regarding interaction with non-CC-mode buffers: you might be able
> > to improve the efficiency of the code by executing the command of the
> > various cursors starting with the one closest to point-max and finishing
> > with the one closest to point-min.
> I don’t understand this well. I see that when iedit-mode is on, it
> calls after-change-functions on change around every active cursors for
> every char inputing.
One thing which might help in the future is the macro
combine-change-calls, which is a bit like combine-after-change-calls,
but also works when before-change-functions isn't nil.
combine-change-calls is in the Emacs repository master, and should be
getting released with Emacs 27.1 in the medium future (maybe about a
year from now).
--
Alan Mackenzie (Nuremberg, Germany).