Add @supports statements
This commit is contained in:
parent
e4fefc4022
commit
751c870b80
|
@ -88,6 +88,41 @@ Media statements
|
|||
(binary_query (negated_query (keyword_query)) (parenthesized_query (keyword_query)))
|
||||
(block)))
|
||||
|
||||
==============================
|
||||
Supports statements
|
||||
==============================
|
||||
|
||||
@supports (animation-name: test) {
|
||||
div { animation-name: test; }
|
||||
}
|
||||
@supports (transform-style: preserve) or (-moz-transform-style: preserve) {}
|
||||
@supports not ((text-align-last: justify) or (-moz-text-align-last: justify)) {}
|
||||
@supports not selector(:matches(a, b)) {}
|
||||
|
||||
---
|
||||
|
||||
(stylesheet
|
||||
(supports_statement
|
||||
(feature_query (feature_name) (plain_value))
|
||||
(block
|
||||
(rule_set (selectors (tag_name)) (block
|
||||
(declaration (property_name) (plain_value))))))
|
||||
(supports_statement
|
||||
(binary_query
|
||||
(feature_query (feature_name) (plain_value))
|
||||
(feature_query (feature_name) (plain_value)))
|
||||
(block))
|
||||
(supports_statement
|
||||
(negated_query (parenthesized_query (binary_query
|
||||
(feature_query (feature_name) (plain_value))
|
||||
(feature_query (feature_name) (plain_value)))))
|
||||
(block))
|
||||
(supports_statement
|
||||
(negated_query (selector_query (pseudo_class_selector
|
||||
(class_name)
|
||||
(arguments (plain_value) (plain_value)))))
|
||||
(block)))
|
||||
|
||||
==============================
|
||||
Charset statements
|
||||
==============================
|
||||
|
|
15
grammar.js
15
grammar.js
|
@ -25,6 +25,7 @@ module.exports = grammar({
|
|||
$.charset_statement,
|
||||
$.namespace_statement,
|
||||
$.keyframes_statement,
|
||||
$.supports_statement,
|
||||
$.at_rule
|
||||
),
|
||||
|
||||
|
@ -76,6 +77,12 @@ module.exports = grammar({
|
|||
from: $ => 'from',
|
||||
to: $ => 'to',
|
||||
|
||||
supports_statement: $ => seq(
|
||||
'@supports',
|
||||
$._query,
|
||||
$.block
|
||||
),
|
||||
|
||||
at_rule: $ => seq(
|
||||
$.at_keyword,
|
||||
commaSep($._query),
|
||||
|
@ -181,6 +188,7 @@ module.exports = grammar({
|
|||
$.feature_query,
|
||||
$.binary_query,
|
||||
$.negated_query,
|
||||
$.selector_query,
|
||||
$.parenthesized_query
|
||||
),
|
||||
|
||||
|
@ -209,6 +217,13 @@ module.exports = grammar({
|
|||
$._query
|
||||
)),
|
||||
|
||||
selector_query: $ => seq(
|
||||
'selector',
|
||||
'(',
|
||||
$._selector,
|
||||
')'
|
||||
),
|
||||
|
||||
// Property Values
|
||||
|
||||
_value: $ => choice(
|
||||
|
|
|
@ -35,6 +35,10 @@
|
|||
"type": "SYMBOL",
|
||||
"name": "keyframes_statement"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "supports_statement"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "at_rule"
|
||||
|
@ -265,6 +269,23 @@
|
|||
"type": "STRING",
|
||||
"value": "to"
|
||||
},
|
||||
"supports_statement": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "@supports"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_query"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "block"
|
||||
}
|
||||
]
|
||||
},
|
||||
"at_rule": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
|
@ -801,6 +822,10 @@
|
|||
"type": "SYMBOL",
|
||||
"name": "negated_query"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "selector_query"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "parenthesized_query"
|
||||
|
@ -901,6 +926,27 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"selector_query": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "selector"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "("
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_selector"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": ")"
|
||||
}
|
||||
]
|
||||
},
|
||||
"_value": {
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue