GNU bug report logs -
#49629
27.2; electric-pair-mode doesn't work for angle brackets in HTML file
Previous Next
Reported by: Allen Li <darkfeline <at> felesatra.moe>
Date: Sun, 18 Jul 2021 23:53:01 UTC
Severity: normal
Found in version 27.2
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #41 received at 49629 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
I *think* I've fixed this, but it's complicated. Also I could be
completely wrong. For what it's worth, I can reproduce the bug without the
patch and cannot with the patch, which see attached.
`electric-pair--with-uncached-syntax` hides `syntax-propertize-function`,
and `mhtml-mode` uses `syntax-propertize-function`. AFAIU, let-binding
`syntax-propertize-function` may or may not clear the cached syntax applied
by said function, leading to the current heisenbug.
If this sounds sensible, then a slightly different patch is needed, because
`electric-pair--with-uncached-syntax` is used in some contexts where hiding
`syntax-propertize-function` is the correct behavior.
See second attached patch for an attempt at this approach.
+Noam Postavsky <npostavs <at> gmail.com> since they added
`electric-pair--with-uncached-syntax`
On Sun, Jun 26, 2022 at 1:41 AM Allen Li <darkfeline <at> felesatra.moe> wrote:
> On Thu, Dec 9, 2021 at 2:31 AM Allen Li <darkfeline <at> felesatra.moe> wrote:
>
>> I have bisected this regression
>> to 7fff418edf56244a1fcf54718523aa9b5cb3a854
>>
>> I will cc Stefan on the miniscule chance he still remembers anything
>> about this and can save me time.
>> Otherwise, I will see if I can pinpoint the regression (or if I messed up
>> the bisect).
>>
>
> Posting an update (or non-update) on this. This regression did seem to be
> introduced by 7fff418edf56244a1fcf54718523aa9b5cb3a854, however I'm pretty
> sure there's nothing wrong with the commit itself, it's just that jiggling
> the code around made this regression reliably occur.
>
>
>>
>> Author: Stefan Monnier <monnier <at> iro.umontreal.ca>
>> Date: Fri Nov 29 11:51:48 2019 -0500
>> * lisp/textmodes/mhtml-mode.el: Fix bug#38372
>>
>> The `sgml-syntax-propertize-rules` rely on the
>> `sgml--syntax-propertize-ppss`
>> setup by `sgml-syntax-propertize` so it is not correct/safe to use
>> them directly like html used to do.
>>
>> Change `sgml-syntax-propertize` so it can be used by mhtml,
>> and then adjust mhtml-mode accordingly.
>>
>> * lisp/textmodes/mhtml-mode.el: Remove redundant `eval-and-compile`.
>> Only require cl-lib at compile-time.
>> (mhtml--syntax-propertize): New const, extracted from
>> mhtml-syntax-propertize.
>> (mhtml-syntax-propertize): Use `sgml-syntax-propertize`.
>>
>> * lisp/textmodes/sgml-mode.el (sgml--syntax-propertize): New const,
>> extracted from sgml-syntax-propertize.
>> (sgml-syntax-propertize): Add optional `rules-function` arg.
>> lisp/textmodes/mhtml-mode.el | 44
>> ++++++++++++++++++++------------------------
>> lisp/textmodes/sgml-mode.el | 13 ++++++++-----
>> 2 files changed, 28 insertions(+), 29 deletions(-)
>>
>> On Sun, Aug 1, 2021 at 10:41 AM Lars Ingebrigtsen <larsi <at> gnus.org> wrote:
>>
>>> Allen Li <darkfeline <at> felesatra.moe> writes:
>>>
>>> > Thus, I resorted to actually trying to understand the code.
>>>
>>> Darn, I hate it when that happens.
>>>
>>> > I've tracked down the bug to unexpected behavior from the `scan-sexps`
>>> > call in this part of `electric-pair--balance-info`:
>>>
>>> I can reproduce exactly what you're seeing -- when edebugging, the
>>> problem goes away, etc.
>>>
>>> I put a
>>>
>>> (redisplay t)
>>>
>>> into the function, and that also made the problem go away, but that's as
>>> far as I've gotten so far. So the problem does indeed seem to be
>>> something related to a cache/table somewhere not having been updated...
>>>
>>> --
>>> (domestic pets only, the antidote for overdose, milk.)
>>> bloggy blog: http://lars.ingebrigtsen.no
>>>
>>
[Message part 2 (text/html, inline)]
[0001-Fix-regression.patch (text/x-patch, attachment)]
[0001-elec-pair-Fix-bug-incorrectly-hiding-syntax-properti.patch (text/x-patch, attachment)]
This bug report was last modified 3 years and 17 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.