{"name":"CFML (do not use)","scopeName":"text.cfml.basic","patterns":[{"begin":"(?:^\\s+)?(\u003c)((?i:cfscript))(?![^\u003e]*/\u003e)","end":"(\u003c/)((?i:cfscript))(\u003e)(?:\\s*\\n)?","patterns":[{"contentName":"source.cfscript.embedded.cfml","begin":"(\u003e)","end":"(?=\u003c/(?i:cfscript))","patterns":[{"include":"source.cfscript"}],"beginCaptures":{"0":{"name":"meta.tag.block.cf.script.cfml"},"1":{"name":"punctuation.definition.tag.end.cfml"}}}],"captures":{"0":{"name":"meta.tag.block.cf.script.cfml"},"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.script.cfml"},"3":{"name":"punctuation.definition.tag.end.cfml"}}},{"name":"meta.tag.block.cf.function.cfml","begin":"(\u003c/?)((?i:cffunction))\\b","end":"(\u003e)","patterns":[{"include":"#func-name-attribute"},{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.function.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}},{"name":"meta.tag.inline.cf.any.cfml","contentName":"source.cfscript.embedded.cfml","begin":"(\u003c)(?i:(cfset|cfreturn))\\b","end":"((?:\\s?/)?\u003e)","patterns":[{"include":"#cfcomments"},{"include":"source.cfscript"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.inline.declaration.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}},{"name":"meta.tag.inline.cf.any.cfml","begin":"(?x)\n\t\t\t\t(\u003c)\n\t\t\t\t\t(?i:\n\t\t\t\t\t\t(cf(queryparam|location|forward|import|param|break|abort|flush\n\t\t\t\t\t\t\t|setting|test|dump|content|include|catch|continue\n\t\t\t\t\t\t\t|file|log|object|invoke|throw|property|htmlhead\n\t\t\t\t\t\t\t|header|argument|exit|trace)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t)\n\t\t\t","end":"((?:\\s?/)?\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.inline.other.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}},{"begin":"(?:^\\s+)?(\u003c)((?i:cfquery))\\b(?![^\u003e]*/\u003e)","end":"(\u003c/)((?i:cfquery))(\u003e)(?:\\s*\\n)?","patterns":[{"name":"meta.tag.block.cf.output.cfml","begin":"(?\u003c=cfquery)\\s","end":"(?=\u003e)","patterns":[{"include":"#qry-name-attribute"},{"include":"#tag-stuff"}]},{"contentName":"source.sql.embedded.cfml","begin":"(\u003e)","end":"(?=\u003c/(?i:cfquery))","patterns":[{"include":"#string-double-quoted"},{"include":"#string-single-quoted"},{"include":"#embedded-tags"},{"name":"meta.tag.inline.cf.query-param.cfml","begin":"(\u003c/?)((?i:(?:cfqueryparam))\\b)","end":"((?:\\s?/)?\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.inline.param.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}},{"include":"#nest-hash"},{"include":"source.sql"}],"beginCaptures":{"0":{"name":"meta.tag.block.cf.query.cfml"},"1":{"name":"punctuation.definition.tag.end.cfml"}}}],"captures":{"0":{"name":"meta.tag.block.cf.query.cfml"},"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.query.cfml"},"3":{"name":"punctuation.definition.tag.end.cfml"}}},{"include":"#embedded-tags"},{"name":"meta.tag.block.cf.other.cfml","begin":"(?x)\n\t\t\t\t(\u003c/?)\n\t\t\t\t(?i:\n\t\t\t\t\t(cf((output)|(savecontent)|([\\w\\-_.]+)))\n\t\t\t\t)\n\t\t\t\t\\b\n\t\t\t","end":"(\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.block.other.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}}],"repository":{"cfcomments":{"patterns":[{"name":"comment.line.cfml","match":"\u003c!---.*?---\u003e"},{"name":"comment.block.cfml","begin":"\u003c!---","end":"---\u003e","patterns":[{"include":"#cfcomments"}],"captures":{"0":{"name":"punctuation.definition.comment.cfml"}}}]},"cfmail":{"begin":"(?:^\\s+)?(\u003c)((?i:cfmail))\\b(?![^\u003e]*/\u003e)","end":"(\u003c/)((?i:cfmail))(\u003e)(?:\\s*\\n)?","patterns":[{"name":"meta.tag.block.cf.mail.cfml","begin":"(?\u003c=cfmail)\\s","end":"(?=\u003e)","patterns":[{"include":"#tag-stuff"}]},{"contentName":"meta.scope.between-mail-tags.cfml","begin":"(\u003e)","end":"(?=\u003c/(?i:cfmail))","patterns":[{"include":"#nest-hash"},{"include":"text.html.cfm"}],"beginCaptures":{"0":{"name":"meta.tag.block.cf.mail.cfml"},"1":{"name":"punctuation.definition.tag.end.cfml"}}}],"captures":{"0":{"name":"meta.tag.block.cf.mail.cfml"},"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.mail.cfml"},"3":{"name":"punctuation.definition.tag.end.cfml"}}},"cfoutput":{"begin":"(?:^\\s+)?(\u003c)((?i:cfoutput))\\b(?![^\u003e]*/\u003e)","end":"(\u003c/)((?i:cfoutput))(\u003e)(?:\\s*\\n)?","patterns":[{"name":"meta.tag.block.cf.output.cfml","begin":"(?\u003c=cfoutput)\\s","end":"(?=\u003e)","patterns":[{"include":"#tag-stuff"}]},{"contentName":"meta.scope.between-output-tags.cfml","begin":"(\u003e)","end":"(?=\u003c/(?i:cfoutput))","patterns":[{"include":"#nest-hash"},{"include":"text.html.cfm"}],"beginCaptures":{"0":{"name":"meta.tag.block.cf.output.cfml"},"1":{"name":"punctuation.definition.tag.end.cfml"}}}],"captures":{"0":{"name":"meta.tag.block.cf.output.cfml"},"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.output.cfml"},"3":{"name":"punctuation.definition.tag.end.cfml"}}},"conditionals":{"patterns":[{"name":"meta.tag.block.cf.conditional.cfml","contentName":"source.cfscript.embedded.cfml","begin":"(\u003c/?)((?i:cfif))\\b","end":"(\u003e)","patterns":[{"include":"source.cfscript"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.conditional.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}},{"name":"meta.tag.inline.cf.conditional.cfml","contentName":"source.cfscript.embedded.cfml","begin":"(\u003c/?)(?i:(cfelseif|cfelse))","end":"(\u003e)","patterns":[{"include":"source.cfscript"}],"captures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.conditional.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}}]},"embedded-tags":{"patterns":[{"include":"#cfcomments"},{"include":"#conditionals"},{"include":"#flow-control"},{"include":"#exception-handling"},{"include":"#cfoutput"},{"include":"#cfmail"}]},"entities":{"patterns":[{"name":"constant.character.entity.cfml","match":"(\u0026)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","captures":{"1":{"name":"punctuation.definition.entity.cfml"},"3":{"name":"punctuation.definition.entity.cfml"}}},{"name":"invalid.illegal.bad-ampersand.cfml","match":"\u0026"}]},"exception-handling":{"patterns":[{"name":"meta.tag.block.cf.exceptions.cfml","begin":"(?x)\n\t\t\t\t\t\t(\u003c/?)\n\t\t\t\t\t\t(?i:\n\t\t\t\t\t\t\t(cftry)|(cfcatch)|(cflock)|(cffinally|cferror|cfrethrow|cfthrow)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t","end":"(\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.exception.try.cfml"},"3":{"name":"entity.name.tag.cf.exception.catch.cfml"},"4":{"name":"entity.name.tag.cf.lock.cfml"},"5":{"name":"entity.name.tag.cf.exception.other.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}}]},"flow-control":{"patterns":[{"name":"meta.tag.block.cf.flow-control.cfml","begin":"(?x)\n\t\t\t\t\t\t(\u003c/?)\n\t\t\t\t\t\t(?i:\n\t\t\t\t\t\t\t(cfloop)|(cfswitch)|(cf(?:default)?case)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t","end":"(\u003e)","patterns":[{"include":"#tag-stuff"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.cfml"},"2":{"name":"entity.name.tag.cf.flow-control.loop.cfml"},"3":{"name":"entity.name.tag.cf.flow-control.switch.cfml"},"4":{"name":"entity.name.tag.cf.flow-control.case.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.cfml"}}}]},"func-name-attribute":{"name":"meta.attribute-with-value.name.cfml","begin":"\\b(name)\\b\\s*(=)","end":"(?\u003c='|\")","patterns":[{"name":"string.quoted.double.cfml","contentName":"meta.toc-list.function.cfml","begin":"\"","end":"\"","patterns":[{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cfml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cfml"}}},{"name":"string.quoted.single.cfml","contentName":"meta.toc-list.function.cfml","begin":"'","end":"'","patterns":[{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cfml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cfml"}}}],"captures":{"1":{"name":"entity.other.attribute-name.cfml"},"2":{"name":"punctuation.separator.key-value.cfml"}}},"nest-hash":{"patterns":[{"name":"string.escaped.hash.cfml","match":"##"},{"name":"invalid.illegal.unescaped.hash.cfml","match":"(?x)\n\t\t\t\t\t\t\t(\\#)\n\t\t\t\t\t\t\t(?!\t\t# zero width negative lookahead assertion\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t([\\w$]+\t# assertion for plain variables or function names including currency symbol \"$\"\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t(\\[.*\\])\t\t\t\t# asserts a match for anything in square brackets\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\(.*\\))\t\t\t\t# or anything in parens\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\.[\\w$]+)\t\t\t\t# or zero or more \"dot\" notated variables\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*[\\+\\-\\*\\/\u0026]\\s*[\\w$]+)\t# or simple arithmentic operators + concatenation\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*\u0026\\s*[\"|'].+[\"|']) \t# or concatenation with a quoted string\n\t\t\t\t\t\t\t\t\t\t)*\t\t# asserts preceeding square brackets, parens, dot notated vars or arithmetic zero or more times\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\(.*\\))\t # asserts a match for anything in parens\n\t\t\t\t\t\t\t\t)\\#\t\t# asserts closing hash\n\t\t\t\t\t\t\t)"},{"name":"meta.name.interpolated.hash.cfml","contentName":"source.cfscript.embedded.cfml","begin":"(?x)\n\t\t\t\t\t\t\t(\\#)\n\t\t\t\t\t\t\t(?=\t\t# zero width negative lookahead assertion\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t([\\w$]+\t# assertion for plain variables or function names including currency symbol \"$\"\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t(\\[.*\\])\t\t\t\t# asserts a match for anything in square brackets\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\(.*\\))\t\t\t\t# or anything in parens\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\.[\\w$]+)\t\t\t\t# or zero or more \"dot\" notated variables\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*[\\+\\-\\*\\/\u0026]\\s*[\\w$]+)\t# or simple arithmentic operators + concatenation\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*\u0026\\s*[\"|'].+[\"|']) \t# or concatenation with a quoted string\n\t\t\t\t\t\t\t\t\t\t)*\t\t# asserts preceeding square brackets, parens, dot notated vars or arithmetic zero or more times\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\(.*\\))\t # asserts a match for anything in parens\n\t\t\t\t\t\t\t\t)\\#\t\t# asserts closing hash\n\t\t\t\t\t\t\t)","end":"(#)","patterns":[{"include":"source.cfscript"}],"beginCaptures":{"1":{"name":"punctuation.definition.hash.begin.cfml"}},"endCaptures":{"1":{"name":"punctuation.definition.hash.end.cfml"}}}]},"qry-name-attribute":{"name":"meta.attribute-with-value.name.cfml","begin":"\\b(name)\\b\\s*(=)","end":"(?\u003c='|\")","patterns":[{"name":"string.quoted.double.cfml","contentName":"meta.toc-list.query.cfml","begin":"\"","end":"\"","patterns":[{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cfml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cfml"}}},{"name":"string.quoted.single.cfml","contentName":"meta.toc-list.query.name.cfml","begin":"'","end":"'","patterns":[{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cfml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cfml"}}}],"captures":{"1":{"name":"entity.other.attribute-name.cfml"},"2":{"name":"punctuation.separator.key-value.cfml"}}},"string-double-quoted":{"name":"string.quoted.double.cfml","begin":"\"","end":"\"","patterns":[{"include":"#nest-hash"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cfml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cfml"}}},"string-single-quoted":{"name":"string.quoted.single.cfml","begin":"'","end":"'","patterns":[{"include":"#nest-hash"},{"include":"#entities"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cfml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cfml"}}},"tag-generic-attribute":{"name":"entity.other.attribute-name.cfml","match":"\\b([a-zA-Z\\-:]+)"},"tag-stuff":{"patterns":[{"include":"#cfcomments"},{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"}]}}}