# Encoding: UTF-8

{fileTypes: ["haml", "sass"],
 foldingStartMarker: /^\s*(?<_1>[-%#\:\.\w\=].*)\s$/,
 foldingStopMarker: /^\s*$/,
 keyEquivalent: "^~H",
 name: "Ruby Haml",
 patterns: 
  [{begin: /^\s*==/,
    contentName: "string.quoted.double.ruby",
    end: "$\\n?",
    patterns: [{include: "#interpolated_ruby"}]},
   {captures: {1 => {name: "punctuation.definition.prolog.haml"}},
    match: /^(?<_1>!!!)(?<_2>$|\s.*)/,
    name: "meta.prolog.haml"},
   {captures: {1 => {name: "punctuation.section.comment.haml"}},
    match: /^ *(?<_1>\/)\s*\S.*$\n?/,
    name: "comment.line.slash.haml"},
   {begin: /^(?<_1> *)(?<_2>\/)\s*$/,
    beginCaptures: {2 => {name: "punctuation.section.comment.haml"}},
    end: "^(?!\\1  )",
    name: "comment.block.haml",
    patterns: [{include: "text.haml"}]},
   {begin: /^\s*(?:(?<_1>(?<_2>%)(?<_3>[\w:]+))|(?=\.|#))/,
    captures: 
     {1 => {name: "meta.tag.haml"},
      2 => {name: "punctuation.definition.tag.haml"},
      3 => {name: "entity.name.tag.haml"}},
    end: "$|(?!\\.|#|\\{|\\[|=|-|~|/)",
    patterns: 
     [{begin: /==/,
       contentName: "string.quoted.double.ruby",
       end: "$\\n?",
       patterns: [{include: "#interpolated_ruby"}]},
      {match: /\.[\w-]+/, name: "entity.name.tag.class.haml"},
      {match: /#[\w-]+/, name: "entity.name.tag.id.haml"},
      {begin: /\{(?=.*\}|.*\|\s*$)/,
       end: "\\}|$|^(?!.*\\|\\s*$)",
       name: "meta.section.attributes.haml",
       patterns: [{include: "source.ruby.rails"}, {include: "#continuation"}]},
      {begin: /\[(?=.*\]|.*\|\s*$)/,
       end: "\\]|$|^(?!.*\\|\\s*$)",
       name: "meta.section.object.haml",
       patterns: [{include: "source.ruby.rails"}, {include: "#continuation"}]},
      {include: "#rubyline"},
      {match: /\//, name: "punctuation.terminator.tag.haml"}]},
   {captures: {1 => {name: "meta.escape.haml"}}, match: /^\s*(?<_1>\\.)/},
   {begin: /^\s*(?==|-|~)/, end: "$", patterns: [{include: "#rubyline"}]}],
 repository: 
  {continuation: 
    {captures: {1 => {name: "punctuation.separator.continuation.haml"}},
     match: /(?<_1>\|)\s*\n/},
   interpolated_ruby: 
    {patterns: 
      [{captures: 
         {0 => {name: "punctuation.section.embedded.ruby"},
          1 => {name: "source.ruby.embedded.source.empty"}},
        match: /#\{(?<_1>\})/,
        name: "source.ruby.embedded.source"},
       {begin: /#\{/,
        captures: {0 => {name: "punctuation.section.embedded.ruby"}},
        end: "(\\})",
        name: "source.ruby.embedded.source",
        patterns: 
         [{include: "#nest_curly_and_self"}, {include: "source.ruby"}]},
       {captures: {1 => {name: "punctuation.definition.variable.ruby"}},
        match: /(?<_1>\#@)[a-zA-Z_]\w*/,
        name: "variable.other.readwrite.instance.ruby"},
       {captures: {1 => {name: "punctuation.definition.variable.ruby"}},
        match: /(?<_1>\#@@)[a-zA-Z_]\w*/,
        name: "variable.other.readwrite.class.ruby"},
       {captures: {1 => {name: "punctuation.definition.variable.ruby"}},
        match: /(?<_1>#\$)[a-zA-Z_]\w*/,
        name: "variable.other.readwrite.global.ruby"}]},
   nest_curly_and_self: 
    {patterns: 
      [{begin: /\{/,
        captures: {0 => {name: "punctuation.section.scope.ruby"}},
        end: "\\}",
        patterns: [{include: "#nest_curly_and_self"}]},
       {include: "source.ruby"}]},
   rubyline: 
    {begin: /=|-|~/,
     contentName: "source.ruby.embedded.haml",
     end: "((do|\\{)( \\|[^|]+\\|)?)$|$|^(?!.*\\|\\s*$)",
     endCaptures: 
      {1 => {name: "source.ruby.embedded.html"},
       2 => {name: "keyword.control.ruby.start-block"}},
     name: "meta.line.ruby.haml",
     patterns: 
      [{comment: "Hack to let ruby comments work in this context properly",
        match: /#.*$/,
        name: "comment.line.number-sign.ruby"},
       {include: "source.ruby.rails"},
       {include: "#continuation"}]}},
 scopeName: "text.haml",
 uuid: "3D727049-DD05-45DF-92A5-D50EA36FD035"}
