diff --git a/Syntaxes/Liquid.sublime-syntax b/Syntaxes/Liquid.sublime-syntax index d52555f..e342e8b 100644 --- a/Syntaxes/Liquid.sublime-syntax +++ b/Syntaxes/Liquid.sublime-syntax @@ -30,6 +30,7 @@ contexts: - include: liquid-schema-tags - include: liquid-javascript-tags - include: liquid-style-tags + - include: liquid-stylesheet-tags - include: liquid-raw-tags - include: liquid-statement-tags @@ -127,7 +128,7 @@ contexts: 2: keyword.declaration.schema.liquid 3: punctuation.section.embedded.end.liquid -###[ LIQUID STYLE TAGS ]####################################################### +###[ LIQUID STYLE TAGS ]###################################################### liquid-style-tags: # https://shopify.dev/api/liquid/tags/theme-tags#style @@ -146,6 +147,25 @@ contexts: 2: keyword.declaration.raw.liquid 3: punctuation.section.embedded.end.liquid +###[ LIQUID STYLESHEET TAGS ]################################################# + + liquid-stylesheet-tags: + # https://shopify.dev/docs/api/liquid/tags/theme-tags#stylesheet + - match: ({%-?)\s*(stylesheet)\s*(-?%}) + scope: meta.embedded.liquid source.liquid meta.statement.liquid + captures: + 1: punctuation.section.embedded.begin.liquid + 2: keyword.declaration.raw.liquid + 3: punctuation.section.embedded.end.liquid + embed: scope:source.css + embed_scope: source.css.embedded.liquid + escape: ({%-?)\s*(endstylesheet)\s*(-?%}) + escape_captures: + 0: meta.embedded.liquid source.liquid meta.statement.liquid + 1: punctuation.section.embedded.begin.liquid + 2: keyword.declaration.raw.liquid + 3: punctuation.section.embedded.end.liquid + ###[ LIQUID STATEMENT TAGS ]################################################## liquid-statement-tags: diff --git a/tests/syntax_test_liquid.liquid.html b/tests/syntax_test_liquid.liquid.html index e931f97..fed65dc 100644 --- a/tests/syntax_test_liquid.liquid.html +++ b/tests/syntax_test_liquid.liquid.html @@ -594,6 +594,24 @@ | ^^^^^^^^ keyword.declaration.raw.liquid | ^^ punctuation.section.embedded.end.liquid +{% stylesheet %} +| <- meta.embedded.liquid source.liquid meta.statement.liquid punctuation.section.embedded.begin.liquid +|^^^^^^^^^^^^^^^ meta.embedded.liquid source.liquid meta.statement.liquid +|^ punctuation.section.embedded.begin.liquid +| ^^^^^^^^^^ keyword.declaration.raw.liquid +| ^^ punctuation.section.embedded.end.liquid + +div { + display: none; +} + +{% endstylesheet %} +| <- meta.embedded.liquid source.liquid meta.statement.liquid punctuation.section.embedded.begin.liquid +|^^^^^^^^^^^^^^^^^ meta.embedded.liquid source.liquid meta.statement.liquid +|^ punctuation.section.embedded.begin.liquid +| ^^^^^^^^^^^^^ keyword.declaration.raw.liquid +| ^^ punctuation.section.embedded.end.liquid + {% plugin "foo" %} | <- meta.embedded.liquid source.liquid meta.statement.liquid punctuation.section.embedded.begin.liquid |^^^^^^^^^^^^^^^^^ meta.embedded.liquid source.liquid meta.statement.liquid