From 4aa811585597884398b5be13d92f4af0a06de3e1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Simen=20Heggest=C3=B8yl?= Date: Sun, 15 May 2022 16:22:14 +0200 Subject: [PATCH] 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(-) 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 -- 2.39.2