github-linguist 9.0.0 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/github-linguist +3 -3
- data/grammars/etc.json +1 -1
- data/grammars/inline.edgeql.json +1 -1
- data/grammars/liquid.injection.json +1 -1
- data/grammars/source.4dm.json +1 -1
- data/grammars/source.QB64.json +1 -1
- data/grammars/source.abap.json +1 -1
- data/grammars/source.abl.json +1 -1
- data/grammars/source.aiken.json +1 -0
- data/grammars/source.answersetprogramming.json +1 -0
- data/grammars/source.apacheconf.json +1 -0
- data/grammars/source.apex.json +1 -1
- data/grammars/source.assembly.json +1 -1
- data/grammars/source.ats.json +1 -1
- data/grammars/source.ballerina.json +1 -1
- data/grammars/source.brs.json +1 -1
- data/grammars/source.bst.json +1 -0
- data/grammars/source.c++.json +1 -1
- data/grammars/source.c.calendar.json +1 -0
- data/grammars/source.c.json +1 -1
- data/grammars/source.c.linker.json +1 -0
- data/grammars/source.cairo0.json +1 -1
- data/grammars/source.cl.json +1 -1
- data/grammars/source.clue.json +1 -0
- data/grammars/source.cmake.json +1 -1
- data/grammars/source.cmakecache.json +1 -1
- data/grammars/source.cobol.json +1 -1
- data/grammars/source.cs.json +1 -1
- data/grammars/source.curlrc.json +1 -1
- data/grammars/source.curry.json +1 -1
- data/grammars/source.daslang.json +1 -0
- data/grammars/source.dds.dspf.json +1 -1
- data/grammars/source.erlang.json +1 -1
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.git-revlist.json +1 -1
- data/grammars/source.gleam.json +1 -1
- data/grammars/source.hack.json +1 -1
- data/grammars/source.hcl.json +1 -1
- data/grammars/source.hx.json +1 -1
- data/grammars/source.ice.json +1 -1
- data/grammars/source.ilecobol.json +1 -0
- data/grammars/source.ispc.json +1 -0
- data/grammars/source.jai.json +1 -0
- data/grammars/source.json.comments.json +1 -0
- data/grammars/source.julia.console.json +1 -1
- data/grammars/source.julia.json +1 -1
- data/grammars/source.just.json +1 -1
- data/grammars/source.kdl.json +1 -0
- data/grammars/source.koka.json +1 -0
- data/grammars/source.lean.markdown.json +1 -1
- data/grammars/source.lean4.markdown.json +1 -1
- data/grammars/source.leo.json +1 -0
- data/grammars/source.livescript.json +1 -1
- data/grammars/source.m2.json +1 -1
- data/grammars/source.m3u.json +1 -0
- data/grammars/source.matlab.json +1 -1
- data/grammars/source.mo.json +1 -1
- data/grammars/source.moonbit.json +1 -1
- data/grammars/source.mzn.json +1 -0
- data/grammars/source.nasl.json +1 -1
- data/grammars/source.nim.json +1 -1
- data/grammars/source.nr.json +1 -1
- data/grammars/source.nushell.json +1 -1
- data/grammars/source.objc.json +1 -1
- data/grammars/source.odin.json +1 -1
- data/grammars/source.openesql.json +1 -1
- data/grammars/source.openqasm.json +1 -0
- data/grammars/source.overpassql.json +1 -0
- data/grammars/source.polar.json +1 -1
- data/grammars/source.prisma.json +1 -1
- data/grammars/source.purescript.json +1 -1
- data/grammars/source.ql.json +1 -1
- data/grammars/source.qsharp.json +1 -1
- data/grammars/source.rescript.json +1 -1
- data/grammars/source.roc.json +1 -1
- data/grammars/source.rpgle.json +1 -1
- data/grammars/source.rust.json +1 -1
- data/grammars/source.sail.json +1 -0
- data/grammars/source.scala.json +1 -1
- data/grammars/source.scm.json +1 -0
- data/grammars/source.slang.json +1 -0
- data/grammars/source.slice.json +1 -1
- data/grammars/source.slint.json +1 -1
- data/grammars/source.smithy.json +1 -1
- data/grammars/source.soql.json +1 -1
- data/grammars/source.sourcepawn.json +1 -1
- data/grammars/source.stan.json +1 -1
- data/grammars/source.sway.json +1 -1
- data/grammars/source.swift.json +1 -1
- data/grammars/source.tact.json +1 -1
- data/grammars/source.talon.json +1 -1
- data/grammars/source.templ.json +1 -1
- data/grammars/source.textgrid.json +1 -1
- data/grammars/source.toc.json +1 -1
- data/grammars/source.torrc.json +1 -0
- data/grammars/source.ts.prismaClientRawSQL.json +1 -1
- data/grammars/source.tsp.json +1 -1
- data/grammars/source.typst.json +1 -1
- data/grammars/source.uplc.json +1 -0
- data/grammars/source.vba.json +1 -1
- data/grammars/source.vento.json +1 -0
- data/grammars/source.vue.json +1 -1
- data/grammars/source.wdl.json +1 -1
- data/grammars/source.wit.json +1 -1
- data/grammars/source.xmake.json +1 -0
- data/grammars/source.zmodel.json +1 -0
- data/grammars/text.adblock.json +1 -1
- data/grammars/text.html.liquid.json +1 -1
- data/grammars/text.html.markdown.d2.json +1 -1
- data/grammars/text.html.vento.json +1 -0
- data/grammars/text.rtf.json +1 -1
- data/grammars/text.valve-cfg.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/generated.rb +24 -2
- data/lib/linguist/heuristics.yml +65 -18
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +298 -33
- data/lib/linguist/samples.json +1 -1
- data/lib/linguist/shebang.rb +1 -1
- metadata +34 -14
- data/grammars/source.apache-config.json +0 -1
- data/grammars/source.apache-config.mod_perl.json +0 -1
- data/grammars/source.c.platform.json +0 -1
- data/grammars/text.html.erlang.yaws.json +0 -1
data/grammars/source.soql.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"SOQL","scopeName":"source.soql","patterns":[{"include":"#soqlHeaderComment"},{"include":"#soql-query-expression"}],"repository":{"annotation-declaration":{"begin":"([@][_[:alpha:]]+)\\b","end":"(?\u003c=\\)|$)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"storage.type.annotation.apex"}}},"argument-list":{"begin":"\\(","end":"\\)","patterns":[{"include":"#named-argument"},{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"array-creation-expression":{"begin":"(?x)\n\\b(new)\\b\\s*\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?\\s*\n(?=\\[)","end":"(?\u003c=\\])","patterns":[{"include":"#bracketed-argument-list"}],"beginCaptures":{"1":{"name":"keyword.control.new.apex"},"2":{"patterns":[{"include":"#support-type"},{"include":"#type"}]}}},"block":{"begin":"\\{","end":"\\}","patterns":[{"include":"#statement"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.true.apex","match":"(?\u003c!\\.)\\btrue\\b"},{"name":"constant.language.boolean.false.apex","match":"(?\u003c!\\.)\\bfalse\\b"}]},"bracketed-argument-list":{"begin":"\\[","end":"\\]","patterns":[{"include":"#soql-query-expression"},{"include":"#named-argument"},{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.squarebracket.open.apex"}},"endCaptures":{"0":{"name":"punctuation.squarebracket.close.apex"}}},"break-or-continue-statement":{"match":"(?\u003c!\\.)\\b(?:(break)|(continue))\\b","captures":{"1":{"name":"keyword.control.flow.break.apex"},"2":{"name":"keyword.control.flow.continue.apex"}}},"cast-expression":{"match":"(?x)\n(\\()\\s*\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(\\))(?=\\s*@?[_[:alnum:]\\(])","captures":{"1":{"name":"punctuation.parenthesis.open.apex"},"2":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"6":{"name":"punctuation.parenthesis.close.apex"}}},"catch-clause":{"begin":"(?\u003c!\\.)\\b(catch)\\b","end":"(?\u003c=\\})","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"match":"(?x)\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g\u003cidentifier\u003e)\\b)?","captures":{"1":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"5":{"name":"entity.name.variable.local.apex"}}}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#comment"},{"include":"#block"}],"beginCaptures":{"1":{"name":"keyword.control.try.catch.apex"}}},"class-declaration":{"begin":"(?=\\bclass\\b)","end":"(?\u003c=\\})","patterns":[{"begin":"(?x)\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*","end":"(?=\\{)","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#type-parameter-list"},{"include":"#extends-class"},{"include":"#implements-class"}],"beginCaptures":{"1":{"name":"keyword.other.class.apex"},"2":{"name":"entity.name.type.class.apex"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"#class-or-trigger-members"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"}]},"class-or-trigger-members":{"patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#storage-modifier"},{"include":"#sharing-modifier"},{"include":"#type-declarations"},{"include":"#field-declaration"},{"include":"#property-declaration"},{"include":"#indexer-declaration"},{"include":"#variable-initializer"},{"include":"#constructor-declaration"},{"include":"#method-declaration"},{"include":"#punctuation-semicolon"}]},"colon-expression":{"name":"keyword.operator.conditional.colon.apex","match":":"},"comment":{"patterns":[{"name":"comment.block.apex","begin":"/\\*(\\*)?","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}},{"begin":"(^\\s+)?(?=//)","end":"(?=$)","patterns":[{"name":"comment.block.documentation.apex","begin":"(?\u003c!/)///(?!/)","end":"(?=$)","patterns":[{"include":"#xml-doc-comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}},{"name":"comment.line.double-slash.apex","begin":"(?\u003c!/)//(?:(?!/)|(?=//))","end":"(?=$)","beginCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.apex"}}}]},"conditional-operator":{"begin":"(?\u003c!\\?)\\?(?!\\?|\\.|\\[)","end":":","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.conditional.question-mark.apex"}},"endCaptures":{"0":{"name":"keyword.operator.conditional.colon.apex"}}},"constructor-declaration":{"begin":"(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"match":"(@?[_[:alpha:]][_[:alnum:]]*)\\b","captures":{"1":{"name":"entity.name.function.apex"}}},{"begin":"(:)","end":"(?=\\{|=\u003e)","patterns":[{"include":"#constructor-initializer"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.apex"}}},{"include":"#parenthesized-parameter-list"},{"include":"#comment"},{"include":"#expression-body"},{"include":"#block"}]},"constructor-initializer":{"begin":"\\b(?:(this))\\b\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"name":"keyword.other.this.apex"}}},"date-literal-with-params":{"match":"\\b((LAST_N_DAYS|NEXT_N_DAYS|NEXT_N_WEEKS|LAST_N_WEEKS|NEXT_N_MONTHS|LAST_N_MONTHS|NEXT_N_QUARTERS|LAST_N_QUARTERS|NEXT_N_YEARS|LAST_N_YEARS|NEXT_N_FISCAL_QUARTERS|LAST_N_FISCAL_QUARTERS|NEXT_N_FISCAL_YEARS|LAST_N_FISCAL_YEARS)\\s*\\:\\d+)\\b","captures":{"1":{"name":"keyword.operator.query.date.apex"}}},"date-literals":{"match":"\\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\\b\\s*","captures":{"1":{"name":"keyword.operator.query.date.apex"}}},"declarations":{"patterns":[{"include":"#type-declarations"},{"include":"#punctuation-semicolon"}]},"directives":{"patterns":[{"include":"#punctuation-semicolon"}]},"do-statement":{"begin":"(?\u003c!\\.)\\b(do)\\b","end":"(?=;|})","patterns":[{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.loop.do.apex"}}},"element-access-expression":{"begin":"(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list","end":"(?\u003c=\\])(?!\\s*\\[)","patterns":[{"include":"#bracketed-argument-list"}],"beginCaptures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"variable.other.object.property.apex"},"3":{"name":"keyword.operator.null-conditional.apex"}}},"else-part":{"begin":"(?\u003c!\\.)\\b(else)\\b","end":"(?\u003c=\\})|(?=;)","patterns":[{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.else.apex"}}},"enum-declaration":{"begin":"(?=\\benum\\b)","end":"(?\u003c=\\})","patterns":[{"begin":"(?=enum)","end":"(?=\\{)","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"match":"(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)","captures":{"1":{"name":"keyword.other.enum.apex"},"2":{"name":"entity.name.type.enum.apex"}}}]},{"begin":"\\{","end":"\\}","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#punctuation-comma"},{"begin":"@?[_[:alpha:]][_[:alnum:]]*","end":"(?=(,|\\}))","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"0":{"name":"entity.name.variable.enum-member.apex"}}}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"}]},"expression":{"patterns":[{"include":"#comment"},{"include":"#merge-expression"},{"include":"#support-expression"},{"include":"#throw-expression"},{"include":"#this-expression"},{"include":"#trigger-context-declaration"},{"include":"#conditional-operator"},{"include":"#expression-operators"},{"include":"#soql-query-expression"},{"include":"#object-creation-expression"},{"include":"#array-creation-expression"},{"include":"#invocation-expression"},{"include":"#member-access-expression"},{"include":"#element-access-expression"},{"include":"#cast-expression"},{"include":"#literal"},{"include":"#parenthesized-expression"},{"include":"#initializer-expression"},{"include":"#identifier"}]},"expression-body":{"begin":"=\u003e","end":"(?=[,\\);}])","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.arrow.apex"}}},"expression-operators":{"patterns":[{"name":"keyword.operator.assignment.compound.apex","match":"\\*=|/=|%=|\\+=|-="},{"name":"keyword.operator.assignment.compound.bitwise.apex","match":"\\\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.apex","match":"\u003c\u003c|\u003e\u003e"},{"name":"keyword.operator.comparison.apex","match":"==|!="},{"name":"keyword.operator.relational.apex","match":"\u003c=|\u003e=|\u003c|\u003e"},{"name":"keyword.operator.logical.apex","match":"\\!|\u0026\u0026|\\|\\|"},{"name":"keyword.operator.bitwise.apex","match":"\\\u0026|~|\\^|\\|"},{"name":"keyword.operator.assignment.apex","match":"\\="},{"name":"keyword.operator.decrement.apex","match":"--"},{"name":"keyword.operator.increment.apex","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.apex","match":"%|\\*|/|-|\\+"}]},"extends-class":{"begin":"(extends)\\b\\s+([_[:alpha:]][_[:alnum:]]*)","end":"(?={|implements)","beginCaptures":{"1":{"name":"keyword.other.extends.apex"},"2":{"name":"entity.name.type.extends.apex"}}},"field-declaration":{"begin":"(?x)\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g\u003cidentifier\u003e)\\s* # first field name\n(?!=\u003e|==)(?=,|;|=|$)","end":"(?=;)","patterns":[{"name":"entity.name.variable.field.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-comma"},{"include":"#comment"},{"include":"#variable-initializer"},{"include":"#class-or-trigger-members"}],"beginCaptures":{"1":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"5":{"name":"entity.name.variable.field.apex"}}},"finally-clause":{"begin":"(?\u003c!\\.)\\b(finally)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"include":"#block"}],"beginCaptures":{"1":{"name":"keyword.control.try.finally.apex"}}},"for-apex-syntax":{"match":"([_.[:alpha:]][_.[:alnum:]]+)\\s+([_.[:alpha:]][_.[:alnum:]]*)\\s*(\\:)","captures":{"1":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"2":{"name":"entity.name.variable.local.apex"},"3":{"name":"keyword.operator.iterator.colon.apex"}}},"for-statement":{"begin":"(?\u003c!\\.)\\b(for)\\b\\s*(?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#for-apex-syntax"},{"include":"#local-variable-declaration"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"},{"include":"#colon-expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.loop.for.apex"}}},"from-clause":{"match":"(FROM)\\b\\s*([_\\.[:alnum:]]+\\b)?","captures":{"1":{"name":"keyword.operator.query.from.apex"},"2":{"name":"storage.type.apex"}}},"goto-statement":{"begin":"(?\u003c!\\.)\\b(goto)\\b","end":"(?=;)","patterns":[{"begin":"\\b(case)\\b","end":"(?=;)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.case.apex"}}},{"match":"\\b(default)\\b","captures":{"1":{"name":"keyword.control.default.apex"}}},{"name":"entity.name.label.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"}],"beginCaptures":{"1":{"name":"keyword.control.goto.apex"}}},"identifier":{"name":"variable.other.readwrite.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},"if-statement":{"begin":"(?\u003c!\\.)\\b(if)\\b\\s*(?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.if.apex"}}},"implements-class":{"begin":"(implements)\\b\\s+([_[:alpha:]][_[:alnum:]]*)","end":"(?={|extends)","beginCaptures":{"1":{"name":"keyword.other.implements.apex"},"2":{"name":"entity.name.type.implements.apex"}}},"indexer-declaration":{"begin":"(?x)\n(?\u003creturn_type\u003e\n (?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\u003cinterface_name\u003e\\g\u003ctype_name\u003e\\s*\\.\\s*)?\n(?\u003cindexer_name\u003ethis)\\s*\n(?=\\[)","end":"(?\u003c=\\})|(?=;)","patterns":[{"include":"#comment"},{"include":"#property-accessors"},{"include":"#expression-body"},{"include":"#variable-initializer"}],"beginCaptures":{"1":{"patterns":[{"include":"#type"}]},"6":{"patterns":[{"include":"#type"},{"include":"#punctuation-accessor"}]},"7":{"name":"keyword.other.this.apex"}}},"initializer-expression":{"begin":"\\{","end":"\\}","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},"interface-declaration":{"begin":"(?=\\binterface\\b)","end":"(?\u003c=\\})","patterns":[{"begin":"(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)","end":"(?=\\{)","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#type-parameter-list"},{"include":"#extends-class"}],"beginCaptures":{"1":{"name":"keyword.other.interface.apex"},"2":{"name":"entity.name.type.interface.apex"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"#interface-members"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"}]},"interface-members":{"patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#property-declaration"},{"include":"#indexer-declaration"},{"include":"#method-declaration"},{"include":"#punctuation-semicolon"}]},"invocation-expression":{"begin":"(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(?\u003ctype_args\u003e\\s*\u003c([^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\\s* # type arguments\n(?=\\() # open paren of argument list","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"entity.name.function.apex"},"3":{"patterns":[{"include":"#type-arguments"}]}}},"javadoc-comment":{"patterns":[{"name":"comment.block.javadoc.apex","begin":"^\\s*(/\\*\\*)(?!/)","end":"\\*/","patterns":[{"name":"keyword.other.documentation.javadoc.apex","match":"@(deprecated|author|return|see|serial|since|version|usage|name|link)\\b"},{"match":"(@param)\\s+(\\S+)","captures":{"1":{"name":"keyword.other.documentation.javadoc.apex"},"2":{"name":"entity.name.variable.parameter.apex"}}},{"match":"(@(?:exception|throws))\\s+(\\S+)","captures":{"1":{"name":"keyword.other.documentation.javadoc.apex"},"2":{"name":"entity.name.type.class.apex"}}},{"match":"(`([^`]+?)`)","captures":{"1":{"name":"string.quoted.single.apex"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}}]},"literal":{"patterns":[{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#numeric-literal"},{"include":"#string-literal"}]},"local-constant-declaration":{"begin":"(?x)\n(?\u003cconst_keyword\u003e\\b(?:const)\\b)\\s*\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g\u003cidentifier\u003e)\\s*\n(?=,|;|=)","end":"(?=;)","patterns":[{"name":"entity.name.variable.local.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-comma"},{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"1":{"name":"storage.modifier.apex"},"2":{"patterns":[{"include":"#type"}]},"6":{"name":"entity.name.variable.local.apex"}}},"local-declaration":{"patterns":[{"include":"#local-constant-declaration"},{"include":"#local-variable-declaration"}]},"local-variable-declaration":{"begin":"(?x)\n(?:\n (?:(\\bref)\\s+)?(\\bvar\\b)| # ref local\n (?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref local\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g\u003cidentifier\u003e)\\s*\n(?=,|;|=|\\))","end":"(?=;|\\))","patterns":[{"name":"entity.name.variable.local.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-comma"},{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"1":{"name":"storage.modifier.apex"},"2":{"name":"keyword.other.var.apex"},"3":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"7":{"name":"entity.name.variable.local.apex"}}},"member-access-expression":{"patterns":[{"match":"(?x)\n(\\??\\.)\\s* # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|\u003c) # next character is not alpha-numeric, nor a (, [, or \u003c. Also, test for ?[","captures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"variable.other.object.property.apex"}}},{"match":"(?x)\n(\\??\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?\u003ctype_params\u003e\\s*\u003c([^\u003c\u003e]|\\g\u003ctype_params\u003e)+\u003e\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)","captures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"variable.other.object.apex"},"3":{"patterns":[{"include":"#type-arguments"}]}}},{"match":"(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)","captures":{"1":{"name":"variable.other.object.apex"}}}]},"merge-expression":{"begin":"(merge)\\b\\s+","end":"(?\u003c=\\;)","patterns":[{"include":"#object-creation-expression"},{"include":"#merge-type-statement"},{"include":"#expression"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"1":{"name":"support.function.apex"}}},"merge-type-statement":{"match":"([_[:alpha:]]*)\\b\\s+([_[:alpha:]]*)\\b\\s*(\\;)","captures":{"1":{"name":"variable.other.readwrite.apex"},"2":{"name":"variable.other.readwrite.apex"},"3":{"name":"punctuation.terminator.statement.apex"}}},"method-declaration":{"begin":"(?x)\n(?\u003creturn_type\u003e\n (?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\u003cinterface_name\u003e\\g\u003ctype_name\u003e\\s*\\.\\s*)?\n(\\g\u003cidentifier\u003e)\\s*\n(\u003c([^\u003c\u003e]+)\u003e)?\\s*\n(?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"include":"#comment"},{"include":"#parenthesized-parameter-list"},{"include":"#expression-body"},{"include":"#block"}],"beginCaptures":{"1":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"6":{"patterns":[{"include":"#type"},{"include":"#punctuation-accessor"}]},"7":{"patterns":[{"include":"#support-type"},{"include":"#method-name-custom"}]},"8":{"patterns":[{"include":"#type-parameter-list"}]}}},"method-name-custom":{"name":"entity.name.function.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},"named-argument":{"begin":"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)","end":"(?=(,|\\)|\\]))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"entity.name.variable.parameter.apex"},"2":{"name":"punctuation.separator.colon.apex"}}},"null-literal":{"name":"constant.language.null.apex","match":"(?\u003c!\\.)\\bnull\\b"},"numeric-literal":{"patterns":[{"name":"constant.numeric.datetime.apex","match":"\\b(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d{1,3})?(\\-|\\+)\\d{2}\\:\\d{2})\\b"},{"name":"constant.numeric.datetime.apex","match":"\\b(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d{1,3})?(Z)?)\\b"},{"name":"constant.numeric.date.apex","match":"\\b(\\d{4}\\-\\d{2}\\-\\d{2})\\b"},{"name":"constant.numeric.hex.apex","match":"\\b0(x|X)[0-9a-fA-F_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b"},{"name":"constant.numeric.binary.apex","match":"\\b0(b|B)[01_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b"},{"name":"constant.numeric.decimal.apex","match":"\\b([0-9_]+)?\\.[0-9_]+((e|E)[0-9]+)?(F|f|D|d|M|m)?\\b"},{"name":"constant.numeric.decimal.apex","match":"\\b[0-9_]+(e|E)[0-9_]+(F|f|D|d|M|m)?\\b"},{"name":"constant.numeric.decimal.apex","match":"\\b[0-9_]+(F|f|D|d|M|m)\\b"},{"name":"constant.numeric.decimal.apex","match":"\\b[0-9_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b"}]},"object-creation-expression":{"patterns":[{"include":"#object-creation-expression-with-parameters"},{"include":"#object-creation-expression-with-no-parameters"},{"include":"#punctuation-comma"}]},"object-creation-expression-with-no-parameters":{"match":"(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\{|$)","captures":{"1":{"name":"support.function.apex"},"2":{"name":"keyword.control.new.apex"},"3":{"patterns":[{"include":"#support-type"},{"include":"#type"}]}}},"object-creation-expression-with-parameters":{"begin":"(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"name":"support.function.apex"},"2":{"name":"keyword.control.new.apex"},"3":{"patterns":[{"include":"#support-type"},{"include":"#type"}]}}},"operator-assignment":{"name":"keyword.operator.assignment.apex","match":"(?\u003c!=|!)(=)(?!=)"},"operator-safe-navigation":{"name":"keyword.operator.safe-navigation.apex","match":"\\?\\."},"orderby-clause":{"match":"\\b(ORDER BY)\\b\\s*","patterns":[{"include":"#ordering-direction"},{"include":"#ordering-nulls"}],"captures":{"1":{"name":"keyword.operator.query.orderby.apex"}}},"ordering-direction":{"match":"\\b(?:(ASC)|(DESC))\\b","captures":{"1":{"name":"keyword.operator.query.ascending.apex"},"2":{"name":"keyword.operator.query.descending.apex"}}},"ordering-nulls":{"match":"\\b(?:(NULLS FIRST)|(NULLS LAST))\\b","captures":{"1":{"name":"keyword.operator.query.nullsfirst.apex"},"2":{"name":"keyword.operator.query.nullslast.apex"}}},"parameter":{"match":"(?x)\n(?:(?:\\b(this)\\b)\\s+)?\n(?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g\u003cidentifier\u003e)","captures":{"1":{"name":"storage.modifier.apex"},"2":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"6":{"name":"entity.name.variable.parameter.apex"}}},"parenthesized-expression":{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"parenthesized-parameter-list":{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comment"},{"include":"#parameter"},{"include":"#punctuation-comma"},{"include":"#variable-initializer"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"property-accessors":{"begin":"\\{","end":"\\}","patterns":[{"name":"storage.modifier.apex","match":"\\b(private|protected)\\b"},{"name":"keyword.other.get.apex","match":"\\b(get)\\b"},{"name":"keyword.other.set.apex","match":"\\b(set)\\b"},{"include":"#comment"},{"include":"#expression-body"},{"include":"#block"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},"property-declaration":{"begin":"(?x)\n(?!.*\\b(?:class|interface|enum)\\b)\\s*\n(?\u003creturn_type\u003e\n (?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\u003cinterface_name\u003e\\g\u003ctype_name\u003e\\s*\\.\\s*)?\n(?\u003cproperty_name\u003e\\g\u003cidentifier\u003e)\\s*\n(?=\\{|=\u003e|$)","end":"(?\u003c=\\})|(?=;)","patterns":[{"include":"#comment"},{"include":"#property-accessors"},{"include":"#expression-body"},{"include":"#variable-initializer"},{"include":"#class-or-trigger-members"}],"beginCaptures":{"1":{"patterns":[{"include":"#type"}]},"6":{"patterns":[{"include":"#type"},{"include":"#punctuation-accessor"}]},"7":{"name":"entity.name.variable.property.apex"}}},"punctuation-accessor":{"name":"punctuation.accessor.apex","match":"\\."},"punctuation-comma":{"name":"punctuation.separator.comma.apex","match":","},"punctuation-semicolon":{"name":"punctuation.terminator.statement.apex","match":";"},"query-operators":{"match":"\\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\\b\\s*","captures":{"1":{"name":"keyword.operator.query.apex"}}},"return-statement":{"begin":"(?\u003c!\\.)\\b(return)\\b","end":"(?=;)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.flow.return.apex"}}},"script-top-level":{"patterns":[{"include":"#method-declaration"},{"include":"#statement"},{"include":"#punctuation-semicolon"}]},"sharing-modifier":{"name":"sharing.modifier.apex","match":"(?\u003c!\\.)\\b(with sharing|without sharing|inherited sharing)\\b"},"soql-colon-method-statement":{"begin":"(:?\\.)?([_[:alpha:]][_[:alnum:]]*)(?=\\()","end":"(?\u003c=\\))","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"entity.name.function.apex"}}},"soql-colon-vars":{"begin":"(\\:)\\s*","end":"(?![_[:alnum:]]|\\(|(\\?)?\\[|\u003c)","patterns":[{"include":"#trigger-context-declaration"},{"match":"([_[:alpha:]][_[:alnum:]]*)(\\??\\.)","captures":{"1":{"name":"variable.other.object.apex"},"2":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]}}},{"include":"#soql-colon-method-statement"},{"name":"entity.name.variable.local.apex","match":"[_[:alpha:]][_[:alnum:]]*"}],"beginCaptures":{"0":{"name":"keyword.operator.conditional.colon.apex"}}},"soql-functions":{"begin":"\\b(AVG|CALENDAR_MONTH|CALENDAR_QUARTER|CALENDAR_YEAR|convertCurrency|convertTimezone|COUNT|COUNT_DISTINCT|DAY_IN_MONTH|DAY_IN_WEEK|DAY_IN_YEAR|DAY_ONLY|toLabel|INCLUDES|EXCLUDES|FISCAL_MONTH|FISCAL_QUARTER|FISCAL_YEAR|FORMAT|GROUPING|GROUP BY CUBE|GROUP BY ROLLUP|HOUR_IN_DAY|MAX|MIN|SUM|WEEK_IN_MONTH|WEEK_IN_YEAR)\\s*(\\()","end":"\\)","patterns":[{"include":"#literal"},{"include":"#punctuation-comma"},{"include":"#soql-functions"},{"name":"keyword.query.field.apex","match":"[_.[:alpha:]][_.[:alnum:]]*"}],"beginCaptures":{"1":{"name":"support.function.query.apex"},"2":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"soql-group-clauses":{"begin":"\\(","end":"\\)","patterns":[{"include":"#soql-query-expression"},{"include":"#soql-colon-vars"},{"include":"#soql-group-clauses"},{"include":"#punctuation-comma"},{"include":"#operator-assignment"},{"include":"#literal"},{"include":"#query-operators"},{"include":"#date-literals"},{"include":"#date-literal-with-params"},{"include":"#using-scope"},{"name":"keyword.query.field.apex","match":"[_.[:alpha:]][_.[:alnum:]]*"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"soql-query-body":{"patterns":[{"include":"#trigger-context-declaration"},{"include":"#soql-colon-vars"},{"include":"#soql-functions"},{"include":"#from-clause"},{"include":"#where-clause"},{"include":"#query-operators"},{"include":"#date-literals"},{"include":"#date-literal-with-params"},{"include":"#using-scope"},{"include":"#soql-group-clauses"},{"include":"#orderby-clause"},{"include":"#ordering-direction"},{"include":"#ordering-nulls"}]},"soql-query-expression":{"begin":"\\b(SELECT)\\b\\s*","end":"(?=;)|(?=\\])|(?=\\))","patterns":[{"include":"#soql-query-body"},{"include":"#punctuation-comma"},{"include":"#operator-assignment"},{"include":"#parenthesized-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"match":"([_.[:alpha:]][_.[:alnum:]]*)\\s*(\\,)?","captures":{"1":{"name":"keyword.query.field.apex"},"2":{"name":"punctuation.separator.comma.apex"}}}],"beginCaptures":{"1":{"name":"keyword.operator.query.select.apex"}}},"soqlHeaderComment":{"name":"comment.line","begin":"^\\s*//.*$","while":"^\\s*//.*$"},"statement":{"patterns":[{"include":"#comment"},{"include":"#while-statement"},{"include":"#do-statement"},{"include":"#for-statement"},{"include":"#switch-statement"},{"include":"#when-else-statement"},{"include":"#when-sobject-statement"},{"include":"#when-statement"},{"include":"#when-multiple-statement"},{"include":"#if-statement"},{"include":"#else-part"},{"include":"#goto-statement"},{"include":"#return-statement"},{"include":"#break-or-continue-statement"},{"include":"#throw-statement"},{"include":"#try-statement"},{"include":"#soql-query-expression"},{"include":"#local-declaration"},{"include":"#block"},{"include":"#expression"},{"include":"#punctuation-semicolon"}]},"storage-modifier":{"name":"storage.modifier.apex","match":"(?\u003c!\\.)\\b(new|public|protected|private|abstract|virtual|override|global|static|final|transient)\\b"},"string-character-escape":{"name":"constant.character.escape.apex","match":"\\\\."},"string-literal":{"name":"string.quoted.single.apex","begin":"'","end":"(\\')|((?:[^\\\\\\n])$)","patterns":[{"include":"#string-character-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.apex"},"2":{"name":"invalid.illegal.newline.apex"}}},"support-arguments":{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#comment"},{"include":"#support-type"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.apex"}}},"support-class":{"match":"\\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\\b","captures":{"1":{"name":"support.class.apex"}}},"support-expression":{"begin":"(?x)\n(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=\\.|\\s) # supported apex namespaces","end":"(?\u003c=\\)|$)|(?=\\})|(?=;)|(?=\\)|(?=\\]))|(?=\\,)","patterns":[{"include":"#support-type"},{"match":"(?:(\\.))([[:alpha:]]*)(?=\\()","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"support.function.apex"}}},{"match":"(?:(\\.))([[:alpha:]]+)","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"support.type.apex"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#comment"},{"include":"#statement"}],"beginCaptures":{"1":{"name":"support.class.apex"}}},"support-functions":{"match":"\\b(delete|execute|finish|insert|start|undelete|update|upsert)\\b","captures":{"1":{"name":"support.function.apex"}}},"support-name":{"patterns":[{"match":"(\\.)\\s*([[:alpha:]]*)(?=\\()","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"support.function.apex"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"match":"(\\.)\\s*([_[:alpha:]]*)","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"support.type.apex"}}}]},"support-type":{"name":"support.apex","patterns":[{"include":"#comment"},{"include":"#support-class"},{"include":"#support-functions"},{"include":"#support-name"}]},"switch-statement":{"begin":"(?x)\n(switch)\\b\\s+\n(on)\\b\\s+\n(?:([_.?\\'\\(\\)[:alnum:]]+)\\s*)?\n(\\{)","end":"(\\})","patterns":[{"include":"#when-string"},{"include":"#when-else-statement"},{"include":"#when-sobject-statement"},{"include":"#when-statement"},{"include":"#when-multiple-statement"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"1":{"name":"keyword.control.switch.apex"},"2":{"name":"keyword.control.switch.on.apex"},"3":{"patterns":[{"include":"#statement"},{"include":"#parenthesized-expression"}]},"4":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},"this-expression":{"match":"\\b(?:(this))\\b","captures":{"1":{"name":"keyword.other.this.apex"}}},"throw-expression":{"match":"(?\u003c!\\.)\\b(throw)\\b","captures":{"1":{"name":"keyword.control.flow.throw.apex"}}},"throw-statement":{"begin":"(?\u003c!\\.)\\b(throw)\\b","end":"(?=;)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.flow.throw.apex"}}},"trigger-context-declaration":{"begin":"\\b(?:(Trigger))\\b(\\.)\\b","end":"(?=\\})|(?=;)|(?=\\)|(?=\\]))","patterns":[{"name":"support.type.trigger.apex","match":"\\b(isExecuting|isInsert|isUpdate|isDelete|isBefore|isAfter|isUndelete|new|newMap|old|oldMap|size)\\b"},{"match":"(?:(\\??\\.))([[:alpha:]]+)(?=\\()","captures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"support.function.trigger.apex"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#trigger-type-statement"},{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#expression"}],"beginCaptures":{"1":{"name":"support.class.trigger.apex"},"2":{"name":"punctuation.accessor.apex"}}},"trigger-declaration":{"begin":"(?=\\btrigger\\b)","end":"(?\u003c=\\})","patterns":[{"begin":"(?x)\n\\b(trigger)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n\\b(on)\\b\\s+\n([_[:alpha:]][_[:alnum:]]*)\\s*","end":"(?=\\{)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#trigger-type-statement"},{"include":"#trigger-operator-statement"},{"include":"#punctuation-comma"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#type-parameter-list"}],"beginCaptures":{"1":{"name":"keyword.other.trigger.apex"},"2":{"name":"entity.name.type.trigger.apex"},"3":{"name":"keyword.operator.trigger.on.apex"},"4":{"name":"storage.type.apex"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"#statement"},{"include":"#class-or-trigger-members"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"}]},"trigger-operator-statement":{"name":"keyword.operator.trigger.apex","match":"\\b(insert|update|delete|merge|upsert|undelete)\\b"},"trigger-type-statement":{"match":"\\b(?:(before)|(after))\\b","captures":{"1":{"name":"keyword.control.trigger.before.apex"},"2":{"name":"keyword.control.trigger.after.apex"}}},"try-block":{"begin":"(?\u003c!\\.)\\b(try)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"include":"#block"}],"beginCaptures":{"1":{"name":"keyword.control.try.apex"}}},"try-statement":{"patterns":[{"include":"#try-block"},{"include":"#catch-clause"},{"include":"#finally-clause"}]},"type":{"name":"meta.type.apex","patterns":[{"include":"#comment"},{"include":"#type-builtin"},{"include":"#type-name"},{"include":"#type-arguments"},{"include":"#type-array-suffix"},{"include":"#type-nullable-suffix"}]},"type-arguments":{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#comment"},{"include":"#support-type"},{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.apex"}}},"type-array-suffix":{"begin":"\\[","end":"\\]","patterns":[{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.squarebracket.open.apex"}},"endCaptures":{"0":{"name":"punctuation.squarebracket.close.apex"}}},"type-builtin":{"match":"\\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\\b","captures":{"1":{"name":"keyword.type.apex"}}},"type-declarations":{"patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#annotation-declaration"},{"include":"#storage-modifier"},{"include":"#sharing-modifier"},{"include":"#class-declaration"},{"include":"#enum-declaration"},{"include":"#interface-declaration"},{"include":"#trigger-declaration"},{"include":"#punctuation-semicolon"}]},"type-name":{"patterns":[{"match":"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)","captures":{"1":{"name":"storage.type.apex"},"2":{"name":"punctuation.accessor.apex"}}},{"match":"(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"storage.type.apex"}}},{"name":"storage.type.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"}]},"type-nullable-suffix":{"match":"\\?","captures":{"0":{"name":"punctuation.separator.question-mark.apex"}}},"type-parameter-list":{"begin":"\\\u003c","end":"\\\u003e","patterns":[{"match":"(@?[_[:alpha:]][_[:alnum:]]*)\\b","captures":{"1":{"name":"entity.name.type.type-parameter.apex"}}},{"include":"#comment"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.apex"}}},"using-scope":{"match":"((USING SCOPE)\\b\\s*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\\b\\s*","captures":{"1":{"name":"keyword.operator.query.using.apex"}}},"variable-initializer":{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)","end":"(?=[,\\)\\];}])","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.apex"}}},"when-else-statement":{"begin":"(when)\\b\\s+(else)\\b\\s*","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"},"2":{"name":"keyword.control.switch.else.apex"}}},"when-multiple-statement":{"begin":"(when)\\b\\s*","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"}}},"when-sobject-statement":{"begin":"(when)\\b\\s+([_[:alnum:]]+)\\s+([_[:alnum:]]+)\\s*","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"},"2":{"name":"storage.type.apex"},"3":{"name":"entity.name.variable.local.apex"}}},"when-statement":{"begin":"(when)\\b\\s+([\\'_\\-[:alnum:]]+)\\s*","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"},"2":{"patterns":[{"include":"#expression"}]}}},"when-string":{"begin":"(when)(\\b\\s*)((\\')[_.\\,\\'\\s*[:alnum:]]+)","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"},"2":{"name":"punctuation.whitespace.apex"},"3":{"patterns":[{"include":"#when-string-statement"},{"include":"#punctuation-comma"}]}}},"when-string-statement":{"patterns":[{"name":"string.quoted.single.apex","begin":"\\'","end":"\\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.apex"}}}]},"where-clause":{"match":"\\b(WHERE)\\b\\s*","captures":{"1":{"name":"keyword.operator.query.where.apex"}}},"while-statement":{"begin":"(?\u003c!\\.)\\b(while)\\b\\s*(?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.loop.while.apex"}}},"xml-attribute":{"patterns":[{"match":"(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)","captures":{"1":{"name":"entity.other.attribute-name.apex"},"2":{"name":"entity.other.attribute-name.namespace.apex"},"3":{"name":"punctuation.separator.colon.apex"},"4":{"name":"entity.other.attribute-name.localname.apex"},"5":{"name":"punctuation.separator.equals.apex"}}},{"include":"#xml-string"}]},"xml-cdata":{"name":"string.unquoted.cdata.apex","begin":"\u003c!\\[CDATA\\[","end":"\\]\\]\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.apex"}}},"xml-character-entity":{"patterns":[{"name":"constant.character.entity.apex","match":"(?x)\n(\u0026)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)","captures":{"1":{"name":"punctuation.definition.constant.apex"},"3":{"name":"punctuation.definition.constant.apex"}}},{"name":"invalid.illegal.bad-ampersand.apex","match":"\u0026"}]},"xml-comment":{"name":"comment.block.apex","begin":"\u003c!--","end":"--\u003e","beginCaptures":{"0":{"name":"punctuation.definition.comment.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}},"xml-doc-comment":{"patterns":[{"include":"#xml-comment"},{"include":"#xml-character-entity"},{"include":"#xml-cdata"},{"include":"#xml-tag"}]},"xml-string":{"patterns":[{"name":"string.quoted.single.apex","begin":"\\'","end":"\\'","patterns":[{"include":"#xml-character-entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.apex"}}},{"name":"string.quoted.double.apex","begin":"\\\"","end":"\\\"","patterns":[{"include":"#xml-character-entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.stringdoublequote.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.stringdoublequote.end.apex"}}}]},"xml-tag":{"name":"meta.tag.apex","begin":"(?x)\n(\u003c/?)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)","end":"(/?\u003e)","patterns":[{"include":"#xml-attribute"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.apex"},"2":{"name":"entity.name.tag.apex"},"3":{"name":"entity.name.tag.namespace.apex"},"4":{"name":"punctuation.separator.colon.apex"},"5":{"name":"entity.name.tag.localname.apex"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.apex"}}}}}
|
1
|
+
{"name":"SOQL","scopeName":"source.soql","patterns":[{"include":"#soqlHeaderComment"},{"include":"#soql-query-expression"}],"repository":{"annotation-declaration":{"begin":"([@][_[:alpha:]]+)\\b","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"storage.type.annotation.apex"}}},"argument-list":{"begin":"\\(","end":"\\)","patterns":[{"include":"#named-argument"},{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"array-creation-expression":{"begin":"(?x)\n\\b(new)\\b\\s*\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?\\s*\n(?=\\[)","end":"(?\u003c=\\])","patterns":[{"include":"#bracketed-argument-list"}],"beginCaptures":{"1":{"name":"keyword.control.new.apex"},"2":{"patterns":[{"include":"#support-type"},{"include":"#type"}]}}},"block":{"begin":"\\{","end":"\\}","patterns":[{"include":"#statement"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.true.apex","match":"(?\u003c!\\.)\\btrue\\b"},{"name":"constant.language.boolean.false.apex","match":"(?\u003c!\\.)\\bfalse\\b"}]},"bracketed-argument-list":{"begin":"\\[","end":"\\]","patterns":[{"include":"#soql-query-expression"},{"include":"#named-argument"},{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.squarebracket.open.apex"}},"endCaptures":{"0":{"name":"punctuation.squarebracket.close.apex"}}},"break-or-continue-statement":{"match":"(?\u003c!\\.)\\b(?:(break)|(continue))\\b","captures":{"1":{"name":"keyword.control.flow.break.apex"},"2":{"name":"keyword.control.flow.continue.apex"}}},"cast-expression":{"match":"(?x)\n(\\()\\s*\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(\\))(?=\\s*@?[_[:alnum:]\\(])","captures":{"1":{"name":"punctuation.parenthesis.open.apex"},"2":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"6":{"name":"punctuation.parenthesis.close.apex"}}},"catch-clause":{"begin":"(?\u003c!\\.)\\b(catch)\\b","end":"(?\u003c=\\})","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"match":"(?x)\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g\u003cidentifier\u003e)\\b)?","captures":{"1":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"5":{"name":"entity.name.variable.local.apex"}}}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#comment"},{"include":"#block"}],"beginCaptures":{"1":{"name":"keyword.control.try.catch.apex"}}},"class-declaration":{"begin":"(?=\\bclass\\b)","end":"(?\u003c=\\})","patterns":[{"begin":"(?x)\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*","end":"(?=\\{)","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#type-parameter-list"},{"include":"#extends-class"},{"include":"#implements-class"}],"beginCaptures":{"1":{"name":"keyword.other.class.apex"},"2":{"name":"entity.name.type.class.apex"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"#class-or-trigger-members"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"}]},"class-or-trigger-members":{"patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#storage-modifier"},{"include":"#sharing-modifier"},{"include":"#type-declarations"},{"include":"#field-declaration"},{"include":"#property-declaration"},{"include":"#indexer-declaration"},{"include":"#variable-initializer"},{"include":"#constructor-declaration"},{"include":"#method-declaration"},{"include":"#punctuation-semicolon"}]},"colon-expression":{"name":"keyword.operator.conditional.colon.apex","match":":"},"comment":{"patterns":[{"name":"comment.block.apex","begin":"/\\*(\\*)?","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}},{"begin":"(^\\s+)?(?=//)","end":"(?=$)","patterns":[{"name":"comment.block.documentation.apex","begin":"(?\u003c!/)///(?!/)","end":"(?=$)","patterns":[{"include":"#xml-doc-comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}},{"name":"comment.line.double-slash.apex","begin":"(?\u003c!/)//(?:(?!/)|(?=//))","end":"(?=$)","beginCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.apex"}}}]},"conditional-operator":{"begin":"(?\u003c!\\?)\\?(?!\\?|\\.|\\[)","end":":","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.conditional.question-mark.apex"}},"endCaptures":{"0":{"name":"keyword.operator.conditional.colon.apex"}}},"constructor-declaration":{"begin":"(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"match":"(@?[_[:alpha:]][_[:alnum:]]*)\\b","captures":{"1":{"name":"entity.name.function.apex"}}},{"begin":"(:)","end":"(?=\\{|=\u003e)","patterns":[{"include":"#constructor-initializer"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.apex"}}},{"include":"#parenthesized-parameter-list"},{"include":"#comment"},{"include":"#expression-body"},{"include":"#block"}]},"constructor-initializer":{"begin":"\\b(?:(this))\\b\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"name":"keyword.other.this.apex"}}},"date-literal-with-params":{"match":"\\b((LAST_N_DAYS|NEXT_N_DAYS|NEXT_N_WEEKS|LAST_N_WEEKS|NEXT_N_MONTHS|LAST_N_MONTHS|NEXT_N_QUARTERS|LAST_N_QUARTERS|NEXT_N_YEARS|LAST_N_YEARS|NEXT_N_FISCAL_QUARTERS|LAST_N_FISCAL_QUARTERS|NEXT_N_FISCAL_YEARS|LAST_N_FISCAL_YEARS)\\s*\\:\\d+)\\b","captures":{"1":{"name":"keyword.operator.query.date.apex"}}},"date-literals":{"match":"\\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\\b\\s*","captures":{"1":{"name":"keyword.operator.query.date.apex"}}},"declarations":{"patterns":[{"include":"#type-declarations"},{"include":"#punctuation-semicolon"}]},"directives":{"patterns":[{"include":"#punctuation-semicolon"}]},"do-statement":{"begin":"(?\u003c!\\.)\\b(do)\\b","end":"(?=;|})","patterns":[{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.loop.do.apex"}}},"element-access-expression":{"begin":"(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list","end":"(?\u003c=\\])(?!\\s*\\[)","patterns":[{"include":"#bracketed-argument-list"}],"beginCaptures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"variable.other.object.property.apex"},"3":{"name":"keyword.operator.null-conditional.apex"}}},"else-part":{"begin":"(?\u003c!\\.)\\b(else)\\b","end":"(?\u003c=\\})|(?=;)","patterns":[{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.else.apex"}}},"enum-declaration":{"begin":"(?=\\benum\\b)","end":"(?\u003c=\\})","patterns":[{"begin":"(?=enum)","end":"(?=\\{)","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"match":"(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)","captures":{"1":{"name":"keyword.other.enum.apex"},"2":{"name":"entity.name.type.enum.apex"}}}]},{"begin":"\\{","end":"\\}","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#punctuation-comma"},{"begin":"@?[_[:alpha:]][_[:alnum:]]*","end":"(?=(,|\\}))","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"0":{"name":"entity.name.variable.enum-member.apex"}}}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"}]},"expression":{"patterns":[{"include":"#comment"},{"include":"#merge-expression"},{"include":"#support-expression"},{"include":"#throw-expression"},{"include":"#this-expression"},{"include":"#trigger-context-declaration"},{"include":"#conditional-operator"},{"include":"#expression-operators"},{"include":"#soql-query-expression"},{"include":"#object-creation-expression"},{"include":"#array-creation-expression"},{"include":"#invocation-expression"},{"include":"#member-access-expression"},{"include":"#element-access-expression"},{"include":"#cast-expression"},{"include":"#literal"},{"include":"#parenthesized-expression"},{"include":"#initializer-expression"},{"include":"#identifier"}]},"expression-body":{"begin":"=\u003e","end":"(?=[,\\);}])","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.arrow.apex"}}},"expression-operators":{"patterns":[{"name":"keyword.operator.assignment.compound.apex","match":"\\*=|/=|%=|\\+=|-="},{"name":"keyword.operator.assignment.compound.bitwise.apex","match":"\\\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.apex","match":"\u003c\u003c|\u003e\u003e"},{"name":"keyword.operator.comparison.apex","match":"==|!="},{"name":"keyword.operator.relational.apex","match":"\u003c=|\u003e=|\u003c|\u003e"},{"name":"keyword.operator.logical.apex","match":"\\!|\u0026\u0026|\\|\\|"},{"name":"keyword.operator.bitwise.apex","match":"\\\u0026|~|\\^|\\|"},{"name":"keyword.operator.assignment.apex","match":"\\="},{"name":"keyword.operator.decrement.apex","match":"--"},{"name":"keyword.operator.increment.apex","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.apex","match":"%|\\*|/|-|\\+"}]},"extends-class":{"begin":"(extends)\\b\\s+([_[:alpha:]][_[:alnum:]]*)","end":"(?={|implements)","beginCaptures":{"1":{"name":"keyword.other.extends.apex"},"2":{"name":"entity.name.type.extends.apex"}}},"field-declaration":{"begin":"(?x)\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g\u003cidentifier\u003e)\\s* # first field name\n(?!=\u003e|==)(?=,|;|=|$)","end":"(?=;)","patterns":[{"name":"entity.name.variable.field.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-comma"},{"include":"#comment"},{"include":"#variable-initializer"},{"include":"#class-or-trigger-members"}],"beginCaptures":{"1":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"5":{"name":"entity.name.variable.field.apex"}}},"finally-clause":{"begin":"(?\u003c!\\.)\\b(finally)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"include":"#block"}],"beginCaptures":{"1":{"name":"keyword.control.try.finally.apex"}}},"for-apex-syntax":{"match":"([_.[:alpha:]][_.[:alnum:]]+)\\s+([_.[:alpha:]][_.[:alnum:]]*)\\s*(\\:)","captures":{"1":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"2":{"name":"entity.name.variable.local.apex"},"3":{"name":"keyword.operator.iterator.colon.apex"}}},"for-statement":{"begin":"(?\u003c!\\.)\\b(for)\\b\\s*(?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#for-apex-syntax"},{"include":"#local-variable-declaration"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"},{"include":"#colon-expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.loop.for.apex"}}},"from-clause":{"match":"(FROM)\\b\\s*([_\\.[:alnum:]]+\\b)?","captures":{"1":{"name":"keyword.operator.query.from.apex"},"2":{"name":"storage.type.apex"}}},"goto-statement":{"begin":"(?\u003c!\\.)\\b(goto)\\b","end":"(?=;)","patterns":[{"begin":"\\b(case)\\b","end":"(?=;)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.case.apex"}}},{"match":"\\b(default)\\b","captures":{"1":{"name":"keyword.control.default.apex"}}},{"name":"entity.name.label.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"}],"beginCaptures":{"1":{"name":"keyword.control.goto.apex"}}},"identifier":{"name":"variable.other.readwrite.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},"if-statement":{"begin":"(?\u003c!\\.)\\b(if)\\b\\s*(?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.if.apex"}}},"implements-class":{"begin":"(implements)\\b\\s+([_[:alpha:]][_[:alnum:]]*)","end":"(?={|extends)","beginCaptures":{"1":{"name":"keyword.other.implements.apex"},"2":{"name":"entity.name.type.implements.apex"}}},"indexer-declaration":{"begin":"(?x)\n(?\u003creturn_type\u003e\n (?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\u003cinterface_name\u003e\\g\u003ctype_name\u003e\\s*\\.\\s*)?\n(?\u003cindexer_name\u003ethis)\\s*\n(?=\\[)","end":"(?\u003c=\\})|(?=;)","patterns":[{"include":"#comment"},{"include":"#property-accessors"},{"include":"#expression-body"},{"include":"#variable-initializer"}],"beginCaptures":{"1":{"patterns":[{"include":"#type"}]},"6":{"patterns":[{"include":"#type"},{"include":"#punctuation-accessor"}]},"7":{"name":"keyword.other.this.apex"}}},"initializer-expression":{"begin":"\\{","end":"\\}","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},"interface-declaration":{"begin":"(?=\\binterface\\b)","end":"(?\u003c=\\})","patterns":[{"begin":"(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)","end":"(?=\\{)","patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#type-parameter-list"},{"include":"#extends-class"}],"beginCaptures":{"1":{"name":"keyword.other.interface.apex"},"2":{"name":"entity.name.type.interface.apex"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"#interface-members"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"}]},"interface-members":{"patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#property-declaration"},{"include":"#indexer-declaration"},{"include":"#method-declaration"},{"include":"#punctuation-semicolon"}]},"invocation-expression":{"begin":"(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(?\u003ctype_args\u003e\\s*\u003c([^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\\s* # type arguments\n(?=\\() # open paren of argument list","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"entity.name.function.apex"},"3":{"patterns":[{"include":"#type-arguments"}]}}},"javadoc-comment":{"patterns":[{"name":"comment.block.javadoc.apex","begin":"^\\s*(/\\*\\*)(?!/)","end":"\\*/","patterns":[{"name":"keyword.other.documentation.javadoc.apex","match":"@(deprecated|author|return|see|serial|since|version|usage|name|link)\\b"},{"match":"(@param)\\s+(\\S+)","captures":{"1":{"name":"keyword.other.documentation.javadoc.apex"},"2":{"name":"entity.name.variable.parameter.apex"}}},{"match":"(@(?:exception|throws))\\s+(\\S+)","captures":{"1":{"name":"keyword.other.documentation.javadoc.apex"},"2":{"name":"entity.name.type.class.apex"}}},{"match":"(`([^`]+?)`)","captures":{"1":{"name":"string.quoted.single.apex"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}}]},"literal":{"patterns":[{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#numeric-literal"},{"include":"#string-literal"}]},"local-constant-declaration":{"begin":"(?x)\n(?\u003cconst_keyword\u003e\\b(?:const)\\b)\\s*\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g\u003cidentifier\u003e)\\s*\n(?=,|;|=)","end":"(?=;)","patterns":[{"name":"entity.name.variable.local.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-comma"},{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"1":{"name":"storage.modifier.apex"},"2":{"patterns":[{"include":"#type"}]},"6":{"name":"entity.name.variable.local.apex"}}},"local-declaration":{"patterns":[{"include":"#local-constant-declaration"},{"include":"#local-variable-declaration"}]},"local-variable-declaration":{"begin":"(?x)\n(?:\n (?:(\\bref)\\s+)?(\\bvar\\b)| # ref local\n (?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref local\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g\u003cidentifier\u003e)\\s*\n(?=,|;|=|\\))","end":"(?=;|\\))","patterns":[{"name":"entity.name.variable.local.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-comma"},{"include":"#comment"},{"include":"#variable-initializer"}],"beginCaptures":{"1":{"name":"storage.modifier.apex"},"2":{"name":"keyword.other.var.apex"},"3":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"7":{"name":"entity.name.variable.local.apex"}}},"member-access-expression":{"patterns":[{"match":"(?x)\n(\\??\\.)\\s* # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|\u003c) # next character is not alpha-numeric, nor a (, [, or \u003c. Also, test for ?[","captures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"variable.other.object.property.apex"}}},{"match":"(?x)\n(\\??\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?\u003ctype_params\u003e\\s*\u003c([^\u003c\u003e]|\\g\u003ctype_params\u003e)+\u003e\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)","captures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"variable.other.object.apex"},"3":{"patterns":[{"include":"#type-arguments"}]}}},{"match":"(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)","captures":{"1":{"name":"variable.other.object.apex"}}}]},"merge-expression":{"begin":"(merge)\\b\\s+","end":"(?\u003c=\\;)","patterns":[{"include":"#object-creation-expression"},{"include":"#merge-type-statement"},{"include":"#expression"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"1":{"name":"support.function.apex"}}},"merge-type-statement":{"match":"([_[:alpha:]]*)\\b\\s+([_[:alpha:]]*)\\b\\s*(\\;)","captures":{"1":{"name":"variable.other.readwrite.apex"},"2":{"name":"variable.other.readwrite.apex"},"3":{"name":"punctuation.terminator.statement.apex"}}},"method-declaration":{"begin":"(?x)\n(?\u003creturn_type\u003e\n (?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\u003cinterface_name\u003e\\g\u003ctype_name\u003e\\s*\\.\\s*)?\n(\\g\u003cidentifier\u003e)\\s*\n(\u003c([^\u003c\u003e]+)\u003e)?\\s*\n(?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"include":"#comment"},{"include":"#parenthesized-parameter-list"},{"include":"#expression-body"},{"include":"#block"}],"beginCaptures":{"1":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"6":{"patterns":[{"include":"#type"},{"include":"#punctuation-accessor"}]},"7":{"patterns":[{"include":"#support-type"},{"include":"#method-name-custom"}]},"8":{"patterns":[{"include":"#type-parameter-list"}]}}},"method-name-custom":{"name":"entity.name.function.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"},"named-argument":{"begin":"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)","end":"(?=(,|\\)|\\]))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"entity.name.variable.parameter.apex"},"2":{"name":"punctuation.separator.colon.apex"}}},"null-literal":{"name":"constant.language.null.apex","match":"(?\u003c!\\.)\\bnull\\b"},"numeric-literal":{"patterns":[{"name":"constant.numeric.datetime.apex","match":"\\b(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d{1,3})?(\\-|\\+)\\d{2}\\:\\d{2})\\b"},{"name":"constant.numeric.datetime.apex","match":"\\b(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d{1,3})?(Z)?)\\b"},{"name":"constant.numeric.date.apex","match":"\\b(\\d{4}\\-\\d{2}\\-\\d{2})\\b"},{"name":"constant.numeric.hex.apex","match":"\\b0(x|X)[0-9a-fA-F_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b"},{"name":"constant.numeric.binary.apex","match":"\\b0(b|B)[01_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b"},{"name":"constant.numeric.decimal.apex","match":"\\b([0-9_]+)?\\.[0-9_]+((e|E)[0-9]+)?(F|f|D|d|M|m)?\\b"},{"name":"constant.numeric.decimal.apex","match":"\\b[0-9_]+(e|E)[0-9_]+(F|f|D|d|M|m)?\\b"},{"name":"constant.numeric.decimal.apex","match":"\\b[0-9_]+(F|f|D|d|M|m)\\b"},{"name":"constant.numeric.decimal.apex","match":"\\b[0-9_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b"}]},"object-creation-expression":{"patterns":[{"include":"#object-creation-expression-with-parameters"},{"include":"#object-creation-expression-with-no-parameters"},{"include":"#punctuation-comma"}]},"object-creation-expression-with-no-parameters":{"match":"(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\{|$)","captures":{"1":{"name":"support.function.apex"},"2":{"name":"keyword.control.new.apex"},"3":{"patterns":[{"include":"#support-type"},{"include":"#type"}]}}},"object-creation-expression-with-parameters":{"begin":"(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?\u003ctype_name\u003e\n (?:\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"name":"support.function.apex"},"2":{"name":"keyword.control.new.apex"},"3":{"patterns":[{"include":"#support-type"},{"include":"#type"}]}}},"operator-assignment":{"name":"keyword.operator.assignment.apex","match":"(?\u003c!=|!)(=)(?!=)"},"operator-safe-navigation":{"name":"keyword.operator.safe-navigation.apex","match":"\\?\\."},"orderby-clause":{"match":"\\b(ORDER BY)\\b\\s*","patterns":[{"include":"#ordering-direction"},{"include":"#ordering-nulls"}],"captures":{"1":{"name":"keyword.operator.query.orderby.apex"}}},"ordering-direction":{"match":"\\b(?:(ASC)|(DESC))\\b","captures":{"1":{"name":"keyword.operator.query.ascending.apex"},"2":{"name":"keyword.operator.query.descending.apex"}}},"ordering-nulls":{"match":"\\b(?:(NULLS FIRST)|(NULLS LAST))\\b","captures":{"1":{"name":"keyword.operator.query.nullsfirst.apex"},"2":{"name":"keyword.operator.query.nullslast.apex"}}},"parameter":{"match":"(?x)\n(?:(?:\\b(this)\\b)\\s+)?\n(?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g\u003cidentifier\u003e)","captures":{"1":{"name":"storage.modifier.apex"},"2":{"patterns":[{"include":"#support-type"},{"include":"#type"}]},"6":{"name":"entity.name.variable.parameter.apex"}}},"parenthesized-expression":{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"parenthesized-parameter-list":{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comment"},{"include":"#parameter"},{"include":"#punctuation-comma"},{"include":"#variable-initializer"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"property-accessors":{"begin":"\\{","end":"\\}","patterns":[{"name":"storage.modifier.apex","match":"\\b(private|protected)\\b"},{"name":"keyword.other.get.apex","match":"\\b(get)\\b"},{"name":"keyword.other.set.apex","match":"\\b(set)\\b"},{"include":"#comment"},{"include":"#expression-body"},{"include":"#block"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},"property-declaration":{"begin":"(?x)\n(?!.*\\b(?:class|interface|enum)\\b)\\s*\n(?\u003creturn_type\u003e\n (?\u003ctype_name\u003e\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?\u003cidentifier\u003e@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?\u003cname_and_type_args\u003e # identifier + type arguments (if any)\n \\g\u003cidentifier\u003e\\s*\n (?\u003ctype_args\u003e\\s*\u003c(?:[^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\n )\n (?:\\s*\\.\\s*\\g\u003cname_and_type_args\u003e)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\u003cinterface_name\u003e\\g\u003ctype_name\u003e\\s*\\.\\s*)?\n(?\u003cproperty_name\u003e\\g\u003cidentifier\u003e)\\s*\n(?=\\{|=\u003e|$)","end":"(?\u003c=\\})|(?=;)","patterns":[{"include":"#comment"},{"include":"#property-accessors"},{"include":"#expression-body"},{"include":"#variable-initializer"},{"include":"#class-or-trigger-members"}],"beginCaptures":{"1":{"patterns":[{"include":"#type"}]},"6":{"patterns":[{"include":"#type"},{"include":"#punctuation-accessor"}]},"7":{"name":"entity.name.variable.property.apex"}}},"punctuation-accessor":{"name":"punctuation.accessor.apex","match":"\\."},"punctuation-comma":{"name":"punctuation.separator.comma.apex","match":","},"punctuation-semicolon":{"name":"punctuation.terminator.statement.apex","match":";"},"query-operators":{"match":"\\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\\b\\s*","captures":{"1":{"name":"keyword.operator.query.apex"}}},"return-statement":{"begin":"(?\u003c!\\.)\\b(return)\\b","end":"(?=;)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.flow.return.apex"}}},"script-top-level":{"patterns":[{"include":"#method-declaration"},{"include":"#statement"},{"include":"#punctuation-semicolon"}]},"sharing-modifier":{"name":"sharing.modifier.apex","match":"(?\u003c!\\.)\\b(with sharing|without sharing|inherited sharing)\\b"},"soql-colon-method-statement":{"begin":"(:?\\.)?([_[:alpha:]][_[:alnum:]]*)(?=\\()","end":"(?\u003c=\\))","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"entity.name.function.apex"}}},"soql-colon-vars":{"begin":"(\\:)\\s*","end":"(?![_[:alnum:]]|\\(|(\\?)?\\[|\u003c)","patterns":[{"include":"#trigger-context-declaration"},{"match":"([_[:alpha:]][_[:alnum:]]*)(\\??\\.)","captures":{"1":{"name":"variable.other.object.apex"},"2":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]}}},{"include":"#soql-colon-method-statement"},{"name":"entity.name.variable.local.apex","match":"[_[:alpha:]][_[:alnum:]]*"}],"beginCaptures":{"0":{"name":"keyword.operator.conditional.colon.apex"}}},"soql-functions":{"begin":"\\b(AVG|CALENDAR_MONTH|CALENDAR_QUARTER|CALENDAR_YEAR|convertCurrency|convertTimezone|COUNT|COUNT_DISTINCT|DAY_IN_MONTH|DAY_IN_WEEK|DAY_IN_YEAR|DAY_ONLY|toLabel|INCLUDES|EXCLUDES|FISCAL_MONTH|FISCAL_QUARTER|FISCAL_YEAR|FORMAT|GROUPING|GROUP BY CUBE|GROUP BY ROLLUP|HOUR_IN_DAY|MAX|MIN|SUM|WEEK_IN_MONTH|WEEK_IN_YEAR)\\s*(\\()","end":"\\)","patterns":[{"include":"#literal"},{"include":"#punctuation-comma"},{"include":"#soql-functions"},{"name":"keyword.query.field.apex","match":"[_.[:alpha:]][_.[:alnum:]]*"}],"beginCaptures":{"1":{"name":"support.function.query.apex"},"2":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"soql-group-clauses":{"begin":"\\(","end":"\\)","patterns":[{"include":"#soql-query-expression"},{"include":"#soql-colon-vars"},{"include":"#soql-group-clauses"},{"include":"#punctuation-comma"},{"include":"#operator-assignment"},{"include":"#literal"},{"include":"#query-operators"},{"include":"#date-literals"},{"include":"#date-literal-with-params"},{"include":"#using-scope"},{"name":"keyword.query.field.apex","match":"[_.[:alpha:]][_.[:alnum:]]*"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},"soql-query-body":{"patterns":[{"include":"#trigger-context-declaration"},{"include":"#soql-colon-vars"},{"include":"#soql-functions"},{"include":"#from-clause"},{"include":"#where-clause"},{"include":"#query-operators"},{"include":"#date-literals"},{"include":"#date-literal-with-params"},{"include":"#using-scope"},{"include":"#soql-group-clauses"},{"include":"#orderby-clause"},{"include":"#ordering-direction"},{"include":"#ordering-nulls"}]},"soql-query-expression":{"begin":"\\b(SELECT)\\b\\s*","end":"(?=;)|(?=\\])|(?=\\))","patterns":[{"include":"#soql-query-body"},{"include":"#punctuation-comma"},{"include":"#operator-assignment"},{"include":"#parenthesized-expression"},{"include":"#expression-operators"},{"include":"#literal"},{"match":"([_.[:alpha:]][_.[:alnum:]]*)\\s*(\\,)?","captures":{"1":{"name":"keyword.query.field.apex"},"2":{"name":"punctuation.separator.comma.apex"}}}],"beginCaptures":{"1":{"name":"keyword.operator.query.select.apex"}}},"soqlHeaderComment":{"name":"comment.line","begin":"^\\s*//.*$","while":"^\\s*//.*$"},"statement":{"patterns":[{"include":"#comment"},{"include":"#while-statement"},{"include":"#do-statement"},{"include":"#for-statement"},{"include":"#switch-statement"},{"include":"#when-else-statement"},{"include":"#when-sobject-statement"},{"include":"#when-statement"},{"include":"#when-multiple-statement"},{"include":"#if-statement"},{"include":"#else-part"},{"include":"#goto-statement"},{"include":"#return-statement"},{"include":"#break-or-continue-statement"},{"include":"#throw-statement"},{"include":"#try-statement"},{"include":"#soql-query-expression"},{"include":"#local-declaration"},{"include":"#block"},{"include":"#expression"},{"include":"#punctuation-semicolon"}]},"storage-modifier":{"name":"storage.modifier.apex","match":"(?\u003c!\\.)\\b(new|public|protected|private|abstract|virtual|override|global|static|final|transient)\\b"},"string-character-escape":{"name":"constant.character.escape.apex","match":"\\\\."},"string-literal":{"name":"string.quoted.single.apex","begin":"'","end":"(\\')|((?:[^\\\\\\n])$)","patterns":[{"include":"#string-character-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.apex"},"2":{"name":"invalid.illegal.newline.apex"}}},"support-arguments":{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#comment"},{"include":"#support-type"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.apex"}}},"support-class":{"match":"\\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\\b","captures":{"1":{"name":"support.class.apex"}}},"support-expression":{"begin":"(?x)\n(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=\\.|\\s) # supported apex namespaces","end":"(?\u003c=\\)|$)|(?=\\})|(?=;)|(?=\\)|(?=\\]))|(?=\\,)","patterns":[{"include":"#support-type"},{"match":"(?:(\\.))([[:alpha:]]*)(?=\\()","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"support.function.apex"}}},{"match":"(?:(\\.))([[:alpha:]]+)","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"support.type.apex"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#comment"},{"include":"#statement"}],"beginCaptures":{"1":{"name":"support.class.apex"}}},"support-functions":{"match":"\\b(delete|execute|finish|insert|start|undelete|update|upsert)\\b","captures":{"1":{"name":"support.function.apex"}}},"support-name":{"patterns":[{"match":"(\\.)\\s*([[:alpha:]]*)(?=\\()","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"support.function.apex"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"match":"(\\.)\\s*([_[:alpha:]]*)","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"support.type.apex"}}}]},"support-type":{"name":"support.apex","patterns":[{"include":"#comment"},{"include":"#support-class"},{"include":"#support-functions"},{"include":"#support-name"}]},"switch-statement":{"begin":"(?x)\n(switch)\\b\\s+\n(on)\\b\\s+\n(?:([_.?\\'\\(\\)[:alnum:]]+)\\s*)?\n(\\{)","end":"(\\})","patterns":[{"include":"#when-string"},{"include":"#when-else-statement"},{"include":"#when-sobject-statement"},{"include":"#when-statement"},{"include":"#when-multiple-statement"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"}],"beginCaptures":{"1":{"name":"keyword.control.switch.apex"},"2":{"name":"keyword.control.switch.on.apex"},"3":{"patterns":[{"include":"#statement"},{"include":"#parenthesized-expression"}]},"4":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},"this-expression":{"match":"\\b(?:(this))\\b","captures":{"1":{"name":"keyword.other.this.apex"}}},"throw-expression":{"match":"(?\u003c!\\.)\\b(throw)\\b","captures":{"1":{"name":"keyword.control.flow.throw.apex"}}},"throw-statement":{"begin":"(?\u003c!\\.)\\b(throw)\\b","end":"(?=;)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.flow.throw.apex"}}},"trigger-context-declaration":{"begin":"\\b(?:(Trigger))\\b(\\.)\\b","end":"(?=\\})|(?=;)|(?=\\)|(?=\\]))","patterns":[{"name":"support.type.trigger.apex","match":"\\b(isExecuting|isInsert|isUpdate|isDelete|isBefore|isAfter|isUndelete|new|newMap|old|oldMap|size)\\b"},{"match":"(?:(\\??\\.))([[:alpha:]]+)(?=\\()","captures":{"1":{"patterns":[{"include":"#punctuation-accessor"},{"include":"#operator-safe-navigation"}]},"2":{"name":"support.function.trigger.apex"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#trigger-type-statement"},{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#expression"}],"beginCaptures":{"1":{"name":"support.class.trigger.apex"},"2":{"name":"punctuation.accessor.apex"}}},"trigger-declaration":{"begin":"(?=\\btrigger\\b)","end":"(?\u003c=\\})","patterns":[{"begin":"(?x)\n\\b(trigger)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n\\b(on)\\b\\s+\n([_[:alpha:]][_[:alnum:]]*)\\s*","end":"(?=\\{)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#trigger-type-statement"},{"include":"#trigger-operator-statement"},{"include":"#punctuation-comma"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#type-parameter-list"}],"beginCaptures":{"1":{"name":"keyword.other.trigger.apex"},"2":{"name":"entity.name.type.trigger.apex"},"3":{"name":"keyword.operator.trigger.on.apex"},"4":{"name":"storage.type.apex"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"#statement"},{"include":"#class-or-trigger-members"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.apex"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.apex"}}},{"include":"#javadoc-comment"},{"include":"#comment"}]},"trigger-operator-statement":{"name":"keyword.operator.trigger.apex","match":"\\b(insert|update|delete|merge|upsert|undelete)\\b"},"trigger-type-statement":{"match":"\\b(?:(before)|(after))\\b","captures":{"1":{"name":"keyword.control.trigger.before.apex"},"2":{"name":"keyword.control.trigger.after.apex"}}},"try-block":{"begin":"(?\u003c!\\.)\\b(try)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comment"},{"include":"#block"}],"beginCaptures":{"1":{"name":"keyword.control.try.apex"}}},"try-statement":{"patterns":[{"include":"#try-block"},{"include":"#catch-clause"},{"include":"#finally-clause"}]},"type":{"name":"meta.type.apex","patterns":[{"include":"#comment"},{"include":"#type-builtin"},{"include":"#type-name"},{"include":"#type-arguments"},{"include":"#type-array-suffix"},{"include":"#type-nullable-suffix"}]},"type-arguments":{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#comment"},{"include":"#support-type"},{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.apex"}}},"type-array-suffix":{"begin":"\\[","end":"\\]","patterns":[{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.squarebracket.open.apex"}},"endCaptures":{"0":{"name":"punctuation.squarebracket.close.apex"}}},"type-builtin":{"match":"\\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\\b","captures":{"1":{"name":"keyword.type.apex"}}},"type-declarations":{"patterns":[{"include":"#javadoc-comment"},{"include":"#comment"},{"include":"#annotation-declaration"},{"include":"#storage-modifier"},{"include":"#sharing-modifier"},{"include":"#class-declaration"},{"include":"#enum-declaration"},{"include":"#interface-declaration"},{"include":"#trigger-declaration"},{"include":"#punctuation-semicolon"}]},"type-name":{"patterns":[{"match":"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)","captures":{"1":{"name":"storage.type.apex"},"2":{"name":"punctuation.accessor.apex"}}},{"match":"(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.apex"},"2":{"name":"storage.type.apex"}}},{"name":"storage.type.apex","match":"@?[_[:alpha:]][_[:alnum:]]*"}]},"type-nullable-suffix":{"match":"\\?","captures":{"0":{"name":"punctuation.separator.question-mark.apex"}}},"type-parameter-list":{"begin":"\\\u003c","end":"\\\u003e","patterns":[{"match":"(@?[_[:alpha:]][_[:alnum:]]*)\\b","captures":{"1":{"name":"entity.name.type.type-parameter.apex"}}},{"include":"#comment"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.apex"}}},"using-scope":{"match":"((USING SCOPE)\\b\\s*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\\b\\s*","captures":{"1":{"name":"keyword.operator.query.using.apex"}}},"variable-initializer":{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)","end":"(?=[,\\)\\];}])","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.apex"}}},"when-else-statement":{"begin":"(when)\\b\\s+(else)\\b\\s*","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"},"2":{"name":"keyword.control.switch.else.apex"}}},"when-multiple-statement":{"begin":"(when)\\b\\s*","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"}}},"when-sobject-statement":{"begin":"(when)\\b\\s+([_[:alnum:]]+)\\s+([_[:alnum:]]+)\\s*","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"},"2":{"name":"storage.type.apex"},"3":{"name":"entity.name.variable.local.apex"}}},"when-statement":{"begin":"(when)\\b\\s+([\\'_\\-[:alnum:]]+)\\s*","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"},"2":{"patterns":[{"include":"#expression"}]}}},"when-string":{"begin":"(when)(\\b\\s*)((\\')[_.\\,\\'\\s*[:alnum:]]+)","end":"(?\u003c=\\})","patterns":[{"include":"#block"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.switch.when.apex"},"2":{"name":"punctuation.whitespace.apex"},"3":{"patterns":[{"include":"#when-string-statement"},{"include":"#punctuation-comma"}]}}},"when-string-statement":{"patterns":[{"name":"string.quoted.single.apex","begin":"\\'","end":"\\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.apex"}}}]},"where-clause":{"match":"\\b(WHERE)\\b\\s*","captures":{"1":{"name":"keyword.operator.query.where.apex"}}},"while-statement":{"begin":"(?\u003c!\\.)\\b(while)\\b\\s*(?=\\()","end":"(?\u003c=\\})|(?=;)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.apex"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.apex"}}},{"include":"#statement"}],"beginCaptures":{"1":{"name":"keyword.control.loop.while.apex"}}},"xml-attribute":{"patterns":[{"match":"(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)","captures":{"1":{"name":"entity.other.attribute-name.apex"},"2":{"name":"entity.other.attribute-name.namespace.apex"},"3":{"name":"punctuation.separator.colon.apex"},"4":{"name":"entity.other.attribute-name.localname.apex"},"5":{"name":"punctuation.separator.equals.apex"}}},{"include":"#xml-string"}]},"xml-cdata":{"name":"string.unquoted.cdata.apex","begin":"\u003c!\\[CDATA\\[","end":"\\]\\]\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.apex"}}},"xml-character-entity":{"patterns":[{"name":"constant.character.entity.apex","match":"(?x)\n(\u0026)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)","captures":{"1":{"name":"punctuation.definition.constant.apex"},"3":{"name":"punctuation.definition.constant.apex"}}},{"name":"invalid.illegal.bad-ampersand.apex","match":"\u0026"}]},"xml-comment":{"name":"comment.block.apex","begin":"\u003c!--","end":"--\u003e","beginCaptures":{"0":{"name":"punctuation.definition.comment.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.apex"}}},"xml-doc-comment":{"patterns":[{"include":"#xml-comment"},{"include":"#xml-character-entity"},{"include":"#xml-cdata"},{"include":"#xml-tag"}]},"xml-string":{"patterns":[{"name":"string.quoted.single.apex","begin":"\\'","end":"\\'","patterns":[{"include":"#xml-character-entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.apex"}}},{"name":"string.quoted.double.apex","begin":"\\\"","end":"\\\"","patterns":[{"include":"#xml-character-entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.stringdoublequote.begin.apex"}},"endCaptures":{"0":{"name":"punctuation.definition.stringdoublequote.end.apex"}}}]},"xml-tag":{"name":"meta.tag.apex","begin":"(?x)\n(\u003c/?)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)","end":"(/?\u003e)","patterns":[{"include":"#xml-attribute"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.apex"},"2":{"name":"entity.name.tag.apex"},"3":{"name":"entity.name.tag.namespace.apex"},"4":{"name":"punctuation.separator.colon.apex"},"5":{"name":"entity.name.tag.localname.apex"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.apex"}}}}}
|
@@ -1 +1 @@
|
|
1
|
-
{"name":"SourcePawn","scopeName":"source.sourcepawn","patterns":[{"include":"#line_continuation_character"},{"include":"#literals"},{"include":"#comments"},{"include":"#operators"},{"include":"#preproc"},{"match":"(new)\\s+(\\w+)\\s*\\(","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"}]}}},{"match":"(view_as)\\s*\u003c\\s*(\\w+)\\s*\u003e","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"},{"include":"#old-type"}]}}},{"match":"(\\w+)\\:\\s*(\\w+)","captures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#literals"},{"include":"#variable_name"}]}}},{"match":"(\\w+)\\:\\:(\\w*)","captures":{"1":{"patterns":[{"include":"#type_name"}]},"2":{"patterns":[{"include":"#variable_name"}]}}},{"name":"keyword.control.statement.sourcepawn","match":"\\b(?:if|else|for|while|do|switch|case|default|return|break|continue)\\b"},{"include":"#other-keywords"},{"include":"#methodmap"},{"include":"#typedef"},{"include":"#typeset"},{"include":"#functag"},{"include":"#funcenum"},{"include":"#enum_struct"},{"include":"#enum"},{"include":"#struct"},{"include":"#old-function-declaration"},{"include":"#function-declaration"},{"include":"#old-variable-declaration"},{"include":"#variable-declaration"},{"include":"#function-call"},{"name":"variable.language.sourcepawn","match":"\\bthis\\b"},{"match":"\\b(\\w+)\\b","captures":{"1":{"patterns":[{"include":"#variable_name"}]}}}],"repository":{"array-indexed-access":{"patterns":[{"match":"\\[([^\\]]+)\\]","captures":{"1":{"patterns":[{"include":"#literals"},{"include":"#other-keywords"},{"include":"#function-call"},{"include":"#variable_name"}]}}}]},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.sourcepawn","match":"\\b(?:true|false)\\b"}]},"comments":{"patterns":[{"match":"(\\/\\/)\\s*(@param)\\s+([\\w\\.]+)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"storage.type.class.single-line.spdoc"},"3":{"name":"support.variable.single-line.spdoc"},"4":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@return|@noreturn)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"keyword.control.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@error)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"string.regexp.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@(?:note|deprecated))\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"support.function.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"name":"comment.sourcepawn","match":"\\/\\/.*"},{"name":"comment.block.sourcepawn","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"comment.sourcepawn"}}}]},"enum":{"begin":"(enum)\\s+(?:(\\w+(?:\\:)?)?(?:\\s*(\\([^\\(]*\\)))?)?","end":"(?\u003c=\\})","patterns":[{"include":"#literals"},{"include":"#comments"},{"include":"#preproc"},{"match":"(\\w+)","captures":{"1":{"patterns":[{"include":"#variable_name"}]}}}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#literals"}]}}},"enum_struct":{"match":"(enum\\s+struct\\s+)(\\w+)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"funcenum":{"begin":"(funcenum)\\s+(\\w+)","end":"(?\u003c=\\})","patterns":[{"begin":"(?:(\\w+)\\:)?\\s*(public)\\s*\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#keywords"}]}}},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"name":"support.type.core.funcenum.sourcepawn"}}},"functag":{"begin":"(functag)\\s+(\\w+)\\s+(?:([a-zA-Z_]\\w*)\\:\\s*)?(?:(public|stock)\\s*)?\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#preproc"},{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#old-type"}]},"4":{"patterns":[{"include":"#keywords"}]}}},"function-call":{"match":"\\b([A-Za-z_][A-Za-z0-9_]*)\\s*\\(","captures":{"1":{"name":"entity.name.function.function_call.sourcepawn"}}},"function-declaration":{"patterns":[{"begin":"(?:(stock|public|static)\\s+)?(?:(native|forward)\\s+)?(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)\\s+([a-zA-Z_]\\w*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#type"}]},"4":{"patterns":[{"include":"#array-indexed-access"}]},"5":{"name":"entity.name.function.sourcepawn"}}}]},"keywords":{"patterns":[{"name":"keyword.visibility.sourcepawn","match":"\\b(public|stock)\\b"},{"name":"keyword.storage_class.sourcepawn","match":"\\b(const|static)\\b"},{"name":"keyword.type_declarator.sourcepawn","match":"\\b(typeset|typedef|funcenum|functag)\\b"},{"name":"keyword.view_as.sourcepawn","match":"\\b(view_as)\\b"},{"name":"keyword.variable_declarator.sourcepawn","match":"\\b(new|decl)\\b"},{"name":"keyword.function.sourcepawn","match":"\\b(function)\\b"},{"name":"keyword.enum.sourcepawn","match":"\\b(enum)\\b"},{"name":"keyword.struct.sourcepawn","match":"\\b(struct)\\b"},{"name":"keyword.methodmap.sourcepawn","match":"\\b(methodmap)\\b"}]},"line_continuation_character":{"patterns":[{"match":"(\\\\)\\n","captures":{"1":{"name":"constant.character.escape.line-continuation.sourcepawn"}}}]},"literals":{"patterns":[{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#numeric-literal"},{"include":"#string-literal"}]},"methodmap":{"match":"(methodmap)\\s+([a-zA-Z_]\\w*)\\s*(?:(?:\\\u003c\\s*([a-zA-Z_]\\w*)|(__nullable__)))?","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"name":"support.type.core.sourcepawn","match":"[A-Z]\\w*"},{"match":"([^A-Z])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"3":{"patterns":[{"name":"support.type.core.sourcepawn","match":"[A-Z]\\w*"},{"match":"([^A-Z])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"4":{"name":"keyword.__nullable__.sourcepawn"}}},"null-literal":{"patterns":[{"name":"constant.language.sourcepawn","match":"\\bnull\\b"}]},"numeric-literal":{"patterns":[{"name":"constant.numeric.float.sourcepawn","match":"[0-9]+\\.[0-9]+"},{"name":"constant.numeric.sourcepawn","match":"\\b0b[0-1]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b0o[0-7]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b(0x(?:(?:(?:[0-9a-fA-F]{2}_?)+)|(?:[0-9a-fA-F]+)))\\b"},{"name":"constant.numeric.integer.sourcepawn","match":"\\b((?:\\d|_)+)\\b"},{"name":"invalid.illegal.constant.sourcepawn","match":"\\b\\d+\\w+\\b"}]},"old-function-declaration":{"patterns":[{"begin":"(?:(stock|public|static)\\s+)?(?:(native|forward)\\s+)?(\\w+)\\:\\s*([a-zA-Z_]\\w*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#old-type"}]},"4":{"name":"entity.name.function.sourcepawn"}}}]},"old-parameter-declaration":{"patterns":[{"match":"(?:(\\w+)\\:\\s*)?(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)+)?","captures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#variable_name"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"old-type":{"patterns":[{"match":"(bool|any|String|Float)|(\\w+)","captures":{"1":{"name":"storage.type.old.built-in.primitive.sourcepawn"},"2":{"patterns":[{"include":"#type_name"}]}}}]},"old-variable-declaration":{"patterns":[{"match":"(?:(stock|public)\\s+)?((?:(?:const|static)\\s+)*)(new|decl)\\s+(?:(\\w+)\\:\\s*)?(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#keywords"}]},"4":{"patterns":[{"include":"#old-type"}]},"5":{"patterns":[{"include":"#variable_name"}]},"6":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"operators":{"patterns":[{"name":"keyword.operator.sourcepawn","match":"%|\u0026|\\*|/(?!\\*|/)|\\+|\\-|~|=|\u003c|\u003e|!|\\||\\?|:|\\^"}]},"other-keywords":{"name":"keyword.sourcepawn","match":"\\b(?:decl|delete|forward|native|public|const|stock|this|sizeof|static|property)\\b"},"parameter-declaration":{"patterns":[{"match":"(\\w+)(?:\\s+|(?:\\s*(?:\u0026|(?:\\[\\s*\\])+)\\s*))(\\w+)(?:\\s*((?:\\[[^\\]]*\\]\\s*)+))?","captures":{"1":{"patterns":[{"include":"#type"}]},"2":{"patterns":[{"include":"#variable_name"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"parameters":{"patterns":[{"include":"#keywords"},{"include":"#literals"},{"include":"#parameter-declaration"},{"include":"#old-parameter-declaration"}]},"preproc":{"patterns":[{"name":"meta.include.sourcepawn","match":"(\\#include|\\#tryinclude)\\s*((?:\\\u003c|\").+(?:\\\u003e|\"))","captures":{"1":{"name":"keyword.control.sourcepawn"},"2":{"name":"string.sourcepawn"}}},{"name":"meta.pragma.line-comment.sourcepawn","match":"(\\#pragma)\\s+(.+?(?=//))","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"}}},{"name":"meta.pragma.deprecated.sourcepawn","match":"(\\#pragma)\\s+(deprecated)(.*)","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"},"3":{"name":"string.deprecated.sourcepawn"}}},{"name":"meta.pragma.block-comment.sourcepawn","match":"(\\#pragma)\\s+([A-Za-z _0-9]+)","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"}}},{"name":"meta.define.sourcepawn","match":"(\\#define)\\s*(\\w*)","captures":{"1":{"name":"keyword.control.define.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(\\#undef)\\s*(\\w*)","captures":{"1":{"name":"keyword.control.undef.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(#\\b(?:warning|error)\\b)\\s*(.+?)(?=/(?:/|\\*))","captures":{"1":{"name":"keyword.control.misc.sourcepawn"},"2":{"name":"string.warning.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(#\\b(?:warning|error)\\b)\\s*(.*)","captures":{"1":{"name":"keyword.control.misc.sourcepawn"},"2":{"name":"string.warning.sourcepawn"}}},{"name":"keyword.control.misc.sourcepawn","match":"#\\b(if|else|endif|emit|deprecated|undef|endinput|endscript|assert|define|file)\\b\\s*"},{"match":"(defined)\\s+([A-Za-z_]\\w*)","captures":{"1":{"name":"meta.preprocessor.conditional.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}}]},"string-literal":{"patterns":[{"name":"string.quoted.double.sourcepawn","begin":"\"","end":"(\")|((?:[^\\\\\\n])$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_format_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sourcepawn"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.sourcepawn"},"2":{"name":"invalid.illegal.newline.sourcepawn"}}},{"name":"string.quoted.single.c","begin":"'","end":"(\\')|((?:[^\\\\\\n])$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_format_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sourcepawn"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.sourcepawn"},"2":{"name":"invalid.illegal.newline.sourcepawn"}}}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.sourcepawn","match":"\\\\(?:[abefnrt'\"\\\\]|(?:x[a-zA-Z0-9]{0,2}|\\d+);?)"},{"name":"invalid.illegal.unknown-escape.sourcepawn","match":"\\\\."}]},"string_format_char":{"name":"constant.character.format.sourcepawn","match":"%(?:a|A|b|B|c|C|d|D|e|F|g|G|h|H|I|j|m|M|n|i|p|r|R|S|t|T|u|U|V|u|w|W|x|X|y|Y|z|Z|f|L|N|s|T|t|%|(?:\\d+)?\\.?\\d*(?:b|d|i|u|f|s|X|x))"},"string_placeholder":{"name":"constant.character.sp-translations","match":"\\{(\\w+)\\}","captures":{"1":{"name":"constant.character.escape.sp-translations"}}},"struct":{"match":"(struct)\\s+(\\w+)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"type":{"patterns":[{"match":"(bool|float|int|char|any|void)|(\\w+)","captures":{"1":{"name":"storage.type.built-in.primitive.sourcepawn"},"2":{"patterns":[{"include":"#type_name"}]}}}]},"type_name":{"patterns":[{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d\\b"},{"name":"support.type.core.sourcepawn","match":"[a-zA-Z_]\\w*"},{"match":"([0-9])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"typedef":{"begin":"(typedef)\\s+(\\w+)\\s*\\=\\s*(function)\\s*(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#keywords"}]},"4":{"patterns":[{"include":"#type"}]},"5":{"patterns":[{"include":"#array-indexed-access"}]}}},"typeset":{"begin":"(typeset)\\s+(\\w+)","end":"(?\u003c=\\})","patterns":[{"begin":"(function)\\s+(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)*)\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"variable-declaration":{"patterns":[{"match":"(?:(stock|public)\\s+)?((?:(?:const|static)\\s+)*)(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)(?:(?:\\s*\u0026\\s*)|\\s+)(\\w+)\\s*(\\s*(?:\\[[^\\]]*\\]\\s*)*)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#type"}]},"4":{"patterns":[{"include":"#array-indexed-access"}]},"5":{"patterns":[{"include":"#variable_name"}]},"6":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"variable_name":{"patterns":[{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d\\b"},{"name":"variable.sourcepawn","match":"[a-zA-Z_]\\w*"},{"match":"([0-9])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"variable.sourcepawn"}}}]}}}
|
1
|
+
{"name":"SourcePawn","scopeName":"source.sourcepawn","patterns":[{"include":"#line_continuation_character"},{"include":"#literals"},{"include":"#comments"},{"include":"#operators"},{"include":"#preproc"},{"name":"keyword.control.statement.sourcepawn","match":"\\b(?:if|else|for|while|do|switch|case|default|return|break|continue)\\b"},{"match":"(new)\\s+(\\w+)\\s*\\(","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"}]}}},{"match":"(view_as)\\s*\u003c\\s*(\\w+)\\s*\u003e","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"},{"include":"#old-type"}]}}},{"match":"(\\w+)\\:\\s*(\\w+)","captures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#literals"},{"include":"#variable_name"}]}}},{"match":"(\\w+)\\:\\:(\\w*)","captures":{"1":{"patterns":[{"include":"#type_name"}]},"2":{"patterns":[{"include":"#variable_name"}]}}},{"include":"#other-keywords"},{"include":"#methodmap"},{"include":"#typedef"},{"include":"#typeset"},{"include":"#functag"},{"include":"#funcenum"},{"include":"#enum_struct"},{"include":"#enum"},{"include":"#struct"},{"include":"#old-function-declaration"},{"include":"#function-declaration"},{"include":"#old-variable-declaration"},{"include":"#variable-declaration"},{"include":"#function-call"},{"name":"variable.language.sourcepawn","match":"\\bthis\\b"},{"match":"\\b(\\w+)\\b","captures":{"1":{"patterns":[{"include":"#variable_name"}]}}}],"repository":{"array-indexed-access":{"patterns":[{"match":"\\[([^\\]]+)\\]","captures":{"1":{"patterns":[{"include":"#literals"},{"include":"#other-keywords"},{"include":"#function-call"},{"include":"#variable_name"}]}}}]},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.sourcepawn","match":"\\b(?:true|false)\\b"}]},"comments":{"patterns":[{"match":"(\\/\\/)\\s*(@param)\\s+([\\w\\.]+)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"storage.type.class.single-line.spdoc"},"3":{"name":"support.variable.single-line.spdoc"},"4":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@return|@noreturn)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"keyword.control.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@error)\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"string.regexp.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"match":"(\\/\\/)\\s*(@(?:note|deprecated))\\s+(.*)","captures":{"1":{"name":"comment.sourcepawn"},"2":{"name":"support.function.single-line.spdoc"},"3":{"name":"comment.sourcepawn"}}},{"name":"comment.sourcepawn","match":"\\/\\/.*"},{"name":"comment.block.sourcepawn","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"comment.sourcepawn"}}}]},"enum":{"begin":"(enum)\\s+(?:(\\w+(?:\\:)?)?(?:\\s*(\\([^\\(]*\\)))?)?","end":"(?\u003c=\\})","patterns":[{"include":"#literals"},{"include":"#comments"},{"include":"#preproc"},{"match":"(\\w+)","captures":{"1":{"patterns":[{"include":"#variable_name"}]}}}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#literals"}]}}},"enum_struct":{"match":"(enum\\s+struct\\s+)(\\w+)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"funcenum":{"begin":"(funcenum)\\s+(\\w+)","end":"(?\u003c=\\})","patterns":[{"begin":"(?:(\\w+)\\:)?\\s*(public)\\s*\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#keywords"}]}}},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"name":"support.type.core.funcenum.sourcepawn"}}},"functag":{"begin":"(functag)\\s+(\\w+)\\s+(?:([a-zA-Z_]\\w*)\\:\\s*)?(?:(public|stock)\\s*)?\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#preproc"},{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#old-type"}]},"4":{"patterns":[{"include":"#keywords"}]}}},"function-call":{"match":"\\b([A-Za-z_][A-Za-z0-9_]*)\\s*\\(","captures":{"1":{"name":"entity.name.function.function_call.sourcepawn"}}},"function-declaration":{"patterns":[{"begin":"(?:(stock|public|static)\\s+)?(?:(native|forward)\\s+)?(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)\\s+([a-zA-Z_]\\w*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#type"}]},"4":{"patterns":[{"include":"#array-indexed-access"}]},"5":{"name":"entity.name.function.sourcepawn"}}}]},"keywords":{"patterns":[{"name":"keyword.visibility.sourcepawn","match":"\\b(public|stock)\\b"},{"name":"keyword.storage_class.sourcepawn","match":"\\b(const|static)\\b"},{"name":"keyword.type_declarator.sourcepawn","match":"\\b(typeset|typedef|funcenum|functag)\\b"},{"name":"keyword.view_as.sourcepawn","match":"\\b(view_as)\\b"},{"name":"keyword.variable_declarator.sourcepawn","match":"\\b(new|decl)\\b"},{"name":"keyword.function.sourcepawn","match":"\\b(function)\\b"},{"name":"keyword.enum.sourcepawn","match":"\\b(enum)\\b"},{"name":"keyword.struct.sourcepawn","match":"\\b(struct)\\b"},{"name":"keyword.methodmap.sourcepawn","match":"\\b(methodmap)\\b"}]},"line_continuation_character":{"patterns":[{"match":"(\\\\)\\n","captures":{"1":{"name":"constant.character.escape.line-continuation.sourcepawn"}}}]},"literals":{"patterns":[{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#numeric-literal"},{"include":"#string-literal"}]},"methodmap":{"match":"(methodmap)\\s+([a-zA-Z_]\\w*)\\s*(?:(?:\\\u003c\\s*([a-zA-Z_]\\w*)|(__nullable__)))?","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"name":"support.type.core.sourcepawn","match":"[A-Z]\\w*"},{"match":"([^A-Z])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"3":{"patterns":[{"name":"support.type.core.sourcepawn","match":"[A-Z]\\w*"},{"match":"([^A-Z])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"4":{"name":"keyword.__nullable__.sourcepawn"}}},"null-literal":{"patterns":[{"name":"constant.language.sourcepawn","match":"\\bnull\\b"}]},"numeric-literal":{"patterns":[{"name":"constant.numeric.float.sourcepawn","match":"[0-9]+\\.[0-9]+"},{"name":"constant.numeric.sourcepawn","match":"\\b0b[0-1]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b0o[0-7]+\\b"},{"name":"constant.numeric.sourcepawn","match":"\\b(0x(?:(?:(?:[0-9a-fA-F]{2}_?)+)|(?:[0-9a-fA-F]+)))\\b"},{"name":"constant.numeric.integer.sourcepawn","match":"\\b((?:\\d|_)+)\\b"},{"name":"invalid.illegal.constant.sourcepawn","match":"\\b\\d+\\w+\\b"}]},"old-function-declaration":{"patterns":[{"begin":"(?:(stock|public|static)\\s+)?(?:(native|forward)\\s+)?(\\w+)\\:\\s*([a-zA-Z_]\\w*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#old-type"}]},"4":{"name":"entity.name.function.sourcepawn"}}}]},"old-parameter-declaration":{"patterns":[{"match":"(?:(\\w+)\\:\\s*)?(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)+)?","captures":{"1":{"patterns":[{"include":"#old-type"}]},"2":{"patterns":[{"include":"#variable_name"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"old-type":{"patterns":[{"match":"(bool|any|String|Float)|(\\w+)","captures":{"1":{"name":"storage.type.old.built-in.primitive.sourcepawn"},"2":{"patterns":[{"include":"#type_name"}]}}}]},"old-variable-declaration":{"patterns":[{"match":"(?:(stock|public)\\s+)?((?:(?:const|static)\\s+)*)(new|decl)\\s+(?:(\\w+)\\:\\s*)?(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#keywords"}]},"4":{"patterns":[{"include":"#old-type"}]},"5":{"patterns":[{"include":"#variable_name"}]},"6":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"operators":{"patterns":[{"name":"keyword.operator.sourcepawn","match":"%|\u0026|\\*|/(?!\\*|/)|\\+|\\-|~|=|\u003c|\u003e|!|\\||\\?|:|\\^"}]},"other-keywords":{"name":"keyword.sourcepawn","match":"\\b(?:decl|delete|forward|native|public|const|stock|this|sizeof|static|property)\\b"},"parameter-declaration":{"patterns":[{"match":"(\\w+)(?:\\s+|(?:\\s*(?:\u0026|(?:\\[\\s*\\])+)\\s*))(\\w+)(?:\\s*((?:\\[[^\\]]*\\]\\s*)+))?","captures":{"1":{"patterns":[{"include":"#type"}]},"2":{"patterns":[{"include":"#variable_name"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"parameters":{"patterns":[{"include":"#keywords"},{"include":"#literals"},{"include":"#parameter-declaration"},{"include":"#old-parameter-declaration"}]},"preproc":{"patterns":[{"name":"meta.include.sourcepawn","match":"(\\#include|\\#tryinclude)\\s*((?:\\\u003c|\").+(?:\\\u003e|\"))","captures":{"1":{"name":"keyword.control.sourcepawn"},"2":{"name":"string.sourcepawn"}}},{"name":"meta.pragma.line-comment.sourcepawn","match":"(\\#pragma)\\s+(.+?(?=//))","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"}}},{"name":"meta.pragma.deprecated.sourcepawn","match":"(\\#pragma)\\s+(deprecated)(.*)","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"},"3":{"name":"string.deprecated.sourcepawn"}}},{"name":"meta.pragma.block-comment.sourcepawn","match":"(\\#pragma)\\s+([A-Za-z _0-9]+)","captures":{"1":{"name":"keyword.control.pragma.sourcepawn"},"2":{"name":"entity.other.attribute-name.sourcepawn"}}},{"name":"meta.define.sourcepawn","match":"(\\#define)\\s*(\\w*)","captures":{"1":{"name":"keyword.control.define.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(\\#undef)\\s*(\\w*)","captures":{"1":{"name":"keyword.control.undef.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(#\\b(?:warning|error)\\b)\\s*(.+?)(?=/(?:/|\\*))","captures":{"1":{"name":"keyword.control.misc.sourcepawn"},"2":{"name":"string.warning.sourcepawn"}}},{"name":"meta.undef.sourcepawn","match":"(#\\b(?:warning|error)\\b)\\s*(.*)","captures":{"1":{"name":"keyword.control.misc.sourcepawn"},"2":{"name":"string.warning.sourcepawn"}}},{"name":"keyword.control.misc.sourcepawn","match":"#\\b(if|else|endif|emit|deprecated|undef|endinput|endscript|assert|define|file)\\b\\s*"},{"match":"(defined)\\s+([A-Za-z_]\\w*)","captures":{"1":{"name":"meta.preprocessor.conditional.sourcepawn"},"2":{"name":"meta.preprocessor.macro.sourcepawn"}}}]},"string-literal":{"patterns":[{"name":"string.quoted.double.sourcepawn","begin":"\"","end":"(\")|((?:[^\\\\\\n])$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_format_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sourcepawn"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.sourcepawn"},"2":{"name":"invalid.illegal.newline.sourcepawn"}}},{"name":"string.quoted.single.c","begin":"'","end":"(\\')|((?:[^\\\\\\n])$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_format_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sourcepawn"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.sourcepawn"},"2":{"name":"invalid.illegal.newline.sourcepawn"}}}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.sourcepawn","match":"\\\\(?:[abefnrt'\"\\\\]|(?:x[a-zA-Z0-9]{0,2}|\\d+);?)"},{"name":"invalid.illegal.unknown-escape.sourcepawn","match":"\\\\."}]},"string_format_char":{"name":"constant.character.format.sourcepawn","match":"%(?:a|A|b|B|c|C|d|D|e|F|g|G|h|H|I|j|m|M|n|i|p|r|R|S|t|T|u|U|V|u|w|W|x|X|y|Y|z|Z|f|L|N|s|T|t|%|(?:\\d+)?\\.?\\d*(?:b|d|i|u|f|s|X|x))"},"string_placeholder":{"name":"constant.character.sp-translations","match":"\\{(\\w+)\\}","captures":{"1":{"name":"constant.character.escape.sp-translations"}}},"struct":{"match":"(struct)\\s+(\\w+)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"type":{"patterns":[{"match":"(bool|float|int|char|any|void)|(\\w+)","captures":{"1":{"name":"storage.type.built-in.primitive.sourcepawn"},"2":{"patterns":[{"include":"#type_name"}]}}}]},"type_name":{"patterns":[{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d\\b"},{"name":"support.type.core.sourcepawn","match":"[a-zA-Z_]\\w*"},{"match":"([0-9])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"support.type.core.sourcepawn"}}}]},"typedef":{"begin":"(typedef)\\s+(\\w+)\\s*\\=\\s*(function)\\s*(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)*)\\(","end":"\\)","patterns":[{"include":"#parameters"},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]},"3":{"patterns":[{"include":"#keywords"}]},"4":{"patterns":[{"include":"#type"}]},"5":{"patterns":[{"include":"#array-indexed-access"}]}}},"typeset":{"begin":"(typeset)\\s+(\\w+)","end":"(?\u003c=\\})","patterns":[{"begin":"(function)\\s+(\\w+)\\s*((?:\\[[^\\]]*\\]\\s*)*)\\(","end":"\\)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type"}]},"3":{"patterns":[{"include":"#array-indexed-access"}]}}},{"include":"#comments"},{"include":"#preproc"}],"beginCaptures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"}]}}},"variable-declaration":{"patterns":[{"match":"(?:(stock|public)\\s+)?((?:(?:const|static)\\s+)*)(\\w+)(\\s*(?:\\[[^\\]]*\\]\\s*)*)\\s+(\\w+)\\s*(\\s*(?:\\[[^\\]]*\\]\\s*)*)","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#keywords"}]},"3":{"patterns":[{"include":"#type"}]},"4":{"patterns":[{"include":"#array-indexed-access"}]},"5":{"patterns":[{"include":"#variable_name"}]},"6":{"patterns":[{"include":"#array-indexed-access"}]}}}]},"variable_name":{"patterns":[{"name":"constant.numeric.integer.sourcepawn","match":"\\b\\d\\b"},{"name":"variable.sourcepawn","match":"[a-zA-Z_]\\w*"},{"match":"([0-9])(\\w*)","captures":{"1":{"name":"invalid.illegal.constant.sourcepawn"},"2":{"name":"variable.sourcepawn"}}}]}}}
|
data/grammars/source.stan.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Stan","scopeName":"source.stan","patterns":[{"match":"\\b(functions|data|transformed\\s+data|parameters|transformed\\s+parameters|model|generated\\s+quantities)\\b\\s*\\{","captures":{"1":{"name":"entity.name.type.stan"}}},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#types"},{"include":"#keywords"},{"include":"#distributions"},{"include":"#functions"},{"include":"#variables"},{"include":"#operators"},{"include":"#punctuation"}],"repository":{"comments":{"patterns":[{"name":"meta.preprocessor.include.stan","begin":"^\\s*((#)\\s*(include))\\b\\s*","end":"\\s*(?=(?://|/\\*|#)|\\n|$)","patterns":[{"name":"string.quoted.double.include.stan","begin":"[\"\u003c]?","end":"[\"\u003e]?\\s","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}}],"beginCaptures":{"1":{"name":"keyword.control.directive.include.stan"},"2":{"name":"punctuation.definition.directive.stan"}}},{"name":"comment.block.documentation.stan","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#docblock"}],"captures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.block.stan","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.line.double-slash.stan","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.line.number-sign.stan","begin":"#","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}}]},"distributions":{"patterns":[{"match":"(~)(\\s*)(bernoulli|bernoulli_logit|bernoulli_logit_glm|beta|beta_binomial|binomial|binomial_logit|binomial_logit_glm|categorical|categorical_logit|categorical_logit_glm|cauchy|chi_square|dirichlet|dirichlet_multinomial|discrete_range|double_exponential|exp_mod_normal|exponential|frechet|gamma|gaussian_dlm_obs|gumbel|hypergeometric|inv_chi_square|inv_gamma|inv_wishart|inv_wishart_cholesky|lkj_corr|lkj_corr_cholesky|logistic|loglogistic|lognormal|multi_gp|multi_gp_cholesky|multi_normal|multi_normal_cholesky|multi_normal_prec|multi_student_t|multi_student_t_cholesky|multinomial|multinomial_logit|neg_binomial|neg_binomial_2|neg_binomial_2_log|neg_binomial_2_log_glm|normal|normal_id_glm|ordered_logistic|ordered_logistic_glm|ordered_probit|pareto|pareto_type_2|poisson|poisson_log|poisson_log_glm|rayleigh|scaled_inv_chi_square|skew_double_exponential|skew_normal|std_normal|student_t|uniform|von_mises|weibull|wiener|wishart|wishart_cholesky)\\b","captures":{"1":{"name":"keyword.operator.sampling.stan"},"3":{"name":"support.function.distribution.stan"}}}]},"docblock":{"patterns":[{"name":"storage.type.class.standoc","match":"(?\u003c!\\w)@(param|return)\\b"}]},"functions":{"patterns":[{"name":"invalid.deprecated.function.stan","match":"\\b([A-Za-z0-9][A-Za-z0-9_]*_log|binomial_coefficient_log|fabs|get_lp|if_else|increment_log_prob|integrate_ode[A-Za-z0-9_]*|lkj_cov_lpdf|multiply_log)\\b\\s*\\("},{"name":"support.function.function.stan","match":"\\b(Phi|Phi_approx|abs|acos|acosh|add_diag|algebra_solver|algebra_solver_newton|append_array|append_col|append_row|arg|asin|asinh|atan|atan2|atanh|bernoulli_cdf|bernoulli_lccdf|bernoulli_lcdf|bernoulli_logit_glm_lpmf|bernoulli_logit_glm_lupmf|bernoulli_logit_glm_rng|bernoulli_logit_lpmf|bernoulli_logit_lupmf|bernoulli_logit_rng|bernoulli_lpmf|bernoulli_lupmf|bernoulli_rng|bessel_first_kind|bessel_second_kind|beta|beta_binomial_cdf|beta_binomial_lccdf|beta_binomial_lcdf|beta_binomial_lpmf|beta_binomial_lupmf|beta_binomial_rng|beta_cdf|beta_lccdf|beta_lcdf|beta_lpdf|beta_lupdf|beta_proportion_lccdf|beta_proportion_lcdf|beta_proportion_rng|beta_rng|binary_log_loss|binomial_cdf|binomial_lccdf|binomial_lcdf|binomial_logit_glm_lpmf|binomial_logit_glm_lupmf|binomial_logit_lpmf|binomial_logit_lupmf|binomial_lpmf|binomial_lupmf|binomial_rng|block|categorical_logit_glm_lpmf|categorical_logit_glm_lupmf|categorical_logit_lpmf|categorical_logit_lupmf|categorical_logit_rng|categorical_lpmf|categorical_lupmf|categorical_rng|cauchy_cdf|cauchy_lccdf|cauchy_lcdf|cauchy_lpdf|cauchy_lupdf|cauchy_rng|cbrt|ceil|chi_square_cdf|chi_square_lccdf|chi_square_lcdf|chi_square_lpdf|chi_square_lupdf|chi_square_rng|chol2inv|cholesky_decompose|choose|col|cols|columns_dot_product|columns_dot_self|complex_schur_decompose|complex_schur_decompose_t|complex_schur_decompose_u|conj|cos|cosh|cov_exp_quad|crossprod|csr_extract|csr_extract_u|csr_extract_v|csr_extract_w|csr_matrix_times_vector|csr_to_dense_matrix|cumulative_sum|dae|dae_tol|determinant|diag_matrix|diag_post_multiply|diag_pre_multiply|diagonal|digamma|dims|dirichlet_lpdf|dirichlet_lupdf|dirichlet_multinomial_lpmf|dirichlet_multinomial_lupmf|dirichlet_multinomial_rng|dirichlet_rng|discrete_range_cdf|discrete_range_lccdf|discrete_range_lcdf|discrete_range_lpmf|discrete_range_lupmf|discrete_range_rng|distance|dot_product|dot_self|double_exponential_cdf|double_exponential_lccdf|double_exponential_lcdf|double_exponential_lpdf|double_exponential_lupdf|double_exponential_rng|e|eigendecompose|eigendecompose_sym|eigenvalues|eigenvalues_sym|eigenvectors|eigenvectors_sym|erf|erfc|exp|exp2|exp_mod_normal_cdf|exp_mod_normal_lccdf|exp_mod_normal_lcdf|exp_mod_normal_lpdf|exp_mod_normal_lupdf|exp_mod_normal_rng|expm1|exponential_cdf|exponential_lccdf|exponential_lcdf|exponential_lpdf|exponential_lupdf|exponential_rng|falling_factorial|fatal_error|fdim|fft|fft2|floor|fma|fmax|fmin|fmod|frechet_cdf|frechet_lccdf|frechet_lcdf|frechet_lpdf|frechet_lupdf|frechet_rng|gamma_cdf|gamma_lccdf|gamma_lcdf|gamma_lpdf|gamma_lupdf|gamma_p|gamma_q|gamma_rng|gaussian_dlm_obs_lpdf|gaussian_dlm_obs_lupdf|generalized_inverse|get_imag|get_real|gumbel_cdf|gumbel_lccdf|gumbel_lcdf|gumbel_lpdf|gumbel_lupdf|gumbel_rng|head|hmm_hidden_state_prob|hmm_latent_rng|hmm_marginal|hypergeometric_lpmf|hypergeometric_lupmf|hypergeometric_rng|hypot|identity_matrix|inc_beta|int_step|integrate_1d|integrate_ode|integrate_ode_adams|integrate_ode_bdf|integrate_ode_rk45|inv|inv_Phi|inv_chi_square_cdf|inv_chi_square_lccdf|inv_chi_square_lcdf|inv_chi_square_lpdf|inv_chi_square_lupdf|inv_chi_square_rng|inv_cloglog|inv_erfc|inv_fft|inv_fft2|inv_gamma_cdf|inv_gamma_lccdf|inv_gamma_lcdf|inv_gamma_lpdf|inv_gamma_lupdf|inv_gamma_rng|inv_inc_beta|inv_logit|inv_sqrt|inv_square|inv_wishart_cholesky_lpdf|inv_wishart_cholesky_lupdf|inv_wishart_cholesky_rng|inv_wishart_lpdf|inv_wishart_lupdf|inv_wishart_rng|inverse|inverse_spd|is_inf|is_nan|lambert_w0|lambert_wm1|lbeta|lchoose|ldexp|lgamma|linspaced_array|linspaced_int_array|linspaced_row_vector|linspaced_vector|lkj_corr_cholesky_lpdf|lkj_corr_cholesky_lupdf|lkj_corr_cholesky_rng|lkj_corr_lpdf|lkj_corr_lupdf|lkj_corr_rng|lmgamma|lmultiply|log|log10|log1m|log1m_exp|log1m_inv_logit|log1p|log1p_exp|log2|log_determinant|log_diff_exp|log_falling_factorial|log_inv_logit|log_inv_logit_diff|log_mix|log_modified_bessel_first_kind|log_rising_factorial|log_softmax|log_sum_exp|logistic_cdf|logistic_lccdf|logistic_lcdf|logistic_lpdf|logistic_lupdf|logistic_rng|logit|loglogistic_cdf|loglogistic_lpdf|loglogistic_rng|lognormal_cdf|lognormal_lccdf|lognormal_lcdf|lognormal_lpdf|lognormal_lupdf|lognormal_rng|machine_precision|map_rect|matrix_exp|matrix_exp_multiply|matrix_power|max|mdivide_left_spd|mdivide_left_tri_low|mdivide_right_spd|mdivide_right_tri_low|mean|min|modified_bessel_first_kind|modified_bessel_second_kind|multi_gp_cholesky_lpdf|multi_gp_cholesky_lupdf|multi_gp_lpdf|multi_gp_lupdf|multi_normal_cholesky_lpdf|multi_normal_cholesky_lupdf|multi_normal_cholesky_rng|multi_normal_lpdf|multi_normal_lupdf|multi_normal_prec_lpdf|multi_normal_prec_lupdf|multi_normal_rng|multi_student_cholesky_t_rng|multi_student_t_cholesky_lpdf|multi_student_t_cholesky_lupdf|multi_student_t_cholesky_rng|multi_student_t_lpdf|multi_student_t_lupdf|multi_student_t_rng|multinomial_logit_lpmf|multinomial_logit_lupmf|multinomial_logit_rng|multinomial_lpmf|multinomial_lupmf|multinomial_rng|multiply_lower_tri_self_transpose|neg_binomial_2_cdf|neg_binomial_2_lccdf|neg_binomial_2_lcdf|neg_binomial_2_log_glm_lpmf|neg_binomial_2_log_glm_lupmf|neg_binomial_2_log_lpmf|neg_binomial_2_log_lupmf|neg_binomial_2_log_rng|neg_binomial_2_lpmf|neg_binomial_2_lupmf|neg_binomial_2_rng|neg_binomial_cdf|neg_binomial_lccdf|neg_binomial_lcdf|neg_binomial_lpmf|neg_binomial_lupmf|neg_binomial_rng|negative_infinity|norm|norm1|norm2|normal_cdf|normal_id_glm_lpdf|normal_id_glm_lupdf|normal_lccdf|normal_lcdf|normal_lpdf|normal_lupdf|normal_rng|not_a_number|num_elements|ode_adams|ode_adams_tol|ode_adjoint_tol_ctl|ode_bdf|ode_bdf_tol|ode_ckrk|ode_ckrk_tol|ode_rk45|ode_rk45_tol|one_hot_array|one_hot_int_array|one_hot_row_vector|one_hot_vector|ones_array|ones_int_array|ones_row_vector|ones_vector|ordered_logistic_glm_lpmf|ordered_logistic_glm_lupmf|ordered_logistic_lpmf|ordered_logistic_lupmf|ordered_logistic_rng|ordered_probit_lpmf|ordered_probit_lupmf|ordered_probit_rng|owens_t|pareto_cdf|pareto_lccdf|pareto_lcdf|pareto_lpdf|pareto_lupdf|pareto_rng|pareto_type_2_cdf|pareto_type_2_lccdf|pareto_type_2_lcdf|pareto_type_2_lpdf|pareto_type_2_lupdf|pareto_type_2_rng|pi|poisson_cdf|poisson_lccdf|poisson_lcdf|poisson_log_glm_lpmf|poisson_log_glm_lupmf|poisson_log_lpmf|poisson_log_lupmf|poisson_log_rng|poisson_lpmf|poisson_lupmf|poisson_rng|polar|positive_infinity|pow|prod|proj|qr|qr_Q|qr_R|qr_thin|qr_thin_Q|qr_thin_R|quad_form|quad_form_diag|quad_form_sym|quantile|rank|rayleigh_cdf|rayleigh_lccdf|rayleigh_lcdf|rayleigh_lpdf|rayleigh_lupdf|rayleigh_rng|reduce_sum|rep_array|rep_matrix|rep_row_vector|rep_vector|reverse|rising_factorial|round|row|rows|rows_dot_product|rows_dot_self|scale_matrix_exp_multiply|scaled_inv_chi_square_cdf|scaled_inv_chi_square_lccdf|scaled_inv_chi_square_lcdf|scaled_inv_chi_square_lpdf|scaled_inv_chi_square_lupdf|scaled_inv_chi_square_rng|sd|segment|sin|singular_values|sinh|size|skew_double_exponential_cdf|skew_double_exponential_lccdf|skew_double_exponential_lcdf|skew_double_exponential_lpdf|skew_double_exponential_lupdf|skew_double_exponential_rng|skew_normal_cdf|skew_normal_lccdf|skew_normal_lcdf|skew_normal_lpdf|skew_normal_lupdf|skew_normal_rng|softmax|sort_asc|sort_desc|sort_indices_asc|sort_indices_desc|sqrt|sqrt2|square|squared_distance|std_normal_cdf|std_normal_lccdf|std_normal_lcdf|std_normal_log_qf|std_normal_lpdf|std_normal_lupdf|std_normal_qf|std_normal_rng|step|student_t_cdf|student_t_lccdf|student_t_lcdf|student_t_lpdf|student_t_lupdf|student_t_rng|sub_col|sub_row|sum|svd|svd_U|svd_V|symmetrize_from_lower_tri|tail|tan|tanh|target|tcrossprod|tgamma|to_array_1d|to_array_2d|to_complex|to_int|to_matrix|to_row_vector|to_vector|trace|trace_gen_quad_form|trace_quad_form|trigamma|trunc|uniform_cdf|uniform_lccdf|uniform_lcdf|uniform_lpdf|uniform_lupdf|uniform_rng|uniform_simplex|variance|von_mises_cdf|von_mises_lccdf|von_mises_lcdf|von_mises_lpdf|von_mises_lupdf|von_mises_rng|weibull_cdf|weibull_lccdf|weibull_lcdf|weibull_lpdf|weibull_lupdf|weibull_rng|wiener_lpdf|wiener_lupdf|wishart_cholesky_lpdf|wishart_cholesky_lupdf|wishart_cholesky_rng|wishart_lpdf|wishart_lupdf|wishart_rng|zeros_array|zeros_int_array|zeros_row_vector)\\b\\s*\\("}]},"keywords":{"patterns":[{"name":"keyword.control.stan","match":"\\b(for|in|while|if|else)\\b"},{"match":"\\b(lower|upper|offset|multiplier)\\s*(=)","captures":{"1":{"name":"keyword.other.transform.stan"},"2":{"name":"punctuation.operator.equal.stan"}}},{"name":"keyword.other.return.stan","match":"\\breturn\\b"},{"match":"\\b(target)\\s*([+][=])","captures":{"1":{"name":"keyword.other.target.stan"},"2":{"name":"keyword.operator.accumulator.stan"}}},{"name":"keyword.other.special-functions.stan","match":"\\b(print|reject|target|fatal_error)\\b"},{"name":"keyword.other.truncation.stan","match":"\\bT(?=\\s*\\[)"}]},"numbers":{"patterns":[{"name":"constant.numeric.complex.stan","match":"(?x)\n(\n[0-9]+\\.[0-9]*([eE][+-]?[0-9]+)?\n|\n\\.[0-9]+([eE][+-]?[0-9]+)?\n|\n[0-9]+[eE][+-]?[0-9]+i\n)i"},{"name":"constant.numeric.real.stan","match":"(?x)\n(\n[0-9]+\\.[0-9]*([eE][+-]?[0-9]+)?\n|\n\\.[0-9]+([eE][+-]?[0-9]+)?\n|\n[0-9]+[eE][+-]?[0-9]+\n)"},{"name":"constant.numeric.integer.stan","match":"[0-9]+(_ [0-9]+)*(?=[^A-Za-z])"}]},"operators":{"patterns":[{"name":"invalid.deprecated.assignment.stan","match":"\u003c-"},{"name":"keyword.operator.colon.stan","match":":"},{"name":"keyword.operator.sampling.stan","match":"~"},{"name":"keyword.operator.conditional.stan","match":"[?]"},{"name":"keyword.operator.logical.stan","match":"[|]{2}|\u0026\u0026"},{"name":"keyword.operator.comparison.stan","match":"==|!=|\u003c=?|\u003e=?"},{"name":"keyword.operator.logical.stan","match":"!"},{"name":"keyword.operator.arithmetic.stan","match":"\\+|-|\\.?\\*|\\.?/|%|\\\\|\\^|'"},{"name":"keyword.operator.assignment.stan","match":"[+-]=|\\.?[*/]=|="},{"name":"keyword.operator.arithmetic.stan","match":"\\+|-|\\.?\\*|\\.?/|%|\\\\|\\^|'"}]},"punctuation":{"patterns":[{"name":"meta.delimiter.comma.stan","match":","},{"begin":"{","end":"}","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.stan"}}},{"name":"meta.brace.curly.stan","match":"[{}]"},{"name":"meta.brace.square.stan","match":"\\[|\\]"},{"name":"meta.brace.round.stan","match":"\\(|\\)"},{"name":"punctuation.terminator.statement.stan","match":"\\;"},{"name":"punctuation.sampling.bar.stan","match":"[|]"}]},"strings":{"patterns":[{"name":"string.quoted.double.stan","begin":"\"","end":"\"","patterns":[{"name":"invalid.illegal.string.stan","match":"[^ a-zA-Z0-9~@#$%^\u0026*_'`\\-+={}\\[\\]()\u003c\u003e|/!?.,;:\"]+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}}]},"types":{"patterns":[{"name":"storage.type.stan","match":"\\b(int|real|data|complex|array|tuple|vector|simplex|unit_vector|ordered|positive_ordered|row_vector|matrix|complex_vector|complex_matrix|complex_row_vector|corr_matrix|cov_matrix|cholesky_factor_cov|cholesky_factor_corr|void)\\b"}]},"variables":{"patterns":[{"name":"invalid.illegal.reserved.stan","match":"\\b(for|in|while|repeat|until|if|then|else|true|false|var|struct|typedef|export|auto|extern|var|static)\\b"},{"name":"invalid.illegal.variable","match":"\\b([a-zA-Z0-9_]*__|[0-9_][A-Za-z0-9_]+|_)\\b"},{"match":"\\b[A-Za-z][0-9A-Za-z_]*\\b"}]}}}
|
1
|
+
{"name":"Stan","scopeName":"source.stan","patterns":[{"match":"\\b(functions|data|transformed\\s+data|parameters|transformed\\s+parameters|model|generated\\s+quantities)\\b\\s*\\{","captures":{"1":{"name":"entity.name.type.stan"}}},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#types"},{"include":"#keywords"},{"include":"#distributions"},{"include":"#functions"},{"include":"#variables"},{"include":"#operators"},{"include":"#punctuation"}],"repository":{"comments":{"patterns":[{"name":"meta.preprocessor.include.stan","begin":"^\\s*((#)\\s*(include))\\b\\s*","end":"\\s*(?=(?://|/\\*|#)|\\n|$)","patterns":[{"name":"string.quoted.double.include.stan","begin":"[\"\u003c]?","end":"[\"\u003e]?\\s","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}}],"beginCaptures":{"1":{"name":"keyword.control.directive.include.stan"},"2":{"name":"punctuation.definition.directive.stan"}}},{"name":"comment.block.documentation.stan","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#docblock"}],"captures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.block.stan","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.line.double-slash.stan","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.line.number-sign.stan","begin":"#","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}}]},"distributions":{"patterns":[{"match":"(~)(\\s*)(bernoulli|bernoulli_logit|bernoulli_logit_glm|beta|beta_binomial|beta_neg_binomial|binomial|binomial_logit|binomial_logit_glm|categorical|categorical_logit|categorical_logit_glm|cauchy|chi_square|dirichlet|dirichlet_multinomial|discrete_range|double_exponential|exp_mod_normal|exponential|frechet|gamma|gaussian_dlm_obs|gumbel|hypergeometric|inv_chi_square|inv_gamma|inv_wishart|inv_wishart_cholesky|lkj_corr|lkj_corr_cholesky|logistic|loglogistic|lognormal|multi_gp|multi_gp_cholesky|multi_normal|multi_normal_cholesky|multi_normal_prec|multi_student_t|multi_student_t_cholesky|multinomial|multinomial_logit|neg_binomial|neg_binomial_2|neg_binomial_2_log|neg_binomial_2_log_glm|normal|normal_id_glm|ordered_logistic|ordered_logistic_glm|ordered_probit|pareto|pareto_type_2|poisson|poisson_log|poisson_log_glm|rayleigh|scaled_inv_chi_square|skew_double_exponential|skew_normal|std_normal|student_t|uniform|von_mises|weibull|wiener|wishart|wishart_cholesky)\\b","captures":{"1":{"name":"keyword.operator.sampling.stan"},"3":{"name":"support.function.distribution.stan"}}}]},"docblock":{"patterns":[{"name":"storage.type.class.standoc","match":"(?\u003c!\\w)@(param|return)\\b"}]},"functions":{"patterns":[{"name":"invalid.deprecated.function.stan","match":"\\b([A-Za-z0-9][A-Za-z0-9_]*_log|binomial_coefficient_log|fabs|get_lp|if_else|increment_log_prob|integrate_ode[A-Za-z0-9_]*|lkj_cov_lpdf|multiply_log)\\b\\s*\\("},{"name":"support.function.function.stan","match":"\\b(Phi|Phi_approx|abs|acos|acosh|add_diag|algebra_solver|algebra_solver_newton|append_array|append_col|append_row|arg|asin|asinh|atan|atan2|atanh|bernoulli_cdf|bernoulli_lccdf|bernoulli_lcdf|bernoulli_logit_glm_lpmf|bernoulli_logit_glm_lupmf|bernoulli_logit_glm_rng|bernoulli_logit_lpmf|bernoulli_logit_lupmf|bernoulli_logit_rng|bernoulli_lpmf|bernoulli_lupmf|bernoulli_rng|bessel_first_kind|bessel_second_kind|beta|beta_binomial_cdf|beta_binomial_lccdf|beta_binomial_lcdf|beta_binomial_lpmf|beta_binomial_lupmf|beta_binomial_rng|beta_cdf|beta_lccdf|beta_lcdf|beta_lpdf|beta_lupdf|beta_neg_binomial_cdf|beta_neg_binomial_lccdf|beta_neg_binomial_lcdf|beta_neg_binomial_lpmf|beta_neg_binomial_lupmf|beta_neg_binomial_rng|beta_proportion_lccdf|beta_proportion_lcdf|beta_proportion_rng|beta_rng|binary_log_loss|binomial_cdf|binomial_lccdf|binomial_lcdf|binomial_logit_glm_lpmf|binomial_logit_glm_lupmf|binomial_logit_lpmf|binomial_logit_lupmf|binomial_lpmf|binomial_lupmf|binomial_rng|block|categorical_logit_glm_lpmf|categorical_logit_glm_lupmf|categorical_logit_lpmf|categorical_logit_lupmf|categorical_logit_rng|categorical_lpmf|categorical_lupmf|categorical_rng|cauchy_cdf|cauchy_lccdf|cauchy_lcdf|cauchy_lpdf|cauchy_lupdf|cauchy_rng|cbrt|ceil|chi_square_cdf|chi_square_lccdf|chi_square_lcdf|chi_square_lpdf|chi_square_lupdf|chi_square_rng|chol2inv|cholesky_decompose|choose|col|cols|columns_dot_product|columns_dot_self|complex_schur_decompose|complex_schur_decompose_t|complex_schur_decompose_u|conj|cos|cosh|cov_exp_quad|crossprod|csr_extract|csr_extract_u|csr_extract_v|csr_extract_w|csr_matrix_times_vector|csr_to_dense_matrix|cumulative_sum|dae|dae_tol|determinant|diag_matrix|diag_post_multiply|diag_pre_multiply|diagonal|digamma|dims|dirichlet_lpdf|dirichlet_lupdf|dirichlet_multinomial_lpmf|dirichlet_multinomial_lupmf|dirichlet_multinomial_rng|dirichlet_rng|discrete_range_cdf|discrete_range_lccdf|discrete_range_lcdf|discrete_range_lpmf|discrete_range_lupmf|discrete_range_rng|distance|dot_product|dot_self|double_exponential_cdf|double_exponential_lccdf|double_exponential_lcdf|double_exponential_lpdf|double_exponential_lupdf|double_exponential_rng|e|eigendecompose|eigendecompose_sym|eigenvalues|eigenvalues_sym|eigenvectors|eigenvectors_sym|erf|erfc|exp|exp2|exp_mod_normal_cdf|exp_mod_normal_lccdf|exp_mod_normal_lcdf|exp_mod_normal_lpdf|exp_mod_normal_lupdf|exp_mod_normal_rng|expm1|exponential_cdf|exponential_lccdf|exponential_lcdf|exponential_lpdf|exponential_lupdf|exponential_rng|falling_factorial|fdim|fft|fft2|floor|fma|fmax|fmin|fmod|frechet_cdf|frechet_lccdf|frechet_lcdf|frechet_lpdf|frechet_lupdf|frechet_rng|gamma_cdf|gamma_lccdf|gamma_lcdf|gamma_lpdf|gamma_lupdf|gamma_p|gamma_q|gamma_rng|gaussian_dlm_obs_lpdf|gaussian_dlm_obs_lupdf|generalized_inverse|get_imag|get_real|gumbel_cdf|gumbel_lccdf|gumbel_lcdf|gumbel_lpdf|gumbel_lupdf|gumbel_rng|head|hmm_hidden_state_prob|hmm_latent_rng|hmm_marginal|hypergeometric_lpmf|hypergeometric_lupmf|hypergeometric_rng|hypot|identity_matrix|inc_beta|int_step|integrate_1d|integrate_ode|integrate_ode_adams|integrate_ode_bdf|integrate_ode_rk45|inv|inv_Phi|inv_chi_square_cdf|inv_chi_square_lccdf|inv_chi_square_lcdf|inv_chi_square_lpdf|inv_chi_square_lupdf|inv_chi_square_rng|inv_cloglog|inv_erfc|inv_fft|inv_fft2|inv_gamma_cdf|inv_gamma_lccdf|inv_gamma_lcdf|inv_gamma_lpdf|inv_gamma_lupdf|inv_gamma_rng|inv_inc_beta|inv_logit|inv_sqrt|inv_square|inv_wishart_cholesky_lpdf|inv_wishart_cholesky_lupdf|inv_wishart_cholesky_rng|inv_wishart_lpdf|inv_wishart_lupdf|inv_wishart_rng|inverse|inverse_spd|is_inf|is_nan|lambert_w0|lambert_wm1|lbeta|lchoose|ldexp|lgamma|linspaced_array|linspaced_int_array|linspaced_row_vector|linspaced_vector|lkj_corr_cholesky_lpdf|lkj_corr_cholesky_lupdf|lkj_corr_cholesky_rng|lkj_corr_lpdf|lkj_corr_lupdf|lkj_corr_rng|lmgamma|lmultiply|log|log10|log1m|log1m_exp|log1m_inv_logit|log1p|log1p_exp|log2|log_determinant|log_diff_exp|log_falling_factorial|log_inv_logit|log_inv_logit_diff|log_mix|log_modified_bessel_first_kind|log_rising_factorial|log_softmax|log_sum_exp|logistic_cdf|logistic_lccdf|logistic_lcdf|logistic_lpdf|logistic_lupdf|logistic_rng|logit|loglogistic_cdf|loglogistic_lpdf|loglogistic_rng|lognormal_cdf|lognormal_lccdf|lognormal_lcdf|lognormal_lpdf|lognormal_lupdf|lognormal_rng|machine_precision|map_rect|matrix_exp|matrix_exp_multiply|matrix_power|max|mdivide_left_spd|mdivide_left_tri_low|mdivide_right_spd|mdivide_right_tri_low|mean|min|modified_bessel_first_kind|modified_bessel_second_kind|multi_gp_cholesky_lpdf|multi_gp_cholesky_lupdf|multi_gp_lpdf|multi_gp_lupdf|multi_normal_cholesky_lpdf|multi_normal_cholesky_lupdf|multi_normal_cholesky_rng|multi_normal_lpdf|multi_normal_lupdf|multi_normal_prec_lpdf|multi_normal_prec_lupdf|multi_normal_rng|multi_student_cholesky_t_rng|multi_student_t_cholesky_lpdf|multi_student_t_cholesky_lupdf|multi_student_t_cholesky_rng|multi_student_t_lpdf|multi_student_t_lupdf|multi_student_t_rng|multinomial_logit_lpmf|multinomial_logit_lupmf|multinomial_logit_rng|multinomial_lpmf|multinomial_lupmf|multinomial_rng|multiply_lower_tri_self_transpose|neg_binomial_2_cdf|neg_binomial_2_lccdf|neg_binomial_2_lcdf|neg_binomial_2_log_glm_lpmf|neg_binomial_2_log_glm_lupmf|neg_binomial_2_log_lpmf|neg_binomial_2_log_lupmf|neg_binomial_2_log_rng|neg_binomial_2_lpmf|neg_binomial_2_lupmf|neg_binomial_2_rng|neg_binomial_cdf|neg_binomial_lccdf|neg_binomial_lcdf|neg_binomial_lpmf|neg_binomial_lupmf|neg_binomial_rng|negative_infinity|norm|norm1|norm2|normal_cdf|normal_id_glm_lpdf|normal_id_glm_lupdf|normal_lccdf|normal_lcdf|normal_lpdf|normal_lupdf|normal_rng|not_a_number|num_elements|ode_adams|ode_adams_tol|ode_adjoint_tol_ctl|ode_bdf|ode_bdf_tol|ode_ckrk|ode_ckrk_tol|ode_rk45|ode_rk45_tol|one_hot_array|one_hot_int_array|one_hot_row_vector|one_hot_vector|ones_array|ones_int_array|ones_row_vector|ones_vector|ordered_logistic_glm_lpmf|ordered_logistic_glm_lupmf|ordered_logistic_lpmf|ordered_logistic_lupmf|ordered_logistic_rng|ordered_probit_lpmf|ordered_probit_lupmf|ordered_probit_rng|owens_t|pareto_cdf|pareto_lccdf|pareto_lcdf|pareto_lpdf|pareto_lupdf|pareto_rng|pareto_type_2_cdf|pareto_type_2_lccdf|pareto_type_2_lcdf|pareto_type_2_lpdf|pareto_type_2_lupdf|pareto_type_2_rng|pi|poisson_cdf|poisson_lccdf|poisson_lcdf|poisson_log_glm_lpmf|poisson_log_glm_lupmf|poisson_log_lpmf|poisson_log_lupmf|poisson_log_rng|poisson_lpmf|poisson_lupmf|poisson_rng|polar|positive_infinity|pow|prod|proj|qr|qr_Q|qr_R|qr_thin|qr_thin_Q|qr_thin_R|quad_form|quad_form_diag|quad_form_sym|quantile|rank|rayleigh_cdf|rayleigh_lccdf|rayleigh_lcdf|rayleigh_lpdf|rayleigh_lupdf|rayleigh_rng|reduce_sum|rep_array|rep_matrix|rep_row_vector|rep_vector|reverse|rising_factorial|round|row|rows|rows_dot_product|rows_dot_self|scale_matrix_exp_multiply|scaled_inv_chi_square_cdf|scaled_inv_chi_square_lccdf|scaled_inv_chi_square_lcdf|scaled_inv_chi_square_lpdf|scaled_inv_chi_square_lupdf|scaled_inv_chi_square_rng|sd|segment|sin|singular_values|sinh|size|skew_double_exponential_cdf|skew_double_exponential_lccdf|skew_double_exponential_lcdf|skew_double_exponential_lpdf|skew_double_exponential_lupdf|skew_double_exponential_rng|skew_normal_cdf|skew_normal_lccdf|skew_normal_lcdf|skew_normal_lpdf|skew_normal_lupdf|skew_normal_rng|softmax|sort_asc|sort_desc|sort_indices_asc|sort_indices_desc|sqrt|sqrt2|square|squared_distance|std_normal_cdf|std_normal_lccdf|std_normal_lcdf|std_normal_log_qf|std_normal_lpdf|std_normal_lupdf|std_normal_qf|std_normal_rng|step|student_t_cdf|student_t_lccdf|student_t_lcdf|student_t_lpdf|student_t_lupdf|student_t_rng|sub_col|sub_row|sum|svd|svd_U|svd_V|symmetrize_from_lower_tri|tail|tan|tanh|target|tcrossprod|tgamma|to_array_1d|to_array_2d|to_complex|to_int|to_matrix|to_row_vector|to_vector|trace|trace_gen_quad_form|trace_quad_form|trigamma|trunc|uniform_cdf|uniform_lccdf|uniform_lcdf|uniform_lpdf|uniform_lupdf|uniform_rng|uniform_simplex|variance|von_mises_cdf|von_mises_lccdf|von_mises_lcdf|von_mises_lpdf|von_mises_lupdf|von_mises_rng|weibull_cdf|weibull_lccdf|weibull_lcdf|weibull_lpdf|weibull_lupdf|weibull_rng|wiener_lpdf|wiener_lupdf|wishart_cholesky_lpdf|wishart_cholesky_lupdf|wishart_cholesky_rng|wishart_lpdf|wishart_lupdf|wishart_rng|zeros_array|zeros_int_array|zeros_row_vector)\\b\\s*\\("}]},"keywords":{"patterns":[{"name":"keyword.control.stan","match":"\\b(for|in|while|if|else)\\b"},{"match":"\\b(lower|upper|offset|multiplier)\\s*(=)","captures":{"1":{"name":"keyword.other.transform.stan"},"2":{"name":"punctuation.operator.equal.stan"}}},{"name":"keyword.other.return.stan","match":"\\breturn\\b"},{"match":"\\b(target|jacobian)\\s*([+][=])","captures":{"1":{"name":"keyword.other.target.stan"},"2":{"name":"keyword.operator.accumulator.stan"}}},{"name":"keyword.other.special-functions.stan","match":"\\b(print|reject|target|fatal_error)\\b"},{"name":"keyword.other.truncation.stan","match":"\\bT(?=\\s*\\[)"}]},"numbers":{"patterns":[{"name":"constant.numeric.complex.stan","match":"(?x)\n(\n[0-9]+\\.[0-9]*([eE][+-]?[0-9]+)?\n|\n\\.[0-9]+([eE][+-]?[0-9]+)?\n|\n[0-9]+[eE][+-]?[0-9]+i\n)i"},{"name":"constant.numeric.real.stan","match":"(?x)\n(\n[0-9]+\\.[0-9]*([eE][+-]?[0-9]+)?\n|\n\\.[0-9]+([eE][+-]?[0-9]+)?\n|\n[0-9]+[eE][+-]?[0-9]+\n)"},{"name":"constant.numeric.integer.stan","match":"[0-9]+(_ [0-9]+)*(?=[^A-Za-z])"}]},"operators":{"patterns":[{"name":"invalid.deprecated.assignment.stan","match":"\u003c-"},{"name":"keyword.operator.colon.stan","match":":"},{"name":"keyword.operator.sampling.stan","match":"~"},{"name":"keyword.operator.conditional.stan","match":"[?]"},{"name":"keyword.operator.logical.stan","match":"[|]{2}|\u0026\u0026"},{"name":"keyword.operator.comparison.stan","match":"==|!=|\u003c=?|\u003e=?"},{"name":"keyword.operator.logical.stan","match":"!"},{"name":"keyword.operator.arithmetic.stan","match":"\\+|-|\\.?\\*|\\.?/|%|\\\\|\\^|'"},{"name":"keyword.operator.assignment.stan","match":"[+-]=|\\.?[*/]=|="},{"name":"keyword.operator.arithmetic.stan","match":"\\+|-|\\.?\\*|\\.?/|%|\\\\|\\^|'"}]},"punctuation":{"patterns":[{"name":"meta.delimiter.comma.stan","match":","},{"begin":"{","end":"}","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.stan"}}},{"name":"meta.brace.curly.stan","match":"[{}]"},{"name":"meta.brace.square.stan","match":"\\[|\\]"},{"name":"meta.brace.round.stan","match":"\\(|\\)"},{"name":"punctuation.terminator.statement.stan","match":"\\;"},{"name":"punctuation.sampling.bar.stan","match":"[|]"}]},"strings":{"patterns":[{"name":"string.quoted.double.stan","begin":"\"","end":"\"","patterns":[{"name":"invalid.illegal.string.stan","match":"[^ a-zA-Z0-9~@#$%^\u0026*_'`\\-+={}\\[\\]()\u003c\u003e|/!?.,;:\"]+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}}]},"types":{"patterns":[{"name":"storage.type.stan","match":"\\b(int|real|data|complex|array|tuple|vector|simplex|unit_vector|sum_to_zero_vector|ordered|positive_ordered|row_vector|matrix|complex_vector|complex_matrix|complex_row_vector|corr_matrix|cov_matrix|cholesky_factor_cov|cholesky_factor_corr|column_stochastic_matrix|row_stochastic_matrix|void)\\b"}]},"variables":{"patterns":[{"name":"invalid.illegal.reserved.stan","match":"\\b(for|in|while|repeat|until|if|then|else|true|false|var|struct|typedef|export|auto|extern|var|static)\\b"},{"name":"invalid.illegal.variable","match":"\\b([a-zA-Z0-9_]*__|[0-9_][A-Za-z0-9_]+|_)\\b"},{"match":"\\b[A-Za-z][0-9A-Za-z_]*\\b"}]}}}
|