[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being uncondi
From: |
Ihor Radchenko |
Subject: |
bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers |
Date: |
Thu, 21 Jul 2022 21:18:34 +0800 |
Eli Zaretskii <eliz@gnu.org> writes:
>> If fontification is done in temporary throwaway buffers that are closed
>> immediately after fontification, next portion of text that should be
>> fontified in the same major mode will need to create a new throwaway
>> buffer, turn on the relevant major mode, and perform fontification.
>> Hence, major mode will need to be loaded every single time we need to
>> fontify a text fragment.
>
> It is not "loaded", it is "activated". "Loading" in Emacs means
> loading the Lisp package that implements the mode, and that is done
> only once. We don't unload packages when buffers are killed.
Thanks for the clarification.
>> > And why do you assume that erasing a buffer and then inserting some
>> > text into it will be significantly faster than turning on a mode in
>> > it? It sounds like another fragile assumption.
>>
>> It is usually true from my experience.
>
> Well, "usually" is not a guarantee it will always be so.
We do not need such a guarantee. The choice between temporary throwaway
buffers and single major-mode buffer where we insert/remove text is
about speed. Even if reusing the buffer is faster in 90% of major modes
and not 100%, it is a big improvement.
> Anyway, if this is the issue, we could add another way of marking a
> buffer as "invisible for user", one that is not based on the buffer's
> name.
>
>> (5.531764251 0 0.0)
>> (0.012424528 0 0.0)
>>
>> Over 400x difference.
>
> Sorry, but this proves nothing, and I'm sure you know it.
It was an _illustration_. The decision to reuse buffer was not
arbitrary. Org mode developers and users tested the throwaway buffer
approach, found it too slow and changed to reusing a single major-mode
buffer. The latter is faster in practice.
> To me, this is just one more fragile assumption on which Org code is
> based that is bound to be broken some day.
It is a heuristic. If it is broken, nothing terrible will happen.
Fontification will still work, albeit slower. If the slowdown will be
reported widely, we can always change to the alternative approach.
Also, I am not sure why you are making such a strong claim about "that
is bound to be broken some day". Throwaway buffer will require (1)
creating buffer; (2) activating major-mode; (3) fontification. Reusable
buffer will require (1) Handling major mode's
before/after-change-functions; (2) fontification.
Before/after-change-functions are fast. If not, the relevant major mode
is a terrible mode anyway and should not be used. There is no such
pressure to optimize the activation time, in comparison.
Best,
Ihor
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Ihor Radchenko, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Eli Zaretskii, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Ihor Radchenko, 2022/07/20
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Eli Zaretskii, 2022/07/20
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Ihor Radchenko, 2022/07/21
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Eli Zaretskii, 2022/07/21
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Ihor Radchenko, 2022/07/21
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Eli Zaretskii, 2022/07/21
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers,
Ihor Radchenko <=
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Stefan Monnier, 2022/07/21
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Ihor Radchenko, 2022/07/24
bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Stefan Monnier, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Eli Zaretskii, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Stefan Monnier, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Stefan Monnier, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Eli Zaretskii, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Stefan Monnier, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Eli Zaretskii, 2022/07/19
- bug#56637: 28.1.90; [FR] Allow a way around font-lock-mode being unconditionally disabled in " *hidden*" buffers, Stefan Monnier, 2022/07/19