@shikijs/langs-precompiled 3.2.2 → 3.4.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.
- package/dist/abap.mjs +1 -1
- package/dist/actionscript-3.mjs +1 -1
- package/dist/ada.mjs +1 -1
- package/dist/angular-expression.mjs +1 -1
- package/dist/angular-html.mjs +1 -1
- package/dist/angular-inline-style.mjs +1 -1
- package/dist/angular-inline-template.mjs +1 -1
- package/dist/angular-let-declaration.mjs +1 -1
- package/dist/angular-template-blocks.mjs +1 -1
- package/dist/angular-ts.mjs +1 -1
- package/dist/apache.mjs +1 -1
- package/dist/apex.mjs +1 -1
- package/dist/apl.mjs +1 -1
- package/dist/applescript.mjs +1 -1
- package/dist/ara.mjs +1 -1
- package/dist/asciidoc.mjs +1 -1
- package/dist/asm.mjs +1 -1
- package/dist/astro.mjs +1 -1
- package/dist/awk.mjs +1 -1
- package/dist/ballerina.mjs +1 -1
- package/dist/bat.mjs +1 -1
- package/dist/beancount.mjs +1 -1
- package/dist/berry.mjs +1 -1
- package/dist/bibtex.mjs +1 -1
- package/dist/bicep.mjs +1 -1
- package/dist/blade.mjs +1 -1
- package/dist/bsl.mjs +1 -1
- package/dist/c.mjs +1 -1
- package/dist/cadence.mjs +1 -1
- package/dist/cairo.mjs +1 -1
- package/dist/clarity.mjs +1 -1
- package/dist/clojure.mjs +1 -1
- package/dist/cmake.mjs +1 -1
- package/dist/cobol.mjs +1 -1
- package/dist/codeql.mjs +1 -1
- package/dist/coffee.mjs +1 -1
- package/dist/common-lisp.mjs +1 -1
- package/dist/coq.mjs +1 -1
- package/dist/cpp-macro.mjs +1 -1
- package/dist/cpp.mjs +1 -1
- package/dist/crystal.mjs +1 -1
- package/dist/csharp.mjs +1 -1
- package/dist/css.mjs +1 -1
- package/dist/cue.mjs +1 -1
- package/dist/cypher.mjs +1 -1
- package/dist/d.mjs +1 -1
- package/dist/dart.mjs +1 -1
- package/dist/dax.mjs +1 -1
- package/dist/desktop.mjs +1 -1
- package/dist/diff.mjs +1 -1
- package/dist/dotenv.mjs +1 -1
- package/dist/dream-maker.mjs +1 -1
- package/dist/edge.mjs +1 -1
- package/dist/elixir.mjs +1 -1
- package/dist/elm.mjs +1 -1
- package/dist/emacs-lisp.mjs +1 -1
- package/dist/erb.mjs +1 -1
- package/dist/erlang.mjs +1 -1
- package/dist/es-tag-css.mjs +1 -1
- package/dist/es-tag-glsl.mjs +1 -1
- package/dist/es-tag-html.mjs +1 -1
- package/dist/es-tag-sql.mjs +1 -1
- package/dist/es-tag-xml.mjs +1 -1
- package/dist/fennel.mjs +1 -1
- package/dist/fish.mjs +1 -1
- package/dist/fluent.mjs +1 -1
- package/dist/fortran-fixed-form.mjs +1 -1
- package/dist/fortran-free-form.mjs +1 -1
- package/dist/fsharp.mjs +1 -1
- package/dist/gdresource.mjs +1 -1
- package/dist/gdscript.mjs +1 -1
- package/dist/gdshader.mjs +1 -1
- package/dist/genie.mjs +1 -1
- package/dist/gherkin.mjs +1 -1
- package/dist/gleam.mjs +1 -1
- package/dist/glimmer-js.mjs +1 -1
- package/dist/glimmer-ts.mjs +1 -1
- package/dist/glsl.mjs +1 -1
- package/dist/gnuplot.mjs +1 -1
- package/dist/go.mjs +1 -1
- package/dist/graphql.mjs +1 -1
- package/dist/groovy.mjs +1 -1
- package/dist/hack.mjs +1 -1
- package/dist/haml.mjs +1 -1
- package/dist/handlebars.mjs +1 -1
- package/dist/haskell.mjs +1 -1
- package/dist/haxe.mjs +1 -1
- package/dist/hcl.mjs +1 -1
- package/dist/hjson.mjs +1 -1
- package/dist/hlsl.mjs +1 -1
- package/dist/html-derivative.mjs +1 -1
- package/dist/html.mjs +1 -1
- package/dist/http.mjs +1 -1
- package/dist/hxml.mjs +1 -1
- package/dist/hy.mjs +1 -1
- package/dist/imba.mjs +1 -1
- package/dist/ini.mjs +1 -1
- package/dist/java.mjs +1 -1
- package/dist/javascript.mjs +1 -1
- package/dist/jinja.mjs +1 -1
- package/dist/jison.mjs +1 -1
- package/dist/json.mjs +1 -1
- package/dist/json5.mjs +1 -1
- package/dist/jsonc.mjs +1 -1
- package/dist/jsonl.mjs +1 -1
- package/dist/jsonnet.mjs +1 -1
- package/dist/jssm.mjs +1 -1
- package/dist/jsx.mjs +1 -1
- package/dist/julia.mjs +1 -1
- package/dist/kotlin.mjs +1 -1
- package/dist/kusto.mjs +1 -1
- package/dist/latex.mjs +1 -1
- package/dist/lean.mjs +1 -1
- package/dist/less.mjs +1 -1
- package/dist/liquid.mjs +1 -1
- package/dist/llvm.mjs +1 -1
- package/dist/log.mjs +1 -1
- package/dist/logo.mjs +1 -1
- package/dist/lua.mjs +1 -1
- package/dist/luau.mjs +1 -1
- package/dist/make.mjs +1 -1
- package/dist/markdown-vue.mjs +1 -1
- package/dist/markdown.mjs +1 -1
- package/dist/marko.mjs +1 -1
- package/dist/matlab.mjs +1 -1
- package/dist/mdc.mjs +1 -1
- package/dist/mdx.mjs +1 -1
- package/dist/mermaid.mjs +1 -1
- package/dist/mipsasm.mjs +1 -1
- package/dist/mojo.mjs +1 -1
- package/dist/move.mjs +1 -1
- package/dist/narrat.mjs +1 -1
- package/dist/nextflow.mjs +1 -1
- package/dist/nginx.mjs +1 -1
- package/dist/nim.mjs +1 -1
- package/dist/nix.mjs +1 -1
- package/dist/nushell.mjs +1 -1
- package/dist/objective-c.mjs +1 -1
- package/dist/objective-cpp.mjs +1 -1
- package/dist/ocaml.mjs +1 -1
- package/dist/pascal.mjs +1 -1
- package/dist/perl.mjs +1 -1
- package/dist/php.mjs +1 -1
- package/dist/plsql.mjs +1 -1
- package/dist/po.mjs +1 -1
- package/dist/polar.mjs +1 -1
- package/dist/postcss.mjs +1 -1
- package/dist/powerquery.mjs +1 -1
- package/dist/powershell.mjs +1 -1
- package/dist/prisma.mjs +1 -1
- package/dist/prolog.mjs +1 -1
- package/dist/proto.mjs +1 -1
- package/dist/pug.mjs +1 -1
- package/dist/puppet.mjs +1 -1
- package/dist/purescript.mjs +1 -1
- package/dist/python.mjs +1 -1
- package/dist/qml.mjs +1 -1
- package/dist/qss.mjs +1 -1
- package/dist/r.mjs +1 -1
- package/dist/racket.mjs +1 -1
- package/dist/raku.mjs +1 -1
- package/dist/razor.mjs +1 -1
- package/dist/reg.mjs +1 -1
- package/dist/regexp.mjs +1 -1
- package/dist/rel.mjs +1 -1
- package/dist/riscv.mjs +1 -1
- package/dist/rst.mjs +1 -1
- package/dist/ruby.mjs +1 -1
- package/dist/rust.mjs +1 -1
- package/dist/sas.mjs +1 -1
- package/dist/sass.mjs +1 -1
- package/dist/scala.mjs +1 -1
- package/dist/scheme.mjs +1 -1
- package/dist/scss.mjs +1 -1
- package/dist/sdbl.mjs +1 -1
- package/dist/shaderlab.mjs +1 -1
- package/dist/shellscript.mjs +1 -1
- package/dist/shellsession.mjs +1 -1
- package/dist/smalltalk.mjs +1 -3
- package/dist/solidity.mjs +1 -1
- package/dist/soy.mjs +1 -1
- package/dist/sparql.mjs +1 -1
- package/dist/splunk.mjs +1 -1
- package/dist/sql.mjs +1 -1
- package/dist/ssh-config.mjs +1 -1
- package/dist/stata.mjs +1 -1
- package/dist/stylus.mjs +1 -1
- package/dist/svelte.mjs +1 -1
- package/dist/system-verilog.mjs +1 -1
- package/dist/systemd.mjs +1 -1
- package/dist/talonscript.mjs +1 -1
- package/dist/tasl.mjs +1 -1
- package/dist/tcl.mjs +1 -1
- package/dist/templ.mjs +1 -1
- package/dist/terraform.mjs +1 -1
- package/dist/tex.mjs +1 -1
- package/dist/toml.mjs +1 -1
- package/dist/tsx.mjs +1 -1
- package/dist/turtle.mjs +1 -1
- package/dist/twig.mjs +1 -1
- package/dist/typescript.mjs +1 -1
- package/dist/typespec.mjs +1 -1
- package/dist/typst.mjs +1 -1
- package/dist/v.mjs +1 -1
- package/dist/vala.mjs +1 -1
- package/dist/vb.mjs +1 -1
- package/dist/verilog.mjs +1 -1
- package/dist/vhdl.mjs +1 -1
- package/dist/viml.mjs +1 -1
- package/dist/vue-html.mjs +1 -1
- package/dist/vue-sfc-style-variable-injection.mjs +1 -1
- package/dist/vue.mjs +3 -3
- package/dist/vyper.mjs +1 -1
- package/dist/wasm.mjs +1 -1
- package/dist/wenyan.mjs +1 -1
- package/dist/wgsl.mjs +1 -1
- package/dist/wikitext.mjs +1 -1
- package/dist/wit.mjs +1 -1
- package/dist/wolfram.mjs +1 -1
- package/dist/xml.mjs +1 -1
- package/dist/xsl.mjs +1 -1
- package/dist/yaml.mjs +1 -1
- package/dist/zenscript.mjs +1 -1
- package/dist/zig.mjs +1 -1
- package/package.json +4 -4
package/dist/haskell.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EmulatedRegExp } from 'oniguruma-to-es'
|
|
2
2
|
|
|
3
|
-
const lang = Object.freeze({displayName:"Haskell",fileTypes:["hs","hs-boot","hsig"],name:"haskell",patterns:[{include:"#liquid_haskell"},{include:"#comment_like"},{include:"#numeric_literals"},{include:"#string_literal"},{include:"#char_literal"},{match:/(?<![\@\#])-\}/dgv,name:"invalid"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(\))/dgv,name:"constant.language.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"constant.language.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"punctuation.bracket.haskell"},"2":{name:"punctuation.bracket.haskell"}},match:/(\[)\p{space}*(\])/dgv,name:"constant.language.empty-list.haskell"},{begin:/(\b(?<!')(module)|^(signature))(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.module.haskell"},"3":{name:"keyword.other.signature.haskell"}},end:/(?=\b(?<!')where\b(?!'))/dgv,name:"meta.declaration.module.haskell",patterns:[{include:"#comment_like"},{include:"#module_name"},{include:"#module_exports"},{match:/[a-z]+/dgv,name:"invalid"}]},{include:"#ffi"},{begin:/^(\p{space}*)(class)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.class.haskell"}},end:/(?=(?<!')\bwhere\b(?!'))|(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.class.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(instance))?\p{space}+((?:(?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)(?=\b(?<!'')where\b(?!''))/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=(?<!')\bderiving\b(?!'))|(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.generalized.haskell",patterns:[{include:"#comment_like"},{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"#comment_like"},{include:"#gadt_constructor"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"},{include:"#deriving"},{include:"#gadt_constructor"}]},{include:"#role_annotation"},{begin:/^(\p{space}*)(pattern)\p{space}+([^\n]*?)\p{space}+(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"2":{name:"keyword.other.pattern.haskell"},"3":{patterns:[{include:"#comma"},{include:"#data_constructor"}]},"4":{name:"keyword.operator.double-colon.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^\p{space}*(pattern)\b(?!')/dgv,captures:{"1":{name:"keyword.other.pattern.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.haskell",patterns:[{include:"$self"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(family|instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.$3.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.algebraic.haskell",patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#forall"},{include:"#adt_constructor"},{include:"#context"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)\p{space}+(family)\b(?!')(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')where\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.family.haskell"},"4":{patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.family.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)(?:\p{space}+(instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+|::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^(\p{space}*)(instance)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.instance.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.declaration.instance.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(import)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.import.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.import.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{captures:{"1":{name:"keyword.other.$1.haskell"}},match:/(qualified|as|hiding)/dgv},{include:"#module_name"},{include:"#module_exports"}]},{include:"#deriving"},{include:"#layout_herald"},{include:"#keyword"},{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{patterns:[{include:"#comment_like"},{include:"#integer_literals"},{include:"#infix_op"}]}},match:/^\p{space}*(infix[lr]?)\p{space}+([^\n]*)/dgv,name:"meta.fixity-declaration.haskell"},{include:"#overloaded_label"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#fun_decl"},{include:"#qualifier"},{include:"#data_constructor"},{include:"#start_type_signature"},{include:"#prefix_op"},{include:"#infix_op"},{begin:/(\()(#)\p{space}/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#quasi_quote"},{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#record"}],repository:{adt_constructor:{patterns:[{include:"#comment_like"},{begin:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(=)|(\|))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.eq.haskell"},"2":{name:"keyword.operator.pipe.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?:^|^)\\p{space}*(?:(?<!')\\b([\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.]+)|('?(?<paren>\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:))*\\)))*\\)))*\\)))*\\)))*\\)))|('?(?<brac>\\((?:[^\\[\\]]?|(?:\\((?:[^\\[\\]]?|(?:\\((?:[^\\[\\]]?|(?:\\((?:[^\\[\\]]?|(?:\\((?:[^\\[\\]]?|(?:))*\\]))*\\]))*\\]))*\\]))*\\])))\\p{space}*(?:(?<![[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']])(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)|(`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`))|(?<!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)|(\\()\\p{space}*(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)\\p{space}*(\\))","dgv",{"strategy":"clip_search"}),endCaptures:{"1":{patterns:[{include:"#type_signature"}]},"2":{patterns:[{include:"#type_signature"}]},"4":{patterns:[{include:"#type_signature"}]},"6":{name:"constant.other.operator.haskell"},"7":{name:"punctuation.backtick.haskell"},"8":{name:"constant.other.haskell"},"9":{name:"punctuation.backtick.haskell"},"10":{name:"constant.other.haskell"},"11":{name:"punctuation.paren.haskell"},"12":{name:"constant.other.operator.haskell"},"13":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#record_decl"},{include:"#forall"},{include:"#context"}]}]},block_comment:{applyEndPatternLast:1,begin:/\{-/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.haskell",patterns:[{include:"#block_comment"}]},char_literal:{captures:{"1":{name:"punctuation.definition.string.begin.haskell"},"2":{name:"constant.character.escape.haskell"},"3":{name:"constant.character.escape.octal.haskell"},"4":{name:"constant.character.escape.hexadecimal.haskell"},"5":{name:"constant.character.escape.control.haskell"},"6":{name:"punctuation.definition.string.end.haskell"}},match:/(?<![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])(')(?:[ -\[\]-\~]|(\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\"'\&]))|(\\o[0-7]+)|(\\x\p{AHex}+)|(\\\^[A-Z\@\[\]\\\^_]))(')/dgv,name:"string.quoted.single.haskell"},comma:{match:/,/dgv,name:"punctuation.separator.comma.haskell"},comment_like:{patterns:[{include:"#cpp"},{include:"#pragma"},{include:"#comments"}]},comments:{patterns:[{begin:/^(\p{space}*)(--\p{space}[\|\$])/dgv,beginCaptures:{"2":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/(?=^(?!\1--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])))()/dgv,name:"comment.block.documentation.haskell"},{begin:/(^[ \t]+)?(--\p{space}[\^\*])/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/\n/dgv,name:"comment.line.documentation.haskell"},{applyEndPatternLast:1,begin:/\{-\p{space}?[\|\$\*\^]/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.documentation.haskell",patterns:[{include:"#block_comment"}]},{begin:/(^[ \t]+)?(?=--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/\n/dgv,name:"comment.line.double-dash.haskell"}]},{include:"#block_comment"}]},context:{captures:{"1":{patterns:[{include:"#comment_like"},{include:"#type_signature"}]},"2":{name:"keyword.operator.big-arrow.haskell"}},match:/([^\n]*)(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(=>|⇒)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},cpp:{captures:{"1":{name:"punctuation.definition.preprocessor.c"}},match:/^(#)[^\n]*(?=\n?$)/dgv,name:"meta.preprocessor.c"},data_constructor:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*(?![\.'\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.other.haskell"},deriving:{patterns:[{begin:/^(\p{space}*)(deriving)\p{space}+(?:(via|stock|newtype|anyclass)\p{space}+)?/dgv,beginCaptures:{"2":{name:"keyword.other.deriving.haskell"},"3":{name:"keyword.other.deriving.strategy.$3.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.deriving.haskell",patterns:[{include:"#comment_like"},{match:/(?<!')\b(instance)\b(?!')/dgv,name:"keyword.other.instance.haskell"},{captures:{"1":{name:"keyword.other.deriving.strategy.$1.haskell"}},match:/(?<!')\b(via|stock|newtype|anyclass)\b(?!')/dgv},{include:"#type_signature"}]},{begin:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},name:"meta.deriving.haskell",patterns:[{include:"#type_signature"}]},{captures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{patterns:[{include:"#type_signature"}]},"5":{name:"keyword.other.deriving.strategy.via.haskell"},"6":{patterns:[{include:"#type_signature"}]}},match:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}+([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(\p{space}+(via)\p{space}+([^\n]*)(?=\n?$))?/dgv,name:"meta.deriving.haskell"},{match:/(?<!')\b(via)\b(?!')/dgv,name:"keyword.other.deriving.strategy.via.haskell"}]},double_colon:{captures:{"1":{name:"keyword.operator.double-colon.haskell"}},match:/\p{space}*(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])\p{space}*/dgv},export_constructs:{patterns:[{include:"#comment_like"},{begin:/\b(?<!')(pattern)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.pattern.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{begin:/\b(?<!')(type)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.type.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"storage.type.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"storage.type.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{match:/(?<!')\b[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"entity.name.function.haskell"},{match:/(?<!')\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"storage.type.haskell"},{include:"#record_wildcard"},{include:"#reserved_symbol"},{include:"#prefix_op"}]},ffi:{begin:/^(\p{space}*)(foreign)\p{space}+(import|export)\p{space}+/dgv,beginCaptures:{"2":{name:"keyword.other.foreign.haskell"},"3":{name:"keyword.other.$3.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.$3.foreign.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.calling-convention.$1.haskell"}},match:/\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\p{space}+/dgv},{begin:/(?=")|(?=\b(?<!')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!'))/dgv,end:/(?=(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]},"3":{name:"entity.name.function.haskell"},"4":{name:"entity.name.function.infix.haskell"}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?:\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|\(\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*\))/dgv},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?=\n?$)/dgv},{captures:{"0":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/"(?:\\"|[^"])*"/dgv},{captures:{"1":{name:"entity.name.function.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.function.infix.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|(\()\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},{include:"#double_colon"},{include:"#type_signature"}]},float_literals:{captures:{"1":{name:"constant.numeric.floating.decimal.haskell"},"2":{name:"constant.numeric.floating.hexadecimal.haskell"}},match:/\b(?<!')(?:([0-9][_0-9]*\.[0-9][_0-9]*(?:[eE][\-\+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][\-\+]?[0-9][_0-9]*)|(0(?:[xX]_*\p{AHex}[_\p{AHex}]*\.\p{AHex}[_\p{AHex}]*(?:[pP][\-\+]?[0-9][_0-9]*)?|[xX]_*\p{AHex}[_\p{AHex}]*[pP][\-\+]?[0-9][_0-9]*)))\b(?!')/dgv},forall:{begin:/\b(?<!')(forall|∀)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.forall.haskell"}},end:/(\.)|(->|→)/dgv,endCaptures:{"1":{name:"keyword.operator.period.haskell"},"2":{name:"keyword.operator.arrow.haskell"}},patterns:[{include:"#comment_like"},{include:"#type_variable"},{include:"#type_signature"}]},fun_decl:{begin:/^(\p{space}*)(?<fn>(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:))?))?))?))?))?)\p{space}*(?<![[\p{S}\p{P}]&&[^\)\,\;\]\`\}_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"2":{name:"entity.name.function.haskell",patterns:[{include:"#reserved_symbol"},{include:"#prefix_op"}]},"3":{name:"keyword.operator.double-colon.haskell"}},end:/(?=(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]]))|(?=[\}\;])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.function.type-declaration.haskell",patterns:[{include:"#type_signature"}]},gadt_constructor:{patterns:[{begin:/^(\p{space}*)(?:(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\)))/dgv,beginCaptures:{"2":{name:"constant.other.haskell"},"3":{name:"punctuation.paren.haskell"},"4":{name:"constant.other.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},end:/(?=\b(?<!'')deriving\b(?!'))|(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\))/dgv,beginCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(?=\n?$)/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]}]},infix_op:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"keyword.operator.infix.haskell"}},match:/((?:(?<!'')('')?[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"punctuation.backtick.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{patterns:[{include:"#data_constructor"}]},"4":{name:"punctuation.backtick.haskell"}},match:/(`)((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(`)/dgv,name:"keyword.operator.function.infix.haskell"}]},inline_phase:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.inlining-phase.haskell",patterns:[{match:/~/dgv,name:"punctuation.tilde.haskell"},{include:"#integer_literals"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid"}]},integer_literals:{captures:{"1":{name:"constant.numeric.integral.decimal.haskell"},"2":{name:"constant.numeric.integral.hexadecimal.haskell"},"3":{name:"constant.numeric.integral.octal.haskell"},"4":{name:"constant.numeric.integral.binary.haskell"}},match:/\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*\p{AHex}[_\p{AHex}]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\b(?!')/dgv},keyword:{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.$2.haskell"}},match:/\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\b(?!')/dgv},layout_herald:{begin:/(?<!')\b(?:(where|let|m?do)|(of))\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.of.haskell"},"3":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},liquid_haskell:{begin:/\{-@/dgv,end:/@-\}/dgv,name:"block.liquidhaskell.haskell",patterns:[{include:"$self"}]},module_exports:{applyEndPatternLast:1,begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.declaration.exports.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.module.haskell"}},match:/\b(?<!')(module)\b(?!')/dgv},{include:"#comma"},{include:"#export_constructs"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#record_wildcard"},{include:"#export_constructs"},{include:"#comma"}]}]},module_name:{match:/*@__PURE__*/ new EmulatedRegExp("(?<conid>[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:))?))?))?))?))?)","dgv",{"hiddenCaptures":[3,4,5,6]}),name:"entity.name.namespace.haskell"},numeric_literals:{patterns:[{include:"#float_literals"},{include:"#integer_literals"}]},overloaded_label:{patterns:[{captures:{"1":{name:"keyword.operator.prefix.hash.haskell"},"2":{patterns:[{include:"#string_literal"}]}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(#)(?:("(?:\\"|[^"])*")|[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'\.]+)/dgv,name:"entity.name.label.haskell"}]},pragma:{begin:/\{-#/dgv,end:/#-\}/dgv,name:"meta.preprocessor.haskell",patterns:[{begin:/\b(?<!')(LANGUAGE)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{match:/(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)/dgv,name:"invalid.deprecated"},{captures:{"1":{name:"keyword.other.preprocessor.extension.haskell"}},match:/((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali[sz]edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))/dgv},{include:"#comma"}]},{begin:/\b(?<!')(SPECIALI[SZ]E)(?:\p{space}*(\[[^\[\]]*\])?\p{space}*|\p{space}+)(instance)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{patterns:[{include:"#inline_phase"}]},"3":{name:"keyword.other.instance.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#type_signature"}]},{begin:/\b(?<!')(SPECIALI[SZ]E)\b(?!')(?:\p{space}+(INLINE)\b(?!'))?\p{space}*(\[[^\[\]]*\])?\p{space}*/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{name:"keyword.other.preprocessor.pragma.haskell"},"3":{patterns:[{include:"#inline_phase"}]}},end:/(?=#-\})/dgv,patterns:[{include:"$self"}]},{match:/\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\b(?!')/dgiv,name:"keyword.other.preprocessor.haskell"},{begin:/\b(DEPRECATED|WARNING)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#string_literal"}]}]},prefix_op:{patterns:[{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"entity.name.function.infix.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(?!(?:--+|\.\.)\))(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))\p{space}*(\))/dgv}]},qualifier:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\./dgv,name:"entity.name.namespace.haskell"},quasi_quote:{patterns:[{begin:/(\[)([edp])?(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"$self"}]},{begin:/(\[)(t)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"#type_signature"}]},{begin:/(\[)(?:(\$\$)|(\$))?([[^\p{space}\p{S}\p{P}]\.'_]*)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"keyword.operator.prefix.double-dollar.haskell"},"3":{name:"keyword.operator.prefix.dollar.haskell"},"4":{name:"entity.name.quasi-quoter.haskell",patterns:[{include:"#qualifier"}]},"5":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\5\]()()()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell"}]},record:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.haskell",patterns:[{include:"#comment_like"},{include:"#record_field"}]},record_decl:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.definition.haskell",patterns:[{include:"#comment_like"},{include:"#record_decl_field"}]},record_decl_field:{begin:/(?:([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.definition.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.definition.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"#double_colon"},{include:"#type_signature"},{include:"#record_decl_field"}]},record_field:{patterns:[{begin:/(?:([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\.']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.haskell",patterns:[{include:"#qualifier"}]},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"$self"}]},{include:"#record_wildcard"}]},record_wildcard:{captures:{"1":{name:"variable.other.member.wildcard.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(\.\.)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},reserved_symbol:{patterns:[{captures:{"1":{name:"keyword.operator.double-dot.haskell"},"2":{name:"keyword.operator.colon.haskell"},"3":{name:"keyword.operator.eq.haskell"},"4":{name:"keyword.operator.lambda.haskell"},"5":{name:"keyword.operator.pipe.haskell"},"6":{name:"keyword.operator.arrow.left.haskell"},"7":{name:"keyword.operator.arrow.haskell"},"8":{name:"keyword.operator.arrow.left.tail.haskell"},"9":{name:"keyword.operator.arrow.left.tail.double.haskell"},"10":{name:"keyword.operator.arrow.tail.haskell"},"11":{name:"keyword.operator.arrow.tail.double.haskell"},"12":{name:"keyword.other.forall.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(\.\.)|(:)|(=)|(\\)|(\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},{captures:{"1":{name:"keyword.operator.postfix.hash.haskell"}},match:/(?<=[[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\#\,\;\[\`\{]])(#+)(?![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\)\,\;\]\`\}]])/dgv},{captures:{"1":{name:"keyword.operator.infix.tight.at.haskell"}},match:/(?<=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\)\}\]])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\[\{])/dgv},{captures:{"1":{name:"keyword.operator.prefix.tilde.haskell"},"2":{name:"keyword.operator.prefix.bang.haskell"},"3":{name:"keyword.operator.prefix.minus.haskell"},"4":{name:"keyword.operator.prefix.dollar.haskell"},"5":{name:"keyword.operator.prefix.double-dollar.haskell"}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(?:(~)|(!)|(-)|(\$)|(\$\$))(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\{\[])/dgv}]},role_annotation:{patterns:[{begin:/^(\p{space}*)(type)\p{space}+(role)\b(?!')/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.role.haskell"}},end:/(?=[\}\;])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.role-annotation.haskell",patterns:[{include:"#comment_like"},{include:"#type_constructor"},{captures:{"1":{name:"keyword.other.role.$1.haskell"}},match:/\b(?<!')(nominal|representational|phantom)\b(?!')/dgv}]}]},start_type_signature:{patterns:[{begin:/^(\p{space}*)(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])\p{space}*/dgv,beginCaptures:{"2":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|[\]\,]|(?<!')\b(in|then|else|of)\b(?!')|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:([\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]])|([\#\@])-\}|(?=[\}\;])|^(?!(?!)\p{space}*\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$))))/dgv,name:"meta.type-declaration.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|[\]\,]|\b(?<!')(in|then|else|of)\b(?!')|([\#\@])-\}|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:([\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"'[^\p{S}\p{P}]])|(?=[\}\;])|(?=\n?$))/dgv,patterns:[{include:"#type_signature"}]}]},string_literal:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.haskell"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.haskell"}},name:"string.quoted.double.haskell",patterns:[{match:/\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\"'\&])/dgv,name:"constant.character.escape.haskell"},{match:/\\(?:o[0-7]+|x\p{AHex}+|[0-9]+)/dgv,name:"constant.character.escape.octal.haskell"},{match:/\\\^[A-Z\@\[\]\\\^_]/dgv,name:"constant.character.escape.control.haskell"},{begin:/\\\p{space}/dgv,beginCaptures:{"0":{name:"constant.character.escape.begin.haskell"}},end:/\\/dgv,endCaptures:{"0":{name:"constant.character.escape.end.haskell"}},patterns:[{match:/\P{space}+/dgv,name:"invalid.illegal.character-not-allowed-here.haskell"}]}]},type_application:{patterns:[{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=")/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?<=")/dgv,name:"meta.type-application.haskell",patterns:[{include:"#string_literal"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]}]},type_constructor:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.haskell"}},match:/(')?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},type_operator:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.operator.infix.haskell"}},match:/(?:(?<!')('))?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(?![\#\@]?-\})(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.backtick.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.infix.haskell"},"5":{name:"punctuation.backtick.haskell"}},match:/(')?(`)((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(`)/dgv}]},type_signature:{patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*(\))/dgv,name:"support.constant.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"},"3":{name:"punctuation.bracket.haskell"}},match:/(')?(\[)\p{space}*(\])/dgv,name:"support.constant.empty-list.haskell"},{include:"#integer_literals"},{match:/(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,name:"keyword.operator.double-colon.haskell"},{include:"#forall"},{match:/=>|⇒/dgv,name:"keyword.operator.big-arrow.haskell"},{include:"#string_literal"},{match:/'[^']'/dgv,name:"invalid"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#type_operator"},{include:"#type_constructor"},{begin:/(\()(#)/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{include:"#type_variable"}]},type_variable:{match:/\b(?<!')(?!(?:forall|deriving)\b(?!'))[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"variable.other.generic-type.haskell"},where:{patterns:[{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"}]}},scopeName:"source.haskell",embeddedLangs:undefined,aliases:["hs"]})
|
|
3
|
+
const lang = Object.freeze({displayName:"Haskell",fileTypes:["hs","hs-boot","hsig"],name:"haskell",patterns:[{include:"#liquid_haskell"},{include:"#comment_like"},{include:"#numeric_literals"},{include:"#string_literal"},{include:"#char_literal"},{match:/(?<![\#\@])-\}/dgv,name:"invalid"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(\))/dgv,name:"constant.language.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"constant.language.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*,[\,\p{space}]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\,\p{space}]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"punctuation.bracket.haskell"},"2":{name:"punctuation.bracket.haskell"}},match:/(\[)\p{space}*(\])/dgv,name:"constant.language.empty-list.haskell"},{begin:/(\b(?<!')(module)|^(signature))\b((?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.module.haskell"},"3":{name:"keyword.other.signature.haskell"}},end:/(?=\b(?<!')where\b(?!'))/dgv,name:"meta.declaration.module.haskell",patterns:[{include:"#comment_like"},{include:"#module_name"},{include:"#module_exports"},{match:/[a-z]+/dgv,name:"invalid"}]},{include:"#ffi"},{begin:/^(\p{space}*)(class)\b((?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.class.haskell"}},end:/(?=(?<!')\bwhere\b(?!'))|(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.class.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(instance))?\p{space}+((?:(?!(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(?:=|--+)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)(?=\b(?<!'')where\b(?!''))/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=(?<!')\bderiving\b(?!'))|(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.generalized.haskell",patterns:[{include:"#comment_like"},{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"#comment_like"},{include:"#gadt_constructor"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"},{include:"#deriving"},{include:"#gadt_constructor"}]},{include:"#role_annotation"},{begin:/^(\p{space}*)(pattern)\p{space}+([^\n]*?)\p{space}+(::|∷)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])/dgv,beginCaptures:{"2":{name:"keyword.other.pattern.haskell"},"3":{patterns:[{include:"#comma"},{include:"#data_constructor"}]},"4":{name:"keyword.operator.double-colon.haskell"}},end:/(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^\p{space}*(pattern)\b(?!')/dgv,captures:{"1":{name:"keyword.other.pattern.haskell"}},end:/(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.haskell",patterns:[{include:"$self"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(family|instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(?:=|--+)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.$3.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.algebraic.haskell",patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#forall"},{include:"#adt_constructor"},{include:"#context"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)\p{space}+(family)\b(?!')(((?!(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(?:=|--+)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])|\b(?<!')where\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.family.haskell"},"4":{patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]}},end:/(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.family.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)(?:\p{space}+(instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(?:=|--+|::|∷)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^(\p{space}*)(instance)\b((?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.instance.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=[\;\}])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))/dgv,name:"meta.declaration.instance.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(import)\b((?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.import.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=[\;\}])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))/dgv,name:"meta.import.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{captures:{"1":{name:"keyword.other.$1.haskell"}},match:/(qualified|as|hiding)/dgv},{include:"#module_name"},{include:"#module_exports"}]},{include:"#deriving"},{include:"#layout_herald"},{include:"#keyword"},{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{patterns:[{include:"#comment_like"},{include:"#integer_literals"},{include:"#infix_op"}]}},match:/^\p{space}*(infix[lr]?)\p{space}+([^\n]*)/dgv,name:"meta.fixity-declaration.haskell"},{include:"#overloaded_label"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#fun_decl"},{include:"#qualifier"},{include:"#data_constructor"},{include:"#start_type_signature"},{include:"#prefix_op"},{include:"#infix_op"},{begin:/(\()(#)\p{space}/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#quasi_quote"},{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#record"}],repository:{adt_constructor:{patterns:[{include:"#comment_like"},{begin:/(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(?:(=)|(\|))(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])/dgv,beginCaptures:{"1":{name:"keyword.operator.eq.haskell"},"2":{name:"keyword.operator.pipe.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?:^|^)\\p{space}*(?:(?<!')\\b(['\\._\\p{Ll}\\p{Lu}\\p{Lt}\\p{Nd}]+)|('?(?<paren>\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:\\((?:[^\\(\\)]?|(?:))*\\)))*\\)))*\\)))*\\)))*\\)))|('?(?<brac>\\((?:[^\\]\\[]?|(?:\\((?:[^\\]\\[]?|(?:\\((?:[^\\]\\[]?|(?:\\((?:[^\\]\\[]?|(?:\\((?:[^\\]\\[]?|(?:))*\\]))*\\]))*\\]))*\\]))*\\])))\\p{space}*(?:(?<![[\\p{S}\\p{P}]&&[^\\]\"'\\(\\)\\,\\;\\[_\\`\\{\\}]])(:[[\\p{S}\\p{P}]&&[^\\]\"'\\(\\)\\,\\;\\[_\\`\\{\\}]]*)|(`)([\\p{Lu}\\p{Lt}]['_\\p{Ll}\\p{Lu}\\p{Lt}\\p{Nd}]*)(`))|(?<!')\\b([\\p{Lu}\\p{Lt}]['_\\p{Ll}\\p{Lu}\\p{Lt}\\p{Nd}]*)|(\\()\\p{space}*(:[[\\p{S}\\p{P}]&&[^\\]\"'\\(\\)\\,\\;\\[_\\`\\{\\}]]*)\\p{space}*(\\))","dgv",{"strategy":"clip_search"}),endCaptures:{"1":{patterns:[{include:"#type_signature"}]},"2":{patterns:[{include:"#type_signature"}]},"4":{patterns:[{include:"#type_signature"}]},"6":{name:"constant.other.operator.haskell"},"7":{name:"punctuation.backtick.haskell"},"8":{name:"constant.other.haskell"},"9":{name:"punctuation.backtick.haskell"},"10":{name:"constant.other.haskell"},"11":{name:"punctuation.paren.haskell"},"12":{name:"constant.other.operator.haskell"},"13":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#record_decl"},{include:"#forall"},{include:"#context"}]}]},block_comment:{applyEndPatternLast:1,begin:/\{-/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.haskell",patterns:[{include:"#block_comment"}]},char_literal:{captures:{"1":{name:"punctuation.definition.string.begin.haskell"},"2":{name:"constant.character.escape.haskell"},"3":{name:"constant.character.escape.octal.haskell"},"4":{name:"constant.character.escape.hexadecimal.haskell"},"5":{name:"constant.character.escape.control.haskell"},"6":{name:"punctuation.definition.string.end.haskell"}},match:/(?<!['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}])(')(?:[ -\[\]-\~]|(\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|["\&'\\abfnrtv]))|(\\o[0-7]+)|(\\x\p{AHex}+)|(\\\^[\@-_]))(')/dgv,name:"string.quoted.single.haskell"},comma:{match:/,/dgv,name:"punctuation.separator.comma.haskell"},comment_like:{patterns:[{include:"#cpp"},{include:"#pragma"},{include:"#comments"}]},comments:{patterns:[{begin:/^(\p{space}*)(--\p{space}[\$\|])/dgv,beginCaptures:{"2":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/(?=^(?!\1--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])))()/dgv,name:"comment.block.documentation.haskell"},{begin:/(^[\t ]+)?(--\p{space}[\*\^])/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/\n/dgv,name:"comment.line.documentation.haskell"},{applyEndPatternLast:1,begin:/\{-\p{space}?[\$\*\^\|]/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.documentation.haskell",patterns:[{include:"#block_comment"}]},{begin:/(^[\t ]+)?(?=--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]))/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/\n/dgv,name:"comment.line.double-dash.haskell"}]},{include:"#block_comment"}]},context:{captures:{"1":{patterns:[{include:"#comment_like"},{include:"#type_signature"}]},"2":{name:"keyword.operator.big-arrow.haskell"}},match:/([^\n]*)(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(=>|⇒)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])/dgv},cpp:{captures:{"1":{name:"punctuation.definition.preprocessor.c"}},match:/^(#)[^\n]*(?=\n?$)/dgv,name:"meta.preprocessor.c"},data_constructor:{match:/\b(?<!')[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*(?!['\.\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.other.haskell"},deriving:{patterns:[{begin:/^(\p{space}*)(deriving)\p{space}+(?:(via|stock|newtype|anyclass)\p{space}+)?/dgv,beginCaptures:{"2":{name:"keyword.other.deriving.haskell"},"3":{name:"keyword.other.deriving.strategy.$3.haskell"}},end:/(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.deriving.haskell",patterns:[{include:"#comment_like"},{match:/(?<!')\b(instance)\b(?!')/dgv,name:"keyword.other.instance.haskell"},{captures:{"1":{name:"keyword.other.deriving.strategy.$1.haskell"}},match:/(?<!')\b(via|stock|newtype|anyclass)\b(?!')/dgv},{include:"#type_signature"}]},{begin:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},name:"meta.deriving.haskell",patterns:[{include:"#type_signature"}]},{captures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{patterns:[{include:"#type_signature"}]},"5":{name:"keyword.other.deriving.strategy.via.haskell"},"6":{patterns:[{include:"#type_signature"}]}},match:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}+([\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)(\p{space}+(via)\p{space}+([^\n]*)(?=\n?$))?/dgv,name:"meta.deriving.haskell"},{match:/(?<!')\b(via)\b(?!')/dgv,name:"keyword.other.deriving.strategy.via.haskell"}]},double_colon:{captures:{"1":{name:"keyword.operator.double-colon.haskell"}},match:/\p{space}*(::|∷)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])\p{space}*/dgv},export_constructs:{patterns:[{include:"#comment_like"},{begin:/\b(?<!')(pattern)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.pattern.haskell"}},end:/([\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{begin:/\b(?<!')(type)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.type.haskell"}},end:/([\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"storage.type.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"storage.type.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{match:/(?<!')\b[_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*/dgv,name:"entity.name.function.haskell"},{match:/(?<!')\b[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*/dgv,name:"storage.type.haskell"},{include:"#record_wildcard"},{include:"#reserved_symbol"},{include:"#prefix_op"}]},ffi:{begin:/^(\p{space}*)(foreign)\p{space}+((?:im|ex)port)\p{space}+/dgv,beginCaptures:{"2":{name:"keyword.other.foreign.haskell"},"3":{name:"keyword.other.$3.haskell"}},end:/(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.$3.foreign.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.calling-convention.$1.haskell"}},match:/\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\p{space}+/dgv},{begin:/(?=")|(?=\b(?<!')([_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)\b(?!'))/dgv,end:/(?=(::|∷)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]))/dgv,patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]},"3":{name:"entity.name.function.haskell"},"4":{name:"entity.name.function.infix.haskell"}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?:\b(?<!'')([_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)\b(?!')|\(\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+)\p{space}*\))/dgv},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?=\n?$)/dgv},{captures:{"0":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/"(?:\\"|[^"])*"/dgv},{captures:{"1":{name:"entity.name.function.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.function.infix.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/\b(?<!'')([_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)\b(?!')|(\()\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+)\p{space}*(\))/dgv}]},{include:"#double_colon"},{include:"#type_signature"}]},float_literals:{captures:{"1":{name:"constant.numeric.floating.decimal.haskell"},"2":{name:"constant.numeric.floating.hexadecimal.haskell"}},match:/\b(?<!')(?:([0-9][0-9_]*\.[0-9][0-9_]*(?:[Ee][\-\+]?[0-9][0-9_]*)?|[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*)|(0(?:[Xx]_*\p{AHex}[_\p{AHex}]*\.\p{AHex}[_\p{AHex}]*(?:[Pp][\-\+]?[0-9][0-9_]*)?|[Xx]_*\p{AHex}[_\p{AHex}]*[Pp][\-\+]?[0-9][0-9_]*)))\b(?!')/dgv},forall:{begin:/\b(?<!')(forall|∀)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.forall.haskell"}},end:/(\.)|(->|→)/dgv,endCaptures:{"1":{name:"keyword.operator.period.haskell"},"2":{name:"keyword.operator.arrow.haskell"}},patterns:[{include:"#comment_like"},{include:"#type_variable"},{include:"#type_signature"}]},fun_decl:{begin:/^(\p{space}*)(?<fn>(?:[_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\]"'\(\)\,\:\;\[_\`\{\}]][[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\]"'\(\)\,\:\;\[_\`\{\}]][[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\]"'\(\)\,\:\;\[_\`\{\}]][[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\]"'\(\)\,\:\;\[_\`\{\}]][[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\]"'\(\)\,\:\;\[_\`\{\}]][[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]*\p{space}*\))(?:\p{space}*,\p{space}*(?:))?))?))?))?))?)\p{space}*(?<![[\p{S}\p{P}]&&[^\]"'\)\,\;_\`\}]])(::|∷)(?![[\p{S}\p{P}]&&[^"'\(\,\;\[_\`\{]])/dgv,beginCaptures:{"2":{name:"entity.name.function.haskell",patterns:[{include:"#reserved_symbol"},{include:"#prefix_op"}]},"3":{name:"keyword.operator.double-colon.haskell"}},end:/(?=(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([\]"'\(\)\,\;\[_\`\{\}[^\p{S}\p{P}]]))|(?=[\;\}])|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))/dgv,name:"meta.function.type-declaration.haskell",patterns:[{include:"#type_signature"}]},gadt_constructor:{patterns:[{begin:/^(\p{space}*)(?:\b((?<!')[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]*)\p{space}*(\)))/dgv,beginCaptures:{"2":{name:"constant.other.haskell"},"3":{name:"punctuation.paren.haskell"},"4":{name:"constant.other.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},end:/(?=\b(?<!'')deriving\b(?!'))|(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/\b((?<!')[\p{Lu}\p{Lt}][_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]*)\p{space}*(\))/dgv,beginCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(?=\n?$)/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]}]},infix_op:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"keyword.operator.infix.haskell"}},match:/((?:(?<!'')('')?[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*\.)*)(#+|[[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+(?<!#))/dgv},{captures:{"1":{name:"punctuation.backtick.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{patterns:[{include:"#data_constructor"}]},"4":{name:"punctuation.backtick.haskell"}},match:/(`)((?:[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*\.)*)([_\p{Ll}\p{Lu}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)(`)/dgv,name:"keyword.operator.function.infix.haskell"}]},inline_phase:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.inlining-phase.haskell",patterns:[{match:/~/dgv,name:"punctuation.tilde.haskell"},{include:"#integer_literals"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid"}]},integer_literals:{captures:{"1":{name:"constant.numeric.integral.decimal.haskell"},"2":{name:"constant.numeric.integral.hexadecimal.haskell"},"3":{name:"constant.numeric.integral.octal.haskell"},"4":{name:"constant.numeric.integral.binary.haskell"}},match:/\b(?<!')(?:([0-9][0-9_]*)|(0[Xx]_*\p{AHex}[_\p{AHex}]*)|(0[Oo]_*[0-7][0-7_]*)|(0[Bb]_*[01][01_]*))\b(?!')/dgv},keyword:{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.$2.haskell"}},match:/\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\b(?!')/dgv},layout_herald:{begin:/(?<!')\b(?:(where|let|m?do)|(of))\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.of.haskell"},"3":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},liquid_haskell:{begin:/\{-@/dgv,end:/@-\}/dgv,name:"block.liquidhaskell.haskell",patterns:[{include:"$self"}]},module_exports:{applyEndPatternLast:1,begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.declaration.exports.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.module.haskell"}},match:/\b(?<!')(module)\b(?!')/dgv},{include:"#comma"},{include:"#export_constructs"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#record_wildcard"},{include:"#export_constructs"},{include:"#comma"}]}]},module_name:{match:/*@__PURE__*/ new EmulatedRegExp("(?<conid>[\\p{Lu}\\p{Lt}]['_\\p{Ll}\\p{Lu}\\p{Lt}\\p{Nd}]*(\\.(?:[\\p{Lu}\\p{Lt}]['_\\p{Ll}\\p{Lu}\\p{Lt}\\p{Nd}]*(\\.(?:[\\p{Lu}\\p{Lt}]['_\\p{Ll}\\p{Lu}\\p{Lt}\\p{Nd}]*(\\.(?:[\\p{Lu}\\p{Lt}]['_\\p{Ll}\\p{Lu}\\p{Lt}\\p{Nd}]*(\\.(?:[\\p{Lu}\\p{Lt}]['_\\p{Ll}\\p{Lu}\\p{Lt}\\p{Nd}]*(\\.(?:))?))?))?))?))?)","dgv",{"hiddenCaptures":[3,4,5,6]}),name:"entity.name.namespace.haskell"},numeric_literals:{patterns:[{include:"#float_literals"},{include:"#integer_literals"}]},overloaded_label:{patterns:[{captures:{"1":{name:"keyword.operator.prefix.hash.haskell"},"2":{patterns:[{include:"#string_literal"}]}},match:/(?<![[_\p{Ll}\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(#)(?:("(?:\\"|[^"])*")|['\._\p{Ll}\p{Lu}\p{Lt}\p{Nd}]+)/dgv,name:"entity.name.label.haskell"}]},pragma:{begin:/\{-#/dgv,end:/#-\}/dgv,name:"meta.preprocessor.haskell",patterns:[{begin:/\b(?<!')(LANGUAGE)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{match:/(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)/dgv,name:"invalid.deprecated"},{captures:{"1":{name:"keyword.other.preprocessor.extension.haskell"}},match:/((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali[sz]edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))/dgv},{include:"#comma"}]},{begin:/\b(?<!')(SPECIALI[SZ]E)(?:\p{space}*(\[[^\]\[]*\])?\p{space}*|\p{space}+)(instance)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{patterns:[{include:"#inline_phase"}]},"3":{name:"keyword.other.instance.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#type_signature"}]},{begin:/\b(?<!')(SPECIALI[SZ]E)\b(?!')(?:\p{space}+(INLINE)\b(?!'))?\p{space}*(\[[^\]\[]*\])?\p{space}*/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{name:"keyword.other.preprocessor.pragma.haskell"},"3":{patterns:[{include:"#inline_phase"}]}},end:/(?=#-\})/dgv,patterns:[{include:"$self"}]},{match:/\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\b(?!')/dgiv,name:"keyword.other.preprocessor.haskell"},{begin:/\b(DEPRECATED|WARNING)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#string_literal"}]}]},prefix_op:{patterns:[{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"entity.name.function.infix.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(?!(?:--+|\.\.)\))(#+|[[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+(?<!#))\p{space}*(\))/dgv}]},qualifier:{match:/\b(?<!')[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*\./dgv,name:"entity.name.namespace.haskell"},quasi_quote:{patterns:[{begin:/(\[)([dep])?(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"$self"}]},{begin:/(\[)(t)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"#type_signature"}]},{begin:/(\[)(?:(\$\$)|(\$))?(['\._[^\p{space}\p{S}\p{P}]]*)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"keyword.operator.prefix.double-dollar.haskell"},"3":{name:"keyword.operator.prefix.dollar.haskell"},"4":{name:"entity.name.quasi-quoter.haskell",patterns:[{include:"#qualifier"}]},"5":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\5\]()()()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell"}]},record:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.haskell",patterns:[{include:"#comment_like"},{include:"#record_field"}]},record_decl:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.definition.haskell",patterns:[{include:"#comment_like"},{include:"#record_decl_field"}]},record_decl_field:{begin:/([_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+)\p{space}*(\))/dgv,beginCaptures:{"1":{name:"variable.other.member.definition.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.definition.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"#double_colon"},{include:"#type_signature"},{include:"#record_decl_field"}]},record_field:{patterns:[{begin:/([_\p{Ll}\p{Lu}]['\._\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+)\p{space}*(\))/dgv,beginCaptures:{"1":{name:"variable.other.member.haskell",patterns:[{include:"#qualifier"}]},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"$self"}]},{include:"#record_wildcard"}]},record_wildcard:{captures:{"1":{name:"variable.other.member.wildcard.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(\.\.)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])/dgv},reserved_symbol:{patterns:[{captures:{"1":{name:"keyword.operator.double-dot.haskell"},"2":{name:"keyword.operator.colon.haskell"},"3":{name:"keyword.operator.eq.haskell"},"4":{name:"keyword.operator.lambda.haskell"},"5":{name:"keyword.operator.pipe.haskell"},"6":{name:"keyword.operator.arrow.left.haskell"},"7":{name:"keyword.operator.arrow.haskell"},"8":{name:"keyword.operator.arrow.left.tail.haskell"},"9":{name:"keyword.operator.arrow.left.tail.double.haskell"},"10":{name:"keyword.operator.arrow.tail.haskell"},"11":{name:"keyword.operator.arrow.tail.double.haskell"},"12":{name:"keyword.other.forall.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(?:(\.\.)|(:)|(=)|(\\)|(\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])/dgv},{captures:{"1":{name:"keyword.operator.postfix.hash.haskell"}},match:/(?<=[[_\p{Ll}\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\#\,\;\[\`\{]])(#+)(?![[_\p{Ll}\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\]\)\,\;\`\}]])/dgv},{captures:{"1":{name:"keyword.operator.infix.tight.at.haskell"}},match:/(?<=[\]\)_\}\p{Ll}\p{Lu}\p{Lt}\p{Nd}])(@)(?=[\(\[_\{\p{Ll}\p{Lu}\p{Lt}\p{Nd}])/dgv},{captures:{"1":{name:"keyword.operator.prefix.tilde.haskell"},"2":{name:"keyword.operator.prefix.bang.haskell"},"3":{name:"keyword.operator.prefix.minus.haskell"},"4":{name:"keyword.operator.prefix.dollar.haskell"},"5":{name:"keyword.operator.prefix.double-dollar.haskell"}},match:/(?<![[_\p{Ll}\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(?:(~)|(!)|(-)|(\$)|(\$\$))(?=[\(\[_\{\p{Ll}\p{Lu}\p{Lt}\p{Nd}])/dgv}]},role_annotation:{patterns:[{begin:/^(\p{space}*)(type)\p{space}+(role)\b(?!')/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.role.haskell"}},end:/(?=[\;\}])|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$)))()/dgv,name:"meta.role-annotation.haskell",patterns:[{include:"#comment_like"},{include:"#type_constructor"},{captures:{"1":{name:"keyword.other.role.$1.haskell"}},match:/\b(?<!')(nominal|representational|phantom)\b(?!')/dgv}]}]},start_type_signature:{patterns:[{begin:/^(\p{space}*)(::|∷)(?![[\p{S}\p{P}]&&[^"'\(\,\;\[_\`\{]])\p{space}*/dgv,beginCaptures:{"2":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|[\]\,]|(?<!')\b(in|then|else|of)\b(?!')|(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(?:([\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\]"'\(\)\,\;\[_\`\{\}[^\p{S}\p{P}]])|([\#\@])-\}|(?=[\;\}])|^(?!(?!)\p{space}*\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])[^\n]*(?=\n?$))))/dgv,name:"meta.type-declaration.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<![[\p{S}\p{P}]&&[^"'\(\,\;\[_\`\{]])(::|∷)(?![[\p{S}\p{P}]&&[^"'\(\,\;\[_\`\{]])/dgv,beginCaptures:{"1":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|[\]\,]|\b(?<!')(in|then|else|of)\b(?!')|([\#\@])-\}|(?<![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])(?:([\\λ])|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\]"'\(\)\,\;\[_\`\{\}[^\p{S}\p{P}]])|(?=[\;\}])|(?=\n?$))/dgv,patterns:[{include:"#type_signature"}]}]},string_literal:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.haskell"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.haskell"}},name:"string.quoted.double.haskell",patterns:[{match:/\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|["\&'\\abfnrtv])/dgv,name:"constant.character.escape.haskell"},{match:/\\(?:o[0-7]+|x\p{AHex}+|[0-9]+)/dgv,name:"constant.character.escape.octal.haskell"},{match:/\\\^[\@-_]/dgv,name:"constant.character.escape.control.haskell"},{begin:/\\\p{space}/dgv,beginCaptures:{"0":{name:"constant.character.escape.begin.haskell"}},end:/\\/dgv,endCaptures:{"0":{name:"constant.character.escape.end.haskell"}},patterns:[{match:/\P{space}+/dgv,name:"invalid.illegal.character-not-allowed-here.haskell"}]}]},type_application:{patterns:[{begin:/(?<=[\]"\,\;\[\{\}\p{space}])(@)(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\]"\,\;\[\{\}\p{space}])(@)(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\]"\,\;\[\{\}\p{space}])(@)(?=")/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?<=")/dgv,name:"meta.type-application.haskell",patterns:[{include:"#string_literal"}]},{begin:/(?<=[\]"\,\;\[\{\}\p{space}])(@)(?=['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}])/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?!['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}])/dgv,name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]}]},type_constructor:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.haskell"}},match:/(')?((?:\b[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*\.)*)\b([\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*((?:[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*\.)*)([[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+)\p{space}*(\))/dgv}]},type_operator:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.operator.infix.haskell"}},match:/(?:(?<!')('))?((?:\b[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*\.)*)(?![\#\@]?-\})(#+|[[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]]+(?<!#))/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.backtick.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.infix.haskell"},"5":{name:"punctuation.backtick.haskell"}},match:/(')?(`)((?:[\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*\.)*)([\p{Lu}\p{Lt}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*)(`)/dgv}]},type_signature:{patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*(\))/dgv,name:"support.constant.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*,[\,\p{space}]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\,\p{space}]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"},"3":{name:"punctuation.bracket.haskell"}},match:/(')?(\[)\p{space}*(\])/dgv,name:"support.constant.empty-list.haskell"},{include:"#integer_literals"},{match:/(::|∷)(?![[\p{S}\p{P}]&&[^\]"'\(\)\,\;\[_\`\{\}]])/dgv,name:"keyword.operator.double-colon.haskell"},{include:"#forall"},{match:/=>|⇒/dgv,name:"keyword.operator.big-arrow.haskell"},{include:"#string_literal"},{match:/'[^']'/dgv,name:"invalid"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#type_operator"},{include:"#type_constructor"},{begin:/(\()(#)/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{include:"#type_variable"}]},type_variable:{match:/\b(?<!')(?!(?:forall|deriving)\b(?!'))[_\p{Ll}]['_\p{Ll}\p{Lu}\p{Lt}\p{Nd}]*/dgv,name:"variable.other.generic-type.haskell"},where:{patterns:[{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"}]}},scopeName:"source.haskell",embeddedLangs:undefined,aliases:["hs"]})
|
|
4
4
|
|
|
5
5
|
export default [
|
|
6
6
|
lang
|
package/dist/haxe.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const lang = Object.freeze({displayName:"Haxe",fileTypes:["hx","dump"],name:"haxe",patterns:[{include:"#all"}],repository:{abstract:{begin:/(?=abstract\p{space}+[A-Z])/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.abstract.hx",patterns:[{include:"#abstract-name"},{include:"#abstract-name-post"},{include:"#abstract-block"}]},"abstract-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#method"},{include:"#modifiers"},{include:"#variable"},{include:"#block"},{include:"#block-contents"}]},"abstract-name":{begin:/\b(abstract)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"abstract-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/([\{\;])/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#global"},{match:/\b(from|to)\b/dgv,name:"keyword.other.hx"},{include:"#type"},{match:/[\(\)]/dgv,name:"punctuation.definition.other.hx"}]},"accessor-method":{patterns:[{match:/\b(get|set)_[_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"entity.name.function.hx"}]},all:{patterns:[{include:"#global"},{include:"#package"},{include:"#import"},{include:"#using"},{match:/\b(final)\b(?=\p{space}+(class|interface|extern|private)\b)/dgv,name:"storage.modifier.hx"},{include:"#abstract"},{include:"#class"},{include:"#enum"},{include:"#interface"},{include:"#typedef"},{include:"#block"},{include:"#block-contents"}]},array:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.array.begin.hx"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.array.end.hx"}},name:"meta.array.literal.hx",patterns:[{include:"#block"},{include:"#block-contents"}]},"arrow-function":{begin:/(\()(?=[^\(]*?\)\p{space}*->)/dgv,beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.hx"}},end:/(\))\p{space}*(->)/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.hx"},"2":{name:"storage.type.function.arrow.hx"}},name:"meta.method.arrow.hx",patterns:[{include:"#arrow-function-parameter"}]},"arrow-function-parameter":{begin:/(?<=[\(\,])/dgv,end:/(?=[\)\,])/dgv,patterns:[{include:"#parameter-name"},{include:"#arrow-function-parameter-type-hint"},{include:"#parameter-assign"},{include:"#punctuation-comma"},{include:"#global"}]},"arrow-function-parameter-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=[\)\,\=])/dgv,patterns:[{include:"#type"}]},block:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.hx"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]},"block-contents":{patterns:[{include:"#global"},{include:"#regex"},{include:"#array"},{include:"#constants"},{include:"#strings"},{include:"#metadata"},{include:"#method"},{include:"#variable"},{include:"#modifiers"},{include:"#new-expr"},{include:"#for-loop"},{include:"#keywords"},{include:"#arrow-function"},{include:"#method-call"},{include:"#enum-constructor-call"},{include:"#punctuation-braces"},{include:"#macro-reification"},{include:"#operators"},{include:"#operator-assignment"},{include:"#punctuation-terminator"},{include:"#punctuation-comma"},{include:"#punctuation-accessor"},{include:"#identifiers"}]},class:{begin:/(?=class)/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.class.hx",patterns:[{include:"#class-name"},{include:"#class-name-post"},{include:"#class-block"}]},"class-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#method"},{include:"#modifiers"},{include:"#variable"},{include:"#block"},{include:"#block-contents"}]},"class-name":{begin:/\b(class)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},name:"meta.class.identifier.hx",patterns:[{include:"#global"}]},"class-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/([\{\;])/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#modifiers-inheritance"},{include:"#type"}]},comments:{patterns:[{begin:/\/\*\*(?!\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.hx"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.hx"}},name:"comment.block.documentation.hx",patterns:[{include:"#javadoc-tags"}]},{begin:/\/\*/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.hx"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.hx"}},name:"comment.block.hx",patterns:[{include:"#javadoc-tags"}]},{captures:{"1":{name:"punctuation.definition.comment.hx"}},match:/(\/\/)[^\n]*(?=\n?$)\n?/dgv,name:"comment.line.double-slash.hx"}]},"conditional-compilation":{patterns:[{captures:{"0":{name:"punctuation.definition.tag"}},match:/((#(if|elseif))[\p{space}\!]+([a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)*)(?=\p{space}|\/\*|\/\/))/dgv},{begin:/((#(if|elseif))[\p{space}\!]*)(?=\()/dgv,beginCaptures:{"0":{name:"punctuation.definition.tag"}},end:/(?<=[\)\n])/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},name:"punctuation.definition.tag",patterns:[{include:"#conditional-compilation-parens"}]},{match:/(#(end|else|error|line))/dgv,name:"punctuation.definition.tag"},{match:/(#([a-zA-Z0-9_]*))\p{space}/dgv,name:"punctuation.definition.tag"}]},"conditional-compilation-parens":{begin:/\(/dgv,end:/\)/dgv,patterns:[{include:"#conditional-compilation-parens"}]},"constant-name":{match:/\b([_A-Z][_A-Z0-9]*)\b/dgv,name:"variable.other.hx"},constants:{patterns:[{match:/\b(true|false|null)\b/dgv,name:"constant.language.hx"},{captures:{"0":{name:"constant.numeric.hex.hx"},"1":{name:"constant.numeric.suffix.hx"}},match:/\b0[xX]\p{AHex}[_\p{AHex}]*([iu][0-9][0-9_]*)?\b/dgv},{captures:{"0":{name:"constant.numeric.bin.hx"},"1":{name:"constant.numeric.suffix.hx"}},match:/\b0[bB][01][_01]*([iu][0-9][0-9_]*)?\b/dgv},{captures:{"0":{name:"constant.numeric.decimal.hx"},"1":{name:"meta.delimiter.decimal.period.hx"},"2":{name:"constant.numeric.suffix.hx"},"3":{name:"meta.delimiter.decimal.period.hx"},"4":{name:"constant.numeric.suffix.hx"},"5":{name:"meta.delimiter.decimal.period.hx"},"6":{name:"constant.numeric.suffix.hx"},"7":{name:"constant.numeric.suffix.hx"},"8":{name:"meta.delimiter.decimal.period.hx"},"9":{name:"constant.numeric.suffix.hx"},"10":{name:"meta.delimiter.decimal.period.hx"},"11":{name:"constant.numeric.suffix.hx"},"12":{name:"meta.delimiter.decimal.period.hx"},"13":{name:"constant.numeric.suffix.hx"},"14":{name:"constant.numeric.suffix.hx"}},match:/(?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9_]+[eE][\+\-]?[0-9_]+([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*(\.)[eE][\+\-]?[0-9_]+([fiu][0-9][0-9_]*)?\b|\B(\.)[0-9][0-9_]*[eE][\+\-]?[0-9_]+([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*[eE][\+\-]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*(\.)[0-9_]+([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*(\.)(?!\.)(?:\B|([fiu][0-9][0-9_]*)\b)|\B(\.)[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b)(?!\$)/dgv}]},enum:{begin:/(?=enum\p{space}+[A-Z])/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.enum.hx",patterns:[{include:"#enum-name"},{include:"#enum-name-post"},{include:"#enum-block"}]},"enum-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#global"},{include:"#metadata"},{include:"#parameters"},{include:"#identifiers"}]},"enum-constructor-call":{begin:/\b(?<!\.)((_*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*\.)*)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*)(?:(\.)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*))*\p{space}*(\()/dgv,beginCaptures:{"1":{name:"support.package.hx"},"3":{name:"entity.name.type.hx"},"4":{name:"support.package.hx"},"5":{name:"entity.name.type.hx"},"6":{name:"meta.brace.round.hx"}},end:/(\))/dgv,endCaptures:{"1":{name:"meta.brace.round.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]},"enum-name":{begin:/\b(enum)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"enum-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/([\{\;])/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#type"}]},"for-loop":{begin:/\b(for)\b\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.control.flow-control.hx"},"2":{name:"meta.brace.round.hx"}},end:/(\))/dgv,endCaptures:{"1":{name:"meta.brace.round.hx"}},patterns:[{match:/\b(in)\b/dgv,name:"keyword.other.in.hx"},{include:"#block"},{include:"#block-contents"}]},"function-type":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.hx"}},patterns:[{include:"#function-type-parameter"}]},"function-type-parameter":{begin:/(?<=[\(\,])/dgv,end:/(?=[\)\,])/dgv,patterns:[{include:"#global"},{include:"#metadata"},{include:"#operator-optional"},{include:"#punctuation-comma"},{include:"#function-type-parameter-name"},{include:"#function-type-parameter-type-hint"},{include:"#parameter-assign"},{include:"#type"},{include:"#global"}]},"function-type-parameter-name":{captures:{"1":{name:"variable.parameter.hx"}},match:/([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*)(?=\p{space}*:)/dgv},"function-type-parameter-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=[\)\,\=])/dgv,patterns:[{include:"#type"}]},global:{patterns:[{include:"#comments"},{include:"#conditional-compilation"}]},"identifier-name":{match:/\b([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"variable.other.hx"},identifiers:{patterns:[{include:"#constant-name"},{include:"#type-name"},{include:"#identifier-name"}]},import:{begin:/import\b/dgv,beginCaptures:{"0":{name:"keyword.control.import.hx"}},end:/(?=\n?$)|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},patterns:[{include:"#type-path"},{match:/\b(as)\b/dgv,name:"keyword.control.as.hx"},{match:/\b(in)\b/dgv,name:"keyword.control.in.hx"},{match:/\*/dgv,name:"constant.language.import-all.hx"},{match:/\b([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?=\p{space}*(as|in|(?=\n?$)|(;)))/dgv,name:"variable.other.hxt"},{include:"#type-path-package-name"}]},interface:{begin:/(?=interface)/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.interface.hx",patterns:[{include:"#interface-name"},{include:"#interface-name-post"},{include:"#interface-block"}]},"interface-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#method"},{include:"#variable"},{include:"#block"},{include:"#block-contents"}]},"interface-name":{begin:/\b(interface)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"interface-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/([\{\;])/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#global"},{include:"#modifiers-inheritance"},{include:"#type"}]},"javadoc-tags":{patterns:[{captures:{"1":{name:"storage.type.class.javadoc"},"2":{name:"variable.other.javadoc"}},match:/(@(?:param|exception|throws|event))\p{space}+([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}+/dgv},{captures:{"1":{name:"storage.type.class.javadoc"},"2":{name:"constant.numeric.javadoc"}},match:/(@since)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\.\-]+)\p{space}+/dgv},{captures:{"0":{name:"storage.type.class.javadoc"}},match:/@(param|exception|throws|deprecated|returns?|since|default|see|event)/dgv}]},keywords:{patterns:[{begin:/(?<=trace|(?=\n?$)type|if|while|for|super)\p{space}*(\()/dgv,beginCaptures:{"2":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"}]},{begin:/(?<=catch)\p{space}*(\()/dgv,beginCaptures:{"2":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"},{include:"#type-check"}]},{begin:/(?<=cast)\p{space}*(\()/dgv,beginCaptures:{"2":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{begin:/(?=,)/dgv,end:/(?=\))/dgv,patterns:[{include:"#type"}]},{include:"#block-contents"}]},{match:/\b(try|catch|throw)\b/dgv,name:"keyword.control.catch-exception.hx"},{begin:/\b(case|default)\b/dgv,beginCaptures:{"1":{name:"keyword.control.flow-control.hx"}},end:/:|(?=if)|(?=\n?$)/dgv,patterns:[{include:"#global"},{include:"#metadata"},{captures:{"1":{name:"storage.type.variable.hx"},"2":{name:"variable.other.hx"}},match:/\b(var|final)\b\p{space}*([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv},{include:"#array"},{include:"#constants"},{include:"#strings"},{match:/\(/dgv,name:"meta.brace.round.hx"},{match:/\)/dgv,name:"meta.brace.round.hx"},{include:"#macro-reification"},{match:/=>/dgv,name:"keyword.operator.extractor.hx"},{include:"#operator-assignment"},{include:"#punctuation-comma"},{include:"#keywords"},{include:"#method-call"},{include:"#identifiers"}]},{match:/\b(if|else|return|do|while|for|break|continue|switch|case|default)\b/dgv,name:"keyword.control.flow-control.hx"},{match:/\b(cast|untyped)\b/dgv,name:"keyword.other.untyped.hx"},{match:/\btrace\b/dgv,name:"keyword.other.trace.hx"},{match:/\$type\b/dgv,name:"keyword.other.type.hx"},{match:/__(global|this)__\b/dgv,name:"keyword.other.untyped-property.hx"},{match:/\b(this|super)\b/dgv,name:"variable.language.hx"},{match:/\bnew\b/dgv,name:"keyword.operator.new.hx"},{match:/\b(abstract|class|enum|interface|typedef)\b/dgv,name:"storage.type.hx"},{match:/->/dgv,name:"storage.type.function.arrow.hx"},{include:"#modifiers"},{include:"#modifiers-inheritance"}]},"keywords-accessor":{match:/\b(default|get|set|dynamic|never|null)\b/dgv,name:"storage.type.property.hx"},"macro-reification":{patterns:[{captures:{"1":{name:"punctuation.definition.reification.hx"},"2":{name:"keyword.reification.hx"}},match:/(\$)([eabipv])\{/dgv},{captures:{"2":{name:"punctuation.definition.reification.hx"},"3":{name:"variable.reification.hx"}},match:/((\$)([a-zA-Z]*))/dgv}]},metadata:{patterns:[{begin:/(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs[^\n]assemblyMeta|cs[^\n]assemblyStrict|cs[^\n]using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash[^\n]property|font|forward[^\n]new|forward[^\n]variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java[^\n]native|javaCanonical|jsRequire|jvm[^\n]synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\b)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.metadata.hx"},"2":{name:"storage.modifier.metadata.hx"},"3":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"}]},{captures:{"2":{name:"punctuation.metadata.hx"},"3":{name:"storage.modifier.metadata.hx"}},match:/((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs[^\n]assemblyMeta|cs[^\n]assemblyStrict|cs[^\n]using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash[^\n]property|font|forward[^\n]new|forward[^\n]variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java[^\n]native|javaCanonical|jsRequire|jvm[^\n]synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\b))/dgv},{begin:/(@)(:?[a-zA-Z_]*)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.metadata.hx"},"2":{name:"variable.metadata.hx"},"3":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"}]},{captures:{"1":{name:"punctuation.metadata.hx"},"2":{name:"variable.metadata.hx"},"3":{name:"variable.metadata.hx"},"4":{name:"punctuation.accessor.hx"},"5":{name:"variable.metadata.hx"}},match:/(@)(:?)([a-zA-Z_]*(\.))*([a-zA-Z_]*)?/dgv}]},method:{begin:/(?=\bfunction\b)/dgv,end:/(?<=[\}\;])/dgv,name:"meta.method.hx",patterns:[{include:"#macro-reification"},{include:"#method-name"},{include:"#method-name-post"},{include:"#method-block"}]},"method-block":{begin:/(?<=\{)/dgv,beginCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.method.block.hx",patterns:[{include:"#block"},{include:"#block-contents"}]},"method-call":{begin:/\b(?:(__(?:addressOf|as|call|checked|cpp|cs|define_feature|delete|feature|field|fixed|foreach|forin|has_next|hkeys|in|int|is|java|js|keys|lock|lua|lua_table|new|php|physeq|prefix|ptr|resources|rethrow|set|setfield|sizeof|type|typeof|unprotect|unsafe|valueOf|var|vector|vmem_get|vmem_set|vmem_sign|instanceof|strict_eq|strict_neq)__)|([_a-z][\p{L}\p{M}\p{N}\p{Pc}]*))\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.other.untyped-function.hx"},"2":{name:"entity.name.function.hx"},"3":{name:"meta.brace.round.hx"}},end:/(\))/dgv,endCaptures:{"1":{name:"meta.brace.round.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]},"method-name":{begin:/\b(function)\b\p{space}*\b(?:(new)|([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*))?\b/dgv,beginCaptures:{"1":{name:"storage.type.function.hx"},"2":{name:"storage.type.hx"},"3":{name:"entity.name.function.hx"}},end:/(?=(?=\n?$)|\()/dgv,patterns:[{include:"#macro-reification"},{include:"#type-parameters"}]},"method-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}\p{space}\>])/dgv,end:/(\{)|(;)/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"},"2":{name:"punctuation.terminator.hx"}},patterns:[{include:"#parameters"},{include:"#method-return-type-hint"},{include:"#block"},{include:"#block-contents"}]},"method-return-type-hint":{begin:/(?<=\))\p{space}*(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.hx"}},end:/(?=[\{\;a-z0-9])/dgv,patterns:[{include:"#type"}]},modifiers:{patterns:[{match:/\b(enum)\b/dgv,name:"storage.type.class"},{match:/\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\b/dgv,name:"storage.modifier.hx"},{match:/\b(final)\b(?=\p{space}+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))/dgv,name:"storage.modifier.hx"}]},"modifiers-inheritance":{match:/\b(implements|extends)\b/dgv,name:"storage.modifier.hx"},"new-expr":{begin:/(?<!\.)\b(new)\b/dgv,beginCaptures:{"1":{name:"keyword.operator.new.hx"}},end:/(?=(?=\n?$)|\()/dgv,name:"new.expr.hx",patterns:[{include:"#type"}]},"operator-assignment":{match:/(=)/dgv,name:"keyword.operator.assignment.hx"},"operator-optional":{match:/(\?)(?!\p{space})/dgv,name:"keyword.operator.optional.hx"},"operator-type-hint":{match:/(:)/dgv,name:"keyword.operator.type.annotation.hx"},operators:{patterns:[{match:/(&&|\|\|)/dgv,name:"keyword.operator.logical.hx"},{match:/([\~\&\|\^]|>>>|<<|>>)/dgv,name:"keyword.operator.bitwise.hx"},{match:/(==|!=|<=|>=|[\<\>])/dgv,name:"keyword.operator.comparison.hx"},{match:/(!)/dgv,name:"keyword.operator.logical.hx"},{match:/(--|\+\+)/dgv,name:"keyword.operator.increment-decrement.hx"},{match:/([\-\+\*\/\%])/dgv,name:"keyword.operator.arithmetic.hx"},{match:/\.\.\./dgv,name:"keyword.operator.intiterator.hx"},{match:/=>/dgv,name:"keyword.operator.arrow.hx"},{match:/\?\?/dgv,name:"keyword.operator.nullcoalescing.hx"},{match:/\?\./dgv,name:"keyword.operator.safenavigation.hx"},{match:/\bis\b(?!\()/dgv,name:"keyword.other.hx"},{begin:/\?/dgv,beginCaptures:{"0":{name:"keyword.operator.ternary.hx"}},end:/:/dgv,endCaptures:{"0":{name:"keyword.operator.ternary.hx"}},patterns:[{include:"#block-contents"}]}]},package:{begin:/package\b/dgv,beginCaptures:{"0":{name:"keyword.other.package.hx"}},end:/(?=\n?$)|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},patterns:[{include:"#type-path"},{include:"#type-path-package-name"}]},parameter:{begin:/(?<=[\(\,])/dgv,end:/(?=\)(?!\p{space}*->)|,)/dgv,patterns:[{include:"#parameter-name"},{include:"#parameter-type-hint"},{include:"#parameter-assign"},{include:"#punctuation-comma"},{include:"#global"}]},"parameter-assign":{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.hx"}},end:/(?=[\)\,])/dgv,patterns:[{include:"#block"},{include:"#block-contents"}]},"parameter-name":{begin:/(?<=[\(\,])/dgv,end:/([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"variable.parameter.hx"}},patterns:[{include:"#global"},{include:"#metadata"},{include:"#operator-optional"}]},"parameter-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=\)(?!\p{space}*->)|[\,\=])/dgv,patterns:[{include:"#type"}]},parameters:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.hx"}},end:/\p{space}*(\)(?!\p{space}*->))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.hx"}},name:"meta.parameters.hx",patterns:[{include:"#parameter"}]},"punctuation-accessor":{match:/\./dgv,name:"punctuation.accessor.hx"},"punctuation-braces":{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#keywords"},{include:"#block"},{include:"#block-contents"},{include:"#type-check"}]},"punctuation-comma":{match:/,/dgv,name:"punctuation.separator.comma.hx"},"punctuation-terminator":{match:/;/dgv,name:"punctuation.terminator.hx"},regex:{begin:/(~\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.hx"}},end:/(\/)([gimsu]*)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.hx"},"2":{name:"keyword.other.hx"}},name:"string.regexp.hx",patterns:[{include:"#regexp"}]},"regex-character-class":{patterns:[{match:/\\[wWsSdDtrnvf]|\./dgv,name:"constant.other.character-class.regexp"},{match:/\\([0-7]{3}|x\p{AHex}\p{AHex}|u\p{AHex}\p{AHex}\p{AHex}\p{AHex})/dgv,name:"constant.character.numeric.regexp"},{match:/\\c[A-Z]/dgv,name:"constant.character.control.regexp"},{match:/\\[^\n]/dgv,name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:/\\[bB]|[\^\$]/dgv,name:"keyword.control.anchor.regexp"},{match:/\\[1-9]\p{Nd}*/dgv,name:"keyword.other.back-reference.regexp"},{match:/[\?\+\*]|\{(\p{Nd}+,\p{Nd}+|\p{Nd}+,|,\p{Nd}+|\p{Nd}+)\}\??/dgv,name:"keyword.operator.quantifier.regexp"},{match:/\|/dgv,name:"keyword.operator.or.regexp"},{begin:/(\()((\?=)|(\?!))/dgv,beginCaptures:{"1":{name:"punctuation.definition.group.regexp"},"2":{name:"punctuation.definition.group.assertion.regexp"},"3":{name:"meta.assertion.look-ahead.regexp"},"4":{name:"meta.assertion.negative-look-ahead.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:/\((\?:)?/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.capture.regexp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:/(\[)(\^)?/dgv,beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}},match:/(?:[^\n]|(\\(?:[0-7]{3}|x\p{AHex}\p{AHex}|u\p{AHex}\p{AHex}\p{AHex}\p{AHex}))|(\\c[A-Z])|(\\[^\n]))-(?:[^\]\\]|(\\(?:[0-7]{3}|x\p{AHex}\p{AHex}|u\p{AHex}\p{AHex}\p{AHex}\p{AHex}))|(\\c[A-Z])|(\\[^\n]))/dgv,name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"string-escape-sequences":{patterns:[{match:/\\[0-3][0-9]{2}/dgv,name:"constant.character.escape.hx"},{match:/\\x\p{AHex}{2}/dgv,name:"constant.character.escape.hx"},{match:/\\u[0-9]{4}/dgv,name:"constant.character.escape.hx"},{match:/\\u\{\p{AHex}+\}/dgv,name:"constant.character.escape.hx"},{match:/\\[nrt"'\\]/dgv,name:"constant.character.escape.hx"},{match:/\\[^\n]/dgv,name:"invalid.escape.sequence.hx"}]},strings:{patterns:[{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.hx"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.hx"}},name:"string.quoted.double.hx",patterns:[{include:"#string-escape-sequences"}]},{begin:/(')/dgv,beginCaptures:{"0":{name:"string.quoted.single.hx"},"1":{name:"punctuation.definition.string.begin.hx"}},end:/(')/dgv,endCaptures:{"0":{name:"string.quoted.single.hx"},"1":{name:"punctuation.definition.string.end.hx"}},patterns:[{begin:/\$(?=\$)/dgv,beginCaptures:{"0":{name:"constant.character.escape.hx"}},end:/\$/dgv,endCaptures:{"0":{name:"constant.character.escape.hx"}},name:"string.quoted.single.hx"},{include:"#string-escape-sequences"},{begin:/(\$\{)/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.hx"}},end:/(\})/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.hx"}},patterns:[{include:"#block-contents"}]},{captures:{"1":{name:"punctuation.definition.block.begin.hx"},"2":{name:"variable.other.hx"}},match:/(\$)([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},{match:"",name:"constant.character.escape.hx"},{match:/[^\n]/dgv,name:"string.quoted.single.hx"}]}]},type:{patterns:[{include:"#global"},{include:"#macro-reification"},{include:"#type-name"},{include:"#type-parameters"},{match:/->/dgv,name:"keyword.operator.type.function.hx"},{match:/&/dgv,name:"keyword.operator.type.intersection.hx"},{match:/\?(?=\p{space}*[_A-Z])/dgv,name:"keyword.operator.optional"},{match:/\?(?!\p{space}*[_A-Z])/dgv,name:"punctuation.definition.tag"},{begin:/(\{)/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.hx"}},end:/(?<=\})/dgv,patterns:[{include:"#typedef-block"}]},{include:"#function-type"}]},"type-check":{begin:/(?<!macro)(?=:)/dgv,end:/(?=\))/dgv,patterns:[{include:"#operator-type-hint"},{include:"#type"}]},"type-name":{patterns:[{captures:{"1":{name:"support.class.builtin.hx"},"2":{name:"support.package.hx"},"3":{name:"entity.name.type.hx"}},match:/\b(Any|Array|ArrayAccess|Bool|Class|Date|DateTools|Dynamic|Enum|EnumValue|EReg|Float|IMap|Int|IntIterator|Iterable|Iterator|KeyValueIterator|KeyValueIterable|Lambda|List|ListIterator|ListNode|Map|Math|Null|Reflect|Single|Std|String|StringBuf|StringTools|Sys|Type|UInt|UnicodeString|ValueType|Void|Xml|XmlType)(?:(\.)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*))*\b/dgv},{captures:{"1":{name:"support.package.hx"},"3":{name:"entity.name.type.hx"},"4":{name:"support.package.hx"},"5":{name:"entity.name.type.hx"}},match:/\b(?<![^\.]\.)((_*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*\.)*)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*)(?:(\.)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*))*\b/dgv}]},"type-parameter-constraint-new":{match:/:/dgv,name:"keyword.operator.type.annotation.hxt"},"type-parameter-constraint-old":{begin:/(:)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.hx"},"2":{name:"punctuation.definition.constraint.begin.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.constraint.end.hx"}},patterns:[{include:"#type"},{include:"#punctuation-comma"}]},"type-parameters":{begin:/(<)/dgv,beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.hx"}},end:/(?=(?=\n?$))|(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.hx"}},name:"meta.type-parameters.hx",patterns:[{include:"#type"},{include:"#type-parameter-constraint-old"},{include:"#type-parameter-constraint-new"},{include:"#global"},{include:"#regex"},{include:"#array"},{include:"#constants"},{include:"#strings"},{include:"#metadata"},{include:"#punctuation-comma"}]},"type-path":{patterns:[{include:"#global"},{include:"#punctuation-accessor"},{include:"#type-path-type-name"}]},"type-path-package-name":{match:/\b([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"support.package.hx"},"type-path-type-name":{match:/\b(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.type.hx"},typedef:{begin:/(?=typedef)/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.typedef.hx",patterns:[{include:"#typedef-name"},{include:"#typedef-name-post"},{include:"#typedef-block"}]},"typedef-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#global"},{include:"#metadata"},{include:"#method"},{include:"#variable"},{include:"#modifiers"},{include:"#punctuation-comma"},{include:"#operator-optional"},{include:"#typedef-extension"},{include:"#typedef-simple-field-type-hint"},{include:"#identifier-name"},{include:"#strings"}]},"typedef-extension":{begin:/>/dgv,end:/,|(?=\n?$)/dgv,patterns:[{include:"#type"}]},"typedef-name":{begin:/\b(typedef)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([_A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"typedef-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/(\{)|(?=;)/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#global"},{include:"#punctuation-brackets"},{include:"#punctuation-separator"},{include:"#operator-assignment"},{include:"#type"}]},"typedef-simple-field-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=[\}\,\;])/dgv,patterns:[{include:"#type"}]},using:{begin:/using\b/dgv,beginCaptures:{"0":{name:"keyword.other.using.hx"}},end:/(?=\n?$)|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},patterns:[{include:"#type-path"},{include:"#type-path-package-name"}]},variable:{begin:/(?=\b(var|final)\b)/dgv,end:/(?=(?=\n?$))|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},patterns:[{include:"#variable-name"},{include:"#variable-name-next"},{include:"#variable-assign"},{include:"#variable-name-post"}]},"variable-accessors":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.hx"}},name:"meta.parameters.hx",patterns:[{include:"#global"},{include:"#keywords-accessor"},{include:"#accessor-method"},{include:"#punctuation-comma"}]},"variable-assign":{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.hx"}},end:/(?=[\;\,])/dgv,patterns:[{include:"#block"},{include:"#block-contents"}]},"variable-name":{begin:/\b(var|final)\b/dgv,beginCaptures:{"1":{name:"storage.type.variable.hx"}},end:/(?=(?=\n?$))|([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"variable.other.hx"}},patterns:[{include:"#operator-optional"}]},"variable-name-next":{begin:/,/dgv,beginCaptures:{"0":{name:"punctuation.separator.comma.hx"}},end:/([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"variable.other.hx"}},patterns:[{include:"#global"}]},"variable-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/(?=;)|(?==)/dgv,patterns:[{include:"#variable-accessors"},{include:"#variable-type-hint"},{include:"#block-contents"}]},"variable-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=(?=\n?$)|[\;\,\=])/dgv,patterns:[{include:"#type"}]}},scopeName:"source.hx",embeddedLangs:undefined,aliases:undefined})
|
|
1
|
+
const lang = Object.freeze({displayName:"Haxe",fileTypes:["hx","dump"],name:"haxe",patterns:[{include:"#all"}],repository:{abstract:{begin:/(?=abstract\p{space}+[A-Z])/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.abstract.hx",patterns:[{include:"#abstract-name"},{include:"#abstract-name-post"},{include:"#abstract-block"}]},"abstract-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#method"},{include:"#modifiers"},{include:"#variable"},{include:"#block"},{include:"#block-contents"}]},"abstract-name":{begin:/\b(abstract)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"abstract-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/([\;\{])/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#global"},{match:/\b(from|to)\b/dgv,name:"keyword.other.hx"},{include:"#type"},{match:/[\(\)]/dgv,name:"punctuation.definition.other.hx"}]},"accessor-method":{patterns:[{match:/\b([gs]et)_[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"entity.name.function.hx"}]},all:{patterns:[{include:"#global"},{include:"#package"},{include:"#import"},{include:"#using"},{match:/\b(final)\b(?=\p{space}+(class|interface|extern|private)\b)/dgv,name:"storage.modifier.hx"},{include:"#abstract"},{include:"#class"},{include:"#enum"},{include:"#interface"},{include:"#typedef"},{include:"#block"},{include:"#block-contents"}]},array:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.array.begin.hx"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.array.end.hx"}},name:"meta.array.literal.hx",patterns:[{include:"#block"},{include:"#block-contents"}]},"arrow-function":{begin:/(\()(?=[^\(]*?\)\p{space}*->)/dgv,beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.hx"}},end:/(\))\p{space}*(->)/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.hx"},"2":{name:"storage.type.function.arrow.hx"}},name:"meta.method.arrow.hx",patterns:[{include:"#arrow-function-parameter"}]},"arrow-function-parameter":{begin:/(?<=[\(\,])/dgv,end:/(?=[\)\,])/dgv,patterns:[{include:"#parameter-name"},{include:"#arrow-function-parameter-type-hint"},{include:"#parameter-assign"},{include:"#punctuation-comma"},{include:"#global"}]},"arrow-function-parameter-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=[\)\,\=])/dgv,patterns:[{include:"#type"}]},block:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.hx"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]},"block-contents":{patterns:[{include:"#global"},{include:"#regex"},{include:"#array"},{include:"#constants"},{include:"#strings"},{include:"#metadata"},{include:"#method"},{include:"#variable"},{include:"#modifiers"},{include:"#new-expr"},{include:"#for-loop"},{include:"#keywords"},{include:"#arrow-function"},{include:"#method-call"},{include:"#enum-constructor-call"},{include:"#punctuation-braces"},{include:"#macro-reification"},{include:"#operators"},{include:"#operator-assignment"},{include:"#punctuation-terminator"},{include:"#punctuation-comma"},{include:"#punctuation-accessor"},{include:"#identifiers"}]},class:{begin:/(?=class)/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.class.hx",patterns:[{include:"#class-name"},{include:"#class-name-post"},{include:"#class-block"}]},"class-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#method"},{include:"#modifiers"},{include:"#variable"},{include:"#block"},{include:"#block-contents"}]},"class-name":{begin:/\b(class)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},name:"meta.class.identifier.hx",patterns:[{include:"#global"}]},"class-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/([\;\{])/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#modifiers-inheritance"},{include:"#type"}]},comments:{patterns:[{begin:/\/\*\*(?!\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.hx"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.hx"}},name:"comment.block.documentation.hx",patterns:[{include:"#javadoc-tags"}]},{begin:/\/\*/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.hx"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.hx"}},name:"comment.block.hx",patterns:[{include:"#javadoc-tags"}]},{captures:{"1":{name:"punctuation.definition.comment.hx"}},match:/(\/\/)[^\n]*(?=\n?$)\n?/dgv,name:"comment.line.double-slash.hx"}]},"conditional-compilation":{patterns:[{captures:{"0":{name:"punctuation.definition.tag"}},match:/((#(if|elseif))[\!\p{space}]+([A-Z_a-z][0-9A-Z_a-z]*(\.[A-Z_a-z][0-9A-Z_a-z]*)*)(?=\p{space}|\/\*|\/\/))/dgv},{begin:/((#(if|elseif))[\!\p{space}]*)(?=\()/dgv,beginCaptures:{"0":{name:"punctuation.definition.tag"}},end:/(?<=[\n\)])/dgv,endCaptures:{"0":{name:"punctuation.definition.tag"}},name:"punctuation.definition.tag",patterns:[{include:"#conditional-compilation-parens"}]},{match:/(#(end|else|error|line))/dgv,name:"punctuation.definition.tag"},{match:/(#([0-9A-Z_a-z]*))\p{space}/dgv,name:"punctuation.definition.tag"}]},"conditional-compilation-parens":{begin:/\(/dgv,end:/\)/dgv,patterns:[{include:"#conditional-compilation-parens"}]},"constant-name":{match:/\b([A-Z_][0-9A-Z_]*)\b/dgv,name:"variable.other.hx"},constants:{patterns:[{match:/\b(true|false|null)\b/dgv,name:"constant.language.hx"},{captures:{"0":{name:"constant.numeric.hex.hx"},"1":{name:"constant.numeric.suffix.hx"}},match:/\b0[Xx]\p{AHex}[_\p{AHex}]*([iu][0-9][0-9_]*)?\b/dgv},{captures:{"0":{name:"constant.numeric.bin.hx"},"1":{name:"constant.numeric.suffix.hx"}},match:/\b0[Bb][01][01_]*([iu][0-9][0-9_]*)?\b/dgv},{captures:{"0":{name:"constant.numeric.decimal.hx"},"1":{name:"meta.delimiter.decimal.period.hx"},"2":{name:"constant.numeric.suffix.hx"},"3":{name:"meta.delimiter.decimal.period.hx"},"4":{name:"constant.numeric.suffix.hx"},"5":{name:"meta.delimiter.decimal.period.hx"},"6":{name:"constant.numeric.suffix.hx"},"7":{name:"constant.numeric.suffix.hx"},"8":{name:"meta.delimiter.decimal.period.hx"},"9":{name:"constant.numeric.suffix.hx"},"10":{name:"meta.delimiter.decimal.period.hx"},"11":{name:"constant.numeric.suffix.hx"},"12":{name:"meta.delimiter.decimal.period.hx"},"13":{name:"constant.numeric.suffix.hx"},"14":{name:"constant.numeric.suffix.hx"}},match:/(?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9_]+[Ee][\-\+]?[0-9_]+([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9_]+([fiu][0-9][0-9_]*)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9_]+([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*(\.)[0-9_]+([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*(\.)(?!\.)(?:\B|([fiu][0-9][0-9_]*)\b)|\B(\.)[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b|\b[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b)(?!\$)/dgv}]},enum:{begin:/(?=enum\p{space}+[A-Z])/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.enum.hx",patterns:[{include:"#enum-name"},{include:"#enum-name-post"},{include:"#enum-block"}]},"enum-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#global"},{include:"#metadata"},{include:"#parameters"},{include:"#identifiers"}]},"enum-constructor-call":{begin:/\b(?<!\.)((_*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*\.)*)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*)(?:(\.)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*))*\p{space}*(\()/dgv,beginCaptures:{"1":{name:"support.package.hx"},"3":{name:"entity.name.type.hx"},"4":{name:"support.package.hx"},"5":{name:"entity.name.type.hx"},"6":{name:"meta.brace.round.hx"}},end:/(\))/dgv,endCaptures:{"1":{name:"meta.brace.round.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]},"enum-name":{begin:/\b(enum)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"enum-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/([\;\{])/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#type"}]},"for-loop":{begin:/\b(for)\b\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.control.flow-control.hx"},"2":{name:"meta.brace.round.hx"}},end:/(\))/dgv,endCaptures:{"1":{name:"meta.brace.round.hx"}},patterns:[{match:/\b(in)\b/dgv,name:"keyword.other.in.hx"},{include:"#block"},{include:"#block-contents"}]},"function-type":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.hx"}},patterns:[{include:"#function-type-parameter"}]},"function-type-parameter":{begin:/(?<=[\(\,])/dgv,end:/(?=[\)\,])/dgv,patterns:[{include:"#global"},{include:"#metadata"},{include:"#operator-optional"},{include:"#punctuation-comma"},{include:"#function-type-parameter-name"},{include:"#function-type-parameter-type-hint"},{include:"#parameter-assign"},{include:"#type"},{include:"#global"}]},"function-type-parameter-name":{captures:{"1":{name:"variable.parameter.hx"}},match:/([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)(?=\p{space}*:)/dgv},"function-type-parameter-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=[\)\,\=])/dgv,patterns:[{include:"#type"}]},global:{patterns:[{include:"#comments"},{include:"#conditional-compilation"}]},"identifier-name":{match:/\b([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"variable.other.hx"},identifiers:{patterns:[{include:"#constant-name"},{include:"#type-name"},{include:"#identifier-name"}]},import:{begin:/import\b/dgv,beginCaptures:{"0":{name:"keyword.control.import.hx"}},end:/(?=\n?$)|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},patterns:[{include:"#type-path"},{match:/\b(as)\b/dgv,name:"keyword.control.as.hx"},{match:/\b(in)\b/dgv,name:"keyword.control.in.hx"},{match:/\*/dgv,name:"constant.language.import-all.hx"},{match:/\b([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b(?=\p{space}*(as|in|(?=\n?$)|(;)))/dgv,name:"variable.other.hxt"},{include:"#type-path-package-name"}]},interface:{begin:/(?=interface)/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.interface.hx",patterns:[{include:"#interface-name"},{include:"#interface-name-post"},{include:"#interface-block"}]},"interface-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#method"},{include:"#variable"},{include:"#block"},{include:"#block-contents"}]},"interface-name":{begin:/\b(interface)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"interface-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/([\;\{])/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#global"},{include:"#modifiers-inheritance"},{include:"#type"}]},"javadoc-tags":{patterns:[{captures:{"1":{name:"storage.type.class.javadoc"},"2":{name:"variable.other.javadoc"}},match:/(@(?:param|exception|throws|event))\p{space}+([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}+/dgv},{captures:{"1":{name:"storage.type.class.javadoc"},"2":{name:"constant.numeric.javadoc"}},match:/(@since)\p{space}+([\-\.\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+/dgv},{captures:{"0":{name:"storage.type.class.javadoc"}},match:/@(param|exception|throws|deprecated|returns?|since|default|see|event)/dgv}]},keywords:{patterns:[{begin:/(?<=trace|(?=\n?$)type|if|while|for|super)\p{space}*(\()/dgv,beginCaptures:{"2":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"}]},{begin:/(?<=catch)\p{space}*(\()/dgv,beginCaptures:{"2":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"},{include:"#type-check"}]},{begin:/(?<=cast)\p{space}*(\()/dgv,beginCaptures:{"2":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{begin:/(?=,)/dgv,end:/(?=\))/dgv,patterns:[{include:"#type"}]},{include:"#block-contents"}]},{match:/\b(try|catch|throw)\b/dgv,name:"keyword.control.catch-exception.hx"},{begin:/\b(case|default)\b/dgv,beginCaptures:{"1":{name:"keyword.control.flow-control.hx"}},end:/:|(?=if)|(?=\n?$)/dgv,patterns:[{include:"#global"},{include:"#metadata"},{captures:{"1":{name:"storage.type.variable.hx"},"2":{name:"variable.other.hx"}},match:/\b(var|final)\b\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv},{include:"#array"},{include:"#constants"},{include:"#strings"},{match:/\(/dgv,name:"meta.brace.round.hx"},{match:/\)/dgv,name:"meta.brace.round.hx"},{include:"#macro-reification"},{match:/=>/dgv,name:"keyword.operator.extractor.hx"},{include:"#operator-assignment"},{include:"#punctuation-comma"},{include:"#keywords"},{include:"#method-call"},{include:"#identifiers"}]},{match:/\b(if|else|return|do|while|for|break|continue|switch|case|default)\b/dgv,name:"keyword.control.flow-control.hx"},{match:/\b(cast|untyped)\b/dgv,name:"keyword.other.untyped.hx"},{match:/\btrace\b/dgv,name:"keyword.other.trace.hx"},{match:/\$type\b/dgv,name:"keyword.other.type.hx"},{match:/__(global|this)__\b/dgv,name:"keyword.other.untyped-property.hx"},{match:/\b(this|super)\b/dgv,name:"variable.language.hx"},{match:/\bnew\b/dgv,name:"keyword.operator.new.hx"},{match:/\b(abstract|class|enum|interface|typedef)\b/dgv,name:"storage.type.hx"},{match:/->/dgv,name:"storage.type.function.arrow.hx"},{include:"#modifiers"},{include:"#modifiers-inheritance"}]},"keywords-accessor":{match:/\b(default|get|set|dynamic|never|null)\b/dgv,name:"storage.type.property.hx"},"macro-reification":{patterns:[{captures:{"1":{name:"punctuation.definition.reification.hx"},"2":{name:"keyword.reification.hx"}},match:/(\$)([abeipv])\{/dgv},{captures:{"2":{name:"punctuation.definition.reification.hx"},"3":{name:"variable.reification.hx"}},match:/((\$)([A-Za-z]*))/dgv}]},metadata:{patterns:[{begin:/(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs[^\n]assemblyMeta|cs[^\n]assemblyStrict|cs[^\n]using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash[^\n]property|font|forward[^\n]new|forward[^\n]variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java[^\n]native|javaCanonical|jsRequire|jvm[^\n]synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile))\b\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.metadata.hx"},"2":{name:"storage.modifier.metadata.hx"},"3":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"}]},{captures:{"2":{name:"punctuation.metadata.hx"},"3":{name:"storage.modifier.metadata.hx"}},match:/((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs[^\n]assemblyMeta|cs[^\n]assemblyStrict|cs[^\n]using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash[^\n]property|font|forward[^\n]new|forward[^\n]variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java[^\n]native|javaCanonical|jsRequire|jvm[^\n]synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)))\b/dgv},{begin:/(@)(:?[A-Z_a-z]*)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"punctuation.metadata.hx"},"2":{name:"variable.metadata.hx"},"3":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"}]},{captures:{"1":{name:"punctuation.metadata.hx"},"2":{name:"variable.metadata.hx"},"3":{name:"variable.metadata.hx"},"4":{name:"punctuation.accessor.hx"},"5":{name:"variable.metadata.hx"}},match:/(@)(:?)([A-Z_a-z]*(\.))*([A-Z_a-z]*)?/dgv}]},method:{begin:/(?=\bfunction\b)/dgv,end:/(?<=[\;\}])/dgv,name:"meta.method.hx",patterns:[{include:"#macro-reification"},{include:"#method-name"},{include:"#method-name-post"},{include:"#method-block"}]},"method-block":{begin:/(?<=\{)/dgv,beginCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.method.block.hx",patterns:[{include:"#block"},{include:"#block-contents"}]},"method-call":{begin:/\b(?:(__(?:addressOf|as|call|checked|cpp|cs|define_feature|delete|feature|field|fixed|foreach|forin|has_next|hkeys|int??|is|java|js|keys|lock|lua|lua_table|new|php|physeq|prefix|ptr|resources|rethrow|set|setfield|sizeof|type|typeof|unprotect|unsafe|valueOf|var|vector|vmem_get|vmem_set|vmem_sign|instanceof|strict_eq|strict_neq)__)|([_a-z][\p{L}\p{M}\p{N}\p{Pc}]*))\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.other.untyped-function.hx"},"2":{name:"entity.name.function.hx"},"3":{name:"meta.brace.round.hx"}},end:/(\))/dgv,endCaptures:{"1":{name:"meta.brace.round.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]},"method-name":{begin:/\b(function)\b\p{space}*\b(?:(new)|([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*))?\b/dgv,beginCaptures:{"1":{name:"storage.type.function.hx"},"2":{name:"storage.type.hx"},"3":{name:"entity.name.function.hx"}},end:/(?=(?=\n?$)|\()/dgv,patterns:[{include:"#macro-reification"},{include:"#type-parameters"}]},"method-name-post":{begin:/(?<=[\>\p{L}\p{M}\p{N}\p{Pc}\p{space}])/dgv,end:/(\{)|(;)/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"},"2":{name:"punctuation.terminator.hx"}},patterns:[{include:"#parameters"},{include:"#method-return-type-hint"},{include:"#block"},{include:"#block-contents"}]},"method-return-type-hint":{begin:/(?<=\))\p{space}*(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.hx"}},end:/(?=[0-9\;a-\{])/dgv,patterns:[{include:"#type"}]},modifiers:{patterns:[{match:/\b(enum)\b/dgv,name:"storage.type.class"},{match:/\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\b/dgv,name:"storage.modifier.hx"},{match:/\b(final)\b(?=\p{space}+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))/dgv,name:"storage.modifier.hx"}]},"modifiers-inheritance":{match:/\b(implements|extends)\b/dgv,name:"storage.modifier.hx"},"new-expr":{begin:/(?<!\.)\b(new)\b/dgv,beginCaptures:{"1":{name:"keyword.operator.new.hx"}},end:/(?=(?=\n?$)|\()/dgv,name:"new.expr.hx",patterns:[{include:"#type"}]},"operator-assignment":{match:/(=)/dgv,name:"keyword.operator.assignment.hx"},"operator-optional":{match:/(\?)(?!\p{space})/dgv,name:"keyword.operator.optional.hx"},"operator-rest":{match:/\.\.\./dgv,name:"keyword.operator.rest.hx"},"operator-type-hint":{match:/(:)/dgv,name:"keyword.operator.type.annotation.hx"},operators:{patterns:[{match:/(&&|\|\|)/dgv,name:"keyword.operator.logical.hx"},{match:/([\&\^\|\~]|>>>|<<|>>)/dgv,name:"keyword.operator.bitwise.hx"},{match:/(==|!=|<=|>=|[\<\>])/dgv,name:"keyword.operator.comparison.hx"},{match:/(!)/dgv,name:"keyword.operator.logical.hx"},{match:/(--|\+\+)/dgv,name:"keyword.operator.increment-decrement.hx"},{match:/([\-\%\*\+\/])/dgv,name:"keyword.operator.arithmetic.hx"},{match:/\.\.\./dgv,name:"keyword.operator.intiterator.hx"},{match:/=>/dgv,name:"keyword.operator.arrow.hx"},{match:/\?\?/dgv,name:"keyword.operator.nullcoalescing.hx"},{match:/\?\./dgv,name:"keyword.operator.safenavigation.hx"},{match:/\bis\b(?!\()/dgv,name:"keyword.other.hx"},{begin:/\?/dgv,beginCaptures:{"0":{name:"keyword.operator.ternary.hx"}},end:/:/dgv,endCaptures:{"0":{name:"keyword.operator.ternary.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]}]},package:{begin:/package\b/dgv,beginCaptures:{"0":{name:"keyword.other.package.hx"}},end:/(?=\n?$)|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},patterns:[{include:"#type-path"},{include:"#type-path-package-name"}]},parameter:{begin:/(?<=[\(\,])/dgv,end:/(?=\)(?!\p{space}*->)|,)/dgv,patterns:[{include:"#parameter-name"},{include:"#parameter-type-hint"},{include:"#parameter-assign"},{include:"#global"}]},"parameter-assign":{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.hx"}},end:/(?=[\)\,])/dgv,patterns:[{include:"#block"},{include:"#block-contents"}]},"parameter-name":{patterns:[{captures:{"1":{name:"variable.parameter.hx"}},match:/\p{space}*([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},{include:"#global"},{include:"#metadata"},{include:"#operator-optional"},{include:"#operator-rest"}]},"parameter-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=\)(?!\p{space}*->)|[\,\=])/dgv,patterns:[{include:"#type"}]},parameters:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.hx"}},end:/\p{space}*(\)(?!\p{space}*->))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.hx"}},name:"meta.parameters.hx",patterns:[{include:"#parameter"},{include:"#punctuation-comma"}]},"punctuation-accessor":{match:/\./dgv,name:"punctuation.accessor.hx"},"punctuation-braces":{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.hx"}},patterns:[{include:"#keywords"},{include:"#block"},{include:"#block-contents"},{include:"#type-check"}]},"punctuation-comma":{match:/,/dgv,name:"punctuation.separator.comma.hx"},"punctuation-terminator":{match:/;/dgv,name:"punctuation.terminator.hx"},regex:{begin:/(~\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.hx"}},end:/(\/)([gimsu]*)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.hx"},"2":{name:"keyword.other.hx"}},name:"string.regexp.hx",patterns:[{include:"#regexp"}]},"regex-character-class":{patterns:[{match:/\\[DSWdfnrstvw]|\./dgv,name:"constant.other.character-class.regexp"},{match:/\\([0-7]{3}|x\p{AHex}\p{AHex}|u\p{AHex}\p{AHex}\p{AHex}\p{AHex})/dgv,name:"constant.character.numeric.regexp"},{match:/\\c[A-Z]/dgv,name:"constant.character.control.regexp"},{match:/\\[^\n]/dgv,name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:/\\[Bb]|[\$\^]/dgv,name:"keyword.control.anchor.regexp"},{match:/\\[1-9]\p{Nd}*/dgv,name:"keyword.other.back-reference.regexp"},{match:/[\*\+\?]|\{(\p{Nd}+,\p{Nd}+|\p{Nd}+,|,\p{Nd}+|\p{Nd}+)\}\??/dgv,name:"keyword.operator.quantifier.regexp"},{match:/\|/dgv,name:"keyword.operator.or.regexp"},{begin:/(\()((\?=)|(\?!))/dgv,beginCaptures:{"1":{name:"punctuation.definition.group.regexp"},"2":{name:"punctuation.definition.group.assertion.regexp"},"3":{name:"meta.assertion.look-ahead.regexp"},"4":{name:"meta.assertion.negative-look-ahead.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:/\((\?:)?/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.capture.regexp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:/(\[)(\^)?/dgv,beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}},match:/(?:[^\n]|(\\(?:[0-7]{3}|x\p{AHex}\p{AHex}|u\p{AHex}\p{AHex}\p{AHex}\p{AHex}))|(\\c[A-Z])|(\\[^\n]))-(?:[^\]\\]|(\\(?:[0-7]{3}|x\p{AHex}\p{AHex}|u\p{AHex}\p{AHex}\p{AHex}\p{AHex}))|(\\c[A-Z])|(\\[^\n]))/dgv,name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"string-escape-sequences":{patterns:[{match:/\\[0-3][0-9]{2}/dgv,name:"constant.character.escape.hx"},{match:/\\x\p{AHex}{2}/dgv,name:"constant.character.escape.hx"},{match:/\\u[0-9]{4}/dgv,name:"constant.character.escape.hx"},{match:/\\u\{\p{AHex}+\}/dgv,name:"constant.character.escape.hx"},{match:/\\["'\\nrt]/dgv,name:"constant.character.escape.hx"},{match:/\\[^\n]/dgv,name:"invalid.escape.sequence.hx"}]},strings:{patterns:[{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.hx"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.hx"}},name:"string.quoted.double.hx",patterns:[{include:"#string-escape-sequences"}]},{begin:/(')/dgv,beginCaptures:{"0":{name:"string.quoted.single.hx"},"1":{name:"punctuation.definition.string.begin.hx"}},end:/(')/dgv,endCaptures:{"0":{name:"string.quoted.single.hx"},"1":{name:"punctuation.definition.string.end.hx"}},patterns:[{begin:/\$(?=\$)/dgv,beginCaptures:{"0":{name:"constant.character.escape.hx"}},end:/\$/dgv,endCaptures:{"0":{name:"constant.character.escape.hx"}},name:"string.quoted.single.hx"},{include:"#string-escape-sequences"},{begin:/(\$\{)/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.hx"}},end:/(\})/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.hx"}},patterns:[{include:"#block-contents"}]},{captures:{"1":{name:"punctuation.definition.block.begin.hx"},"2":{name:"variable.other.hx"}},match:/(\$)([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},{match:"",name:"constant.character.escape.hx"},{match:/[^\n]/dgv,name:"string.quoted.single.hx"}]}]},type:{patterns:[{include:"#global"},{include:"#macro-reification"},{include:"#type-name"},{include:"#type-parameters"},{match:/->/dgv,name:"keyword.operator.type.function.hx"},{match:/&/dgv,name:"keyword.operator.type.intersection.hx"},{match:/\?(?=\p{space}*[A-Z_])/dgv,name:"keyword.operator.optional"},{match:/\?(?!\p{space}*[A-Z_])/dgv,name:"punctuation.definition.tag"},{begin:/(\{)/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.hx"}},end:/(?<=\})/dgv,patterns:[{include:"#typedef-block"}]},{include:"#function-type"}]},"type-check":{begin:/(?<!macro)(?=:)/dgv,end:/(?=\))/dgv,patterns:[{include:"#operator-type-hint"},{include:"#type"}]},"type-name":{patterns:[{captures:{"1":{name:"support.class.builtin.hx"},"2":{name:"support.package.hx"},"3":{name:"entity.name.type.hx"}},match:/\b(Any|Array|ArrayAccess|Bool|Class|Date|DateTools|Dynamic|Enum|EnumValue|EReg|Float|IMap|Int|IntIterator|Iterable|Iterator|KeyValueIterator|KeyValueIterable|Lambda|List|ListIterator|ListNode|Map|Math|Null|Reflect|Single|Std|String|StringBuf|StringTools|Sys|Type|UInt|UnicodeString|ValueType|Void|Xml|XmlType)(?:(\.)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*))*\b/dgv},{captures:{"1":{name:"support.package.hx"},"3":{name:"entity.name.type.hx"},"4":{name:"support.package.hx"},"5":{name:"entity.name.type.hx"}},match:/\b(?<![^\.]\.)((_*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*\.)*)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*)(?:(\.)(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*[a-z][\p{L}\p{M}\p{N}\p{Pc}]*))*\b/dgv}]},"type-parameter-constraint-new":{match:/:/dgv,name:"keyword.operator.type.annotation.hxt"},"type-parameter-constraint-old":{begin:/(:)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.hx"},"2":{name:"punctuation.definition.constraint.begin.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.constraint.end.hx"}},patterns:[{include:"#type"},{include:"#punctuation-comma"}]},"type-parameters":{begin:/(<)/dgv,beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.hx"}},end:/(?=(?=\n?$))|(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.hx"}},name:"meta.type-parameters.hx",patterns:[{include:"#type"},{include:"#type-parameter-constraint-old"},{include:"#type-parameter-constraint-new"},{include:"#global"},{include:"#regex"},{include:"#array"},{include:"#constants"},{include:"#strings"},{include:"#metadata"},{include:"#punctuation-comma"}]},"type-path":{patterns:[{include:"#global"},{include:"#punctuation-accessor"},{include:"#type-path-type-name"}]},"type-path-package-name":{match:/\b([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"support.package.hx"},"type-path-type-name":{match:/\b(_*[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.type.hx"},typedef:{begin:/(?=typedef)/dgv,end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},name:"meta.typedef.hx",patterns:[{include:"#typedef-name"},{include:"#typedef-name-post"},{include:"#typedef-block"}]},"typedef-block":{begin:/(?<=\{)/dgv,end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#global"},{include:"#metadata"},{include:"#method"},{include:"#variable"},{include:"#modifiers"},{include:"#punctuation-comma"},{include:"#operator-optional"},{include:"#typedef-extension"},{include:"#typedef-simple-field-type-hint"},{include:"#identifier-name"},{include:"#strings"}]},"typedef-extension":{begin:/>/dgv,end:/,|(?=\n?$)/dgv,patterns:[{include:"#type"}]},"typedef-name":{begin:/\b(typedef)\b/dgv,beginCaptures:{"1":{name:"storage.type.class.hx"}},end:/([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"typedef-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/(\{)|(?=;)/dgv,endCaptures:{"1":{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#global"},{include:"#punctuation-brackets"},{include:"#punctuation-separator"},{include:"#operator-assignment"},{include:"#type"}]},"typedef-simple-field-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=[\,\;\}])/dgv,patterns:[{include:"#type"}]},using:{begin:/using\b/dgv,beginCaptures:{"0":{name:"keyword.other.using.hx"}},end:/(?=\n?$)|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},patterns:[{include:"#type-path"},{include:"#type-path-package-name"}]},variable:{begin:/(?=\b(var|final)\b)/dgv,end:/(?=(?=\n?$))|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.hx"}},patterns:[{include:"#variable-name"},{include:"#variable-name-next"},{include:"#variable-assign"},{include:"#variable-name-post"}]},"variable-accessors":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.hx"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.hx"}},name:"meta.parameters.hx",patterns:[{include:"#global"},{include:"#keywords-accessor"},{include:"#accessor-method"},{include:"#punctuation-comma"}]},"variable-assign":{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.hx"}},end:/(?=[\,\;])/dgv,patterns:[{include:"#block"},{include:"#block-contents"}]},"variable-name":{begin:/\b(var|final)\b/dgv,beginCaptures:{"1":{name:"storage.type.variable.hx"}},end:/(?=(?=\n?$))|([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"variable.other.hx"}},patterns:[{include:"#operator-optional"}]},"variable-name-next":{begin:/,/dgv,beginCaptures:{"0":{name:"punctuation.separator.comma.hx"}},end:/([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,endCaptures:{"1":{name:"variable.other.hx"}},patterns:[{include:"#global"}]},"variable-name-post":{begin:/(?<=[\p{L}\p{M}\p{N}\p{Pc}])/dgv,end:/(?=;)|(?==)/dgv,patterns:[{include:"#variable-accessors"},{include:"#variable-type-hint"},{include:"#block-contents"}]},"variable-type-hint":{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.hx"}},end:/(?=(?=\n?$)|[\,\;\=])/dgv,patterns:[{include:"#type"}]}},scopeName:"source.hx",embeddedLangs:undefined,aliases:undefined})
|
|
2
2
|
|
|
3
3
|
export default [
|
|
4
4
|
lang
|
package/dist/hcl.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const lang = Object.freeze({displayName:"HashiCorp HCL",fileTypes:["hcl"],name:"hcl",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#block"},{include:"#expressions"}],repository:{attribute_access:{begin:/\.(?!\*)/dgv,beginCaptures:{"0":{name:"keyword.operator.accessor.hcl"}},end:/\p{Alpha}[
|
|
1
|
+
const lang = Object.freeze({displayName:"HashiCorp HCL",fileTypes:["hcl"],name:"hcl",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#block"},{include:"#expressions"}],repository:{attribute_access:{begin:/\.(?!\*)/dgv,beginCaptures:{"0":{name:"keyword.operator.accessor.hcl"}},end:/\p{Alpha}[\-\p{L}\p{M}\p{N}\p{Pc}]*|\p{Nd}*/dgv,endCaptures:{"0":{patterns:[{match:/(?!null|false|true)\p{Alpha}[\-\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.member.hcl"},{match:/\p{Nd}+/dgv,name:"constant.numeric.integer.hcl"}]}}},attribute_definition:{captures:{"1":{name:"punctuation.section.parens.begin.hcl"},"2":{name:"variable.other.readwrite.hcl"},"3":{name:"punctuation.section.parens.end.hcl"},"4":{name:"keyword.operator.assignment.hcl"}},match:/(\()?\b((?!(?:null|false|true)\b)\p{Alpha}[\-_\p{Alpha}\p{Nd}]*)(\))?\p{space}*(=(?![\=\>]))\p{space}*/dgv,name:"variable.declaration.hcl"},attribute_splat:{begin:/\./dgv,beginCaptures:{"0":{name:"keyword.operator.accessor.hcl"}},end:/\*/dgv,endCaptures:{"0":{name:"keyword.operator.splat.hcl"}}},block:{begin:/([\p{L}\p{M}\p{N}\p{Pc}][\-\p{L}\p{M}\p{N}\p{Pc}]*)(([^\n\r\P{space}]+([\p{L}\p{M}\p{N}\p{Pc}][\-_\p{L}\p{M}\p{N}\p{Pc}]*|"[^\n\r"]*"))*)[^\n\r\P{space}]*(\{)/dgv,beginCaptures:{"1":{patterns:[{match:/\b(?!null|false|true)\p{Alpha}[\-_\p{Alpha}\p{Nd}]*\b/dgv,name:"entity.name.type.hcl"}]},"2":{patterns:[{match:/"[^\n\r"]*"/dgv,name:"variable.other.enummember.hcl"},{match:/\p{Alpha}[\-_\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.enummember.hcl"}]},"5":{name:"punctuation.section.block.begin.hcl"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.hcl"}},name:"meta.block.hcl",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#expressions"},{include:"#block"}]},block_inline_comments:{begin:/\/\*/dgv,captures:{"0":{name:"punctuation.definition.comment.hcl"}},end:/\*\//dgv,name:"comment.block.hcl"},brackets:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.section.brackets.begin.hcl"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.brackets.end.hcl"}},patterns:[{match:/\*/dgv,name:"keyword.operator.splat.hcl"},{include:"#comma"},{include:"#comments"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{include:"#expressions"},{include:"#local_identifiers"}]},char_escapes:{match:/\\(?:["\\nrt]|u(\p{AHex}{8}|\p{AHex}{4}))/dgv,name:"constant.character.escape.hcl"},comma:{match:/,/dgv,name:"punctuation.separator.hcl"},comments:{patterns:[{include:"#hash_line_comments"},{include:"#double_slash_line_comments"},{include:"#block_inline_comments"}]},double_slash_line_comments:{begin:/\/\//dgv,captures:{"0":{name:"punctuation.definition.comment.hcl"}},end:/(?=\n?$)\n?/dgv,name:"comment.line.double-slash.hcl"},expressions:{patterns:[{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#brackets"},{include:"#objects"},{include:"#attribute_access"},{include:"#attribute_splat"},{include:"#functions"},{include:"#parens"}]},for_expression_body:{patterns:[{match:/\bin\b/dgv,name:"keyword.operator.word.hcl"},{match:/\bif\b/dgv,name:"keyword.control.conditional.hcl"},{match:/:/dgv,name:"keyword.operator.hcl"},{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},functions:{begin:/([\-\:\p{L}\p{M}\p{N}\p{Pc}]+)(\()/dgv,beginCaptures:{"1":{patterns:[{match:/\b\p{Alpha}[\-_\p{L}\p{M}\p{N}\p{Pc}]*::(\p{Alpha}[\-_\p{L}\p{M}\p{N}\p{Pc}]*::)?\p{Alpha}[\-_\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"support.function.namespaced.hcl"},{match:/\b\p{Alpha}[\-_\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"support.function.builtin.hcl"}]},"2":{name:"punctuation.section.parens.begin.hcl"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.parens.end.hcl"}},name:"meta.function-call.hcl",patterns:[{include:"#comments"},{include:"#expressions"},{include:"#comma"}]},hash_line_comments:{begin:/#/dgv,captures:{"0":{name:"punctuation.definition.comment.hcl"}},end:/(?=\n?$)\n?/dgv,name:"comment.line.number-sign.hcl"},hcl_type_keywords:{match:/\b(any|string|number|bool|list|set|map|tuple|object)\b/dgv,name:"storage.type.hcl"},heredoc:{begin:/(<<-?)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}*(?=\n?$)/dgv,beginCaptures:{"1":{name:"keyword.operator.heredoc.hcl"},"2":{name:"keyword.control.heredoc.hcl"}},end:/^\p{space}*\2\p{space}*(?=\n?$)()()/dgv,endCaptures:{"0":{name:"keyword.control.heredoc.hcl"}},name:"string.unquoted.heredoc.hcl",patterns:[{include:"#string_interpolation"}]},inline_for_expression:{captures:{"1":{name:"keyword.control.hcl"},"2":{patterns:[{match:/=>/dgv,name:"storage.type.function.hcl"},{include:"#for_expression_body"}]}},match:/(for)\b([^\n]*)\n/dgv},inline_if_expression:{begin:/(if)\b/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.hcl"}},end:/\n/dgv,patterns:[{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},language_constants:{match:/\b(true|false|null)\b/dgv,name:"constant.language.hcl"},literal_values:{patterns:[{include:"#numeric_literals"},{include:"#language_constants"},{include:"#string_literals"},{include:"#heredoc"},{include:"#hcl_type_keywords"}]},local_identifiers:{match:/\b(?!null|false|true)\p{Alpha}[\-_\p{Alpha}\p{Nd}]*\b/dgv,name:"variable.other.readwrite.hcl"},numeric_literals:{patterns:[{captures:{"1":{name:"punctuation.separator.exponent.hcl"}},match:/\b\p{Nd}+([Ee][\-\+]?)\p{Nd}+\b/dgv,name:"constant.numeric.float.hcl"},{captures:{"1":{name:"punctuation.separator.decimal.hcl"},"2":{name:"punctuation.separator.exponent.hcl"}},match:/\b\p{Nd}+(\.)\p{Nd}+(?:([Ee][\-\+]?)\p{Nd}+)?\b/dgv,name:"constant.numeric.float.hcl"},{match:/\b\p{Nd}+\b/dgv,name:"constant.numeric.integer.hcl"}]},object_for_expression:{begin:/(\{)\p{space}?(for)\b/dgv,beginCaptures:{"1":{name:"punctuation.section.braces.begin.hcl"},"2":{name:"keyword.control.hcl"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.braces.end.hcl"}},patterns:[{match:/=>/dgv,name:"storage.type.function.hcl"},{include:"#for_expression_body"}]},object_key_values:{patterns:[{include:"#comments"},{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#heredoc"},{include:"#functions"}]},objects:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.braces.begin.hcl"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.braces.end.hcl"}},name:"meta.braces.hcl",patterns:[{include:"#comments"},{include:"#objects"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{captures:{"1":{name:"meta.mapping.key.hcl variable.other.readwrite.hcl"},"2":{name:"keyword.operator.assignment.hcl"}},match:/\b((?!null|false|true)\p{Alpha}[\-_\p{Alpha}\p{Nd}]*)\p{space}*(=(?!=))\p{space}*/dgv},{captures:{"1":{name:"meta.mapping.key.hcl string.quoted.double.hcl"},"2":{name:"punctuation.definition.string.begin.hcl"},"3":{name:"punctuation.definition.string.end.hcl"},"4":{name:"keyword.operator.hcl"}},match:/^\p{space}*((")[^\n]*("))\p{space}*(=)\p{space}*/dgv},{begin:/^\p{space}*\(/dgv,beginCaptures:{"0":{name:"punctuation.section.parens.begin.hcl"}},end:/(\))\p{space}*([\:\=])\p{space}*/dgv,endCaptures:{"1":{name:"punctuation.section.parens.end.hcl"},"2":{name:"keyword.operator.hcl"}},name:"meta.mapping.key.hcl",patterns:[{include:"#attribute_access"},{include:"#attribute_splat"}]},{include:"#object_key_values"}]},operators:{patterns:[{match:/>=/dgv,name:"keyword.operator.hcl"},{match:/<=/dgv,name:"keyword.operator.hcl"},{match:/==/dgv,name:"keyword.operator.hcl"},{match:/!=/dgv,name:"keyword.operator.hcl"},{match:/\+/dgv,name:"keyword.operator.arithmetic.hcl"},{match:/-/dgv,name:"keyword.operator.arithmetic.hcl"},{match:/\*/dgv,name:"keyword.operator.arithmetic.hcl"},{match:/\//dgv,name:"keyword.operator.arithmetic.hcl"},{match:/%/dgv,name:"keyword.operator.arithmetic.hcl"},{match:/&&/dgv,name:"keyword.operator.logical.hcl"},{match:/\|\|/dgv,name:"keyword.operator.logical.hcl"},{match:/!/dgv,name:"keyword.operator.logical.hcl"},{match:/>/dgv,name:"keyword.operator.hcl"},{match:/</dgv,name:"keyword.operator.hcl"},{match:/\?/dgv,name:"keyword.operator.hcl"},{match:/\.\.\./dgv,name:"keyword.operator.hcl"},{match:/:/dgv,name:"keyword.operator.hcl"},{match:/=>/dgv,name:"keyword.operator.hcl"}]},parens:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.parens.begin.hcl"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.parens.end.hcl"}},patterns:[{include:"#comments"},{include:"#expressions"}]},string_interpolation:{begin:/(?<![\$\%])([\$\%]\{)/dgv,beginCaptures:{"1":{name:"keyword.other.interpolation.begin.hcl"}},end:/\}/dgv,endCaptures:{"0":{name:"keyword.other.interpolation.end.hcl"}},name:"meta.interpolation.hcl",patterns:[{match:/~\p{space}/dgv,name:"keyword.operator.template.left.trim.hcl"},{match:/\p{space}~/dgv,name:"keyword.operator.template.right.trim.hcl"},{match:/\b(if|else|endif|for|in|endfor)\b/dgv,name:"keyword.control.hcl"},{include:"#expressions"},{include:"#local_identifiers"}]},string_literals:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.hcl"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.hcl"}},name:"string.quoted.double.hcl",patterns:[{include:"#string_interpolation"},{include:"#char_escapes"}]},tuple_for_expression:{begin:/(\[)\p{space}?(for)\b/dgv,beginCaptures:{"1":{name:"punctuation.section.brackets.begin.hcl"},"2":{name:"keyword.control.hcl"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.brackets.end.hcl"}},patterns:[{include:"#for_expression_body"}]}},scopeName:"source.hcl",embeddedLangs:undefined,aliases:undefined})
|
|
2
2
|
|
|
3
3
|
export default [
|
|
4
4
|
lang
|