diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 4abcc85..02f4bd4 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -1,6 +1,7 @@ // @ts-check import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; +import cfc from "./src/syntax/cfc.tmLanguage.json" with { type: "json" }; import cfml from "./src/syntax/cfml.tmLanguage.json" with { type: "json" }; import { bundledLanguages } from "shiki/langs"; @@ -15,10 +16,13 @@ export default defineConfig({ }, favicon: "/favicon.svg", customCss: ["./src/styles/theme.css"], - expressiveCode: { + expressiveCode: { shiki: { // @ts-expect-error Some issue with JSON - langs: [{ ...cfml, name: "cfml", displayName: "ColdFusion" }] + langs: [ + { ...cfml, name: "cfml", displayName: "ColdFusion" }, + { ...cfc, name: "cfc", displayName: "ColdFusion Component" }, + ] }, }, social: [{ icon: 'github', label: 'GitHub', href: 'https://github.com/crutchcorn/coldspa' }], diff --git a/website/src/syntax/cfc.tmLanguage.json b/website/src/syntax/cfc.tmLanguage.json new file mode 100644 index 0000000..896284c --- /dev/null +++ b/website/src/syntax/cfc.tmLanguage.json @@ -0,0 +1,7736 @@ +{ + "scopeName": "source.cfml.cfc", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#cfcomponent" + }, + { + "include": "#cfinterface" + }, + { + "include": "#source-cfml-script" + }, + { + "include": "#cfml-tags" + } + ], + "repository": { + "source-css-cfoutput-numeric-values": { + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b", + "name": "constant.other.color.rgb-value.css", + "captures": { + "1": { + "name": "punctuation.definition.constant.css" + } + } + }, + { + "match": "(?x)\n\t\t\t\t\t (?:-|\\+)?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))\n\t\t\t\t\t ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|s)\\b|%)?\n\t\t\t\t\t", + "name": "constant.numeric.css", + "captures": { + "1": { + "name": "keyword.other.unit.css" + } + } + } + ] + }, + "source-cfml-script-method-call-params": { + "begin": "\\(", + "end": "(?=\\))", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.function-call.method.cfml" + }, + { + "begin": "\\b([_$a-zA-Z][$\\w]*)\\s*(=)(?!=)", + "end": "(?=[,\\)])", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "beginCaptures": { + "1": { + "name": "entity.other.method-parameter.cfml" + }, + "2": { + "name": "keyword.operator.assignment.cfml" + } + } + }, + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.function-call.parameters.method.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.begin.cfml" + } + } + }, + "source-cfml-script-function-declaration": { + "begin": "(?=\\s*\\bfunction\\b)", + "end": "(?=\\{)", + "patterns": [ + { + "match": "\\b(function)\\b\\s*", + "captures": { + "0": { + "name": "meta.function.declaration.cfml" + }, + "1": { + "name": "storage.type.function.cfml" + } + } + }, + { + "match": "[_$a-zA-Z][$\\w]*", + "name": "meta.function.declaration.cfml entity.name.function.cfml" + }, + { + "include": "#source-cfml-script-function-declaration-parameters" + } + ] + }, + "source-cfml-script-conditional": { + "patterns": [ + { + "begin": "\\bswitch\\b", + "endCaptures": { + "0": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#source-cfml-script-round-brackets" + }, + { + "begin": "\\{", + "end": "(?=\\})", + "patterns": [ + { + "begin": ":", + "end": "(?=(\\bcase\\b|\\bdefault\\b|\\}))", + "patterns": [ + { + "include": "#source-cfml-script-statements" + } + ] + }, + { + "match": "\\b(case|default)\\b", + "name": "keyword.control.switch.cfml" + }, + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.block.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.begin.cfml" + } + } + } + ], + "name": "meta.switch.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.switch.cfml" + } + } + }, + { + "begin": "\\bdo\\b", + "endCaptures": { + "0": { + "name": "meta.group.cfml punctuation.definition.group.end.cfml" + } + }, + "end": "\\)", + "patterns": [ + { + "begin": "\\{", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.end.cfml" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#source-cfml-script-statements" + } + ], + "name": "meta.block.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.begin.cfml" + } + } + }, + { + "match": "\\bwhile\\b", + "name": "keyword.control.loop.cfml" + }, + { + "begin": "\\(", + "end": "(?=\\))", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.group.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.begin.cfml" + } + } + } + ], + "name": "meta.do-while.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.loop.cfml" + } + } + }, + { + "begin": "\\bfor\\b", + "endCaptures": { + "1": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(?:(\\})|(?=[^\\(\\{\\}\\s]))", + "patterns": [ + { + "include": "#source-cfml-script-parens-block-scope" + } + ], + "name": "meta.for.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.loop.cfml" + } + } + }, + { + "begin": "\\bwhile\\b", + "endCaptures": { + "1": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(?:(\\})|(?=[^\\(\\{\\}\\s]))", + "patterns": [ + { + "include": "#source-cfml-script-parens-block-scope" + } + ], + "name": "meta.while.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.loop.cfml" + } + } + }, + { + "begin": "\\b(else\\s+if|if)\\b", + "endCaptures": { + "1": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(?:(\\})|(?=[^\\(\\{\\}\\s]))", + "patterns": [ + { + "include": "#source-cfml-script-parens-block-scope" + } + ], + "name": "meta.conditional.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.conditional.cfml" + } + } + }, + { + "begin": "\\belse\\b", + "endCaptures": { + "1": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(?:(\\})|(?=[^\\{\\}\\s]))", + "patterns": [ + { + "include": "#source-cfml-script-block-scope" + } + ], + "name": "meta.conditional.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.conditional.cfml" + } + } + }, + { + "begin": "\\btry\\b", + "endCaptures": { + "1": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(?:(\\})|(?=[^\\{\\}\\s]))", + "patterns": [ + { + "include": "#source-cfml-script-block-scope" + } + ], + "name": "meta.try.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.trycatch.cfml" + } + } + }, + { + "begin": "\\bfinally\\b", + "endCaptures": { + "1": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(?:(\\})|(?=[^\\{\\}\\s]))", + "patterns": [ + { + "include": "#source-cfml-script-block-scope" + } + ], + "name": "meta.finally.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.trycatch.cfml" + } + } + }, + { + "begin": "\\bcatch\\b", + "endCaptures": { + "1": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(?:(\\})|(?=[^\\(\\{\\}\\s]))", + "patterns": [ + { + "include": "#source-cfml-script-parens-block-scope" + } + ], + "name": "meta.catch.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.trycatch.cfml" + } + } + } + ] + }, + "source-cfml-script-static": { + "begin": "\\bstatic\\b(?=\\s*[\\n\\{])", + "endCaptures": { + "1": { + "name": "meta.block.static.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(?:(\\})|(?=[^\\{\\}\\s]))", + "patterns": [ + { + "include": "#source-cfml-script-block-scope" + } + ], + "name": "meta.block.static.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.static.cfml" + } + } + }, + "source-cfml-script-block-scope": { + "begin": "\\{", + "end": "(?=\\})", + "patterns": [ + { + "include": "#source-cfml-script-statements" + } + ], + "name": "meta.block.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.begin.cfml" + } + } + }, + "source-cfml-script-round-brackets": { + "patterns": [ + { + "begin": "\\(", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.end.cfml" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.group.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.begin.cfml" + } + } + }, + { + "match": "\\)", + "name": "invalid.illegal.stray.brace.round.cfml" + } + ] + }, + "source-sql-string_escape": { + "match": "\\\\.", + "name": "constant.character.escape.sql" + }, + "source-css-cfoutput-selector": { + "begin": "\\s*(?=[:.*#a-zA-Z])", + "end": "(?=[/@{)])", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "match": "\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b", + "name": "entity.name.tag.css" + }, + { + "match": "(\\.)[a-zA-Z0-9_-]+", + "name": "entity.other.attribute-name.class.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "(#)[a-zA-Z][a-zA-Z0-9_-]*", + "name": "entity.other.attribute-name.id.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "\\*", + "name": "entity.name.tag.wildcard.css" + }, + { + "match": "(:+)(after|before|first-letter|first-line|selection)\\b", + "name": "entity.other.attribute-name.pseudo-element.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b", + "name": "entity.other.attribute-name.pseudo-class.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b", + "name": "entity.other.attribute-name.pseudo-class.ui-state.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "begin": "((:)not)(\\()", + "endCaptures": { + "0": { + "name": "punctuation.section.function.css" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-selector" + } + ], + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.css" + } + } + }, + { + "match": "((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))", + "captures": { + "3": { + "name": "punctuation.section.function.css" + }, + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "4": { + "name": "constant.numeric.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "5": { + "name": "punctuation.section.function.css" + } + } + }, + { + "match": "(:)(active|hover|link|visited|focus)\\b", + "name": "entity.other.attribute-name.pseudo-class.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])", + "name": "meta.attribute-selector.css", + "captures": { + "7": { + "name": "punctuation.definition.string.end.css" + }, + "3": { + "name": "punctuation.separator.operator.css" + }, + "4": { + "name": "string.unquoted.attribute-value.css" + }, + "5": { + "name": "string.quoted.double.attribute-value.css" + }, + "1": { + "name": "punctuation.definition.entity.css" + }, + "6": { + "name": "punctuation.definition.string.begin.css" + }, + "2": { + "name": "entity.other.attribute-name.attribute.css" + } + } + } + ], + "name": "meta.selector.css" + }, + "cffunction": { + "begin": "(?i)(?=)", + "patterns": [ + { + "begin": "(?i)(<)(cffunction)", + "end": "(?=>)", + "patterns": [ + { + "match": "(?i)\\b(name)\\s*(=)\\s*((\")([_$a-zA-Z][$\\w]*)(\"))", + "captures": { + "3": { + "name": "string.quoted.double.cfml" + }, + "1": { + "name": "entity.other.attribute-name.cfml" + }, + "6": { + "name": "punctuation.definition.string.end.cfml" + }, + "4": { + "name": "punctuation.definition.string.begin.cfml" + }, + "2": { + "name": "punctuation.separator.key-value.cfml" + }, + "5": { + "name": "entity.name.function.cfml" + } + } + }, + { + "match": "(?i)\\b(access)\\s*(=)\\s*((\")([_$a-zA-Z][$\\w]*)(\"))", + "captures": { + "3": { + "name": "string.quoted.double.cfml" + }, + "1": { + "name": "entity.other.attribute-name.cfml" + }, + "6": { + "name": "punctuation.definition.string.end.cfml" + }, + "4": { + "name": "punctuation.definition.string.begin.cfml" + }, + "2": { + "name": "punctuation.separator.key-value.cfml" + }, + "5": { + "name": "storage.modifier.cfml" + } + } + }, + { + "match": "(?x)(?i)\n \\b(returntype)\\s*(=)\\s*((\")(\n (void)\n |\n (any|array|binary|boolean|component|date|guid|numeric|query|string|struct|xml|uuid) # return-type.primitive\n |\n ([A-Za-z0-9_\\.$]+) #return-type component/object (may need additional tokens)\n)(\"))", + "captures": { + "7": { + "name": "storage.type.return-type.primitive.cfml" + }, + "3": { + "name": "string.quoted.double.cfml" + }, + "8": { + "name": "storage.type.return-type.object.cfml" + }, + "4": { + "name": "punctuation.definition.string.begin.cfml" + }, + "9": { + "name": "punctuation.definition.string.end.cfml" + }, + "1": { + "name": "entity.other.attribute-name.cfml" + }, + "6": { + "name": "storage.type.return-type.void.cfml" + }, + "2": { + "name": "punctuation.separator.key-value.cfml" + } + } + }, + { + "include": "#tag-generic-attribute" + } + ], + "name": "meta.tag.cfml meta.function.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml storage.type.function.cfml" + } + } + }, + { + "begin": ">", + "end": "(?i)(?=)", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#text-html-cfml" + } + ], + "contentName": "meta.function.body.tag.cfml text.html.cfml", + "beginCaptures": { + "0": { + "name": "meta.tag.cfml meta.function.cfml punctuation.definition.tag.end.cfml" + } + } + } + ] + }, + "source-cfml-script-punctuation": { + "patterns": [ + { + "begin": "\\.", + "endCaptures": { + "3": { + "name": "meta.property.constant.cfml" + }, + "1": { + "name": "meta.function.body.cfml punctuation.definition.block.end.cfml" + }, + "4": { + "name": "meta.property.cfml" + }, + "2": { + "name": "punctuation.terminator.statement.cfml" + } + }, + "end": "(?<=\\))|(?=\\n)|(\\})|(;)|(?:([A-Z][_$\\dA-Z]*)|([_$a-zA-Z][$\\w]*))(?=\\n|[^$\\w])(?!(\\s*\\(|\\s*=\\s*(function\\b|\\([^\\(]*?\\)\\s*=>)))", + "patterns": [ + { + "begin": "(?=([_$a-zA-Z][$\\w]*)\\s*(=)\\s*(function\\b|\\([^\\(]*?\\)\\s*=>\\s*\\{))", + "end": "(?=\\})", + "patterns": [ + { + "begin": "\\{", + "end": "(?=\\})", + "patterns": [ + { + "include": "#source-cfml-script-statements" + } + ], + "name": "meta.function.body.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.begin.cfml" + } + } + }, + { + "match": "([_$a-zA-Z][$\\w]*)\\s*(=)\\s*", + "captures": { + "0": { + "name": "meta.function.declaration.cfml" + }, + "1": { + "name": "meta.property.cfml entity.name.function.cfml" + }, + "2": { + "name": "keyword.operator.assignment.cfml" + } + } + }, + { + "include": "#source-cfml-script-function-declaration" + }, + { + "include": "#source-cfml-script-arrow-function-declaration" + } + ] + }, + { + "begin": "(?=([_$a-zA-Z][$\\w]*)\\s*(=)\\s*\\([^\\(]*?\\)\\s*=>)", + "end": "(?=[);}\\],\\n])", + "patterns": [ + { + "match": "([_$a-zA-Z][$\\w]*)\\s*(=)\\s*", + "captures": { + "0": { + "name": "meta.function.declaration.cfml" + }, + "1": { + "name": "meta.property.cfml entity.name.function.cfml" + }, + "2": { + "name": "keyword.operator.assignment.cfml" + } + } + }, + { + "include": "#source-cfml-script-arrow-function-declaration" + } + ] + }, + { + "include": "#source-cfml-script-method-call" + } + ], + "beginCaptures": { + "0": { + "name": "punctuation.accessor.cfml" + } + } + }, + { + "begin": "::", + "endCaptures": { + "3": { + "name": "meta.property.constant.cfml" + }, + "1": { + "name": "meta.function.body.cfml punctuation.definition.block.end.cfml" + }, + "4": { + "name": "meta.property.cfml" + }, + "2": { + "name": "punctuation.terminator.statement.cfml" + } + }, + "end": "(?<=\\))|(?=\\n)|(\\})|(;)|(?:([A-Z][_$\\dA-Z]*)|([_$a-zA-Z][$\\w]*))(?=\\n|[^$\\w])(?!(\\s*\\(|\\s*=\\s*(function\\b|\\([^\\(]*?\\)\\s*=>)))", + "patterns": [ + { + "begin": "(?=([_$a-zA-Z][$\\w]*)\\s*(=)\\s*(function\\b|\\([^\\(]*?\\)\\s*=>\\s*\\{))", + "end": "(?=\\})", + "patterns": [ + { + "begin": "\\{", + "end": "(?=\\})", + "patterns": [ + { + "include": "#source-cfml-script-statements" + } + ], + "name": "meta.function.body.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.begin.cfml" + } + } + }, + { + "match": "([_$a-zA-Z][$\\w]*)\\s*(=)\\s*", + "captures": { + "0": { + "name": "meta.function.declaration.cfml" + }, + "1": { + "name": "meta.property.cfml entity.name.function.cfml" + }, + "2": { + "name": "keyword.operator.assignment.cfml" + } + } + }, + { + "include": "#source-cfml-script-function-declaration" + }, + { + "include": "#source-cfml-script-arrow-function-declaration" + } + ] + }, + { + "begin": "(?=([_$a-zA-Z][$\\w]*)\\s*(=)\\s*\\([^\\(]*?\\)\\s*=>)", + "end": "(?=[);}\\],\\n])", + "patterns": [ + { + "match": "([_$a-zA-Z][$\\w]*)\\s*(=)\\s*", + "captures": { + "0": { + "name": "meta.function.declaration.cfml" + }, + "1": { + "name": "meta.property.cfml entity.name.function.cfml" + }, + "2": { + "name": "keyword.operator.assignment.cfml" + } + } + }, + { + "include": "#source-cfml-script-arrow-function-declaration" + } + ] + }, + { + "include": "#source-cfml-script-static-method-call" + } + ], + "beginCaptures": { + "0": { + "name": "punctuation.accessor.static.cfml" + } + } + }, + { + "match": "\\;", + "name": "punctuation.terminator.statement.cfml" + }, + { + "match": ",", + "name": "meta.delimiter.comma.cfml" + } + ] + }, + "source-css-cfoutput-property-values": { + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "match": "\\b(absolute|all(-scroll)?|always|armenian|auto|avoid|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|geometricPrecision|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|optimize(Legibility|Quality|Speed)|outset|outside|overline|pointer|pre(-(wrap|line))?|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|sub|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical(-(ideographic|text))?|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|zero|smaller|larger|((xx?-)?(small|large))|painted|fill|stroke)\\b", + "name": "support.constant.property-value.css" + }, + { + "match": "(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\\b)", + "name": "support.constant.font-name.css" + }, + { + "include": "#source-css-cfoutput-numeric-values" + }, + { + "include": "#source-css-cfoutput-color-values" + }, + { + "include": "#source-css-cfoutput-string-double" + }, + { + "include": "#source-css-cfoutput-string-single" + }, + { + "begin": "(rect)\\s*(\\()", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "end": "(\\))", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-numeric-values" + } + ], + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + } + }, + { + "begin": "(format|local|url|attr|counter|counters)\\s*(\\()", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "end": "(\\))", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-string-single" + }, + { + "include": "#source-css-cfoutput-string-double" + }, + { + "match": "[^'\") \\t]+", + "name": "variable.parameter.misc.css" + } + ], + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + } + }, + { + "match": "\\!\\s*important", + "name": "keyword.other.important.css" + } + ] + }, + "source-cfml-script-parens-block-scope": { + "patterns": [ + { + "begin": "\\(", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.end.cfml" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.group.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.begin.cfml" + } + } + }, + { + "include": "#source-cfml-script-block-scope" + } + ] + }, + "cfquery": { + "begin": "(?i)(?=)", + "patterns": [ + { + "begin": "(?i)(<)(cfquery)(?=\\s|>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#tag-generic-attribute" + } + ], + "name": "meta.tag.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml" + } + } + }, + { + "begin": ">", + "end": "(?i)(?=)", + "patterns": [ + { + "include": "#hash-delimiters" + }, + { + "include": "#cfml-tags" + }, + { + "include": "#source-sql" + } + ], + "contentName": "meta.scope.cfquery.cfml source.sql", + "beginCaptures": { + "0": { + "name": "meta.tag.cfml punctuation.definition.tag.end.cfml" + } + } + } + ] + }, + "text-html-cfml-string-single-quoted": { + "begin": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "end": "'", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#text-html-cfml-entities" + } + ], + "name": "string.quoted.single.html", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + } + }, + "source-cfml-script-brackets": { + "patterns": [ + { + "include": "#source-cfml-script-round-brackets" + }, + { + "include": "#source-cfml-script-square-brackets" + } + ] + }, + "source-cfml-script-variable": { + "patterns": [ + { + "include": "#source-cfml-script-cfml-scopes" + }, + { + "match": "[_$a-zA-Z][$\\w.]*(?=\\s*::)", + "name": "entity.name.class.cfml" + }, + { + "match": "[_$a-zA-Z][$\\w]*(?=\\s*[\\[\\.])", + "name": "variable.other.struct.cfml" + }, + { + "match": "\\b[A-Z][_$\\dA-Z]*\\b", + "name": "variable.other.constant.cfml" + }, + { + "match": "(cfabort|cfadmin|cfajaximport|cfajaxproxy|cfapplet|cfapplication|cfargument|cfassociate|cfbreak|cfcache|cfcalendar|cfcase|cfcatch|cfchart|cfchartdata|cfchartseries|cfclient|cfclientsettings|cfcol|cfcollection|cfcomponent|cfcontent|cfcontinue|cfcookie|cfdbinfo|cfdefaultcase|cfdirectory|cfdiv|cfdocument|cfdocumentitem|cfdocumentsection|cfdump|cfelse|cfelseif|cferror|cfexchangecalendar|cfexchangeconnection|cfexchangecontact|cfexchangefilter|cfexchangemail|cfexchangetask|cfexecute|cfexit|cffeed|cffile|cffileupload|cffinally|cfflush|cfform|cfformgroup|cfformitem|cfftp|cffunction|cfgrid|cfgridcolumn|cfgridrow|cfgridupdate|cfheader|cfhtmlhead|cfhtmltopdf|cfhtmltopdfitem|cfhttp|cfhttpparam|cfif|cfimage|cfimap|cfimapfilter|cfimport|cfinclude|cfindex|cfinput|cfinsert|cfinterface|cfinvoke|cfinvokeargument|cflayout|cflayoutarea|cfldap|cflocation|cflock|cflog|cflogin|cfloginuser|cflogout|cfloop|cfmail|cfmailparam|cfmailpart|cfmap|cfmapitem|cfmediaplayer|cfmenu|cfmenuitem|cfmessagebox|cfmodule|cfntauthenticate|cfoauth|cfobject|cfobjectcache|cfoutput|cfparam|cfpdf|cfpdfform|cfpdfformparam|cfpdfparam|cfpdfsubform|cfpod|cfpop|cfpresentation|cfpresentationslide|cfpresenter|cfprint|cfprocessingdirective|cfprocparam|cfprocresult|cfprogressbar|cfproperty|cfquery|cfqueryparam|cfregistry|cfreport|cfreportparam|cfrethrow|cfretry|cfreturn|cfsavecontent|cfschedule|cfscript|cfsearch|cfselect|cfservlet|cfservletparam|cfset|cfsetting|cfsharepoint|cfsilent|cfsleep|cfslider|cfspreadsheet|cfsprydataset|cfstoredproc|cfswitch|cftable|cftextarea|cftextinput|cfthread|cfthrow|cftimer|cftooltip|cftrace|cftransaction|cftree|cftreeitem|cftry|cfupdate|cfwddx|cfwebsocket|cfwhile|cfwindow|cfxml|cfzip|cfzipparam|cf_socialplugin)[$\\w]*", + "name": "entity.name.tag.cfml" + }, + { + "match": "[_$a-zA-Z][$\\w]*", + "name": "variable.other.readwrite.cfml" + } + ] + }, + "source-css-selector": { + "begin": "\\s*(?=[:.*#a-zA-Z])", + "end": "(?=[/@{)])", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "match": "\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b", + "name": "entity.name.tag.css" + }, + { + "match": "(\\.)[a-zA-Z0-9_-]+", + "name": "entity.other.attribute-name.class.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "(#)[a-zA-Z][a-zA-Z0-9_-]*", + "name": "entity.other.attribute-name.id.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "\\*", + "name": "entity.name.tag.wildcard.css" + }, + { + "match": "(:+)(after|before|first-letter|first-line|selection)\\b", + "name": "entity.other.attribute-name.pseudo-element.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b", + "name": "entity.other.attribute-name.pseudo-class.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b", + "name": "entity.other.attribute-name.pseudo-class.ui-state.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "begin": "((:)not)(\\()", + "endCaptures": { + "0": { + "name": "punctuation.section.function.css" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#source-css-selector" + } + ], + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.css" + } + } + }, + { + "match": "((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))", + "captures": { + "3": { + "name": "punctuation.section.function.css" + }, + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "4": { + "name": "constant.numeric.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "5": { + "name": "punctuation.section.function.css" + } + } + }, + { + "match": "(:)(active|hover|link|visited|focus)\\b", + "name": "entity.other.attribute-name.pseudo-class.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + } + }, + { + "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])", + "name": "meta.attribute-selector.css", + "captures": { + "7": { + "name": "punctuation.definition.string.end.css" + }, + "3": { + "name": "punctuation.separator.operator.css" + }, + "4": { + "name": "string.unquoted.attribute-value.css" + }, + "5": { + "name": "string.quoted.double.attribute-value.css" + }, + "1": { + "name": "punctuation.definition.entity.css" + }, + "6": { + "name": "punctuation.definition.string.begin.css" + }, + "2": { + "name": "entity.other.attribute-name.attribute.css" + } + } + } + ], + "name": "meta.selector.css" + }, + "source-css-cfoutput": { + "patterns": [ + { + "include": "#source-css-cfoutput-comment-block" + }, + { + "include": "#source-css-cfoutput-selector" + }, + { + "begin": "\\s*((@)charset\\b)\\s*", + "end": "\\s*((?=;|$))", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-string-double" + }, + { + "include": "#source-css-cfoutput-string-single" + } + ], + "name": "meta.at-rule.charset.css", + "captures": { + "1": { + "name": "keyword.control.at-rule.charset.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + } + }, + { + "begin": "\\s*((@)import\\b)\\s*", + "end": "\\s*((?=;|\\}))", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-string-double" + }, + { + "include": "#source-css-cfoutput-string-single" + }, + { + "begin": "\\s*(url)\\s*(\\()\\s*", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "end": "\\s*(\\))\\s*", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "match": "[^'\") \\t]+", + "name": "variable.parameter.url.css" + }, + { + "include": "#source-css-cfoutput-string-single" + }, + { + "include": "#source-css-cfoutput-string-double" + } + ], + "beginCaptures": { + "1": { + "name": "support.function.url.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + } + }, + { + "include": "#source-css-cfoutput-media-query-list" + } + ], + "name": "meta.at-rule.import.css", + "captures": { + "1": { + "name": "keyword.control.at-rule.import.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + } + }, + { + "begin": "^\\s*((@)font-face)\\s*(?=\\{)", + "endCaptures": { + "1": { + "name": "punctuation.section.property-list.css" + } + }, + "end": "\\s*(\\})", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-rule-list" + } + ], + "name": "meta.at-rule.font-face.css", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.font-face.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + } + }, + { + "begin": "(?=^\\s*@media\\s*.*?\\{)", + "endCaptures": { + "1": { + "name": "punctuation.section.property-list.css" + } + }, + "end": "\\s*(\\})", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "begin": "^\\s*((@)media)(?=.*?\\{)", + "end": "\\s*(?=\\{)", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-media-query-list" + } + ], + "name": "meta.at-rule.media.css", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.media.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + }, + "3": { + "name": "support.constant.media.css" + } + } + }, + { + "begin": "\\s*(\\{)", + "end": "(?=\\})", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput" + } + ], + "beginCaptures": { + "1": { + "name": "punctuation.section.property-list.css" + } + } + } + ] + }, + { + "begin": "(?=\\{)", + "endCaptures": { + "1": { + "name": "punctuation.section.property-list.css" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-rule-list" + } + ] + } + ] + }, + "cfoutput-injection": { + "patterns": [ + { + "match": "##", + "name": "constant.character.escape.hash.cfml" + }, + { + "begin": "#", + "endCaptures": { + "0": { + "name": "constant.character.hash.cfml.end" + } + }, + "end": "#", + "patterns": [ + { + "include": "#source-cfml-script" + } + ], + "contentName": "source.cfml.script", + "beginCaptures": { + "0": { + "name": "constant.character.hash.cfml.start" + } + } + }, + { + "include": "#cfml-tags" + } + ] + }, + "string": { + "patterns": [ + { + "include": "#string-quoted-single" + }, + { + "include": "#string-quoted-double" + } + ] + }, + "source-cfml-script": { + "patterns": [ + { + "include": "#source-cfml-script-main" + } + ] + }, + "source-css-cfoutput-string-single": { + "begin": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "end": "'", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "match": "\\\\.", + "name": "constant.character.escape.css" + } + ], + "name": "string.quoted.single.css", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + } + }, + "source-cfml-script-static-method-call": { + "patterns": [ + { + "begin": "([_$a-zA-Z][$\\w]*)\\s*(?=\\()", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.end.cfml" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#source-cfml-script-method-call-params" + } + ], + "name": "meta.function-call.method.static.cfml", + "beginCaptures": { + "1": { + "name": "variable.function.static.cfml" + } + } + } + ] + }, + "source-cfml-script-statements": { + "patterns": [ + { + "include": "#source-cfml-script-conditional" + }, + { + "include": "#source-cfml-script-static" + }, + { + "begin": "\\{", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.end.cfml" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#source-cfml-script-statements" + } + ], + "name": "meta.block.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.begin.cfml" + } + } + }, + { + "include": "#source-cfml-script-tag-in-script" + }, + { + "include": "#source-cfml-script-tag-in-script-cf" + }, + { + "include": "#source-cfml-script-expressions" + } + ] + }, + "source-cfml-script-expressions": { + "patterns": [ + { + "include": "#source-cfml-script-comments" + }, + { + "include": "#source-cfml-script-string" + }, + { + "include": "#source-cfml-script-constructor" + }, + { + "include": "#source-cfml-script-operators" + }, + { + "include": "#source-cfml-script-keywords" + }, + { + "include": "#source-cfml-script-constants" + }, + { + "include": "#source-cfml-script-named-function" + }, + { + "include": "#source-cfml-script-anonymous-function" + }, + { + "include": "#source-cfml-script-struct-literal" + }, + { + "include": "#source-cfml-script-brackets" + }, + { + "include": "#source-cfml-script-number" + }, + { + "include": "#source-cfml-script-call" + }, + { + "include": "#source-cfml-script-variable" + }, + { + "include": "#source-cfml-script-punctuation" + } + ] + }, + "source-cfml-script-method-call": { + "patterns": [ + { + "include": "#source-cfml-script-support-method-call" + }, + { + "begin": "([_$a-zA-Z][$\\w]*)\\s*(?=\\()", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.end.cfml" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#source-cfml-script-method-call-params" + } + ], + "name": "meta.function-call.method.cfml", + "beginCaptures": { + "1": { + "name": "variable.function.cfml" + } + } + } + ] + }, + "source-cfml-script-tag-generic-attribute": { + "patterns": [ + { + "include": "#source-cfml-script-comments" + }, + { + "match": "\\b([a-zA-Z0-9:-]+)\\b", + "captures": { + "1": { + "name": "entity.other.attribute-name.cfml" + } + } + }, + { + "match": "(=)\\s*((?:[^\\s<>/'\"{;]|/(?!/>))+)", + "captures": { + "1": { + "name": "punctuation.separator.key-value.cfml" + }, + "2": { + "name": "string.unquoted.cfml" + } + } + }, + { + "match": "=", + "name": "punctuation.separator.key-value.cfml" + }, + { + "include": "#source-cfml-script-tag-string" + } + ] + }, + "source-cfml-script-sql-string": { + "patterns": [ + { + "end": "(\")(?!\")", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "string.quoted.double.cfml punctuation.definition.string.begin.cfml" + } + }, + "contentName": "source.sql", + "patterns": [ + { + "match": "\"\"", + "name": "constant.character.escape.quote.cfml" + }, + { + "include": "#source-cfml-script-hash-delimiters" + }, + { + "include": "#source-sql" + } + ], + "endCaptures": { + "1": { + "name": "string.quoted.double.cfml punctuation.definition.string.end.cfml" + } + }, + "name": "meta.queryexecute.sql.cfml" + }, + { + "end": "(')(?!')", + "begin": "'", + "beginCaptures": { + "0": { + "name": "string.quoted.single.cfml punctuation.definition.string.begin.cfml" + } + }, + "contentName": "source.sql", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.quote.cfml" + }, + { + "include": "#source-cfml-script-hash-delimiters" + }, + { + "include": "#source-sql" + } + ], + "endCaptures": { + "1": { + "name": "string.quoted.single.cfml punctuation.definition.string.end.cfml" + } + }, + "name": "meta.queryexecute.sql.cfml" + } + ] + }, + "source-sql-strings": { + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "begin": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "end": "'", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-sql-string_escape" + } + ], + "name": "string.quoted.single.sql", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + } + }, + { + "begin": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "end": "`", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-sql-string_escape" + } + ], + "name": "string.quoted.other.backtick.sql", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + } + }, + { + "begin": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "end": "\"", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-sql-string_interpolation" + } + ], + "name": "string.quoted.double.sql", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + } + }, + { + "begin": "%\\{", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-sql-string_interpolation" + } + ], + "name": "string.other.quoted.brackets.sql", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + } + } + ] + }, + "text-html-cfml": { + "patterns": [ + { + "begin": "(<)([a-zA-Z0-9:]++)(?=[^>]*>)", + "endCaptures": { + "3": { + "name": "punctuation.definition.tag.begin.html" + }, + "1": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "entity.name.tag.html" + }, + "2": { + "name": "punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html" + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(>)(<)(/)(\\2)(>)", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#text-html-cfml-tag-stuff" + } + ], + "name": "meta.tag.any.html", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + } + }, + { + "begin": "(<\\?)(xml)", + "end": "(\\?>)", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#text-html-cfml-tag-generic-attribute" + }, + { + "include": "#text-html-cfml-string-double-quoted" + }, + { + "include": "#text-html-cfml-string-single-quoted" + } + ], + "name": "meta.tag.preprocessor.xml.html", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.xml.html" + } + } + }, + { + "begin": ")", + "name": "comment.block.html.js", + "captures": { + "0": { + "name": "punctuation.definition.comment.html.js" + }, + "2": { + "name": "punctuation.definition.comment.html.js" + } + } + }, + { + "match": "\\b(boolean|byte|char|class|double|enum|float|function|int|interface|long|short|var|void)\\b", + "name": "storage.type.js" + }, + { + "match": "\\b(const|export|extends|final|implements|native|private|protected|public|static|synchronized|throws|transient|volatile)\\b", + "name": "storage.modifier.js" + }, + { + "match": "\\b(break|case|catch|continue|default|do|else|finally|for|goto|if|import|package|return|switch|throw|try|while)\\b", + "name": "keyword.control.js" + }, + { + "match": "\\b(delete|in|instanceof|new|typeof|with)\\b", + "name": "keyword.operator.js" + }, + { + "match": "\\btrue\\b", + "name": "constant.language.boolean.true.js" + }, + { + "match": "\\bfalse\\b", + "name": "constant.language.boolean.false.js" + }, + { + "match": "\\bnull\\b", + "name": "constant.language.null.js" + }, + { + "match": "\\b(super|this)\\b", + "name": "variable.language.js" + }, + { + "match": "\\b(debugger)\\b", + "name": "keyword.other.js" + }, + { + "match": "\\b(Anchor|Applet|Area|Array|Boolean|Button|Checkbox|Date|document|event|FileUpload|Form|Frame|Function|Hidden|History|Image|JavaArray|JavaClass|JavaObject|JavaPackage|java|Layer|Link|Location|Math|MimeType|Number|navigator|netscape|Object|Option|Packages|Password|Plugin|Radio|RegExp|Reset|Select|String|Style|Submit|screen|sun|Text|Textarea|window|XMLHttpRequest)\\b", + "name": "support.class.js" + }, + { + "match": "\\b(s(h(ift|ow(Mod(elessDialog|alDialog)|Help))|croll(X|By(Pages|Lines)?|Y|To)?|t(op|rike)|i(n|zeToContent|debar|gnText)|ort|u(p|b(str(ing)?)?)|pli(ce|t)|e(nd|t(Re(sizable|questHeader)|M(i(nutes|lliseconds)|onth)|Seconds|Ho(tKeys|urs)|Year|Cursor|Time(out)?|Interval|ZOptions|Date|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(ome|andleEvent)|navigate|c(har(CodeAt|At)|o(s|n(cat|textual|firm)|mpile)|eil|lear(Timeout|Interval)?|a(ptureEvents|ll)|reate(StyleSheet|Popup|EventObject))|t(o(GMTString|S(tring|ource)|U(TCString|pperCase)|Lo(caleString|werCase))|est|a(n|int(Enabled)?))|i(s(NaN|Finite)|ndexOf|talics)|d(isableExternalCapture|ump|etachEvent)|u(n(shift|taint|escape|watch)|pdateCommands)|j(oin|avaEnabled)|p(o(p|w)|ush|lugins.refresh|a(ddings|rse(Int|Float)?)|r(int|ompt|eference))|e(scape|nableExternalCapture|val|lementFromPoint|x(p|ec(Script|Command)?))|valueOf|UTC|queryCommand(State|Indeterm|Enabled|Value)|f(i(nd|le(ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(nt(size|color)|rward)|loor|romCharCode)|watch|l(ink|o(ad|g)|astIndexOf)|a(sin|nchor|cos|t(tachEvent|ob|an(2)?)|pply|lert|b(s|ort))|r(ou(nd|teEvents)|e(size(By|To)|calc|turnValue|place|verse|l(oad|ease(Capture|Events)))|andom)|g(o|et(ResponseHeader|M(i(nutes|lliseconds)|onth)|Se(conds|lection)|Hours|Year|Time(zoneOffset)?|Da(y|te)|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Da(y|te)|FullYear)|FullYear|A(ttention|llResponseHeaders)))|m(in|ove(B(y|elow)|To(Absolute)?|Above)|ergeAttributes|a(tch|rgins|x))|b(toa|ig|o(ld|rderWidths)|link|ack))\\b(?=\\()", + "name": "support.function.js" + }, + { + "match": "\\b(s(ub(stringData|mit)|plitText|e(t(NamedItem|Attribute(Node)?)|lect))|has(ChildNodes|Feature)|namedItem|c(l(ick|o(se|neNode))|reate(C(omment|DATASection|aption)|T(Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(ntityReference|lement)|Attribute))|tabIndex|i(nsert(Row|Before|Cell|Data)|tem)|open|delete(Row|C(ell|aption)|T(Head|Foot)|Data)|focus|write(ln)?|a(dd|ppend(Child|Data))|re(set|place(Child|Data)|move(NamedItem|Child|Attribute(Node)?)?)|get(NamedItem|Element(sBy(Name|TagName)|ById)|Attribute(Node)?)|blur)\\b(?=\\()", + "name": "support.function.dom.js" + }, + { + "match": "(?<=\\.)(s(ystemLanguage|cr(ipts|ollbars|een(X|Y|Top|Left))|t(yle(Sheets)?|atus(Text|bar)?)|ibling(Below|Above)|ource|uffixes|e(curity(Policy)?|l(ection|f)))|h(istory|ost(name)?|as(h|Focus))|y|X(MLDocument|SLDocument)|n(ext|ame(space(s|URI)|Prop))|M(IN_VALUE|AX_VALUE)|c(haracterSet|o(n(structor|trollers)|okieEnabled|lorDepth|mp(onents|lete))|urrent|puClass|l(i(p(boardData)?|entInformation)|osed|asses)|alle(e|r)|rypto)|t(o(olbar|p)|ext(Transform|Indent|Decoration|Align)|ags)|SQRT(1_2|2)|i(n(ner(Height|Width)|put)|ds|gnoreCase)|zIndex|o(scpu|n(readystatechange|Line)|uter(Height|Width)|p(sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(i(splay|alog(Height|Top|Width|Left|Arguments)|rectories)|e(scription|fault(Status|Ch(ecked|arset)|View)))|u(ser(Profile|Language|Agent)|n(iqueID|defined)|pdateInterval)|_content|p(ixelDepth|ort|ersonalbar|kcs11|l(ugins|atform)|a(thname|dding(Right|Bottom|Top|Left)|rent(Window|Layer)?|ge(X(Offset)?|Y(Offset)?))|r(o(to(col|type)|duct(Sub)?|mpter)|e(vious|fix)))|e(n(coding|abledPlugin)|x(ternal|pando)|mbeds)|v(isibility|endor(Sub)?|Linkcolor)|URLUnencoded|P(I|OSITIVE_INFINITY)|f(ilename|o(nt(Size|Family|Weight)|rmName)|rame(s|Element)|gColor)|E|whiteSpace|l(i(stStyleType|n(eHeight|kColor))|o(ca(tion(bar)?|lName)|wsrc)|e(ngth|ft(Context)?)|a(st(M(odified|atch)|Index|Paren)|yer(s|X)|nguage))|a(pp(MinorVersion|Name|Co(deName|re)|Version)|vail(Height|Top|Width|Left)|ll|r(ity|guments)|Linkcolor|bove)|r(ight(Context)?|e(sponse(XML|Text)|adyState))|global|x|m(imeTypes|ultiline|enubar|argin(Right|Bottom|Top|Left))|L(N(10|2)|OG(10E|2E))|b(o(ttom|rder(Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(Color|Image)))\\b", + "name": "support.constant.js" + }, + { + "match": "(?<=\\.)(s(hape|ystemId|c(heme|ope|rolling)|ta(ndby|rt)|ize|ummary|pecified|e(ctionRowIndex|lected(Index)?)|rc)|h(space|t(tpEquiv|mlFor)|e(ight|aders)|ref(lang)?)|n(o(Resize|tation(s|Name)|Shade|Href|de(Name|Type|Value)|Wrap)|extSibling|ame)|c(h(ildNodes|Off|ecked|arset)?|ite|o(ntent|o(kie|rds)|de(Base|Type)?|l(s|Span|or)|mpact)|ell(s|Spacing|Padding)|l(ear|assName)|aption)|t(ype|Bodies|itle|Head|ext|a(rget|gName)|Foot)|i(sMap|ndex|d|m(plementation|ages))|o(ptions|wnerDocument|bject)|d(i(sabled|r)|o(c(type|umentElement)|main)|e(clare|f(er|ault(Selected|Checked|Value)))|at(eTime|a))|useMap|p(ublicId|arentNode|r(o(file|mpt)|eviousSibling))|e(n(ctype|tities)|vent|lements)|v(space|ersion|alue(Type)?|Link|Align)|URL|f(irstChild|orm(s)?|ace|rame(Border)?)|width|l(ink(s)?|o(ngDesc|wSrc)|a(stChild|ng|bel))|a(nchors|c(ce(ssKey|pt(Charset)?)|tion)|ttributes|pplets|l(t|ign)|r(chive|eas)|xis|Link|bbr)|r(ow(s|Span|Index)|ules|e(v|ferrer|l|adOnly))|m(ultiple|e(thod|dia)|a(rgin(Height|Width)|xLength))|b(o(dy|rder)|ackground|gColor))\\b", + "name": "support.constant.dom.js" + }, + { + "match": "\\b(ELEMENT_NODE|ATTRIBUTE_NODE|TEXT_NODE|CDATA_SECTION_NODE|ENTITY_REFERENCE_NODE|ENTITY_NODE|PROCESSING_INSTRUCTION_NODE|COMMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE|DOCUMENT_FRAGMENT_NODE|NOTATION_NODE|INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR|WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR)\\b", + "name": "support.constant.dom.js" + }, + { + "match": "\\bon(R(ow(s(inserted|delete)|e(nter|xit))|e(s(ize(start|end)?|et)|adystatechange))|Mouse(o(ut|ver)|down|up|move)|B(efore(cut|deactivate|u(nload|pdate)|p(aste|rint)|editfocus|activate)|lur)|S(croll|top|ubmit|elect(start|ionchange)?)|H(over|elp)|C(hange|ont(extmenu|rolselect)|ut|ellchange|l(ick|ose))|D(eactivate|ata(setc(hanged|omplete)|available)|r(op|ag(start|over|drop|en(ter|d)|leave)?)|blclick)|Unload|P(aste|ropertychange)|Error(update)?|Key(down|up|press)|Focus|Load|A(ctivate|fter(update|print)|bort))\\b", + "name": "support.function.event-handler.js" + }, + { + "match": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|(?\\s*\\{))", + "endCaptures": { + "0": { + "name": "meta.function.body.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "\\}", + "patterns": [ + { + "begin": "\\{", + "end": "(?=\\})", + "patterns": [ + { + "include": "#source-cfml-script-statements" + } + ], + "name": "meta.function.body.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.begin.cfml" + } + } + }, + { + "match": "\\b(function)\\b\\s*", + "captures": { + "0": { + "name": "meta.function.anonymous.cfml meta.function.declaration.cfml" + }, + "1": { + "name": "storage.type.function.cfml" + } + } + }, + { + "match": "\\s*(=>)\\s*", + "captures": { + "0": { + "name": "meta.function.anonymous.cfml meta.function.declaration.cfml" + }, + "1": { + "name": "storage.type.function.arrow.cfml" + } + } + }, + { + "match": "[_$a-zA-Z][$\\w]*", + "name": "meta.function.anonymous.cfml meta.function.declaration.cfml entity.name.function.cfml" + }, + { + "begin": "\\(", + "end": "(?=\\))", + "patterns": [ + { + "include": "#source-cfml-script-function-parameter" + } + ], + "name": "meta.function.anonymous.cfml meta.function.declaration.cfml meta.function.parameters.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.cfml" + } + } + }, + { + "begin": "\\)", + "end": "(?=(\\{|=>))", + "patterns": [ + { + "include": "#source-cfml-script-tag-generic-attribute" + } + ], + "name": "meta.function.anonymous.cfml meta.function.declaration.cfml", + "beginCaptures": { + "0": { + "name": "meta.function.parameters.cfml punctuation.definition.parameters.end.cfml" + } + } + } + ] + }, + { + "begin": "(?=\\s*\\([^\\(]*?\\)\\s*=>)", + "end": "(?=[);}\\],\\n])", + "patterns": [ + { + "begin": "\\s*(=>)\\s*", + "end": "(?=[);}\\],\\n])", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "contentName": "meta.function.body.cfml", + "beginCaptures": { + "0": { + "name": "meta.function.anonymous.cfml meta.function.declaration.cfml" + }, + "1": { + "name": "storage.type.function.arrow.cfml" + } + } + }, + { + "begin": "\\(", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.cfml" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#source-cfml-script-function-parameter" + } + ], + "name": "meta.function.anonymous.cfml meta.function.declaration.cfml meta.function.parameters.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.cfml" + } + } + } + ] + } + ] + }, + "source-css-color-values": { + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "comment": "http://www.w3.org/TR/CSS21/syndata.html#value-def-color", + "match": "\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b", + "name": "support.constant.color.w3c-standard-color-name.css" + }, + { + "comment": "These colours are mostly recognised but will not validate. ref: http://www.w3schools.com/css/css_colornames.asp", + "match": "\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b", + "name": "invalid.deprecated.color.w3c-non-standard-color-name.css" + }, + { + "begin": "(hsla?|rgba?)\\s*(\\()", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "end": "(\\))", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "match": "(?x)\\b\n\t\t\t\t\t\t\t (0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*){2}\n\t\t\t\t\t\t\t (0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\b)\n\t\t\t\t\t\t\t (\\s*,\\s*((0?\\.[0-9]+)|[0-1]))?\n\t\t\t\t\t\t\t", + "name": "constant.other.color.rgb-value.css" + }, + { + "match": "\\b([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%", + "name": "constant.other.color.rgb-percentage.css" + }, + { + "include": "#source-css-numeric-values" + } + ], + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + } + } + ] + }, + "source-cfml-script-tag-in-script": { + "patterns": [ + { + "begin": "(?i)\\b(property)(?!\\s+in\\b)(\\s+(any|array|binary|boolean|component|date|guid|numeric|query|string|struct|xml|uuid|[_$a-zA-Z][$\\w]*))?\\s+([_$a-zA-Z][$\\w]*\\b)(?!\\s*=)", + "end": "(?=(;|{))", + "patterns": [ + { + "include": "#source-cfml-script-tag-generic-attribute" + } + ], + "name": "meta.tag.script.cfml meta.tag.property.cfml", + "beginCaptures": { + "1": { + "name": "entity.name.tag.script.cfml" + }, + "3": { + "name": "storage.type.cfml" + }, + "4": { + "name": "string.unquoted.cfml meta.tag.property.name.cfml" + } + } + }, + { + "begin": "(?i)\\b(property)(?!\\s+in\\b)(?=(\\s+[a-zA-Z]|\\s*$|\\s*[{;]))", + "end": "(?=(;|{))", + "patterns": [ + { + "match": "(?i)\\b(name)\\s*(=)\\s*(?:((\")([^<>\"']*)(\"))|((')([^<>\"']*)('))|([^<>\"'\\s]*))", + "captures": { + "7": { + "name": "string.quoted.single.cfml" + }, + "3": { + "name": "string.quoted.double.cfml" + }, + "11": { + "name": "string.unquoted.cfml meta.tag.property.name.cfml" + }, + "4": { + "name": "punctuation.definition.string.begin.cfml" + }, + "8": { + "name": "punctuation.definition.string.begin.cfml" + }, + "9": { + "name": "meta.tag.property.name.cfml" + }, + "5": { + "name": "meta.tag.property.name.cfml" + }, + "1": { + "name": "entity.other.attribute-name.cfml" + }, + "6": { + "name": "punctuation.definition.string.end.cfml" + }, + "10": { + "name": "punctuation.definition.string.end.cfml" + }, + "2": { + "name": "punctuation.separator.key-value.cfml" + } + } + }, + { + "include": "#source-cfml-script-tag-generic-attribute" + } + ], + "name": "meta.tag.script.cfml meta.tag.property.cfml", + "beginCaptures": { + "1": { + "name": "entity.name.tag.script.cfml" + } + } + }, + { + "begin": "(?i)\\b(param)(?!\\s+in\\b)(?=\\s+(name|default|max|maxLength|min|pattern|type)\\s*=)", + "end": "(?=[;{])", + "patterns": [ + { + "include": "#source-cfml-script-tag-generic-attribute-script" + } + ], + "name": "meta.tag.script.cfml", + "beginCaptures": { + "1": { + "name": "entity.name.tag.script.cfml" + } + } + }, + { + "begin": "(?i)\\b(param)(?!\\s+in\\b)\\s+([_$a-zA-Z][$\\w\\.]*)(?=\\s+(name|default|max|maxLength|min|pattern|type))", + "end": "(?=[;{])", + "patterns": [ + { + "include": "#source-cfml-script-tag-generic-attribute-script" + } + ], + "name": "meta.tag.script.cfml", + "beginCaptures": { + "1": { + "name": "entity.name.tag.script.cfml" + }, + "2": { + "name": "string.unquoted.cfml" + } + } + }, + { + "begin": "(?i)\\b(param)(?!\\s+in\\b)(\\s+([_$a-zA-Z][$\\w]*))?\\s+([_$a-zA-Z][$\\w\\.]*\\b)", + "end": "(?=[;{])", + "patterns": [ + { + "include": "#source-cfml-script-tag-generic-attribute-script" + } + ], + "name": "meta.tag.script.cfml", + "beginCaptures": { + "1": { + "name": "entity.name.tag.script.cfml" + }, + "3": { + "name": "storage.type.cfml" + }, + "4": { + "name": "string.unquoted.cfml" + } + } + }, + { + "begin": "(?i)\\b(param)(?!\\s+in\\b)(?=(\\s+[a-zA-Z]|\\s*[{;]|\\s*$))", + "end": "(?=[;{])", + "patterns": [ + { + "include": "#source-cfml-script-tag-generic-attribute-script" + } + ], + "name": "meta.tag.script.cfml", + "beginCaptures": { + "1": { + "name": "entity.name.tag.script.cfml" + } + } + }, + { + "begin": "(?x)(\\b)\n(?i:\n (ajaximport|ajaxproxy|applet|application|argument|associate|break|cache|calendar\n |chart|chartdata|chartseries|client|clientsettings|col|collection|content|cookie|dbinfo\n |directory|div|document|documentitem|documentsection|dump|error|exchangecalendar\n |exchangeconnection|exchangecontact|exchangefilter|exchangemail|exchangetask\n |execute|feed|file|fileupload|flush|form|formgroup|formitem|ftp|grid|gridcolumn\n |gridrow|gridupdate|header|htmlhead|htmltopdf|htmltopdfitem|http|httpparam|image\n |imap|imapfilter|import|include|index|input|insert|invoke|invokeargument|layout\n |layoutarea|ldap|location|lock|log|login|loginuser|logout|loop|mail|mailparam|mailpart\n |map|mapitem|mediaplayer|menu|menuitem|messagebox|module|ntauthenticate|oauth|object\n |objectcache|output|param|pdf|pdfform|pdfformparam|pdfparam|pdfsubform|pod|pop\n |presentation|presentationslide|presenter|print|processingdirective|procparam|procresult\n |progressbar|property|query|queryparam|registry|report|reportparam|savecontent|schedule\n |search|select|setting|sharepoint|silent|slider|spreadsheet|sprydataset|storedproc\n |table|textarea|textinput|thread|throw|timer|tooltip|trace|transaction|tree|treeitem|try\n |update|video|videoplayer|videoplayerparam|wddx|websocket|window|xml|zip|zipparam)\n)(?=\\s+[a-zA-Z0-9:-]+\\s*([=;{]|$)|\\s*({|$))", + "endCaptures": { + "1": { + "name": "meta.block.cfml punctuation.definition.block.end.cfml" + } + }, + "end": "(\\})|(?=;)", + "patterns": [ + { + "match": "\\s+", + "name": "meta.tag.script.cfml" + }, + { + "include": "#source-cfml-script-tag-generic-attribute-script" + }, + { + "include": "#source-cfml-script-block-scope" + } + ], + "beginCaptures": { + "2": { + "name": "meta.tag.script.cfml entity.name.tag.script.cfml" + } + } + } + ] + }, + "source-cfml-script-function-call-params": { + "begin": "\\(", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.end.cfml" + } + }, + "end": "\\)", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.function-call.cfml" + }, + { + "begin": "\\b([_$a-zA-Z][$\\w]*)\\s*(=)(?!=)", + "end": "(?=[,\\)])", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "beginCaptures": { + "1": { + "name": "entity.other.function-parameter.cfml" + }, + "2": { + "name": "keyword.operator.assignment.cfml" + } + } + }, + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.function-call.cfml meta.function-call.parameters.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.begin.cfml" + } + } + }, + "source-cfml-script-string": { + "patterns": [ + { + "include": "#source-cfml-script-string-quoted-single" + }, + { + "include": "#source-cfml-script-string-quoted-double" + } + ] + }, + "source-cfml-script-keywords-top-level": { + "patterns": [ + { + "begin": "\\bimport\\b", + "end": "(?=\\n|;)", + "patterns": [ + { + "include": "#source-cfml-script-string" + }, + { + "match": "[_$a-zA-Z][$\\w]*", + "name": "variable.other.readwrite.cfml" + }, + { + "match": "\\*", + "name": "constant.other.cfml" + } + ], + "name": "meta.import.cfml", + "beginCaptures": { + "0": { + "name": "keyword.control.import.cfml" + } + } + } + ] + }, + "source-css-comment-block": { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block.css", + "captures": { + "0": { + "name": "punctuation.definition.comment.css" + } + } + }, + "cfinterface": { + "begin": "(?i)(?=)", + "patterns": [ + { + "begin": "(?i)(<)(cfinterface)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.cfml" + } + }, + "end": ">", + "patterns": [ + { + "include": "#extends" + }, + { + "include": "#tag-generic-attribute" + } + ], + "name": "meta.tag.cfml meta.interface.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml storage.type.interface.cfml" + } + } + }, + { + "include": "#cfml-tags" + } + ] + }, + "text-html-cfml-cfoutput-string-double-quoted": { + "begin": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "end": "\"", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#text-html-cfml-cfoutput-entities" + } + ], + "name": "string.quoted.double.html", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + } + }, + "source-cfml-script-tag-string": { + "patterns": [ + { + "include": "#source-cfml-script-tag-string-quoted-single" + }, + { + "include": "#source-cfml-script-string-quoted-double" + } + ] + }, + "source-css-media-query": { + "begin": "(?i)\\s*(only|not)?\\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.arbitrary-repitition.css" + } + }, + "end": "\\s*(?:(,)|(?=[{;]))", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "begin": "\\s*(and)?\\s*(\\()\\s*", + "end": "\\)", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "begin": "(?x)\n\t (\n\t ((min|max)-)?\n\t (\n\t ((device-)?(height|width|aspect-ratio))|\n\t (color(-index)?)|monochrome|resolution\n\t )\n\t )|grid|scan|orientation\n\t \\s*(?=[:)])", + "endCaptures": { + "1": { + "name": "punctuation.separator.key-value.css" + } + }, + "end": "(:)|(?=\\))", + "beginCaptures": { + "0": { + "name": "support.type.property-name.media.css" + } + } + }, + { + "match": "\\b(portrait|landscape|progressive|interlace)", + "name": "support.constant.property-value.css" + }, + { + "match": "\\s*(\\d+)(/)(\\d+)", + "captures": { + "1": { + "name": "constant.numeric.css" + }, + "2": { + "name": "keyword.operator.arithmetic.css" + }, + "3": { + "name": "constant.numeric.css" + } + } + }, + { + "include": "#source-css-numeric-values" + } + ], + "beginCaptures": { + "1": { + "name": "keyword.operator.logic.media.css" + } + } + } + ], + "beginCaptures": { + "1": { + "name": "keyword.operator.logic.media.css" + }, + "2": { + "name": "support.constant.media.css" + } + } + }, + "cfml-tags": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#cffunction" + }, + { + "include": "#cfoutput" + }, + { + "include": "#cfquery" + }, + { + "include": "#cfif" + }, + { + "include": "#tags-with-script" + }, + { + "include": "#cfscript" + }, + { + "include": "#cfproperty" + }, + { + "include": "#cfargument" + }, + { + "include": "#custom-tags" + }, + { + "begin": "(?i)(<)(cf[a-z]+)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.cfml" + } + }, + "end": "(/?>)", + "patterns": [ + { + "include": "#tag-generic-attribute" + } + ], + "name": "meta.tag.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml" + } + } + }, + { + "match": "(?i)()", + "name": "meta.tag.cfml", + "captures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml" + }, + "3": { + "name": "punctuation.definition.tag.end.cfml" + } + } + } + ] + }, + "source-css-string-double": { + "begin": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "end": "\"", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "match": "\\\\.", + "name": "constant.character.escape.css" + } + ], + "name": "string.quoted.double.css", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + } + }, + "source-sql": { + "patterns": [ + { + "include": "#source-sql-comments" + }, + { + "match": "(?i:^\\s*(create)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4", + "name": "meta.create.sql", + "captures": { + "1": { + "name": "keyword.other.create.sql" + }, + "2": { + "name": "keyword.other.sql" + }, + "5": { + "name": "entity.name.function.sql" + } + } + }, + { + "match": "(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))", + "name": "meta.drop.sql", + "captures": { + "1": { + "name": "keyword.other.create.sql" + }, + "2": { + "name": "keyword.other.sql" + } + } + }, + { + "match": "(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)", + "name": "meta.drop.sql", + "captures": { + "3": { + "name": "entity.name.function.sql" + }, + "1": { + "name": "keyword.other.create.sql" + }, + "4": { + "name": "keyword.other.cascade.sql" + }, + "2": { + "name": "keyword.other.table.sql" + } + } + }, + { + "match": "(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)", + "name": "meta.alter.sql", + "captures": { + "1": { + "name": "keyword.other.create.sql" + }, + "2": { + "name": "keyword.other.table.sql" + } + } + }, + { + "match": "(?xi)\n\n\t\t\t\t# normal stuff, capture 1\n\t\t\t\t \\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\b\n\n\t\t\t\t# numeric suffix, capture 2 + 3i\n\t\t\t\t|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\)\n\n\t\t\t\t# optional numeric suffix, capture 4 + 5i\n\t\t\t\t|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))?\n\n\t\t\t\t# special case, capture 6 + 7i + 8i\n\t\t\t\t|\\b(numeric)\\b(?:\\((\\d+),(\\d+)\\))?\n\n\t\t\t\t# special case, captures 9, 10i, 11\n\t\t\t\t|\\b(times)(?:\\((\\d+)\\))(\\swithoutstimeszone\\b)?\n\n\t\t\t\t# special case, captures 12, 13, 14i, 15\n\t\t\t\t|\\b(timestamp)(?:(s)\\((\\d+)\\)(\\swithoutstimeszone\\b)?)?\n\n\t\t\t", + "captures": { + "10": { + "name": "constant.numeric.sql" + }, + "2": { + "name": "storage.type.sql" + }, + "15": { + "name": "storage.type.sql" + }, + "3": { + "name": "constant.numeric.sql" + }, + "11": { + "name": "storage.type.sql" + }, + "4": { + "name": "storage.type.sql" + }, + "5": { + "name": "constant.numeric.sql" + }, + "12": { + "name": "storage.type.sql" + }, + "6": { + "name": "storage.type.sql" + }, + "13": { + "name": "storage.type.sql" + }, + "7": { + "name": "constant.numeric.sql" + }, + "8": { + "name": "constant.numeric.sql" + }, + "14": { + "name": "constant.numeric.sql" + }, + "1": { + "name": "storage.type.sql" + }, + "9": { + "name": "storage.type.sql" + } + } + }, + { + "match": "(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|check|constraint)\\b)", + "name": "storage.modifier.sql" + }, + { + "match": "\\b\\d+\\b", + "name": "constant.numeric.sql" + }, + { + "match": "(?i:\\b(select(\\s+distinct)?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\sby|or|like|and|union(\\s+all)?|having|order\\sby|limit|(inner|cross)\\s+join|straight_join|(left|right)(\\s+outer)?\\s+join|natural(\\s+(left|right)(\\s+outer)?)?\\s+join)\\b)", + "name": "keyword.other.DML.sql" + }, + { + "match": "(?i:\\b(on|((is\\s+)?not\\s+)?null)\\b)", + "name": "keyword.other.DDL.create.II.sql" + }, + { + "match": "(?i:\\bvalues\\b)", + "name": "keyword.other.DML.II.sql" + }, + { + "match": "(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)", + "name": "keyword.other.LUW.sql" + }, + { + "match": "(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)", + "name": "keyword.other.authorization.sql" + }, + { + "match": "(?i:\\bin\\b)", + "name": "keyword.other.data-integrity.sql" + }, + { + "match": "(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)", + "name": "keyword.other.object-comments.sql" + }, + { + "match": "(?i)\\bAS\\b", + "name": "keyword.other.alias.sql" + }, + { + "match": "(?i)\\b(DESC|ASC)\\b", + "name": "keyword.other.order.sql" + }, + { + "match": "\\*", + "name": "keyword.operator.star.sql" + }, + { + "match": "[!<>]?=|<>|<|>", + "name": "keyword.operator.comparison.sql" + }, + { + "match": "-|\\+|/", + "name": "keyword.operator.math.sql" + }, + { + "match": "\\|\\|", + "name": "keyword.operator.concatenator.sql" + }, + { + "comment": "List of SQL99 built-in functions from http://www.oreilly.com/catalog/sqlnut/chapter/ch04.html", + "match": "(?i)\\b(CURRENT_(DATE|TIME(STAMP)?|USER)|(SESSION|SYSTEM)_USER)\\b", + "name": "support.function.scalar.sql" + }, + { + "comment": "List of SQL99 built-in functions from http://www.oreilly.com/catalog/sqlnut/chapter/ch04.html", + "match": "(?i)\\b(AVG|COUNT|MIN|MAX|SUM)(?=\\s*\\()", + "name": "support.function.aggregate.sql" + }, + { + "match": "(?i)\\b(CONCATENATE|CONVERT|LOWER|SUBSTRING|TRANSLATE|TRIM|UPPER)\\b", + "name": "support.function.string.sql" + }, + { + "match": "\\b(\\w+?)\\.(\\w+)\\b", + "captures": { + "1": { + "name": "constant.other.database-name.sql" + }, + "2": { + "name": "constant.other.table-name.sql" + } + } + }, + { + "include": "#source-sql-strings" + }, + { + "include": "#source-sql-regexps" + } + ] + }, + "source-css-cfoutput-media-query-list": { + "begin": "\\s*(?=[^{;])", + "end": "\\s*(?=[{;])", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-css-cfoutput-media-query" + } + ] + }, + "cfcomponent": { + "begin": "(?i)(?=)", + "patterns": [ + { + "begin": "(?i)(<)(cfcomponent)", + "end": "(?=>)", + "patterns": [ + { + "include": "#extends" + }, + { + "include": "#tag-generic-attribute" + } + ], + "name": "meta.tag.cfml meta.class.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml storage.type.class.cfml" + } + } + }, + { + "begin": ">", + "end": "(?i)(?=)", + "patterns": [ + { + "include": "#cfml-tags" + } + ], + "contentName": "meta.class.body.tag.cfml", + "beginCaptures": { + "0": { + "name": "meta.tag.cfml meta.class.cfml punctuation.definition.tag.end.cfml" + } + } + } + ] + }, + "source-sql-comments": { + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "match": "(--).*$\\n?", + "name": "comment.line.double-dash.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "(#).*$\\n?", + "name": "comment.line.number-sign.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block.c", + "captures": { + "0": { + "name": "punctuation.definition.comment.sql" + } + } + } + ] + }, + "string-quoted-single": { + "begin": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cfml" + } + }, + "end": "'(?!')", + "patterns": [ + { + "include": "#hash-delimiters" + }, + { + "match": "''", + "name": "constant.character.escape.quote.cfml" + } + ], + "name": "string.quoted.single.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cfml" + } + } + }, + "cfproperty": { + "patterns": [ + { + "begin": "(?i)(<)(cfproperty)\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.cfml" + } + }, + "end": "(/?>)", + "patterns": [ + { + "match": "(?i)\\b(name)\\s*(=)\\s*(?:((\")([^<>\"']*)(\"))|((')([^<>\"']*)('))|([^<>\"'\\s]*))", + "captures": { + "7": { + "name": "string.quoted.single.cfml" + }, + "3": { + "name": "string.quoted.double.cfml" + }, + "11": { + "name": "string.unquoted.cfml meta.tag.property.name.cfml" + }, + "4": { + "name": "punctuation.definition.string.begin.cfml" + }, + "8": { + "name": "punctuation.definition.string.begin.cfml" + }, + "9": { + "name": "meta.tag.property.name.cfml" + }, + "5": { + "name": "meta.tag.property.name.cfml" + }, + "1": { + "name": "entity.other.attribute-name.cfml" + }, + "6": { + "name": "punctuation.definition.string.end.cfml" + }, + "10": { + "name": "punctuation.definition.string.end.cfml" + }, + "2": { + "name": "punctuation.separator.key-value.cfml" + } + } + }, + { + "include": "#tag-generic-attribute" + } + ], + "name": "meta.tag.cfml meta.tag.property.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml" + } + } + } + ] + }, + "source-css-property-values": { + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "match": "\\b(absolute|all(-scroll)?|always|armenian|auto|avoid|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|geometricPrecision|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|optimize(Legibility|Quality|Speed)|outset|outside|overline|pointer|pre(-(wrap|line))?|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|sub|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical(-(ideographic|text))?|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|zero|smaller|larger|((xx?-)?(small|large))|painted|fill|stroke)\\b", + "name": "support.constant.property-value.css" + }, + { + "match": "(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\\b)", + "name": "support.constant.font-name.css" + }, + { + "include": "#source-css-numeric-values" + }, + { + "include": "#source-css-color-values" + }, + { + "include": "#source-css-string-double" + }, + { + "include": "#source-css-string-single" + }, + { + "begin": "(rect)\\s*(\\()", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "end": "(\\))", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#source-css-numeric-values" + } + ], + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + } + }, + { + "begin": "(format|local|url|attr|counter|counters)\\s*(\\()", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "end": "(\\))", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#source-css-string-single" + }, + { + "include": "#source-css-string-double" + }, + { + "match": "[^'\") \\t]+", + "name": "variable.parameter.misc.css" + } + ], + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + } + }, + { + "match": "\\!\\s*important", + "name": "keyword.other.important.css" + } + ] + }, + "source-cfml-script-function-declaration-parameters": { + "patterns": [ + { + "begin": "\\(", + "end": "(?=\\))", + "patterns": [ + { + "include": "#source-cfml-script-function-parameter" + } + ], + "name": "meta.function.declaration.cfml meta.function.parameters.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.cfml" + } + } + }, + { + "begin": "\\)", + "end": "(?=(\\{|;|=>))", + "patterns": [ + { + "include": "#source-cfml-script-tag-generic-attribute" + } + ], + "name": "meta.function.declaration.cfml", + "beginCaptures": { + "0": { + "name": "meta.function.parameters.cfml punctuation.definition.parameters.end.cfml" + } + } + } + ] + }, + "cfoutput": { + "begin": "(?i)(?=)", + "patterns": [ + { + "begin": "(?i)(<)(cfoutput)", + "end": "(?=>)", + "patterns": [ + { + "include": "#tag-generic-attribute" + } + ], + "name": "meta.tag.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml" + } + } + }, + { + "begin": ">", + "end": "(?i)(?=)", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#text-html-cfml-cfoutput" + } + ], + "contentName": "meta.scope.cfoutput.cfml text.html.cfml", + "beginCaptures": { + "0": { + "name": "meta.tag.cfml punctuation.definition.tag.end.cfml.test" + } + } + } + ] + }, + "source-cfml-script-square-brackets": { + "patterns": [ + { + "begin": "(?<=[$\\w\\)\\]])\\s*(\\[)", + "endCaptures": { + "0": { + "name": "punctuation.definition.brackets.end.cfml" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.brackets.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.brackets.begin.cfml" + } + } + }, + { + "begin": "\\[", + "endCaptures": { + "0": { + "name": "punctuation.definition.brackets.end.cfml" + } + }, + "end": "\\]", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.array-literal.cfml" + }, + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.array-literal.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.brackets.begin.cfml" + } + } + } + ] + }, + "source-cfml-script-string-quoted-single": { + "begin": "'", + "endCaptures": { + "1": { + "name": "string.quoted.single.cfml punctuation.definition.string.end.cfml" + } + }, + "end": "(')(?!')", + "patterns": [ + { + "match": "''", + "name": "string.quoted.single.cfml constant.character.escape.quote.cfml" + }, + { + "begin": "(?=\\s*(?:SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|WITH|DECLARE|FROM|WHERE|AND|ORDER BY|GROUP BY|INNER JOIN|OUTER JOIN|LEFT JOIN)\\b)", + "end": "(?='[^'])", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.quote.cfml" + }, + { + "include": "#source-cfml-script-hash-delimiters" + }, + { + "include": "#source-sql" + } + ], + "name": "meta.string.quoted.single.cfml source.sql" + }, + { + "begin": "(?=\\S)", + "end": "(?='[^'])", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.quote.cfml" + }, + { + "include": "#source-cfml-script-hash-delimiters" + } + ], + "name": "string.quoted.single.cfml" + }, + { + "match": "[\\s\\n]", + "name": "string.quoted.single.cfml" + } + ], + "beginCaptures": { + "0": { + "name": "string.quoted.single.cfml punctuation.definition.string.begin.cfml" + } + } + }, + "text-html-cfml-cfoutput-tag-stuff": { + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#text-html-cfml-cfoutput-tag-id-attribute" + }, + { + "include": "#text-html-cfml-cfoutput-tag-generic-attribute" + }, + { + "include": "#text-html-cfml-cfoutput-string-double-quoted" + }, + { + "include": "#text-html-cfml-cfoutput-string-single-quoted" + } + ] + }, + "cfargument": { + "patterns": [ + { + "begin": "(?i)(<)(cfargument)\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.cfml" + } + }, + "end": "(/?>)", + "patterns": [ + { + "include": "#tag-generic-attribute" + } + ], + "name": "meta.tag.cfml meta.tag.argument.cfml", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.cfml" + }, + "2": { + "name": "entity.name.tag.cfml" + } + } + } + ] + }, + "source-cfml-script-string-quoted-double": { + "begin": "\"", + "endCaptures": { + "1": { + "name": "string.quoted.double.cfml punctuation.definition.string.end.cfml" + } + }, + "end": "(\")(?!\")", + "patterns": [ + { + "match": "\"\"", + "name": "string.quoted.double.cfml constant.character.escape.quote.cfml" + }, + { + "begin": "(?=\\s*(?:SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|WITH|DECLARE|FROM|WHERE|AND|ORDER BY|GROUP BY|INNER JOIN|OUTER JOIN|LEFT JOIN)\\b)", + "end": "(?=\"[^\"])", + "patterns": [ + { + "match": "\"\"", + "name": "constant.character.escape.quote.cfml" + }, + { + "include": "#source-cfml-script-hash-delimiters" + }, + { + "include": "#source-sql" + } + ], + "name": "meta.string.quoted.double.cfml source.sql" + }, + { + "begin": "(?=\\S)", + "end": "(?=\"[^\"])", + "patterns": [ + { + "match": "\"\"", + "name": "constant.character.escape.quote.cfml" + }, + { + "include": "#source-cfml-script-hash-delimiters" + } + ], + "name": "string.quoted.double.cfml" + }, + { + "match": "[\\s\\n]", + "name": "string.quoted.double.cfml" + } + ], + "beginCaptures": { + "0": { + "name": "string.quoted.double.cfml punctuation.definition.string.begin.cfml" + } + } + }, + "source-cfml-script-arrow-function-declaration-parameters": { + "begin": "\\(", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.cfml" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#source-cfml-script-function-parameter" + } + ], + "name": "meta.function.parameters.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.cfml" + } + } + }, + "source-css-cfoutput-string-double": { + "begin": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "end": "\"", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "match": "\\\\.", + "name": "constant.character.escape.css" + } + ], + "name": "string.quoted.double.css", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + } + }, + "source-cfml-script-support-call-parameter": { + "patterns": [ + { + "begin": "\\b([_$a-zA-Z][$\\w\\.]*)\\s*(=)(?!=)", + "end": "(?=[,\\)])", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "captures": { + "1": { + "name": "entity.other.function-parameter.cfml" + }, + "2": { + "name": "keyword.operator.assignment.cfml" + } + } + } + ] + }, + "source-css-cfoutput-color-values": { + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "comment": "http://www.w3.org/TR/CSS21/syndata.html#value-def-color", + "match": "\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b", + "name": "support.constant.color.w3c-standard-color-name.css" + }, + { + "comment": "These colours are mostly recognised but will not validate. ref: http://www.w3schools.com/css/css_colornames.asp", + "match": "\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b", + "name": "invalid.deprecated.color.w3c-non-standard-color-name.css" + }, + { + "begin": "(hsla?|rgba?)\\s*(\\()", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "end": "(\\))", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "match": "(?x)\\b\n\t\t\t\t\t\t\t (0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*){2}\n\t\t\t\t\t\t\t (0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\b)\n\t\t\t\t\t\t\t (\\s*,\\s*((0?\\.[0-9]+)|[0-1]))?\n\t\t\t\t\t\t\t", + "name": "constant.other.color.rgb-value.css" + }, + { + "match": "\\b([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%", + "name": "constant.other.color.rgb-percentage.css" + }, + { + "include": "#source-css-cfoutput-numeric-values" + } + ], + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + } + } + ] + }, + "source-cfml-script-tag-generic-attribute-script": { + "patterns": [ + { + "match": "\\b[a-zA-Z0-9:-]+\\b", + "name": "meta.tag.script.cfml entity.other.attribute-name.cfml" + }, + { + "begin": "=", + "end": "(?=\\s*\\b([a-zA-Z0-9:-]+)\\s*=)|(?=[;\\{])", + "patterns": [ + { + "include": "#source-cfml-script-expressions" + } + ], + "name": "meta.tag.script.cfml", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.cfml" + } + } + } + ] + }, + "source-cfml-script-number": { + "match": "(?xi)(?:\\B[-+])?(?:\\b0x[0-9a-f]*|(\\B\\.[0-9]+|\\b[0-9]+(\\.[0-9]*)?))", + "name": "constant.numeric.cfml" + }, + "source-css-rule-list": { + "begin": "\\{", + "end": "(?=\\s*\\})", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "include": "#source-css-comment-block" + }, + { + "begin": "(?", + "name": "comment.line.cfml" + }, + { + "begin": "", + "patterns": [ + { + "include": "#comments" + } + ], + "name": "comment.block.cfml" + } + ] + }, + "text-html-cfml-entities": { + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "name": "constant.character.entity.html", + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "3": { + "name": "punctuation.definition.entity.html" + } + } + }, + { + "match": "&", + "name": "invalid.illegal.bad-ampersand.html" + } + ] + }, + "source-cfml-script-operators": { + "patterns": [ + { + "match": "!(?!=)", + "name": "keyword.operator.logical.cfml" + }, + { + "match": "\\b(?i:not)\\b", + "name": "keyword.operator.logical.cfml" + }, + { + "match": "--|\\+\\+", + "name": "keyword.operator.arithmetic.cfml" + }, + { + "match": "\\bnew\\b", + "name": "keyword.operator.new.cfml" + }, + { + "begin": "\\bin\\b", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.cfml" + } + } + }, + { + "begin": "&&|\\|\\|", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.logical.cfml" + } + } + }, + { + "begin": "\\b(?i:(and|or|xor|eqv|imp))\\b", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.logical.cfml" + } + } + }, + { + "begin": "=(?!=)", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.cfml" + } + } + }, + { + "begin": "\\b(?i:(greater|less|than|equal\\s+to|does|contains|equal|eq|neq|lt|lte|le|gt|gte|ge|and|is))\\b", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.decision.cfml" + } + } + }, + { + "begin": "%=|&=|\\*=|\\+=|-=|/=", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.augmented.cfml" + } + } + }, + { + "begin": "&", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.concat.cfml" + } + } + }, + { + "begin": "<=|>=|<|>", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.relational.cfml" + } + } + }, + { + "begin": "==|!=", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.comparison.cfml" + } + } + }, + { + "begin": "/|%|\\*|\\+|-", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.arithmetic.cfml" + } + } + }, + { + "begin": "\\?|:(?!:)", + "end": "(?<=\\})|(?=[^\\s\\{])", + "patterns": [ + { + "include": "#source-cfml-script-struct-literal" + } + ], + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.cfml" + } + } + } + ] + }, + "source-cfml-script-main": { + "patterns": [ + { + "include": "#source-cfml-script-keywords-top-level" + }, + { + "include": "#source-cfml-script-component" + }, + { + "include": "#source-cfml-script-statements" + } + ] + }, + "source-sql-regexps": { + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "begin": "/(?=\\S.*/)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "end": "/", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-sql-string_interpolation" + }, + { + "match": "\\\\/", + "name": "constant.character.escape.slash.sql" + } + ], + "name": "string.regexp.sql", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + } + }, + { + "end": "\\}", + "begin": "%r\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + }, + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#source-sql-string_interpolation" + } + ], + "comment": "We should probably handle nested bracket pairs!?! -- Allan", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "name": "string.regexp.modr.sql" + } + ] + }, + "source-js": { + "patterns": [ + { + "comment": "node.js shebang", + "match": "^#!/usr/bin/env node", + "name": "comment.line.js" + }, + { + "match": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\s*(=)\\s*", + "comment": "match stuff like: Sound.prototype = { … } when extending an object", + "name": "meta.class.js", + "captures": { + "1": { + "name": "support.class.js" + }, + "2": { + "name": "support.constant.js" + }, + "3": { + "name": "keyword.operator.js" + } + } + }, + { + "match": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*(function)?\\s*(\\()(.*?)(\\))", + "comment": "match stuff like: Sound.prototype.play = function() { … }", + "name": "meta.function.prototype.js", + "captures": { + "7": { + "name": "variable.parameter.function.js" + }, + "3": { + "name": "entity.name.function.js" + }, + "8": { + "name": "punctuation.definition.parameters.end.js" + }, + "4": { + "name": "keyword.operator.js" + }, + "5": { + "name": "storage.type.function.js" + }, + "1": { + "name": "support.class.js" + }, + "6": { + "name": "punctuation.definition.parameters.begin.js" + }, + "2": { + "name": "support.constant.js" + } + } + }, + { + "match": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*", + "comment": "match stuff like: Sound.prototype.play = myfunc", + "name": "meta.function.js", + "captures": { + "3": { + "name": "entity.name.function.js" + }, + "1": { + "name": "support.class.js" + }, + "4": { + "name": "keyword.operator.js" + }, + "2": { + "name": "support.constant.js" + } + } + }, + { + "match": "([a-zA-Z_?.$][\\w?.$]*)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*(function)\\s*(\\()(.*?)(\\))", + "comment": "match stuff like: Sound.play = function() { … }", + "name": "meta.function.js", + "captures": { + "7": { + "name": "punctuation.definition.parameters.end.js" + }, + "3": { + "name": "keyword.operator.js" + }, + "4": { + "name": "storage.type.function.js" + }, + "5": { + "name": "punctuation.definition.parameters.begin.js" + }, + "1": { + "name": "support.class.js" + }, + "6": { + "name": "variable.parameter.function.js" + }, + "2": { + "name": "entity.name.function.js" + } + } + }, + { + "match": "([a-zA-Z_?$][\\w?$]*)\\s*(=)\\s*(function)\\s*(\\()(.*?)(\\))", + "comment": "match stuff like: play = function() { … }", + "name": "meta.function.js", + "captures": { + "3": { + "name": "storage.type.function.js" + }, + "1": { + "name": "entity.name.function.js" + }, + "6": { + "name": "punctuation.definition.parameters.end.js" + }, + "4": { + "name": "punctuation.definition.parameters.begin.js" + }, + "2": { + "name": "keyword.operator.js" + }, + "5": { + "name": "variable.parameter.function.js" + } + } + }, + { + "match": "\\b(function)\\s+([a-zA-Z_$]\\w*)?\\s*(\\()(.*?)(\\))", + "comment": "match regular function like: function myFunc(arg) { … }", + "name": "meta.function.js", + "captures": { + "3": { + "name": "punctuation.definition.parameters.begin.js" + }, + "1": { + "name": "storage.type.function.js" + }, + "4": { + "name": "variable.parameter.function.js" + }, + "2": { + "name": "entity.name.function.js" + }, + "5": { + "name": "punctuation.definition.parameters.end.js" + } + } + }, + { + "match": "\\b([a-zA-Z_?.$][\\w?.$]*)\\s*:\\s*\\b(function)?\\s*(\\()(.*?)(\\))", + "comment": "match stuff like: foobar: function() { … }", + "name": "meta.function.json.js", + "captures": { + "3": { + "name": "punctuation.definition.parameters.begin.js" + }, + "1": { + "name": "entity.name.function.js" + }, + "4": { + "name": "variable.parameter.function.js" + }, + "2": { + "name": "storage.type.function.js" + }, + "5": { + "name": "punctuation.definition.parameters.end.js" + } + } + }, + { + "match": "(?:((')([^']*)('))|((\")([^\"]*)(\")))\\s*:\\s*\\b(function)?\\s*(\\()([^)]*)(\\))", + "comment": "Attempt to match \"foo\": function", + "name": "meta.function.json.js", + "captures": { + "10": { + "name": "punctuation.definition.parameters.begin.js" + }, + "2": { + "name": "punctuation.definition.string.begin.js" + }, + "3": { + "name": "entity.name.function.js" + }, + "11": { + "name": "variable.parameter.function.js" + }, + "4": { + "name": "punctuation.definition.string.end.js" + }, + "5": { + "name": "string.quoted.double.js" + }, + "12": { + "name": "punctuation.definition.parameters.end.js" + }, + "6": { + "name": "punctuation.definition.string.begin.js" + }, + "7": { + "name": "entity.name.function.js" + }, + "8": { + "name": "punctuation.definition.string.end.js" + }, + "1": { + "name": "string.quoted.single.js" + }, + "9": { + "name": "entity.name.function.js" + } + } + }, + { + "match": "(new)\\s+(\\w+(?:\\.\\w*)?)", + "name": "meta.class.instance.constructor", + "captures": { + "1": { + "name": "keyword.operator.new.js" + }, + "2": { + "name": "entity.name.type.instance.js" + } + } + }, + { + "match": "\\b(console)\\b", + "name": "entity.name.type.object.js.firebug" + }, + { + "match": "\\.(warn|info|log|error|time|timeEnd|assert)\\b", + "name": "support.function.js.firebug" + }, + { + "match": "\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b", + "name": "constant.numeric.js" + }, + { + "begin": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.js" + } + }, + "end": "'", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)", + "name": "constant.character.escape.js" + } + ], + "name": "string.quoted.single.js", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js" + } + } + }, + { + "begin": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.js" + } + }, + "end": "\"", + "patterns": [ + { + "include": "#cfml-tags" + }, + { + "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", + "name": "constant.character.escape.js" + } + ], + "name": "string.quoted.double.js", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js" + } + } + }, + { + "begin": "/\\*\\*(?!/)", + "end": "\\*/", + "name": "comment.block.documentation.js", + "captures": { + "0": { + "name": "punctuation.definition.comment.js" + } + } + }, + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block.js", + "captures": { + "0": { + "name": "punctuation.definition.comment.js" + } + } + }, + { + "match": "(//).*$\\n?", + "name": "comment.line.double-slash.js", + "captures": { + "1": { + "name": "punctuation.definition.comment.js" + } + } + }, + { + "match": "()", + "name": "comment.block.html.js", + "captures": { + "0": { + "name": "punctuation.definition.comment.html.js" + }, + "2": { + "name": "punctuation.definition.comment.html.js" + } + } + }, + { + "match": "\\b(boolean|byte|char|class|double|enum|float|function|int|interface|long|short|var|void)\\b", + "name": "storage.type.js" + }, + { + "match": "\\b(const|export|extends|final|implements|native|private|protected|public|static|synchronized|throws|transient|volatile)\\b", + "name": "storage.modifier.js" + }, + { + "match": "\\b(break|case|catch|continue|default|do|else|finally|for|goto|if|import|package|return|switch|throw|try|while)\\b", + "name": "keyword.control.js" + }, + { + "match": "\\b(delete|in|instanceof|new|typeof|with)\\b", + "name": "keyword.operator.js" + }, + { + "match": "\\btrue\\b", + "name": "constant.language.boolean.true.js" + }, + { + "match": "\\bfalse\\b", + "name": "constant.language.boolean.false.js" + }, + { + "match": "\\bnull\\b", + "name": "constant.language.null.js" + }, + { + "match": "\\b(super|this)\\b", + "name": "variable.language.js" + }, + { + "match": "\\b(debugger)\\b", + "name": "keyword.other.js" + }, + { + "match": "\\b(Anchor|Applet|Area|Array|Boolean|Button|Checkbox|Date|document|event|FileUpload|Form|Frame|Function|Hidden|History|Image|JavaArray|JavaClass|JavaObject|JavaPackage|java|Layer|Link|Location|Math|MimeType|Number|navigator|netscape|Object|Option|Packages|Password|Plugin|Radio|RegExp|Reset|Select|String|Style|Submit|screen|sun|Text|Textarea|window|XMLHttpRequest)\\b", + "name": "support.class.js" + }, + { + "match": "\\b(s(h(ift|ow(Mod(elessDialog|alDialog)|Help))|croll(X|By(Pages|Lines)?|Y|To)?|t(op|rike)|i(n|zeToContent|debar|gnText)|ort|u(p|b(str(ing)?)?)|pli(ce|t)|e(nd|t(Re(sizable|questHeader)|M(i(nutes|lliseconds)|onth)|Seconds|Ho(tKeys|urs)|Year|Cursor|Time(out)?|Interval|ZOptions|Date|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(ome|andleEvent)|navigate|c(har(CodeAt|At)|o(s|n(cat|textual|firm)|mpile)|eil|lear(Timeout|Interval)?|a(ptureEvents|ll)|reate(StyleSheet|Popup|EventObject))|t(o(GMTString|S(tring|ource)|U(TCString|pperCase)|Lo(caleString|werCase))|est|a(n|int(Enabled)?))|i(s(NaN|Finite)|ndexOf|talics)|d(isableExternalCapture|ump|etachEvent)|u(n(shift|taint|escape|watch)|pdateCommands)|j(oin|avaEnabled)|p(o(p|w)|ush|lugins.refresh|a(ddings|rse(Int|Float)?)|r(int|ompt|eference))|e(scape|nableExternalCapture|val|lementFromPoint|x(p|ec(Script|Command)?))|valueOf|UTC|queryCommand(State|Indeterm|Enabled|Value)|f(i(nd|le(ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(nt(size|color)|rward)|loor|romCharCode)|watch|l(ink|o(ad|g)|astIndexOf)|a(sin|nchor|cos|t(tachEvent|ob|an(2)?)|pply|lert|b(s|ort))|r(ou(nd|teEvents)|e(size(By|To)|calc|turnValue|place|verse|l(oad|ease(Capture|Events)))|andom)|g(o|et(ResponseHeader|M(i(nutes|lliseconds)|onth)|Se(conds|lection)|Hours|Year|Time(zoneOffset)?|Da(y|te)|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Da(y|te)|FullYear)|FullYear|A(ttention|llResponseHeaders)))|m(in|ove(B(y|elow)|To(Absolute)?|Above)|ergeAttributes|a(tch|rgins|x))|b(toa|ig|o(ld|rderWidths)|link|ack))\\b(?=\\()", + "name": "support.function.js" + }, + { + "match": "\\b(s(ub(stringData|mit)|plitText|e(t(NamedItem|Attribute(Node)?)|lect))|has(ChildNodes|Feature)|namedItem|c(l(ick|o(se|neNode))|reate(C(omment|DATASection|aption)|T(Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(ntityReference|lement)|Attribute))|tabIndex|i(nsert(Row|Before|Cell|Data)|tem)|open|delete(Row|C(ell|aption)|T(Head|Foot)|Data)|focus|write(ln)?|a(dd|ppend(Child|Data))|re(set|place(Child|Data)|move(NamedItem|Child|Attribute(Node)?)?)|get(NamedItem|Element(sBy(Name|TagName)|ById)|Attribute(Node)?)|blur)\\b(?=\\()", + "name": "support.function.dom.js" + }, + { + "match": "(?<=\\.)(s(ystemLanguage|cr(ipts|ollbars|een(X|Y|Top|Left))|t(yle(Sheets)?|atus(Text|bar)?)|ibling(Below|Above)|ource|uffixes|e(curity(Policy)?|l(ection|f)))|h(istory|ost(name)?|as(h|Focus))|y|X(MLDocument|SLDocument)|n(ext|ame(space(s|URI)|Prop))|M(IN_VALUE|AX_VALUE)|c(haracterSet|o(n(structor|trollers)|okieEnabled|lorDepth|mp(onents|lete))|urrent|puClass|l(i(p(boardData)?|entInformation)|osed|asses)|alle(e|r)|rypto)|t(o(olbar|p)|ext(Transform|Indent|Decoration|Align)|ags)|SQRT(1_2|2)|i(n(ner(Height|Width)|put)|ds|gnoreCase)|zIndex|o(scpu|n(readystatechange|Line)|uter(Height|Width)|p(sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(i(splay|alog(Height|Top|Width|Left|Arguments)|rectories)|e(scription|fault(Status|Ch(ecked|arset)|View)))|u(ser(Profile|Language|Agent)|n(iqueID|defined)|pdateInterval)|_content|p(ixelDepth|ort|ersonalbar|kcs11|l(ugins|atform)|a(thname|dding(Right|Bottom|Top|Left)|rent(Window|Layer)?|ge(X(Offset)?|Y(Offset)?))|r(o(to(col|type)|duct(Sub)?|mpter)|e(vious|fix)))|e(n(coding|abledPlugin)|x(ternal|pando)|mbeds)|v(isibility|endor(Sub)?|Linkcolor)|URLUnencoded|P(I|OSITIVE_INFINITY)|f(ilename|o(nt(Size|Family|Weight)|rmName)|rame(s|Element)|gColor)|E|whiteSpace|l(i(stStyleType|n(eHeight|kColor))|o(ca(tion(bar)?|lName)|wsrc)|e(ngth|ft(Context)?)|a(st(M(odified|atch)|Index|Paren)|yer(s|X)|nguage))|a(pp(MinorVersion|Name|Co(deName|re)|Version)|vail(Height|Top|Width|Left)|ll|r(ity|guments)|Linkcolor|bove)|r(ight(Context)?|e(sponse(XML|Text)|adyState))|global|x|m(imeTypes|ultiline|enubar|argin(Right|Bottom|Top|Left))|L(N(10|2)|OG(10E|2E))|b(o(ttom|rder(Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(Color|Image)))\\b", + "name": "support.constant.js" + }, + { + "match": "(?<=\\.)(s(hape|ystemId|c(heme|ope|rolling)|ta(ndby|rt)|ize|ummary|pecified|e(ctionRowIndex|lected(Index)?)|rc)|h(space|t(tpEquiv|mlFor)|e(ight|aders)|ref(lang)?)|n(o(Resize|tation(s|Name)|Shade|Href|de(Name|Type|Value)|Wrap)|extSibling|ame)|c(h(ildNodes|Off|ecked|arset)?|ite|o(ntent|o(kie|rds)|de(Base|Type)?|l(s|Span|or)|mpact)|ell(s|Spacing|Padding)|l(ear|assName)|aption)|t(ype|Bodies|itle|Head|ext|a(rget|gName)|Foot)|i(sMap|ndex|d|m(plementation|ages))|o(ptions|wnerDocument|bject)|d(i(sabled|r)|o(c(type|umentElement)|main)|e(clare|f(er|ault(Selected|Checked|Value)))|at(eTime|a))|useMap|p(ublicId|arentNode|r(o(file|mpt)|eviousSibling))|e(n(ctype|tities)|vent|lements)|v(space|ersion|alue(Type)?|Link|Align)|URL|f(irstChild|orm(s)?|ace|rame(Border)?)|width|l(ink(s)?|o(ngDesc|wSrc)|a(stChild|ng|bel))|a(nchors|c(ce(ssKey|pt(Charset)?)|tion)|ttributes|pplets|l(t|ign)|r(chive|eas)|xis|Link|bbr)|r(ow(s|Span|Index)|ules|e(v|ferrer|l|adOnly))|m(ultiple|e(thod|dia)|a(rgin(Height|Width)|xLength))|b(o(dy|rder)|ackground|gColor))\\b", + "name": "support.constant.dom.js" + }, + { + "match": "\\b(ELEMENT_NODE|ATTRIBUTE_NODE|TEXT_NODE|CDATA_SECTION_NODE|ENTITY_REFERENCE_NODE|ENTITY_NODE|PROCESSING_INSTRUCTION_NODE|COMMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE|DOCUMENT_FRAGMENT_NODE|NOTATION_NODE|INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR|WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR)\\b", + "name": "support.constant.dom.js" + }, + { + "match": "\\bon(R(ow(s(inserted|delete)|e(nter|xit))|e(s(ize(start|end)?|et)|adystatechange))|Mouse(o(ut|ver)|down|up|move)|B(efore(cut|deactivate|u(nload|pdate)|p(aste|rint)|editfocus|activate)|lur)|S(croll|top|ubmit|elect(start|ionchange)?)|H(over|elp)|C(hange|ont(extmenu|rolselect)|ut|ellchange|l(ick|ose))|D(eactivate|ata(setc(hanged|omplete)|available)|r(op|ag(start|over|drop|en(ter|d)|leave)?)|blclick)|Unload|P(aste|ropertychange)|Error(update)?|Key(down|up|press)|Focus|Load|A(ctivate|fter(update|print)|bort))\\b", + "name": "support.function.event-handler.js" + }, + { + "match": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|(?]*>)", + "endCaptures": { + "3": { + "name": "punctuation.definition.tag.begin.html" + }, + "1": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "entity.name.tag.html" + }, + "2": { + "name": "punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html" + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(>)(<)(/)(\\2)(>)", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#text-html-cfml-cfoutput-tag-stuff" + } + ], + "name": "meta.tag.any.html", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + } + }, + { + "begin": "(<\\?)(xml)", + "end": "(\\?>)", + "patterns": [ + { + "include": "#cfoutput-injection" + }, + { + "include": "#text-html-cfml-cfoutput-tag-generic-attribute" + }, + { + "include": "#text-html-cfml-cfoutput-string-double-quoted" + }, + { + "include": "#text-html-cfml-cfoutput-string-single-quoted" + } + ], + "name": "meta.tag.preprocessor.xml.html", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.xml.html" + } + } + }, + { + "begin": "