{ "fileTypes": [ "slim", "skim" ], "foldingStartMarker": "^\\s*([-%#\\:\\.\\w\\=].*)\\s$", "foldingStopMarker": "^\\s*$", "keyEquivalent": "^~S", "name": "Ruby Slim", "patterns": [ { "begin": "^(\\s*)(ruby):$", "beginCaptures": { "2": { "name": "constant.language.name.ruby.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "text.ruby.filter.slim", "patterns": [ { "include": "source.ruby" } ] }, { "begin": "^(\\s*)(javascript):$", "beginCaptures": { "2": { "name": "constant.language.name.javascript.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "source.js.filter.slim", "patterns": [ { "include": "source.js" } ] }, { "begin": "^(---)\\s*\\n", "beginCaptures": { "1": { "name": "storage.frontmatter.slim" } }, "end": "^(---)\\s*\\n", "endCaptures": { "1": { "name": "storage.frontmatter.slim" } }, "name": "source.yaml.meta.slim", "patterns": [ { "include": "source.yaml" } ] }, { "begin": "^(\\s*)(coffee):$", "beginCaptures": { "2": { "name": "constant.language.name.coffeescript.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "text.coffeescript.filter.slim", "patterns": [ { "include": "source.coffee" } ] }, { "begin": "^(\\s*)(markdown):$", "beginCaptures": { "2": { "name": "constant.language.name.markdown.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "text.markdown.filter.slim", "patterns": [ { "include": "source.md" } ] }, { "begin": "^(\\s*)(css):$", "beginCaptures": { "2": { "name": "constant.language.name.css.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "text.css.filter.slim", "patterns": [ { "include": "source.css" } ] }, { "begin": "^(\\s*)(sass):$", "beginCaptures": { "2": { "name": "constant.language.name.sass.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "text.sass.filter.slim", "patterns": [ { "include": "source.sass" } ] }, { "begin": "^(\\s*)(scss):$", "beginCaptures": { "2": { "name": "constant.language.name.scss.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "text.scss.filter.slim", "patterns": [ { "include": "source.scss" } ] }, { "begin": "^(\\s*)(less):$", "beginCaptures": { "2": { "name": "constant.language.name.less.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "text.less.filter.slim", "patterns": [ { "include": "source.less" } ] }, { "begin": "^(\\s*)(erb):$", "beginCaptures": { "2": { "name": "constant.language.name.erb.filter.slim" } }, "end": "^(?!(\\1\\s)|\\s*$)", "name": "text.erb.filter.slim", "patterns": [ { "include": "source.erb" } ] }, { "captures": { "1": { "name": "punctuation.definition.prolog.slim" } }, "match": "^(! )($|\\s.*)", "name": "meta.prolog.slim" }, { "begin": "^(\\s*)(/)\\s*.*$", "beginCaptures": { "1": { "name": "punctuation.section.comment.slim" } }, "end": "^(?!\\1 )", "name": "comment.block.slim" }, { "captures": { "1": { "name": "punctuation.section.comment.slim" } }, "match": "^\\s*(/)\\s*\\S.*$\\n?", "name": "comment.line.slash.slim" }, { "begin": "^\\s*(?=-)", "end": "$", "patterns": [ { "include": "#rubyline" } ] }, { "begin": "(?==+|~)", "end": "$", "patterns": [ { "include": "#rubyline" } ] }, { "include": "#tag-attribute" }, { "include": "#embedded-ruby" }, { "begin": "^\\s*(\\.|#|[a-zA-Z0-9]+)([\\w-]+)?", "captures": { "1": { "name": "entity.name.tag.slim" }, "2": { "name": "entity.other.attribute-name.event.slim" } }, "comment": "1 - dot OR hash OR any combination of word, number; 2 - OPTIONAL any combination of word, number, dash or underscore (following a . or", "end": "$|(?!\\.|#|=|:|-|~|/|\\}|\\]|\\*|\\s?[\\*\\{])", "name": "meta.tag", "patterns": [ { "begin": "(:[\\w\\d]+)+", "comment": "XML", "end": "$|\\s", "name": "entity.name.tag.slim" }, { "begin": "(:\\s)(\\.|#|[a-zA-Z0-9]+)([\\w-]+)?", "captures": { "1": { "name": "punctuation.definition.tag.end.slim" }, "2": { "name": "entity.name.tag.slim" }, "3": { "name": "entity.other.attribute-name.event.slim" } }, "comment": "Inline HTML / 1 - colon; 2 - dot OR hash OR any combination of word, number; 3 - OPTIONAL any combination of word, number, dash or underscore (following a . or", "end": "$|(?!\\.|#|=|-|~|/|\\}|\\]|\\*|\\s?[\\*\\{])", "patterns": [ { "include": "#root-class-id-tag" }, { "include": "#tag-attribute" } ] }, { "begin": "(\\*\\{)(?=.*\\}|.*\\|\\s*$)", "beginCaptures": { "1": { "name": "punctuation.section.embedded.ruby" } }, "comment": "Splat attributes", "end": "(\\})|$|^(?!.*\\|\\s*$)", "endCaptures": { "1": { "name": "punctuation.section.embedded.ruby" } }, "name": "source.ruby.embedded.slim", "patterns": [ { "include": "#embedded-ruby" } ] }, { "include": "#root-class-id-tag" }, { "include": "#rubyline" }, { "match": "/", "name": "punctuation.terminator.tag.slim" } ] }, { "captures": { "1": { "name": "meta.escape.slim" } }, "match": "^\\s*(\\\\.)" }, { "begin": "^\\s*(?=\\||')", "end": "$", "patterns": [ { "include": "#embedded-ruby" }, { "include": "text.html.basic" } ] }, { "begin": "(?=<[\\w\\d\\:]+)", "comment": "Inline and root-level HTML tags", "end": "$|\\/\\>", "patterns": [ { "include": "text.html.basic" } ] } ], "repository": { "continuation": { "captures": { "1": { "name": "punctuation.separator.continuation.slim" } }, "match": "([\\\\,])\\s*\\n" }, "delimited-ruby-a": { "begin": "=\\(", "end": "\\)(?=( \\w|$))", "name": "source.ruby.embedded.slim", "patterns": [ { "include": "source.ruby.rails" } ] }, "delimited-ruby-b": { "begin": "=\\[", "end": "\\](?=( \\w|$))", "name": "source.ruby.embedded.slim", "patterns": [ { "include": "source.ruby.rails" } ] }, "delimited-ruby-c": { "begin": "=\\{", "end": "\\}(?=( \\w|$))", "name": "source.ruby.embedded.slim", "patterns": [ { "include": "source.ruby.rails" } ] }, "embedded-ruby": { "begin": "(?|><|<'|'<|<|>)?|-", "contentName": "source.ruby.embedded.slim", "end": "(?