# Encoding: UTF-8 {fileTypes: ["tt"], firstLineMatch: "\\[%.+?%\\]", foldingStartMarker: /(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\b.*?>|^ *\[%[^%]*\b(?:FOR|WRAPPER|SWITCH|FOREACH|IF|UNLESS|BLOCK|MACRO|FILTER|PERL|TRY)\b(?!.*END *%\]))/, foldingStopMarker: /(<\/(?i:(head|table|tr|div|style|script|ul|ol|form|dl))>|^ *\[% *END *%\])/, keyEquivalent: /^~T/, name: "HTML (Template Toolkit)", patterns: [{begin: /(?=\[% *(?:RAW)?PERL\b.*? *%\])/, contentName: "source.perl", end: "(\\[%) *(END) *(%\\])", endCaptures: {0 => {name: "meta.tag.template.tt"}, 1 => {name: "punctuation.definition.tag.tt"}, 2 => {name: "entity.name.tag.tt"}, 3 => {name: "punctuation.definition.tag.tt"}}, patterns: [{include: "#tmpl-container-tag"}, {include: "source.perl"}]}, {include: "#tmpl-container-tag"}, {include: "text.html.basic"}], repository: {:"embedded-code" => {}, entities: {patterns: [{captures: {1 => {name: "punctuation.definition.constant.html"}, 3 => {name: "punctuation.definition.constant.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"}]}, keyword: {match: /\b([A-Za-z0-9_]+)/, name: "string.unquoted.tt"}, :"string-double-quoted" => {begin: /"/, beginCaptures: {0 => {name: "punctuation.definition.string.begin.tt"}}, end: "\"", endCaptures: {0 => {name: "punctuation.definition.string.end.tt"}}, name: "string.quoted.double.tt", patterns: [{include: "#embedded-code"}, {include: "#entities"}]}, :"string-single-quoted" => {begin: /'/, beginCaptures: {0 => {name: "punctuation.definition.string.begin.tt"}}, end: "'", endCaptures: {0 => {name: "punctuation.definition.string.end.tt"}}, name: "string.quoted.single.tt", patterns: [{include: "#embedded-code"}, {include: "#entities"}]}, :"tag-generic-attribute" => {captures: {2 => {name: "punctuation.separator.key-value.tt"}}, match: /\b([a-zA-Z_:-]+)\s*(=)/, name: "entity.other.attribute-name.tt"}, :"tag-stuff" => {patterns: [{include: "#tag-generic-attribute"}, {include: "#string-double-quoted"}, {include: "#string-single-quoted"}, {include: "#keyword"}]}, :"tmpl-container-tag" => {patterns: [{begin: /\[%/, captures: {0 => {name: "punctuation.definition.tag.tt"}}, end: "%\\]", name: "meta.tag.template.tt", patterns: [{include: "#tt-stuff"}]}]}, :"tt-stuff" => {patterns: [{captures: {1 => {name: "punctuation.definition.comment.tt"}}, match: /(#).*?(?=%\])/, name: "comment.line.number-sign.tt"}, {captures: {1 => {name: "string.quoted.double.filename.tt"}, 2 => {name: "punctuation.definition.string.begin.tt"}, 4 => {name: "punctuation.definition.string.begin.tt"}, 5 => {name: "string.unquoted.other.filename.tt"}}, match: /((")([a-z][a-z0-9_]+\/)+[a-z0-9_\.]+("))|(\b([a-z][a-z0-9_]+\/)+[a-z0-9_\.]+\b)/}, {include: "#string-double-quoted"}, {include: "#string-single-quoted"}, {captures: {1 => {name: "punctuation.definition.variable.tt"}}, match: /(\$?)\b[a-z]([a-z0-9_]\.?)*\b/, name: "variable.other.tt"}, {match: /\b(?:IF|END|BLOCK|INCLUDE|ELSE|ELSIF|SWITCH|CASE|UNLESS|WRAPPER|FOR|FOREACH|LAST|NEXT|USE|WHILE|FILTER|IN|GET|CALL|SET|INSERT|MACRO|PERL|TRY|CATCH|THROW|FINAL|STOP|META|DEBUG|RAWPERL)\b/, name: "keyword.control.tt"}, {match: /\||\|\||=|_|-|\*|\/|\?|:|div|mod|;|\+/, name: "keyword.operator.tt"}]}}, scopeName: "text.html.tt", uuid: "67D0DEC7-9E8C-44B3-8FA5-ADD9BBA05DE3"}