{ "name": "Coffee Haml", "scopeName": "text.hamlc", "patterns": [ { "name": "meta.prolog.haml", "match": "^(!!!)($|\\s.*)", "captures": { "1": { "name": "punctuation.definition.prolog.haml" } } }, { "name": "comment.line.slash.haml", "match": "^ *(/)\\s*\\S.*$\\n?", "captures": { "1": { "name": "punctuation.section.comment.haml" } } }, { "name": "comment.block.haml", "begin": "^( *)(/)\\s*$", "end": "^(?! *$|\\1 )", "patterns": [ { "include": "text.haml" } ], "beginCaptures": { "2": { "name": "punctuation.section.comment.haml" } } }, { "begin": "^\\s*(?:((%)([\\w:-]+))|(?=\\.|#))", "end": "$|(?!\\.|#|\\{|\\[|\\(|=|-|~|/)", "patterns": [ { "name": "entity.name.tag.class.haml", "match": "\\.[\\w-]+" }, { "name": "entity.name.tag.id.haml", "match": "#[\\w-]+" }, { "name": "meta.section.attributes.haml", "begin": "\\{(?=.*\\}|.*(\\||,)\\s*$)", "end": "(\\}$|\\}(\\s+)?\\|(\\s+)?$)", "patterns": [ { "include": "source.coffee" }, { "include": "#continuation" } ] }, { "name": "meta.section.attributes.haml", "begin": "\\(|\\((?=.*\\)|.*\\|\\s*$)", "end": "\\)", "patterns": [ { "include": "#tag-stuff" }, { "include": "source.coffee" } ] }, { "name": "meta.section.object.haml", "begin": "\\[(?=.*\\]|.*\\|\\s*$)", "end": "\\]|$|^(?!.*\\|\\s*$)", "patterns": [ { "include": "source.coffee" }, { "include": "#continuation" } ] }, { "include": "#coffeeline" }, { "name": "punctuation.terminator.tag.haml", "match": "/" } ], "captures": { "1": { "name": "meta.tag.haml" }, "2": { "name": "punctuation.definition.tag.haml" }, "3": { "name": "entity.name.tag.haml" } } }, { "match": "^\\s*(\\\\.)", "captures": { "1": { "name": "meta.escape.haml" } } }, { "begin": "^\\s*(?==|-|~|!=)", "end": "$", "patterns": [ { "include": "#coffeeline" } ] }, { "name": "source.css.embedded.html", "begin": "^(\\s*)(:css)", "end": "^(?! *$|\\1 )", "patterns": [ { "include": "source.css" } ], "beginCaptures": { "2": { "name": "entity.name.tag.haml" } } }, { "name": "source.js.embedded.html", "begin": "^(\\s*)(:javascript)", "end": "^(?! *$|\\1 )", "patterns": [ { "include": "source.js" } ], "beginCaptures": { "2": { "name": "entity.name.tag.haml" } } }, { "name": "source.coffee.embedded.html", "begin": "#{", "end": "}", "patterns": [ { "include": "source.coffee" } ], "captures": { "0": { "name": "punctuation.section.embedded.coffee" } } } ], "repository": { "coffeeline": { "name": "meta.line.coffee.haml", "contentName": "source.coffee.embedded.haml", "begin": "=|-|~", "end": "((do|\\{)( \\|[^|]+\\|)?)$|$|^(?!.*\\|\\s*$)", "patterns": [ { "name": "comment.line.number-sign.coffee", "match": "#.*$" }, { "include": "source.coffee" }, { "include": "#continuation" } ], "endCaptures": { "1": { "name": "source.coffee.embedded.html" }, "2": { "name": "keyword.control.coffee.start-block" } } }, "continuation": { "match": "(\\|,)\\s*\\n", "captures": { "1": { "name": "punctuation.separator.continuation.haml" } } }, "tag-generic-attribute": { "name": "entity.other.attribute-name.haml", "match": "\\b([a-zA-Z\\-:]+)" }, "tag-stuff": { "patterns": [ { "include": "#tag-generic-attribute" } ] } } }