From 0da7689b167dd92c0ac307122be0a742a10abfb4 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Sun, 15 May 2022 14:13:14 +0200 Subject: Don't freeze Emacs on colour codes in sccs-mode * lisp/textmodes/css-mode.el (css--font-lock-keywords): Don't freeze Emacs on #ffffff #ffffff, and be more strict in parsing selectors (bug#53203). --- test/lisp/textmodes/css-mode-resources/scss-selectors.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 test/lisp/textmodes/css-mode-resources/scss-selectors.txt (limited to 'test/lisp/textmodes/css-mode-resources/scss-selectors.txt') diff --git a/test/lisp/textmodes/css-mode-resources/scss-selectors.txt b/test/lisp/textmodes/css-mode-resources/scss-selectors.txt new file mode 100644 index 00000000000..86e58110b72 --- /dev/null +++ b/test/lisp/textmodes/css-mode-resources/scss-selectors.txt @@ -0,0 +1,6 @@ +p.#{$name} var +p.#{$name}:active var +p.#{$name}::after var +f.#{$bar}::after p::after +p.#{$name} f.#{$bar} k.var #{$bar} #{$bar} +p.#{$name} -- cgit v1.2.3 From 4aa811585597884398b5be13d92f4af0a06de3e1 Mon Sep 17 00:00:00 2001 From: Simen Heggestøyl Date: Sun, 15 May 2022 16:22:14 +0200 Subject: Recognize some more SCSS selectors * lisp/textmodes/css-mode.el (css--selector-regexp): Recognize some more SCSS selectors. * test/lisp/textmodes/css-mode-resources/scss-selectors.txt: Add tests for them. --- lisp/textmodes/css-mode.el | 4 ++-- test/lisp/textmodes/css-mode-resources/scss-selectors.txt | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'test/lisp/textmodes/css-mode-resources/scss-selectors.txt') diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 99b4482dc53..a2a7774aba7 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -936,8 +936,8 @@ cannot be completed sensibly: `custom-ident', ;; Same as for non-sassy except we do want to allow { and } ;; chars in selectors in the case of #{$foo} ;; variable interpolation! - (concat "\\(?:[-_%*#.>[:alnum:]]*" scss--hash-re - "\\|[-_%*#.>[:alnum:]]+\\)")) + (concat "\\(?:[-_%*#.>&+~[:alnum:]]*" scss--hash-re + "\\|[-_%*#.>&+~[:alnum:]]+\\)")) ;; Even though pseudo-elements should be prefixed by ::, a ;; single colon is accepted for backward compatibility. "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids diff --git a/test/lisp/textmodes/css-mode-resources/scss-selectors.txt b/test/lisp/textmodes/css-mode-resources/scss-selectors.txt index 86e58110b72..3e05191a910 100644 --- a/test/lisp/textmodes/css-mode-resources/scss-selectors.txt +++ b/test/lisp/textmodes/css-mode-resources/scss-selectors.txt @@ -4,3 +4,7 @@ p.#{$name}::after var f.#{$bar}::after p::after p.#{$name} f.#{$bar} k.var #{$bar} #{$bar} p.#{$name} +&:hover +> li ++ li +~ li -- cgit v1.2.3