{ "name": "stylus", "scopeName": "source.stylus", "fileTypes": ["styl", "stylus", "css.styl", "css.stylus"], "patterns": [ { "include": "#comment" }, { "include": "#at_rule" }, { "include": "#language_keywords" }, { "include": "#language_constants" }, { "include": "#variable_declaration" }, { "include": "#function" }, { "include": "#selector" }, { "include": "#declaration" }, { "captures": { "1": { "name": "punctuation.section.property-list.begin.css" }, "2": { "name": "punctuation.section.property-list.end.css" } }, "match": "(\\{)(\\})", "name": "meta.brace.curly.css" }, { "match": "\\{|\\}", "name": "meta.brace.curly.css" }, { "include": "#numeric" }, { "include": "#string" }, { "include": "#operator" } ], "repository": { "comment": { "patterns": [ { "include": "#comment_block" }, { "include": "#comment_line" } ] }, "comment_block": { "begin": "/\\*", "beginCaptures": { "0": { "name": "punctuation.definition.comment.begin.css" } }, "end": "\\*/", "endCaptures": { "0": { "name": "punctuation.definition.comment.end.css" } }, "name": "comment.block.css" }, "comment_line": { "begin": "(^[ \\t]+)?(?=//)", "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.stylus" } }, "end": "(?!\\G)", "patterns": [ { "begin": "//", "beginCaptures": { "0": { "name": "punctuation.definition.comment.stylus" } }, "end": "(?=\\n)", "name": "comment.line.double-slash.stylus" } ] }, "selector": { "patterns": [ { "match": "(?:(?=\\w)(?(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])", "name": "meta.attribute-selector.css" }, { "include": "#interpolation" }, { "include": "#variable" } ] }, "variable_declaration": { "begin": "^[^\\S\\n]*(\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\S\\n]*(\\=|\\?\\=|\\:\\=)", "beginCaptures": { "1": { "name": "variable.stylus" }, "2": { "name": "keyword.operator.stylus" } }, "end": "(\\n)|(;)|(?=\\})", "endCaptures": { "2": { "name": "punctuation.terminator.rule.css" } }, "patterns": [ { "include": "#property_values" } ] }, "declaration": { "begin": "((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)", "end": "(?=\\n)|(;)|(?=\\})|(\\n)", "endCaptures": { "2": { "name": "punctuation.terminator.rule.css" } }, "name": "meta.property-list.css", "patterns": [ { "match": "(?x) (?|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?