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:]++)(?=[^>]*>\\2>)",
+ "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)()(cf[a-z]+)(>)",
+ "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": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|(?]*>\\2>)",
+ "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": "