CSS-extras: match attribute inside selectors
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
diff --git a/components/prism-css-extras.js b/components/prism-css-extras.js
index 766a5b0..1b85714 100644
--- a/components/prism-css-extras.js
+++ b/components/prism-css-extras.js
@@ -4,7 +4,8 @@ Prism.languages.css.selector = {
'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,
'pseudo-class': /:[-\w]+(?:\(.*\))?/,
'class': /\.[-:\.\w]+/,
- 'id': /#[-:\.\w]+/
+ 'id': /#[-:\.\w]+/,
+ 'attribute': /\[[^\]]+\]/
}
};
diff --git a/components/prism-css-extras.min.js b/components/prism-css-extras.min.js
index 0a753ea..d5ef4b6 100644
--- a/components/prism-css-extras.min.js
+++ b/components/prism-css-extras.min.js
@@ -1 +1 @@
-Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+(?:\(.*\))?/,"class":/\.[-:\.\w]+/,id:/#[-:\.\w]+/}},Prism.languages.insertBefore("css","function",{hexcode:/#[\da-f]{3,6}/i,entity:/\\[\da-f]{1,8}/i,number:/[\d%\.]+/});
\ No newline at end of file
+Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+(?:\(.*\))?/,"class":/\.[-:\.\w]+/,id:/#[-:\.\w]+/,attribute:/\[[^\]]+\]/}},Prism.languages.insertBefore("css","function",{hexcode:/#[\da-f]{3,6}/i,entity:/\\[\da-f]{1,8}/i,number:/[\d%\.]+/});
\ No newline at end of file
diff --git a/tests/languages/css!+css-extras/selector_feature.test b/tests/languages/css!+css-extras/selector_feature.test
index 475ed1b..3931a66 100644
--- a/tests/languages/css!+css-extras/selector_feature.test
+++ b/tests/languages/css!+css-extras/selector_feature.test
@@ -9,6 +9,8 @@ foo#bar {
#foo > .bar:not(baz):after {
+div[foo="bar"] {
+
----------------------------------------------------
[
@@ -43,6 +45,11 @@ foo#bar {
["class", ".bar"],
["pseudo-class", ":not(baz)"],
["pseudo-element", ":after"]
+ ]], ["punctuation", "{"],
+
+ ["selector", [
+ "div",
+ ["attribute", "[foo=\"bar\"]"]
]], ["punctuation", "{"]
]