{ "name": "Scaml (Scalate)", "scopeName": "source.scaml", "patterns": [ { "contentName": "string.quoted.double.scala", "begin": "^\\s*[\u0026!]?==", "end": "$\\n?", "patterns": [ { "include": "#interpolated_scala" } ] }, { "name": "source.scala.embedded.filter.scaml", "begin": "^(\\s*):scala$", "end": "^\\1$", "patterns": [ { "include": "source.scala" } ] }, { "name": "meta.prolog.scaml", "match": "^(!!!)($|\\s.*)", "captures": { "1": { "name": "punctuation.definition.prolog.scaml" } } }, { "name": "source.js.embedded.scaml", "begin": ":javascript", "end": "^(\\s+)?%", "patterns": [ { "include": "source.js" }, {} ] }, { "name": "source.embedded.filter.js", "begin": "^(\\s*):javascript$", "end": "^\\1$", "patterns": [ { "include": "source.js" } ] }, { "name": "source.scala.embedded.filter.scaml", "begin": "^(\\s*):scala$", "end": "^\\1$", "patterns": [ { "include": "source.scala" } ] }, { "name": "comment.line.slash.scaml", "match": "^ *(/)\\s*\\S.*$\\n?", "captures": { "1": { "name": "punctuation.section.comment.scaml" } } }, { "name": "comment.block.scaml", "begin": "^( *)(/)\\s*$", "end": "^(?!\\1 )", "patterns": [ { "include": "source.scaml" } ], "beginCaptures": { "2": { "name": "punctuation.section.comment.scaml" } } }, { "begin": "^\\s*(?:((%)(('[^']+')|([\\w\\_\\-:]+)))|(?=\\.\\w|#\\w))", "end": "$|(?!(\\\u003e\\\u003c|\\\u003c?\\\u003e?)(\\.|#|\\{|\\[|[\u0026!]?=|~|/))", "patterns": [ { "contentName": "string.quoted.double.scala", "begin": "[\u0026!]?==", "end": "$\\n?", "patterns": [ { "include": "#interpolated_scala" } ] }, { "name": "meta.selector.css", "match": "(\\.[\\w-]+)", "captures": { "1": { "name": "entity.other.attribute-name.class" } } }, { "name": "meta.selector.css", "match": "(#[\\w-]+)", "captures": { "1": { "name": "entity.other.attribute-name.id" } } }, { "name": "meta.section.attributes.scaml", "begin": "\\{(?=.*\\}||.*\\|\\s*$)", "end": "\\}|$|^(?!.*\\|\\s*$)", "patterns": [ { "include": "source.scala" }, { "include": "#continuation" } ] }, { "name": "meta.section.object.scaml", "begin": "\\[(?=.*\\]|.*\\|\\s*$)", "end": "\\]|$|^(?!.*\\|\\s*$)", "patterns": [ { "include": "source.scala" }, { "include": "#continuation" } ] }, { "include": "#interpolated_scala_line" }, { "include": "#scalaline" }, { "name": "punctuation.terminator.tag.scaml", "match": "/" } ], "captures": { "1": { "name": "meta.tag.scaml" }, "2": { "name": "punctuation.definition.tag.scaml" }, "3": { "name": "entity.name.tag.scaml" } } }, { "name": "source.scala.embedded.filter.scaml", "begin": "^(\\s*):scala$", "end": "^\\1$", "patterns": [ { "include": "source.scala" } ] }, { "name": "source.scala.embedded.filter.scaml", "begin": "^(\\s*):scala$", "end": "^\\1([^\\s]*)$", "patterns": [ { "include": "source.scala" } ] }, { "name": "source.sass.embedded.filter.scaml", "begin": "^(\\s*):(style|sass)$", "end": "^\\1$", "patterns": [ { "include": "source.sass" } ] }, { "name": "source.js.embedded.filter.scaml", "begin": "^(\\s*):(java)?script$", "end": "^\\1([^\\s]*)$", "patterns": [ { "include": "#javascript_filter" } ] }, { "name": "text.plain.embedded.filter.scaml", "begin": "^(\\s*):plain$", "end": "^\\1([^\\s]*)$", "patterns": [ {} ] }, { "name": "source.scala.embedded.filter.scaml", "begin": "^(\\s*)(:scala)", "end": "^(?!\\1 )", "patterns": [ { "include": "source.scala" } ], "beginCaptures": { "2": { "name": "keyword.control.filter.scaml" } } }, { "name": "source.js.jquery.embedded.filter.scaml", "begin": "^(\\s*)(:javascript)", "end": "^(?!\\1 )", "patterns": [ {} ], "beginCaptures": { "2": { "name": "keyword.control.filter.scaml" } } }, { "name": "source.embedded.filter.sass", "begin": "^(\\s*)(:sass)", "end": "^(?!\\1 )", "patterns": [ { "include": "source.sass" } ], "beginCaptures": { "2": { "name": "keyword.control.filter.scaml" } } }, { "name": "source.sass.embedded.filter.scaml", "begin": "^(\\s*):(styles|sass)$", "end": "^\\1$", "patterns": [ { "include": "source.sass" } ] }, { "name": "source.js.embedded.filter.scaml", "begin": "^(\\s*):(java)?script$", "end": "^\\1$", "patterns": [ { "include": "source.js" } ] }, { "name": "text.plain.embedded.filter.scaml", "begin": "^(\\s*):plain$", "end": "^\\1$", "patterns": [ {} ] }, { "match": "^\\s*(\\\\.)", "captures": { "1": { "name": "meta.escape.scaml" } } }, { "begin": "^\\s*(?=[\u0026!]?=|-|~)", "end": "$", "patterns": [ { "include": "#interpolated_scala_line" }, { "include": "#scalaline" } ] } ], "repository": { "continuation": { "match": "(\\|)\\s*\\n", "captures": { "1": { "name": "punctuation.separator.continuation.scaml" } } }, "interpolated_scala": { "patterns": [ { "name": "source.scala.embedded.source", "match": "#\\{(\\})", "captures": { "0": { "name": "punctuation.section.embedded.scala" }, "1": { "name": "source.scala.embedded.source.empty" } } }, { "name": "source.scala.embedded.source", "begin": "#\\{", "end": "(\\})", "patterns": [ { "include": "#nest_curly_and_self" }, { "include": "source.scala" } ], "captures": { "0": { "name": "punctuation.section.embedded.scala" } } }, { "name": "variable.other.readwrite.instance.scala", "match": "(#@)[a-zA-Z_]\\w*", "captures": { "1": { "name": "punctuation.definition.variable.scala" } } }, { "name": "variable.other.readwrite.class.scala", "match": "(#@@)[a-zA-Z_]\\w*", "captures": { "1": { "name": "punctuation.definition.variable.scala" } } }, { "name": "variable.other.readwrite.global.scala", "match": "(#\\$)[a-zA-Z_]\\w*", "captures": { "1": { "name": "punctuation.definition.variable.scala" } } } ] }, "interpolated_scala_line": { "name": "meta.line.scala.interpolated.scaml", "begin": "!?==", "end": "$", "patterns": [ { "include": "#interpolated_scala" }, { "include": "#escaped_char" } ] }, "javascript_filter": { "patterns": [ { "include": "#interpolated_scala" }, { "include": "source.js" } ] }, "nest_curly_and_self": { "patterns": [ { "begin": "\\{", "end": "\\}", "patterns": [ { "include": "#nest_curly_and_self" } ], "captures": { "0": { "name": "punctuation.section.scope.scala" } } }, { "include": "source.scala" } ] }, "scalaline": { "name": "meta.line.scala.scaml", "contentName": "source.scala.embedded.scaml", "begin": "!=|\u0026=|==|=|-|~", "end": "((do|\\{)( \\|[^|]+\\|)?)$|$|^(?!.*\\|\\s*$)", "patterns": [ { "name": "comment.line.number-sign.scala", "match": "#.*$" }, { "include": "source.scala" }, { "include": "#continuation" } ], "endCaptures": { "1": { "name": "source.scala.embedded.html" }, "2": { "name": "keyword.control.scala.start-block" } } } } }