GNU bug report logs -
#53203
Comment with lots of color codes crashes or hangs emacs in scss-mode
Previous Next
Reported by: Colin <my.old.email.sucked <at> gmail.com>
Date: Wed, 12 Jan 2022 08:03:02 UTC
Severity: normal
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 53203 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
> It seems to infloop in JIT font-lock, and the culprit seems to be this
> part of font-lock-keywords:
>
> ;; Even though pseudo-elements should be prefixed by ::, a
> ;; single colon is accepted for backward compatibility.
> "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids
> css-pseudo-element-ids)
> t)
Trying to understand the regexp used for scss here, I think that bit is
somewhat innocuous -- it just matches those words.
;; Even though pseudo-elements should be prefixed by ::, a
;; single colon is accepted for backward compatibility.
"\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids
css-pseudo-element-ids)
t)
"\\|::" (regexp-opt css-pseudo-element-ids t) "\\)"
But then we get:
"\\(?:([^)]+)\\)?"
(if (not sassy)
"[^:{}()\n]*"
(concat "[^:{}()\n#]*\\(?:" scss--hash-re "[^:{}()\n#]*\\)*"))
"\\)*"
Which is a whole lot of backtracking, presumably exacerbated by the
previous ids bit of the regexp.
But I've repressed all I once knew about the scss language -- what is it
really trying to match here? Anybody?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
This bug report was last modified 3 years and 3 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.