{
  "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": "text.javascript.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.sass"
        }
      ]
    },
    {
      "captures": {
        "1": {
          "name": "punctuation.definition.prolog.slim"
        }
      },
      "match": "^(! )($|\\s.*)",
      "name": "meta.prolog.slim"
    },
    {
      "begin": "^(\\s*)(/)\\s*",
      "beginCaptures": {
        "2": {
          "name": "punctuation.section.comment.slim"
        }
      },
      "end": "^(?!\\1  )",
      "name": "comment.block.slim",
      "patterns": [
        {
          "include": "text.slim"
        }
      ]
    },
    {
      "begin": "^\\s*(?===|=|-|~)",
      "end": "$",
      "patterns": [
        {
          "include": "#rubyline"
        }
      ]
    },
    {
      "include": "#inline-html-tag"
    },
    {
      "include": "#normal-html-tag"
    },
    {
      "include": "#embedded-ruby"
    },
    {
      "begin": "^\\s*((\\w*)(?:[.#_-]*\\w+)*)\\s*",
      "captures": {
        "0": {
          "name": "entity.name.tag.slim"
        },
        "2": {
          "name": "entity.name.tag-name.slim"
        }
      },
      "end": "$|(?!\\.|#|\\{|\\[|=|-|~|/)",
      "patterns": [
        {
          "begin": "\\{(?=.*\\}|.*\\|\\s*$)",
          "end": "\\}|$|^(?!.*\\|\\s*$)",
          "name": "meta.section.attributes.slim",
          "patterns": [
            {
              "include": "source.ruby.rails"
            },
            {
              "include": "#continuation"
            }
          ]
        },
        {
          "begin": "\\[(?=.*\\]|.*\\|\\s*$)",
          "end": "\\]|$|^(?!.*\\|\\s*$)",
          "name": "meta.section.object.slim",
          "patterns": [
            {
              "include": "source.ruby.rails"
            },
            {
              "include": "#continuation"
            }
          ]
        },
        {
          "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"
        }
      ]
    }
  ],
  "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": "(?<!\\\\)#\\{{1,2}",
      "beginCaptures": {
        "0": {
          "name": "punctuation.section.embedded.ruby"
        }
      },
      "end": "\\}{1,2}",
      "endCaptures": {
        "0": {
          "name": "punctuation.section.embedded.ruby"
        }
      },
      "name": "source.ruby.embedded.html",
      "patterns": [
        {
          "include": "source.ruby.rails"
        }
      ]
    },
    "entities": {
      "patterns": [
        {
          "captures": {
            "1": {
              "name": "punctuation.definition.entity.html"
            },
            "3": {
              "name": "punctuation.definition.entity.html"
            }
          },
          "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
          "name": "constant.character.entity.html"
        },
        {
          "match": "&",
          "name": "invalid.illegal.bad-ampersand.html"
        }
      ]
    },
    "inline-html-tag": {
      "begin": "^(\\s*([\\w.#_-]+( [\\w.#_-]+=(\".*?\"))*: )*)([\\w.#_-]+( [\\w.#_-]+=(\".*?\"))*:)(?=\\s)",
      "captures": {
        "1": {
          "name": "entity.name.tag.slim"
        },
        "2": {
          "name": "entity.name.tag.slim"
        },
        "3": {
          "name": "entity.name.tag.slim"
        },
        "4": {
          "name": "string.quoted.double.html"
        },
        "5": {
          "name": "entity.name.tag.slim"
        },
        "6": {
          "name": "entity.name.tag.slim"
        },
        "7": {
          "name": "string.quoted.double.html"
        }
      },
      "end": "$",
      "patterns": [
        {
          "include": "#normal-inline-html-tag"
        },
        {
          "include": "#tag-stuff"
        }
      ]
    },
    "interpolated-ruby": {
      "begin": "=(?=\\b)",
      "end": "\\s|\\w$",
      "name": "source.ruby.embedded.html"
    },
    "normal-html-tag": {
      "begin": "([\\w.#_-]+=)",
      "captures": {
        "1": {
          "name": "entity.name.tag.slim"
        }
      },
      "end": "$",
      "patterns": [
        {
          "include": "#tag-stuff"
        },
        {
          "include": "#string-double-quoted"
        },
        {
          "include": "#string-single-quoted"
        }
      ]
    },
    "normal-inline-html-tag": {
      "begin": "([\\w.#_-]+)",
      "captures": {
        "1": {
          "name": "entity.name.tag.slim"
        }
      },
      "end": "$",
      "patterns": [
        {
          "include": "#tag-stuff"
        }
      ]
    },
    "rubyline": {
      "begin": "(==|=)(<>|><|<'|'<|<|>|')?|-",
      "contentName": "source.ruby.embedded.slim",
      "end": "(?<!\\\\|,|\\n)$",
      "name": "meta.line.ruby.slim",
      "patterns": [
        {
          "comment": "Hack to let ruby comments work in this context properly",
          "match": "#.*$",
          "name": "comment.line.number-sign.ruby"
        },
        {
          "include": "#continuation"
        },
        {
          "include": "source.ruby.rails"
        }
      ]
    },
    "string-double-quoted": {
      "begin": "\"",
      "beginCaptures": {
        "0": {
          "name": "punctuation.definition.string.begin.html"
        }
      },
      "contentName": "meta.toc-list.id.html",
      "end": "\"",
      "endCaptures": {
        "0": {
          "name": "punctuation.definition.string.end.html"
        }
      },
      "name": "string.quoted.double.html",
      "patterns": [
        {
          "include": "#embedded-ruby"
        },
        {
          "include": "#entities"
        }
      ]
    },
    "string-single-quoted": {
      "begin": "'",
      "beginCaptures": {
        "0": {
          "name": "punctuation.definition.string.begin.html"
        }
      },
      "contentName": "meta.toc-list.id.html",
      "end": "'",
      "endCaptures": {
        "0": {
          "name": "punctuation.definition.string.end.html"
        }
      },
      "name": "string.quoted.single.html",
      "patterns": [
        {
          "include": "#embedded-ruby"
        },
        {
          "include": "#entities"
        }
      ]
    },
    "tag-id-attribute": {
      "begin": "\\b(id)\\b\\s*(=)",
      "captures": {
        "1": {
          "name": "entity.other.attribute-name.id.html"
        },
        "2": {
          "name": "punctuation.separator.key-value.html"
        }
      },
      "end": "(?<='|\")",
      "name": "meta.attribute-with-value.id.html",
      "patterns": [
        {
          "include": "#string-double-quoted"
        },
        {
          "include": "#string-single-quoted"
        }
      ]
    },
    "tag-stuff": {
      "patterns": [
        {
          "include": "#inline-html-tag"
        },
        {
          "include": "#normal-html-tag"
        },
        {
          "include": "#tag-id-attribute"
        },
        {
          "include": "#interpolated-ruby"
        },
        {
          "include": "#delimited-ruby-a"
        },
        {
          "include": "#delimited-ruby-b"
        },
        {
          "include": "#delimited-ruby-c"
        },
        {
          "include": "#rubyline"
        },
        {
          "include": "#embedded-ruby"
        }
      ]
    }
  },
  "scopeName": "text.slim",
  "uuid": "36302CC1-1E76-4910-B7B6-F1915EBBA0D3"
}