github-linguist 7.14.0 → 7.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +115 -71
  3. data/grammars/annotation.liquidhaskell.haskell.json +1 -1
  4. data/grammars/etc.json +1 -1
  5. data/grammars/go.mod.json +1 -0
  6. data/grammars/go.sum.json +1 -0
  7. data/grammars/hint.haskell.json +1 -1
  8. data/grammars/hint.message.haskell.json +1 -1
  9. data/grammars/hint.type.haskell.json +1 -1
  10. data/grammars/markdown.bicep.codeblock.json +1 -0
  11. data/grammars/markdown.codeblock.proto.json +1 -0
  12. data/grammars/markdown.mcfunction.codeblock.json +1 -0
  13. data/grammars/source.abap.json +1 -1
  14. data/grammars/source.aidl.json +1 -0
  15. data/grammars/source.al.json +1 -1
  16. data/grammars/source.angelscript.json +1 -1
  17. data/grammars/source.avro.json +1 -1
  18. data/grammars/source.ballerina.json +1 -1
  19. data/grammars/source.batchfile.json +1 -1
  20. data/grammars/source.bc.json +1 -0
  21. data/grammars/source.bicep.json +1 -1
  22. data/grammars/source.boo.json +1 -1
  23. data/grammars/source.bp.json +1 -0
  24. data/grammars/source.cil.json +1 -0
  25. data/grammars/source.cirru.json +1 -1
  26. data/grammars/source.cs.json +1 -1
  27. data/grammars/source.csound.json +1 -1
  28. data/grammars/source.css.json +1 -1
  29. data/grammars/source.cue.json +1 -0
  30. data/grammars/source.cuesheet.json +1 -0
  31. data/grammars/source.dart.json +1 -1
  32. data/grammars/source.dc.json +1 -0
  33. data/grammars/source.ditroff.json +1 -1
  34. data/grammars/source.dotenv.json +1 -0
  35. data/grammars/source.ebnf.json +1 -1
  36. data/grammars/source.ecl.json +1 -0
  37. data/grammars/source.ed.json +1 -0
  38. data/grammars/source.fnl.json +1 -0
  39. data/grammars/source.fontforge.json +1 -1
  40. data/grammars/source.fstar.json +1 -1
  41. data/grammars/source.ftl.json +1 -0
  42. data/grammars/source.gcode.json +1 -1
  43. data/grammars/source.gdscript.json +1 -1
  44. data/grammars/source.hack.json +1 -1
  45. data/grammars/source.haskell.json +1 -1
  46. data/grammars/source.hlcode.json +1 -0
  47. data/grammars/source.hsig.json +1 -1
  48. data/grammars/source.hx.json +1 -1
  49. data/grammars/source.hy.json +1 -1
  50. data/grammars/source.jest.snap.json +1 -0
  51. data/grammars/source.jq.json +1 -1
  52. data/grammars/source.json.json +1 -1
  53. data/grammars/source.julia.json +1 -1
  54. data/grammars/source.kakscript.json +1 -0
  55. data/grammars/source.keyvalues.json +1 -0
  56. data/grammars/source.kotlin.json +1 -1
  57. data/grammars/source.lean.json +1 -1
  58. data/grammars/source.m2.json +1 -1
  59. data/grammars/source.matlab.json +1 -1
  60. data/grammars/source.mcfunction.json +1 -1
  61. data/grammars/source.odin.json +1 -1
  62. data/grammars/source.opentype.json +1 -1
  63. data/grammars/source.pegjs.json +1 -0
  64. data/grammars/source.postscript.json +1 -1
  65. data/grammars/source.powershell.json +1 -1
  66. data/grammars/source.proto.json +1 -0
  67. data/grammars/source.purescript.json +1 -1
  68. data/grammars/source.regexp.json +1 -1
  69. data/grammars/source.regexp.oniguruma.json +1 -0
  70. data/grammars/source.rego.json +1 -1
  71. data/grammars/source.renpy.json +1 -1
  72. data/grammars/source.rescript.json +1 -1
  73. data/grammars/source.sed.json +1 -1
  74. data/grammars/source.sepolicy.json +1 -0
  75. data/grammars/source.shellcheckrc.json +1 -0
  76. data/grammars/source.sqf.json +1 -1
  77. data/grammars/source.swift.json +1 -1
  78. data/grammars/source.sy.json +1 -1
  79. data/grammars/source.tm-properties.json +1 -0
  80. data/grammars/source.ts.json +1 -1
  81. data/grammars/source.tsx.json +1 -1
  82. data/grammars/source.v.json +1 -1
  83. data/grammars/source.viml.json +1 -1
  84. data/grammars/source.webassembly.json +1 -1
  85. data/grammars/source.ws.json +1 -0
  86. data/grammars/source.wsd.json +1 -1
  87. data/grammars/source.xojo.json +1 -1
  88. data/grammars/source.yara.json +1 -1
  89. data/grammars/source.yasnippet.json +1 -1
  90. data/grammars/source.zig.json +1 -1
  91. data/grammars/text.html.astro.json +1 -0
  92. data/grammars/text.html.markdown.astro.json +1 -0
  93. data/grammars/text.info.json +1 -0
  94. data/grammars/text.lesshst.json +1 -0
  95. data/grammars/text.marko.json +1 -1
  96. data/grammars/text.sfd.json +1 -1
  97. data/grammars/text.tex.latex.haskell.json +1 -1
  98. data/grammars/text.xml.svg.json +1 -1
  99. data/grammars/textmate.format-string.json +1 -0
  100. data/grammars/version +1 -1
  101. data/lib/linguist/VERSION +1 -1
  102. data/lib/linguist/documentation.yml +1 -0
  103. data/lib/linguist/generated.rb +13 -0
  104. data/lib/linguist/heuristics.rb +6 -2
  105. data/lib/linguist/heuristics.yml +18 -4
  106. data/lib/linguist/language.rb +6 -3
  107. data/lib/linguist/languages.json +1 -1
  108. data/lib/linguist/languages.yml +385 -43
  109. data/lib/linguist/linguist.bundle +0 -0
  110. data/lib/linguist/linguist.so +0 -0
  111. data/lib/linguist/repository.rb +7 -3
  112. data/lib/linguist/samples.json +1 -1
  113. data/lib/linguist/shebang.rb +4 -1
  114. data/lib/linguist/strategy/modeline.rb +4 -0
  115. data/lib/linguist/vendor.yml +3 -0
  116. metadata +36 -5
  117. data/grammars/source.SASLog.json +0 -1
  118. data/grammars/source.mcfunction-snapshot.json +0 -1
  119. data/grammars/source.protobuf.json +0 -1
@@ -1 +1 @@
1
- {"name":"Marko","scopeName":"text.marko","patterns":[{"include":"#scriptlet"},{"include":"#special-js-tags"},{"include":"#js-code-block"},{"include":"#component-style"},{"include":"#comment-concise-line"},{"include":"#comment-concise-block"},{"include":"#comment-html"},{"include":"#comment-html-tag"},{"include":"#html-block-concise"},{"include":"#html-line-concise"},{"include":"#cdata"},{"include":"#doctype"},{"include":"#tag-script-concise"},{"include":"#tag-style-concise"},{"include":"#tag-concise"},{"include":"#tag-html"},{"include":"#placeholder-patterns"}],"repository":{"attr-assignment-concise":{"begin":"(?:\\s+|[,])(?:(key)|([a-zA-Z][a-zA-Z]*)|([_a-zA-Z0-9][a-zA-Z0-9:_.-]*))\\s*([=])\\s*","end":"(?=([,;]|\\s|$))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"support.function.marko-attribute"},"2":{"name":"entity.other.attribute-name.html"},"3":{"name":"entity.other.attribute-name.html"},"4":{"name":"punctuation.separator.key-value.html"}},"applyEndPatternLast":true},"attr-assignment-html":{"begin":"(?:\\s+|[,])(?:(key)|([a-zA-Z][a-zA-Z]*)|([_a-zA-Z0-9][a-zA-Z0-9:_.-]*))\\s*([=])\\s*","end":"(?=[,;]|\\s|/\u003e|\u003e)","patterns":[{"include":"#expression-no-gt"}],"beginCaptures":{"1":{"name":"support.function.marko-attribute"},"2":{"name":"entity.other.attribute-name.html"},"3":{"name":"entity.other.attribute-name.html"},"4":{"name":"punctuation.separator.key-value.html"}},"applyEndPatternLast":true},"attr-js-block":{"begin":"\\s\\{","end":"\\}","patterns":[{"include":"#js"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.js"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.js"}},"applyEndPatternLast":true},"attr-no-value":{"match":"\\s+(?:([a-zA-Z][a-zA-Z]*)|(data-[a-zA-Z0-9-]*)|([a-zA-Z0-9][a-zA-Z0-9:_.-]+))(?=\\s|/\u003e|\u003e|$)","captures":{"1":{"name":"entity.other.attribute-name.html"},"2":{"name":"entity.other.attribute-name.html"},"3":{"name":"entity.other.attribute-name.html"}}},"attr-semicolon":{"begin":"([;])","end":"(?=\\n)","patterns":[{"include":"#comment-line"},{"include":"#comment-block"}],"beginCaptures":{"1":{"name":"punctuation.terminator.statement.js"}},"applyEndPatternLast":true},"attr-special":{"match":"\\s+(else)\\b","captures":{"1":{"name":"support.function.marko-attribute"}}},"attr-spread-concise":{"begin":"(?:\\s+|[,])(\\.\\.\\.)\\s*","end":"(?=([,;]|\\s|$))","patterns":[{"include":"#expression"}],"beginCaptures":{"5":{"name":"punctuation.separator.key-value.html"}},"applyEndPatternLast":true},"attr-spread-html":{"begin":"(?:\\s+|[,])(\\.\\.\\.)\\s*","end":"(?=[,;]|\\s|/\u003e|\u003e)","patterns":[{"include":"#expression-no-gt"}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.html"}},"applyEndPatternLast":true},"attr-stuff-concise":{"patterns":[{"include":"#comment-line"},{"include":"#comment-block"},{"begin":"\\s[\\[]","end":"[\\]]","patterns":[{"include":"#attr-stuff-concise"}]},{"begin":"[,]\\s*$","end":"(?=\\s)"},{"include":"#attr-with-arg"},{"include":"#attr-assignment-concise"},{"include":"#attr-spread-concise"},{"include":"#attr-no-value"},{"include":"#placeholder"},{"include":"#attr-js-block"},{"include":"#expression"},{"include":"#attr-semicolon"}]},"attr-stuff-html":{"patterns":[{"include":"#comment-block"},{"include":"#attr-special"},{"include":"#attr-with-arg"},{"include":"#attr-assignment-html"},{"include":"#attr-spread-html"},{"include":"#attr-no-value"},{"include":"#placeholder"},{"include":"#attr-js-block"},{"include":"#expression-no-gt"},{"include":"#attr-semicolon"}]},"attr-with-arg":{"begin":"\\s+([_a-zA-Z0-9][a-zA-Z0-9:_.-]+)(\\()","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"support.function.marko-attribute"},"2":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}},"applyEndPatternLast":true},"cdata":{"name":"string.unquoted.cdata.xml","begin":"\u003c!\\[CDATA\\[","end":"]]\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}}},"comment-block":{"name":"comment.block.js","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}}},"comment-concise-block":{"name":"comment.block.js","begin":"^(\\s*)/\\*","end":"\\*/.*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}}},"comment-concise-line":{"name":"comment.line.double-slash.marko","begin":"^(\\s*)//","end":"$"},"comment-html":{"name":"comment.block.html","begin":"\\s*\u003c!--","end":"--\u003e","captures":{"0":{"name":"punctuation.definition.comment.html"}}},"comment-html-tag":{"name":"comment.block.html","begin":"\\s*\u003chtml-comment\u003e","end":"\u003c/html-comment\u003e","captures":{"0":{"name":"punctuation.definition.comment.html"}}},"comment-line":{"name":"comment.line.double-slash.js","begin":"(//)","end":"(?=\\n)","beginCaptures":{"1":{"name":"punctuation.definition.comment.js"}}},"component-style":{"patterns":[{"include":"#component-style-less"},{"include":"#component-style-css"}]},"component-style-css":{"begin":"^(style)(?:\\.([a-z]+))?\\s+(\\{)","end":"\\}","patterns":[{"include":"source.css"}],"beginCaptures":{"1":{"name":"storage.type.marko.css"},"2":{"name":"storage.modifier.marko.less"},"3":{"name":"punctuation.section.scope.begin.css"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.css"}},"applyEndPatternLast":true},"component-style-less":{"begin":"^(style)\\.(less)\\s+(\\{)","end":"\\}","patterns":[{"include":"source.css.less"}],"beginCaptures":{"1":{"name":"storage.type.marko.less"},"2":{"name":"storage.modifier.marko.less"},"3":{"name":"punctuation.section.scope.begin.less"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.less"}},"applyEndPatternLast":true},"doctype":{"name":"meta.tag.sgml.html","begin":"\u003c!","end":"\u003e","patterns":[{"name":"meta.tag.sgml.doctype.html","begin":"(?i:DOCTYPE)","end":"(?=\u003e)","patterns":[{"name":"string.quoted.double.doctype.identifiers-and-DTDs.html","match":"\"[^\"\u003e]*\""}],"captures":{"1":{"name":"entity.name.tag.doctype.html"}}}],"captures":{"0":{"name":"punctuation.definition.marko-tag.html"}}},"expression":{"patterns":[{"include":"#expression-common"},{"include":"#expression-operator-gt"}]},"expression-common":{"patterns":[{"include":"#expression-string-single"},{"include":"#expression-string-double"},{"include":"#expression-string-template"},{"include":"#expression-group-parens"},{"include":"#expression-group-brackets"},{"include":"#expression-group-braces"},{"include":"#expression-constant"},{"include":"#expression-hex"},{"include":"#expression-numeric"},{"include":"#expression-operator-unary"},{"include":"#expression-operator-binary"},{"include":"#expression-operator-special"},{"match":"[.]([\\p{L}\\p{Nl}$_][\\p{L}\\p{Nl}$\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\x{200C}\\x{200D}]*)\\b"},{"match":"\\b(out)[.](global)\\b","captures":{"1":{"name":"entity.name.type"},"2":{"name":"entity.name.type"}}},{"match":"\\b(this)[.](input|state)\\b","captures":{"1":{"name":"variable.language.js"},"2":{"name":"entity.name.type"}}},{"name":"entity.name.type","match":"\\b(input|state|component|JSON|out)\\b"},{"name":"storage.type.var.js","match":"\\b(let|var|const)\\b"},{"match":"\\b(require)[.](resolve)\\b","captures":{"1":{"name":"entity.name.type"},"2":{"name":"entity.name.type"}}},{"name":"entity.name.type","match":"\\b(console|JSON|event|window|setTimeout|setInterval|require)\\b"},{"name":"variable.language.js","match":"\\b(this|arguments)\\b"},{"include":"#expression-special-class"}]},"expression-constant":{"match":"(true)|(false)|(Infinity)|(NaN)|(null)|(undefined)","captures":{"1":{"name":"constant.language.boolean.true.js"},"2":{"name":"constant.language.boolean.false.js"},"3":{"name":"constant.language.infinity.js"},"4":{"name":"constant.language.nan.js"},"5":{"name":"constant.language.null.js"},"6":{"name":"constant.language.undefined.js"}}},"expression-group-braces":{"begin":"\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.js"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.js"}},"applyEndPatternLast":true},"expression-group-brackets":{"begin":"\\[","end":"\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.square.js"}},"endCaptures":{"0":{"name":"meta.brace.square.js"}},"applyEndPatternLast":true},"expression-group-parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.round.js"}},"endCaptures":{"0":{"name":"meta.brace.round.js"}},"applyEndPatternLast":true},"expression-hex":{"name":"constant.numeric.hex.js","match":"\\b0[xX][0-9A-Fa-f]+\\b"},"expression-no-gt":{"patterns":[{"include":"#expression-common"}]},"expression-numeric":{"name":"constant.numeric.js","match":"(?x)\n\t\t\t\t(?\u003c!\\w)\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t(?\u003e\n\t\t\t\t\t(\n\t\t\t\t\t\t(0|[1-9][0-9]*)(\\.[0-9]*)?\t\t# 0 or 1 or 1. or 1.0\n\t\t\t\t\t | \\.[0-9]+\t\t\t\t\t\t# .1\n\t\t\t\t\t)\n\t\t\t\t\t([eE][+-]?[0-9]+)?\t\t\t\t\t# Exponent\n\t\t\t\t)\n\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t"},"expression-operator-binary":{"match":"(\\s+|\\b)(===|==|!==|!=|\u003c=|\u003c\u003c|\u0026\u0026|\\|\\||\u003c|\\+=|-=|\\*=|/=|%=|[=+*/%|\u0026~^:])(\\s+|\\b)","captures":{"2":{"name":"keyword.operator.js"}}},"expression-operator-gt":{"match":"(\\s+|\\b)(\u003e=|\u003e\u003e|\u003e)(\\s+|\\b)","captures":{"2":{"name":"keyword.operator.js"}}},"expression-operator-special":{"name":"keyword","match":"(?\u003c!\\.|\\$)\\b(delete|in|instanceof|new|typeof\\s*|void|with|from|to|step)\\b(?!\\$)"},"expression-operator-unary":{"name":"keyword.operator.js","match":"\\b(!|\\+\\+)\\b|\\b\\-\\-(?\u003c!\\s)"},"expression-special-class":{"name":"support.class.js","match":"(?\u003c!\\.|\\$)\\b(Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError)\\b(?!\\$)"},"expression-string-double":{"name":"string.quoted.double.js","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.js","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}}},"expression-string-escapes":{"patterns":[{"name":"constant.character.escape.js","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"}]},"expression-string-single":{"name":"string.quoted.single.js","begin":"'","end":"'","patterns":[{"include":"#expression-string-escapes"},{"include":"#placeholder-patterns"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}}},"expression-string-template":{"name":"string.quoted.other.template.js","begin":"`","end":"`","patterns":[{"include":"#expression-string-escapes"},{"name":"meta.embedded.line.js","contentName":"source.js","begin":"\\$\\{","end":"(\\})","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.js"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.js"},"1":{"name":"source.js"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}}},"expression-ternary-if":{"name":"meta.ternary-if.js","begin":"\\?","end":":","patterns":[{"include":"$self"}]},"html-block-concise":{"name":"meta.section.marko-html-block","begin":"(\\s*)(-[-]+)\\n","end":"^(\\1\\2|(?!(\\1)))","patterns":[{"include":"#cdata"},{"include":"#comment-html"},{"include":"#comment-html-tag"},{"include":"#tag-html"},{"include":"#js-code-line"},{"include":"#js-code-block"},{"include":"#placeholder-patterns"}],"captures":{"2":{"name":"keyword.operator.marko"}}},"html-line-block-concise":{"begin":"\\s*([-][-]+)\\n","end":"(?!\\2)|(\\2\\1)","patterns":[{"include":"#cdata"},{"include":"#comment-html"},{"include":"#comment-html-tag"},{"include":"#tag-html"},{"include":"#placeholder-patterns"}],"beginCaptures":{"1":{"name":"keyword.operator.marko.blah"}},"applyEndPatternLast":true},"html-line-concise":{"begin":"\\s*([-][-]+)","end":"(?=\\n)","patterns":[{"include":"#cdata"},{"include":"#comment-html"},{"include":"#comment-html-tag"},{"include":"#tag-html"},{"include":"#placeholder-patterns"}],"beginCaptures":{"1":{"name":"keyword.operator.marko"}}},"js":{"patterns":[{"include":"#comment-line"},{"include":"#comment-block"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#js"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.js"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.js"}},"applyEndPatternLast":true},{"begin":"\\(","end":"\\)","patterns":[{"include":"#js"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.js"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.js"}},"applyEndPatternLast":true},{"begin":"\\[","end":"\\]","patterns":[{"include":"#js"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.js"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.js"}},"applyEndPatternLast":true},{"match":"[.]([\\p{L}\\p{Nl}$_][\\p{L}\\p{Nl}$\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\x{200C}\\x{200D}]*)\\b"},{"include":"#expression"},{"name":"keyword.control.js","match":"\\b(break|case|catch|continue|default|do|else|export|finally|for|if|return|switch|throw|try|while|with|import|from|await|async)\\b"},{"name":"storage.type.function.arrow.js","match":"(\\s+|\\b)(\\=\\\u003e)(\\s+|\\b)"},{"name":"punctuation.terminator.statement.js","match":"\\;"},{"name":"storage.type.function.js","match":"\\b(function)\\b"},{"name":"entity.name.type.class.js","match":"\\b(class)\\b"},{"name":"entity.other.inherited-class.js","match":"\\bextends\\b"},{"name":"meta.method.js","begin":"([\\p{L}\\p{Nl}$_][\\p{L}\\p{Nl}$\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\x{200C}\\x{200D}]*)\\s*(\\()(?=(?:[^\\(\\)]*)?\\)\\s*\\{)","end":"\\)","beginCaptures":{"1":{"name":"entity.name.function.js"},"2":{"name":"punctuation.definition.parameters.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.END.js"}}}]},"js-code-block":{"contentName":"source.js.embedded","begin":"^\\s*([$])\\s","end":"(?=\\n)","patterns":[{"include":"#js"}],"beginCaptures":{"1":{"name":"storage.modifier.embedded.js"}},"applyEndPatternLast":true},"open-tag-end":{"begin":"(\u003e)","end":"(?=\u003c/)","patterns":[{"include":"#cdata"},{"include":"#comment-html"},{"include":"#comment-html-tag"},{"include":"#scriptlet"},{"include":"#tag-html"},{"include":"#js-code-block"},{"include":"#placeholder-patterns"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.open.html"}}},"open-tag-end-script":{"begin":"(\u003e)","end":"(?=\u003c/)","patterns":[{"include":"#placeholder-patterns"},{"include":"#js"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.open.html"}}},"open-tag-end-style":{"begin":"(\u003e)","end":"(?=\u003c/)","patterns":[{"include":"#placeholder-patterns"},{"include":"source.css"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.open.html"}}},"placeholder":{"name":"meta.section.marko-placeholder","begin":"[$][!]?\\{","end":"\\}","patterns":[{"include":"#expression"}],"captures":{"0":{"name":"keyword.operator.marko"}},"applyEndPatternLast":true},"placeholder-escaped":{"match":"\\\\[$][!]?[{]"},"placeholder-escaped-escaped":{"match":"\\\\\\\\(?=[$][!]?[{])"},"placeholder-patterns":{"patterns":[{"include":"#placeholder-escaped-escaped"},{"include":"#placeholder-escaped"},{"include":"#placeholder"}]},"scriptlet":{"begin":"\u003c%","end":"%\u003e","patterns":[{"include":"#js"}],"captures":{"0":{"name":"keyword.operator.scriptlet.marko"}},"applyEndPatternLast":true},"special-js-tags":{"contentName":"source.js.embedded","begin":"^\\s*(?:(class)|(static)|(import))\\s","end":"(?=\\n)","patterns":[{"include":"#js"}],"beginCaptures":{"1":{"name":"storage.type.class.js"},"2":{"name":"storage.modifier.marko"},"3":{"name":"storage.modifier.marko"}},"applyEndPatternLast":true},"tag-concise":{"patterns":[{"include":"#tag-name-custom-concise"},{"include":"#tag-name-dynamic-concise"},{"include":"#tag-name-concise"}]},"tag-html":{"patterns":[{"include":"#tag-name-open-tag-only-html"},{"include":"#tag-name-script-html"},{"include":"#tag-name-style-html"},{"include":"#tag-name-shorthand-no-tag-name-html"},{"include":"#tag-name-shorthand-html"},{"include":"#tag-name-custom-html"},{"include":"#tag-name-dynamic-html"},{"include":"#tag-name-html"}]},"tag-name-concise":{"begin":"^\\s*(([a-zA-Z0-9_-]+)([.#][a-zA-Z0-9_.#-]*)?)(?=(\\s+(?![=])|$|\\(|\\|))","end":"(?=\\n)","patterns":[{"include":"#tag-params"},{"include":"#html-line-block-concise"},{"include":"#html-line-concise"},{"include":"#attr-stuff-concise"}],"beginCaptures":{"1":{"name":"entity.name.tag.concise"},"3":{"name":"entity.other.attribute-name.shorthand"}},"applyEndPatternLast":true},"tag-name-custom-concise":{"begin":"^\\s*(for|if|unless|while|else-if|else|var|assign|macro|invoke|include|await|[a-zA-Z0-9_]+([:])[a-zA-Z0-9_:-]*|[@][a-zA-Z0-9_-]+)(?=(\\s+(?![=])|$|[(]|\\|))","end":"(?=\\n)","patterns":[{"include":"#tag-params"},{"include":"#html-line-concise"},{"include":"#attr-stuff-concise"}],"beginCaptures":{"1":{"name":"support.function.marko-tag.concise"}},"applyEndPatternLast":true},"tag-name-custom-html":{"begin":"(\u003c)(for|if|unless|while|else-if|else|var|assign|macro|invoke|include|await|[a-zA-Z0-9_]+[:][a-zA-Z0-9\\-_:]*|[@][a-zA-Z0-9_-]+)(?=(\u003e|/\u003e|\\s|\\(|\\|))","end":"(\u003c/)(\\2)?(\u003e)|(/\u003e)","patterns":[{"include":"#tag-params"},{"include":"#attr-stuff-html"},{"include":"#open-tag-end"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.open.html"},"2":{"name":"support.function.marko-tag.open.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.close.html"},"2":{"name":"support.function.marko-tag.close.html"},"3":{"name":"punctuation.definition.tag.end.close.html"},"4":{"name":"punctuation.definition.tag.end.self-close.html"}}},"tag-name-dynamic-concise":{"begin":"^\\s*(?=\\$\\{.*\\})","end":"(?=\\n)","patterns":[{"include":"#placeholder"},{"include":"#tag-params"},{"include":"#html-line-concise"},{"include":"#attr-stuff-concise"}],"applyEndPatternLast":true},"tag-name-dynamic-html":{"begin":"(\u003c)(?=\\$\\{.*\\})","end":"(\u003c/)(\\2)?(\u003e)|(/\u003e)","patterns":[{"include":"#placeholder"},{"include":"#tag-params"},{"include":"#attr-stuff-html"},{"include":"#open-tag-end"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.open.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.close.html"},"2":{"name":"support.function.marko-tag.close.html"},"3":{"name":"punctuation.definition.tag.end.close.html"},"4":{"name":"punctuation.definition.tag.end.self-close.html"}}},"tag-name-html":{"begin":"(\u003c)([a-zA-Z0-9-]+)(?=(\u003e|/\u003e|\\s|\\(|\\|))","end":"(\u003c/)(\\2)?(\u003e)|(/\u003e)","patterns":[{"include":"#tag-params"},{"include":"#attr-stuff-html"},{"include":"#open-tag-end"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.open.html"},"2":{"name":"entity.name.tag.open.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.close.html"},"2":{"name":"entity.name.tag.close.html"},"3":{"name":"punctuation.definition.tag.end.close.html"},"4":{"name":"punctuation.definition.tag.end.self-close.html"}}},"tag-name-open-tag-only-html":{"begin":"(\u003c)(base|br|col|hr|embed|img|input|keygen|link|meta|param|source|track|wbr|lasso-img)(?=(\u003e|/\u003e|\\s|\\(|\\|))","end":"(\u003e|/\u003e)","patterns":[{"include":"#tag-params"},{"include":"#attr-stuff-html"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.open.html"},"2":{"name":"entity.name.tag.open.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.self-close.html"}}},"tag-name-script-html":{"begin":"(\u003c)(script)(?=(\u003e|/\u003e|\\s|\\(|\\|))","end":"(\u003c/)(script)?(\u003e)|/\u003e","patterns":[{"include":"#tag-params"},{"include":"#attr-stuff-html"},{"include":"#open-tag-end-script"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.open.html"},"2":{"name":"entity.name.tag.script.open.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.close.html"},"2":{"name":"entity.name.tag.script.close.html"},"3":{"name":"punctuation.definition.tag.end.close.html"},"4":{"name":"punctuation.definition.tag.end.self-close.html"}}},"tag-name-shorthand-html":{"begin":"(\u003c)(([a-zA-Z0-9_-]+)([#.][a-zA-Z0-9_#.:-]+))(?=(\u003e|/\u003e|\\s+(?![=])|\\(|\\|))","end":"(\u003c/)((\\3)(\\4)?)?(\u003e)|(/\u003e)","patterns":[{"include":"#tag-params"},{"include":"#attr-stuff-html"},{"include":"#open-tag-end"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.open.html"},"3":{"name":"entity.name.tag.open.html"},"4":{"name":"entity.other.attribute-name.shorthand"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.close.html"},"3":{"name":"entity.name.tag.close.html"},"4":{"name":"entity.other.attribute-name.shorthand"},"5":{"name":"punctuation.definition.tag.end.close.html"},"6":{"name":"punctuation.definition.tag.end.self-close.html"}}},"tag-name-shorthand-no-tag-name-html":{"begin":"(\u003c)([#.][a-zA-Z0-9_#.:-]+)(?=(\u003e|/\u003e|\\s|\\(|\\|))","end":"(\u003c/)(\\2|div)(\u003e)|(/\u003e)","patterns":[{"include":"#tag-params"},{"include":"#attr-stuff-html"},{"include":"#open-tag-end"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.open.html"},"2":{"name":"entity.other.attribute-name.shorthand"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.close.html"},"2":{"name":"entity.name.tag.close.html"},"3":{"name":"punctuation.definition.tag.end.close.html"},"4":{"name":"punctuation.definition.tag.end.self-close.html"}}},"tag-name-style-html":{"begin":"(\u003c)(style)(?=(\u003e|/\u003e|\\s|\\(|\\|))","end":"(\u003c/)(style)?(\u003e)|(/\u003e)","patterns":[{"include":"#tag-params"},{"include":"#attr-stuff-html"},{"include":"#open-tag-end-style"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.open.html"},"2":{"name":"entity.name.tag.style.open.html"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.close.html"},"2":{"name":"entity.name.tag.style.close.html"},"3":{"name":"punctuation.definition.tag.end.close.html"},"4":{"name":"punctuation.definition.tag.end.self-close.html"}}},"tag-params":{"begin":"\\|","end":"\\|","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.pipe.js"}},"endCaptures":{"0":{"name":"meta.pipe.js"}}},"tag-script-body-block":{"begin":"(\\s*-[-]+)","end":"(\\1)[.]*$","patterns":[{"include":"#js"}]},"tag-script-body-line":{"begin":"\\s+-[-]+\\s","end":"(?=\\n)","patterns":[{"include":"#js"}]},"tag-script-concise":{"begin":"^(\\s*)(script)(?=(\\s|$|\\())","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"#attr-stuff-concise"},{"include":"#tag-script-body-line"},{"include":"#tag-script-body-block"}],"beginCaptures":{"2":{"name":"entity.name.tag.script.marko.concise"}},"applyEndPatternLast":true},"tag-style-body-block":{"begin":"(\\s*[-][-]+)","end":"(\\1)[.]*$","patterns":[{"include":"source.css"}]},"tag-style-body-line":{"begin":"\\s[-][-]+\\s","end":"(?=\\n)","patterns":[{"include":"source.css"}]},"tag-style-concise":{"name":"meta.tag.other.style","begin":"^(\\s*)(style)(?=(\\s|$|\\())","end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"#attr-stuff-concise"},{"include":"#tag-style-body-line"},{"include":"#tag-style-body-block"}],"beginCaptures":{"2":{"name":"entity.name.tag.style.marko.concise"}},"applyEndPatternLast":true}}}
1
+ {"name":"Marko","scopeName":"text.marko","patterns":[{"name":"meta.embedded.css","contentName":"source.css","begin":"^\\s*(style)\\s+(\\{)","end":"\\}","patterns":[{"include":"source.css"}],"beginCaptures":{"1":{"name":"storage.type.marko.css"},"2":{"name":"punctuation.section.scope.begin.marko.css"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.marko.css"}}},{"name":"meta.embedded.less","contentName":"source.less","begin":"^\\s*(style)\\.(less)\\s+(\\{)","end":"\\}","patterns":[{"include":"source.css.less"}],"beginCaptures":{"1":{"name":"storage.type.marko.css"},"2":{"name":"storage.modifier.marko.css"},"3":{"name":"punctuation.section.scope.begin.marko.css"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.marko.css"}}},{"name":"meta.embedded.scss","contentName":"source.scss","begin":"^\\s*(style)\\.(scss)\\s+(\\{)","end":"\\}","patterns":[{"include":"source.css.scss"}],"beginCaptures":{"1":{"name":"storage.type.marko.css"},"2":{"name":"storage.modifier.marko.css"},"3":{"name":"punctuation.section.scope.begin.marko.css"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.marko.css"}}},{"name":"meta.embedded.js","contentName":"source.js","begin":"^\\s*(?:(static )|(?=(?:class|import|export) ))","end":"(?=\\n|$)","patterns":[{"include":"#javascript-statement"}],"beginCaptures":{"1":{"name":"keyword.control.static.marko"}}},{"include":"#content-concise-mode"}],"repository":{"attrs":{"patterns":[{"name":"meta.marko-attribute","begin":"(?:\\s+|,)(?:(key|on[a-zA-Z0-9_$-]+|[a-zA-Z0-9_$]+Change|no-update(?:-body)?(?:-if)?)|([a-zA-Z0-9_$][a-zA-Z0-9_$-]*))(:[a-zA-Z0-9_$][a-zA-Z0-9_$-]*)?","end":"(?=.|$)","patterns":[{"include":"#html-args-or-method"},{"name":"meta.embedded.js","contentName":"source.js","begin":"\\s*(:?=)\\s*","end":"(?=.|$)","patterns":[{"include":"#javascript-expression"}],"beginCaptures":{"1":{"patterns":[{"include":"source.js"}]}},"applyEndPatternLast":true}],"beginCaptures":{"1":{"name":"support.type.attribute-name.marko"},"2":{"name":"entity.other.attribute-name.marko"},"3":{"name":"support.function.attribute-name.marko"}},"applyEndPatternLast":true},{"name":"meta.marko-spread-attribute","contentName":"source.js","begin":"(?:\\s+|,)\\.\\.\\.","end":"(?=.|$)","patterns":[{"include":"#javascript-expression"}],"beginCaptures":{"1":{"name":"keyword.operator.spread.marko"}},"applyEndPatternLast":true},{"begin":"\\s*(,(?!,))","end":"(?!\\S)","captures":{"1":{"patterns":[{"include":"source.js"}]}}},{"include":"#javascript-comment-multiline"},{"include":"#invalid"}]},"concise-html-block":{"name":"meta.section.marko-html-block","begin":"\\s*(--+)\\s*$","end":"\\1","patterns":[{"include":"#content-html-mode"}],"beginCaptures":{"2":{"name":"punctuation.section.scope.begin.marko"}},"endCaptures":{"1":{"name":"punctuation.section.scope.end.marko"}}},"concise-html-line":{"name":"meta.section.marko-html-line","match":"\\s*(--+)(?=\\s+\\S)(.*$)","captures":{"1":{"name":"punctuation.section.scope.begin.marko"},"2":{"patterns":[{"include":"#html-comments"},{"include":"#tag-html"},{"name":"string","match":"\\\\."},{"include":"#placeholder"},{"name":"string","match":".+?"}]}}},"concise-open-tag-content":{"patterns":[{"include":"#tag-before-attrs"},{"begin":"\\s*\\[","end":"]","patterns":[{"include":"#attrs"},{"include":"#invalid"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.marko"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.marko"}}},{"begin":"(?!^)(?= )","end":"(?=--)|(?\u003c!,)(?=\\n)","patterns":[{"include":"#attrs"},{"include":"#invalid"}]}]},"concise-script-block":{"name":"meta.section.marko-script-block","begin":"(\\s+)(--+)\\s*$","end":"(\\2)|(?=^(?!\\1)\\s*\\S)","patterns":[{"include":"#content-embedded-script"}],"beginCaptures":{"2":{"name":"punctuation.section.scope.begin.marko"}},"endCaptures":{"1":{"name":"punctuation.section.scope.end.marko"}}},"concise-script-line":{"name":"meta.section.marko-script-line","begin":"\\s*(--+)","end":"$","patterns":[{"include":"#content-embedded-script"}],"beginCaptures":{"1":{"name":"punctuation.section.scope.begin.marko"}},"applyEndPatternLast":true},"concise-style-block":{"name":"meta.section.marko-style-block","contentName":"source.css","begin":"(\\s+)(--+)\\s*$","end":"(\\2)|(?=^(?!\\1)\\s*\\S)","patterns":[{"include":"#content-embedded-style"}],"beginCaptures":{"2":{"name":"punctuation.section.scope.begin.marko"}},"endCaptures":{"1":{"name":"punctuation.section.scope.end.marko"}}},"concise-style-block-less":{"name":"meta.section.marko-style-block","contentName":"source.less","begin":"(\\s+)(--+)\\s*$","end":"(\\2)|(?=^(?!\\1)\\s*\\S)","patterns":[{"include":"#content-embedded-style-less"}],"beginCaptures":{"2":{"name":"punctuation.section.scope.begin.marko"}},"endCaptures":{"1":{"name":"punctuation.section.scope.end.marko"}}},"concise-style-block-scss":{"name":"meta.section.marko-style-block","contentName":"source.scss","begin":"(\\s+)(--+)\\s*$","end":"(\\2)|(?=^(?!\\1)\\s*\\S)","patterns":[{"include":"#content-embedded-style-scss"}],"beginCaptures":{"2":{"name":"punctuation.section.scope.begin.marko"}},"endCaptures":{"1":{"name":"punctuation.section.scope.end.marko"}}},"concise-style-line":{"name":"meta.section.marko-style-line","contentName":"source.css","begin":"\\s*(--+)","end":"$","patterns":[{"include":"#content-embedded-style"}],"beginCaptures":{"1":{"name":"punctuation.section.scope.begin.marko"}},"applyEndPatternLast":true},"concise-style-line-less":{"name":"meta.section.marko-style-line","contentName":"source.less","begin":"\\s*(--+)","end":"$","patterns":[{"include":"#content-embedded-style-less"}],"beginCaptures":{"1":{"name":"punctuation.section.scope.begin.marko"}},"applyEndPatternLast":true},"concise-style-line-scss":{"name":"meta.section.marko-style-line","contentName":"source.scss","begin":"\\s*(--+)","end":"$","patterns":[{"include":"#content-embedded-style-scss"}],"beginCaptures":{"1":{"name":"punctuation.section.scope.begin.marko"}},"applyEndPatternLast":true},"content-concise-mode":{"name":"meta.marko-concise-content","patterns":[{"include":"#scriptlet"},{"include":"#javascript-comments"},{"include":"#html-comments"},{"include":"#concise-html-block"},{"include":"#concise-html-line"},{"include":"#tag-html"},{"patterns":[{"begin":"^(\\s*)(?=style\\.less\\b)","while":"(?=^\\1\\s+(\\S|$))","patterns":[{"include":"#concise-open-tag-content"},{"include":"#concise-style-block-less"},{"include":"#concise-style-line-less"}]},{"begin":"^(\\s*)(?=style\\.scss\\b)","while":"(?=^\\1\\s+(\\S|$))","patterns":[{"include":"#concise-open-tag-content"},{"include":"#concise-style-block-scss"},{"include":"#concise-style-line-scss"}]},{"begin":"^(\\s*)(?=style\\b)","while":"(?=^\\1\\s+(\\S|$))","patterns":[{"include":"#concise-open-tag-content"},{"include":"#concise-style-block"},{"include":"#concise-style-line"}]},{"begin":"^(\\s*)(?=script\\b)","while":"(?=^\\1\\s+(\\S|$))","patterns":[{"include":"#concise-open-tag-content"},{"include":"#concise-script-block"},{"include":"#concise-script-line"}]},{"begin":"^(\\s*)(?=[a-zA-Z0-9_$@])","while":"(?=^\\1\\s+(\\S|$))","patterns":[{"include":"#concise-open-tag-content"},{"include":"#content-concise-mode"}]}]},{"include":"#invalid"}]},"content-embedded-script":{"name":"meta.embedded.js","patterns":[{"include":"#placeholder"},{"include":"source.js"}]},"content-embedded-style":{"name":"meta.embedded.css","patterns":[{"include":"#placeholder"},{"include":"source.css"}]},"content-embedded-style-less":{"name":"meta.embedded.css.less","patterns":[{"include":"#placeholder"},{"include":"source.css.less"}]},"content-embedded-style-scss":{"name":"meta.embedded.css.scss","patterns":[{"include":"#placeholder"},{"include":"source.css.scss"}]},"content-html-mode":{"patterns":[{"include":"#scriptlet"},{"include":"#html-comments"},{"include":"#tag-html"},{"name":"string","match":"\\\\."},{"include":"#placeholder"},{"name":"string","match":".+?"}]},"html-args-or-method":{"patterns":[{"include":"#javascript-args"},{"name":"meta.embedded.js","contentName":"source.js","begin":"(?\u003c=\\))\\s*(?=\\{)","end":"(?\u003c=\\})","patterns":[{"include":"source.js"}]}]},"html-comments":{"patterns":[{"name":"comment.block.marko","begin":"\\s*(\u003c!(--)?)","end":"\\2\u003e","beginCaptures":{"1":{"name":"punctuation.definition.comment.marko"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.marko"}}},{"name":"comment.block.marko","begin":"\\s*(\u003chtml-comment\u003e)","end":"\u003c/html-comment\u003e","beginCaptures":{"1":{"name":"punctuation.definition.comment.marko"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.marko"}}}]},"invalid":{"name":"invalid.illegal.character-not-allowed-here.marko","match":"[^\\s]"},"javascript-args":{"name":"meta.embedded.js","contentName":"source.js","begin":"(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"source.js"}]},"javascript-comment-line":{"contentName":"source.js","match":"\\s*//.*$","captures":{"0":{"patterns":[{"include":"source.js"}]}}},"javascript-comment-multiline":{"contentName":"source.js","begin":"\\s*(?=/\\*)","end":"(?\u003c=\\*/)","patterns":[{"include":"source.js"}]},"javascript-comments":{"patterns":[{"include":"#javascript-comment-multiline"},{"include":"#javascript-comment-line"}]},"javascript-enclosed":{"patterns":[{"include":"#javascript-comments"},{"include":"#javascript-args"},{"begin":"(?={)","end":"(?\u003c=})","patterns":[{"include":"source.js"}]},{"begin":"(?=\\[)","end":"(?\u003c=])","patterns":[{"include":"source.js"}]},{"begin":"(?=\")","end":"(?\u003c=\")","patterns":[{"include":"source.js"}]},{"begin":"(?=')","end":"(?\u003c=')","patterns":[{"include":"source.js"}]},{"begin":"(?=`)","end":"(?\u003c=`)","patterns":[{"include":"source.js"}]},{"contentName":"source.js","begin":"/(?!\u003c[\\]})A-Z0-9.\u003c%]\\s*/)(?!/?\u003e|$)","end":"/[gimsuy]*","patterns":[{"include":"source.js#regexp"},{"include":"source.js"}],"captures":{"0":{"name":"string.regexp.js"}}},{"begin":"(?x)\\s*(?:\n\t\t\t\t\t\t\t\t(?:\\b(?:new|typeof|instanceof|in)\\b)| # Keyword operators\n\t\t\t\t\t\t\t\t\\\u0026\\\u0026|\\|\\|| # Logical operators\n\t\t\t\t\t\t\t\t[\\^|\u0026]| # Bitwise operators\n\t\t\t\t\t\t\t\t[!=]=|[!=]==|\u003c|\u003c[=\u003c]|=\u003e| # Comparison operators (Note you cannot use * or ? here)\n\t\t\t\t\t\t\t\t[?:]| # Ternary operators\n\t\t\t\t\t\t\t\t[-+*%](?!-) # Arithmetic operators\n\t\t\t\t\t\t\t)","end":"(?=\\S)","captures":{"0":{"patterns":[{"include":"source.js"}]}}}]},"javascript-expression":{"patterns":[{"include":"#javascript-enclosed"},{"match":"[0-9a-zA-Z$_.]+","captures":{"0":{"patterns":[{"include":"source.js"}]}}}]},"javascript-statement":{"patterns":[{"include":"#javascript-enclosed"},{"include":"source.js"}]},"open-tag-content":{"patterns":[{"include":"#tag-before-attrs"},{"begin":"(?= )","end":"(?=/?\u003e)","patterns":[{"include":"#attrs"}]}]},"placeholder":{"contentName":"source.js","begin":"\\$!?{","end":"}","patterns":[{"include":"source.js"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.js"}}},"scriptlet":{"name":"meta.embedded.js","contentName":"source.js","begin":"^\\s*(\\$)\\s+","end":"$","patterns":[{"include":"#javascript-statement"}],"beginCaptures":{"1":{"name":"keyword.control.scriptlet.marko"}}},"tag-before-attrs":{"patterns":[{"include":"#tag-name"},{"name":"entity.other.attribute-name.marko","match":"[#.][a-zA-Z0-9_$][a-zA-Z0-9_$-]*"},{"name":"meta.embedded.js","contentName":"source.js","begin":"/(?!/)","end":"(?=:?\\=|\\s|\u003e|$|\\||\\(|/)","patterns":[{"name":"variable.other.constant.object.js","match":"[a-zA-Z$_][0-9a-zA-Z$_]*"},{"include":"source.js#object-binding-pattern"},{"include":"source.js#array-binding-pattern"},{"include":"source.js#var-single-variable"},{"include":"#javascript-expression"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.marko"}}},{"name":"meta.embedded.js","contentName":"source.js","begin":"\\s*(:?=)\\s*","end":"(?=.|$)","patterns":[{"include":"#javascript-expression"}],"beginCaptures":{"1":{"patterns":[{"include":"source.js"}]}},"applyEndPatternLast":true},{"begin":"\\|","end":"\\|","patterns":[{"include":"source.js#function-parameters-body"},{"include":"source.js"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.marko"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.marko"}}},{"include":"#html-args-or-method"}]},"tag-html":{"patterns":[{"begin":"\\s*(\u003c)(?=(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\\b)","end":"/?\u003e","patterns":[{"include":"#open-tag-content"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.end.marko"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}}},{"begin":"\\s*(\u003c)(?=style\\.less\\b)","end":"/\u003e|(?\u003c=\\\u003e)","patterns":[{"include":"#open-tag-content"},{"contentName":"source.less","begin":"\u003e","end":"\\s*(\u003c/)(style)?(\u003e)","patterns":[{"include":"#content-embedded-style-less"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.marko"},"2":{"patterns":[{"include":"#tag-name"}]},"3":{"name":"punctuation.definition.tag.end.marko"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.marko"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}}},{"begin":"\\s*(\u003c)(?=style\\.scss\\b)","end":"/\u003e|(?\u003c=\\\u003e)","patterns":[{"include":"#open-tag-content"},{"contentName":"source.less","begin":"\u003e","end":"\\s*(\u003c/)(style)?(\u003e)","patterns":[{"include":"#content-embedded-style-scss"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.marko"},"2":{"patterns":[{"include":"#tag-name"}]},"3":{"name":"punctuation.definition.tag.end.marko"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.marko"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}}},{"begin":"\\s*(\u003c)(?=style\\b)","end":"/\u003e|(?\u003c=\\\u003e)","patterns":[{"include":"#open-tag-content"},{"contentName":"source.css","begin":"\u003e","end":"\\s*(\u003c/)(style)?(\u003e)","patterns":[{"include":"#content-embedded-style"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.marko"},"2":{"patterns":[{"include":"#tag-name"}]},"3":{"name":"punctuation.definition.tag.end.marko"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.marko"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}}},{"begin":"\\s*(\u003c)(?=script\\b)","end":"/\u003e|(?\u003c=\\\u003e)","patterns":[{"include":"#open-tag-content"},{"contentName":"source.js","begin":"\u003e","end":"\\s*(\u003c/)(script)?(\u003e)","patterns":[{"include":"#content-embedded-script"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.marko"},"2":{"patterns":[{"include":"#tag-name"}]},"3":{"name":"punctuation.definition.tag.end.marko"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.marko"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}}},{"begin":"\\s*(\u003c)(?=[a-zA-Z0-9_$@])","end":"/\u003e|(?\u003c=\\\u003e)","patterns":[{"include":"#open-tag-content"},{"begin":"\u003e","end":"\\s*(\u003c/)([a-zA-Z0-9_$:@-]+)?(.*?)(\u003e)","patterns":[{"include":"#content-html-mode"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.marko"},"2":{"patterns":[{"include":"#tag-name"}]},"3":{"patterns":[{"include":"#invalid"}]},"4":{"name":"punctuation.definition.tag.end.marko"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.marko"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.marko"}}}]},"tag-name":{"patterns":[{"begin":"\\${","end":"}","patterns":[{"include":"source.js"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.js"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.js"}}},{"match":"(style)\\.([a-zA-Z0-9$_-]+(?:\\.[a-zA-Z0-9$_-]+)*)|([a-zA-Z0-9_$@][a-zA-Z0-9_$@:-]*)","captures":{"1":{"name":"entity.name.tag.marko"},"2":{"name":"storage.type.marko.css"},"3":{"patterns":[{"name":"support.type.builtin.marko","match":"(attrs|return|import)(?=\\b)"},{"name":"support.function.marko","match":"(for|if|while|else-if|else|macro|tag|await|let|const|effect|set|get|id|lifecycle)(?=\\b)"},{"name":"entity.other.attribute-name.marko","match":"@.+"},{"name":"entity.name.tag.marko","match":".+"}]}}}]}}}
@@ -1 +1 @@
1
- {"name":"Spline Font Database","scopeName":"text.sfd","patterns":[{"include":"#main"}],"repository":{"address":{"name":"constant.numeric.hexadecimal.sfd","match":"\\d+[xX][A-Fa-f0-9]+"},"colour":{"name":"constant.other.hex.colour.sfd","match":"(#)[A-Fa-f0-9]{3,}|(?\u003c=\\s)[A-Fa-f0-9]{6,8}","captures":{"1":{"name":"punctuation.definition.colour.sfd"}}},"comment":{"name":"meta.user-comments.sfd","contentName":"comment.line.field.sfd","begin":"^(U?Comments?)(:)","end":"$","patterns":[{"include":"#source.fontforge#stringEscapes"}],"beginCaptures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"control":{"name":"keyword.control.${1:/downcase}.sfd","match":"\\b(Fore|Back|SplineSet|^End\\w+)\\b"},"copyright":{"name":"meta.copyright-string.sfd","contentName":"string.unquoted.copyright.info.sfd","begin":"^(Copyright)(:)","end":"$","patterns":[{"include":"source.fontforge#stringEscapes"}],"beginCaptures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"encoding":{"name":"constant.language.encoding.sfd","match":"(?i)\\b(ISO[-\\w]+)(?\u003c=\\d)(?=\\s|$)"},"gaspTable":{"name":"meta.gasp-table.sfd","begin":"^(GaspTable)(:|(?=\\s))","end":"$","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"header":{"name":"meta.header.sfd","match":"^(SplineFontDB)(:)","captures":{"1":{"name":"keyword.control.start.file.afm"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"image":{"name":"meta.image.sfd","contentName":"string.unquoted.raw.data.sfd","begin":"^(Image)(?=:)(.+)$","end":"^(EndImage)\\b","beginCaptures":{"1":{"name":"keyword.control.begin.image.sfd"},"2":{"patterns":[{"include":"$self"}]}},"endCaptures":{"1":{"name":"keyword.control.end.image.sfd"}}},"main":{"patterns":[{"include":"#punctuation"},{"include":"#private"},{"include":"#header"},{"include":"#names"},{"include":"#image"},{"include":"#pickleData"},{"include":"#sections"},{"include":"#copyright"},{"include":"#comment"},{"include":"#gaspTable"},{"include":"#property"},{"include":"#control"},{"include":"#address"},{"include":"#encoding"},{"include":"source.fontforge#shared"},{"include":"#colour"},{"include":"#unquoted"}]},"names":{"name":"meta.dictionary.key-value.sfd","match":"^((\\w+)Name)(:)\\s*(\\S+.*?)\\s$","captures":{"1":{"name":"variable.other.property.sfd"},"3":{"name":"punctuation.separator.dictionary.key-value.sfd"},"4":{"name":"entity.name.${2:/downcase},sfd"}}},"pickleData":{"name":"meta.pickle-data.sfd","begin":"^(PickledData)(:)\\s*(\")","end":"\"","patterns":[{"name":"constant.character.escape.sfd","match":"\\\\."}],"beginCaptures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"},"3":{"name":"punctuation.definition.string.begin.sfd"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.sfd"}}},"private":{"name":"meta.section.private.sfd","begin":"^BeginPrivate(?=:)","end":"^EndPrivate\\b","patterns":[{"name":"entity.name.private.property.sfd","match":"^\\S+"},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.begin.private.sfd"}},"endCaptures":{"0":{"name":"keyword.control.end.private.sfd"}}},"property":{"name":"meta.dictionary.key-value.sfd","match":"^([^:]+)(:)","captures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"punctuation":{"patterns":[{"name":"punctuation.definition.brackets.angle.sfd","match":"\u003c|\u003e"},{"name":"punctuation.definition.brackets.curly.sfd","match":"[{}]"}]},"sections":{"name":"meta.section.${2:/downcase}.sfd","begin":"^(Start|Begin)([A-Z]\\w+)(?=:)","end":"^(End\\2)\\b","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.begin.${2:/downcase}.sfd"}},"endCaptures":{"0":{"name":"keyword.control.end.${2:/downcase}.sfd"}}},"unquoted":{"name":"string.unquoted.property.sfd","match":"\\S+"}}}
1
+ {"name":"Spline Font Database","scopeName":"text.sfd","patterns":[{"include":"#main"}],"repository":{"address":{"name":"constant.numeric.hexadecimal.sfd","match":"\\d+[xX][A-Fa-f0-9]+"},"colour":{"name":"constant.other.hex.colour.sfd","match":"(#)[A-Fa-f0-9]{3,}|(?\u003c=\\s)[A-Fa-f0-9]{6,8}","captures":{"1":{"name":"punctuation.definition.colour.sfd"}}},"comment":{"name":"meta.user-comments.sfd","contentName":"comment.line.field.sfd","begin":"^(U?Comments?)(:)","end":"$","patterns":[{"include":"#source.fontforge#stringEscapes"}],"beginCaptures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"control":{"name":"keyword.control.${1:/downcase}.sfd","match":"\\b(Fore|Back|SplineSet|^End\\w+)\\b"},"copyright":{"name":"meta.copyright-string.sfd","contentName":"string.unquoted.copyright.info.sfd","begin":"^(Copyright)(:)","end":"$","patterns":[{"include":"source.fontforge#stringEscapes"}],"beginCaptures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"encoding":{"name":"constant.language.encoding.sfd","match":"(?i)\\b(ISO[-\\w]+)(?\u003c=\\d)(?=\\s|$)"},"gaspTable":{"name":"meta.gasp-table.sfd","begin":"^(GaspTable)(:|(?=\\s))","end":"$","patterns":[{"include":"#main"}],"beginCaptures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"header":{"name":"meta.header.sfd","match":"^(SplineFontDB)(:)","captures":{"1":{"name":"keyword.control.start.file.afm"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"image":{"name":"meta.image.sfd","contentName":"string.unquoted.raw.data.sfd","begin":"^(Image)(?=:)(.+)$","end":"^(EndImage)\\b","beginCaptures":{"1":{"name":"keyword.control.begin.image.sfd"},"2":{"patterns":[{"include":"#main"}]}},"endCaptures":{"1":{"name":"keyword.control.end.image.sfd"}}},"main":{"patterns":[{"include":"#punctuation"},{"include":"#private"},{"include":"#header"},{"include":"#names"},{"include":"#image"},{"include":"#pickleData"},{"include":"#sections"},{"include":"#copyright"},{"include":"#comment"},{"include":"#gaspTable"},{"include":"#property"},{"include":"#control"},{"include":"#address"},{"include":"#encoding"},{"include":"source.fontforge#shared"},{"include":"#colour"},{"include":"#unquoted"}]},"names":{"name":"meta.dictionary.key-value.sfd","match":"^((\\w+)Name)(:)\\s*(\\S+.*?)\\s$","captures":{"1":{"name":"variable.other.property.sfd"},"3":{"name":"punctuation.separator.dictionary.key-value.sfd"},"4":{"name":"entity.name.${2:/downcase},sfd"}}},"pickleData":{"name":"meta.pickle-data.sfd","begin":"^(PickledData)(:)\\s*(\")","end":"\"","patterns":[{"name":"constant.character.escape.sfd","match":"\\\\."}],"beginCaptures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"},"3":{"name":"punctuation.definition.string.begin.sfd"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.sfd"}}},"private":{"name":"meta.section.private.sfd","begin":"^BeginPrivate(?=:)","end":"^EndPrivate\\b","patterns":[{"name":"entity.name.private.property.sfd","match":"^\\S+"},{"include":"#main"}],"beginCaptures":{"0":{"name":"keyword.control.begin.private.sfd"}},"endCaptures":{"0":{"name":"keyword.control.end.private.sfd"}}},"property":{"name":"meta.dictionary.key-value.sfd","match":"^([^:]+)(:)","captures":{"1":{"name":"variable.other.property.sfd"},"2":{"name":"punctuation.separator.dictionary.key-value.sfd"}}},"punctuation":{"patterns":[{"name":"punctuation.definition.brackets.angle.sfd","match":"\u003c|\u003e"},{"name":"punctuation.definition.brackets.curly.sfd","match":"[{}]"}]},"sections":{"name":"meta.section.${2:/downcase}.sfd","begin":"^(Start|Begin)([A-Z]\\w+)(?=:)","end":"^(End\\2)\\b","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"keyword.control.begin.${2:/downcase}.sfd"}},"endCaptures":{"0":{"name":"keyword.control.end.${2:/downcase}.sfd"}}},"unquoted":{"name":"string.unquoted.property.sfd","match":"\\S+"}}}
@@ -1 +1 @@
1
- {"name":"Literate Haskell","scopeName":"text.tex.latex.haskell","patterns":[{"name":"meta.embedded.block.haskell.latex.haskell","contentName":"source.haskell.embedded.latex.haskell","begin":"^((\\\\)begin)({)(code|spec)(})(\\s*$)?","end":"^((\\\\)end)({)\\4(})","patterns":[{"include":"source.haskell"}],"beginCaptures":{"1":{"name":"support.function.be.latex.haskell"},"2":{"name":"punctuation.definition.function.latex.haskell"},"3":{"name":"punctuation.definition.arguments.begin.latex.haskell"},"5":{"name":"punctuation.definition.arguments.end.latex.haskell"}},"endCaptures":{"1":{"name":"support.function.be.latex.haskell"},"2":{"name":"punctuation.definition.function.latex.haskell"},"3":{"name":"punctuation.definition.arguments.begin.latex.haskell"},"4":{"name":"punctuation.definition.arguments.end.latex.haskell"}}},{"name":"meta.embedded.haskell","begin":"^(?=[\u003e\u003c] )","end":"^(?![\u003e\u003c] )","patterns":[{"include":"#haskell_source"},{"name":"punctuation.definition.bird-track.haskell","match":"^\u003e "}]},{"name":"meta.embedded.text.haskell.latex.haskell","match":"(?\u003c!\\\\verb)\\|((:?[^|]|\\|\\|)+)\\|","captures":{"1":{"patterns":[{"include":"source.haskell"}]}}},{"include":"text.tex.latex"}],"repository":{"arrow":{"patterns":[{"name":"keyword.other.arrow.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"assignment_op":{"patterns":[{"match":"=","captures":{"0":{"name":"keyword.operator.assignment.haskell"}}}]},"attribute_name":{"patterns":[{"name":"entity.other.attribute-name.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"big_arrow":{"patterns":[{"name":"keyword.other.big-arrow.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"block_comment":{"patterns":[{"name":"comment.block.haddock.haskell","begin":"\\{-\\s*[|^]","end":"-\\}","patterns":[{"include":"#block_comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.haddock.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.haddock.haskell"}},"applyEndPatternLast":true},{"name":"comment.block.haskell","begin":"\\{-","end":"-\\}","patterns":[{"include":"#block_comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.block.start.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.haskell"}},"applyEndPatternLast":true}]},"c_preprocessor":{"patterns":[{"name":"meta.preprocessor.c.haskell","begin":"^(?:\u003e|\u003c) (?=#)","end":"(?\u003c!\\\\)(?=$)","patterns":[{"name":"keyword.control.c.haskell","match":"^#\\S+"}]}]},"characters":{"patterns":[{"name":"constant.character.escape.haskell","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\\\\\\\"'\\\u0026])"},{"name":"constant.character.escape.octal.haskell","match":"(?:\\\\o[0-7]+)"},{"name":"constant.character.escape.hexadecimal.haskell","match":"(?:\\\\x[0-9A-Fa-f]+)"},{"name":"constant.character.escape.control.haskell","match":"(?:\\\\\\^[A-Z@\\[\\]\\\\^_])"}]},"class_decl":{"patterns":[{"name":"meta.declaration.class.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(class)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.class.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"comma":{"patterns":[{"name":"punctuation.separator.comma.haskell","match":","}]},"comments":{"patterns":[{"begin":"(^(?:\u003e|\u003c) [ \\t]+)?(?=--+\\s+[|^])","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.haddock.haskell","begin":"(--+)\\s+([|^])","end":"$","beginCaptures":{"1":{"name":"punctuation.definition.comment.haskell"},"2":{"name":"punctuation.definition.comment.haddock.haskell"}}}]},{"begin":"(^(?:\u003e|\u003c) [ \\t]+)?(?=--+(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.haskell","begin":"--","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.haskell"}}}]},{"include":"#block_comment"}]},"common_toplevel":{"patterns":[{"include":"#class_decl"},{"include":"#instance_decl"},{"include":"#deriving_instance_decl"},{"include":"#foreign_import"},{"include":"#regular_import"},{"include":"#data_decl"},{"include":"#type_alias"},{"include":"#c_preprocessor"}]},"ctor_type_declaration":{"patterns":[{"name":"meta.ctor.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:[\\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{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:[\\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{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#type_ctor"},{"include":"#infix_op"}]},"3":{"name":"keyword.other.double-colon.haskell"}}}]},"data_decl":{"patterns":[{"name":"meta.declaration.type.data.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(data|newtype)\\s+((?:(?!(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))|(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|{-).|{-.*?-})*)","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#string"},{"include":"#where"},{"include":"#deriving"},{"include":"#via"},{"include":"#assignment_op"},{"include":"#type_ctor_forall"},{"include":"#type_ctor_alt"},{"match":"\\|","captures":{"0":{"name":"punctuation.separator.pipe.haskell"}}},{"name":"meta.declaration.type.data.record.block.haskell","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#comma"},{"include":"#record_field_declaration"}],"beginCaptures":{"0":{"name":"keyword.operator.record.begin.haskell"}},"endCaptures":{"0":{"name":"keyword.operator.record.end.haskell"}}},{"include":"#ctor_type_declaration"}],"beginCaptures":{"2":{"name":"keyword.other.data.haskell"},"3":{"name":"meta.type-signature.haskell","patterns":[{"include":"#family_and_instance"},{"include":"#type_signature"}]}}}]},"deriving":{"patterns":[{"include":"#deriving_list"},{"include":"#deriving_simple"},{"include":"#deriving_keyword"}]},"deriving_instance_decl":{"patterns":[{"name":"meta.declaration.instance.deriving.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s+|(deriving)\\s+(via)\\s+(.*)\\s+)?(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"},"3":{"patterns":[{"include":"#deriving_strategies"}]},"4":{"name":"keyword.other.haskell"},"5":{"name":"keyword.other.haskell"},"6":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]},"7":{"name":"keyword.other.haskell"}}}]},"deriving_keyword":{"patterns":[{"name":"meta.deriving.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]}}}]},"deriving_list":{"patterns":[{"name":"meta.deriving.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*\\(","end":"\\)","patterns":[{"match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"entity.other.inherited-class.haskell"}}}],"beginCaptures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]}}}]},"deriving_simple":{"patterns":[{"name":"meta.deriving.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]},"3":{"name":"entity.other.inherited-class.haskell"}}}]},"deriving_strategies":{"patterns":[{"name":"meta.deriving.strategy.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(stock|newtype|anyclass)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}}]},"double_colon_operator":{"patterns":[{"name":"keyword.other.double-colon.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"empty_list":{"patterns":[{"name":"constant.language.empty-list.haskell","match":"\\[\\]"}]},"family_and_instance":{"patterns":[{"name":"keyword.other.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(family|instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"foreign_import":{"patterns":[{"name":"meta.foreign.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(foreign)\\s+(import|export)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"match":"(?:un)?safe","captures":{"0":{"name":"keyword.other.haskell"}}},{"include":"#function_type_declaration"},{"include":"#haskell_expr"},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"},"3":{"name":"keyword.other.haskell"}}}]},"function_name":{"patterns":[{"name":"entity.name.function.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"}]}}}]},"function_type_declaration":{"patterns":[{"name":"meta.function.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#function_name"},{"include":"#infix_op"}]},"3":{"name":"keyword.other.double-colon.haskell"}}}]},"function_type_declaration_with_scoped_type":{"patterns":[{"include":"#scoped_type_override"},{"include":"#function_type_declaration"},{"include":"#multiline_type_declaration"}]},"haskell_expr":{"patterns":[{"include":"#infix_function"},{"include":"#unit"},{"include":"#empty_list"},{"include":"#quasi_quotes"},{"include":"#keywords"},{"include":"#pragma"},{"include":"#string"},{"include":"#newline_escape"},{"include":"#quoted_character"},{"include":"#comments"},{"include":"#infix_op"},{"include":"#comma"},{"include":"#lit_num"},{"include":"#scoped_type"},{"include":"#operator"},{"include":"#identifier"},{"include":"#type_ctor"}]},"haskell_source":{"patterns":[{"include":"#shebang"},{"include":"#module_decl"},{"include":"#haskell_toplevel"}]},"haskell_toplevel":{"patterns":[{"include":"#liquidhaskell_annotation"},{"include":"#common_toplevel"},{"include":"#function_type_declaration_with_scoped_type"},{"include":"#haskell_expr"}]},"hsig_decl":{"patterns":[{"name":"meta.declaration.module.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(signature)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"include":"#invalid"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"hsig_source":{"patterns":[{"include":"#hsig_decl"},{"include":"#hsig_toplevel"}]},"hsig_toplevel":{"patterns":[{"include":"#common_toplevel"},{"include":"#function_type_declaration"},{"include":"#lazy_function_type_signature"},{"include":"#comments"}]},"identifier":{"patterns":[{"name":"identifier.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.function.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(abs|acos|acosh|all|and|any|appendFile|asTypeOf|asin|asinh|atan|atan2|atanh|break|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|errorWithoutStackTrace|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldMap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|mappend|max|maxBound|maximum|maybe|mconcat|mempty|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|pure|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequenceA|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|traverse|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"infix_function":{"patterns":[{"name":"keyword.operator.function.infix.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}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)","captures":{"1":{"name":"punctuation.definition.entity.haskell"},"2":{"name":"punctuation.definition.entity.haskell"}}}]},"infix_op":{"patterns":[{"name":"entity.name.function.operator.haskell","match":"(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.operator.prelude.haskell","match":"^\\((\\!\\!|\\$\\!|\\$|\\\u0026\\\u0026|\\*|\\*\\*|\\*\\\u003e|\\+|\\+\\+|\\-|\\.|\\/|\\/\\=|\\\u003c\\$|\\\u003c\\$\\\u003e|\\\u003c|\\\u003c\\*|\\\u003c\\*\\\u003e|\\\u003c\\=|\\=\\\u003c\\\u003c|\\=\\=|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003e\\\u003e\\=|\\^|\\^\\^|\\|\\|)\\)$"}]}}}]},"instance_decl":{"patterns":[{"name":"meta.declaration.instance.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"invalid":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.haskell","match":"\\S+"}]},"keywords":{"patterns":[{"name":"keyword.other.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving|where|data|type|newtype)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"keyword.operator.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(infix[lr]?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"keyword.control.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(do|if|then|else|case|of|let|in|default|mdo|rec|proc)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"lazy_function_type_signature":{"patterns":[{"name":"meta.function.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))\\s*$","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#double_colon_operator"},{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#function_name"},{"include":"#infix_op"}]}}}]},"liquidhaskell_annotation":{"patterns":[{"name":"block.liquidhaskell.haskell","contentName":"block.liquidhaskell.annotation.haskell","begin":"\\{-@(?!#)","end":"@-\\}","patterns":[{"include":"annotation.liquidhaskell.haskell"}]}]},"lit_num":{"patterns":[{"name":"constant.numeric.hexfloat.haskell","match":"0[xX][0-9a-fA-F_]*(?:\\.[0-9a-fA-F_]+(?:[pP][+-]?[0-9_]+)?|[pP][+-]?[0-9_]+)"},{"name":"constant.numeric.hexadecimal.haskell","match":"0[xX][_0-9a-fA-F]+"},{"name":"constant.numeric.octal.haskell","match":"0[oO][_0-7]+"},{"name":"constant.numeric.binary.haskell","match":"0[bB][_01]+"},{"name":"constant.numeric.float.haskell","match":"[0-9][0-9_]*(?:\\.[0-9_]+(?:[eE][+-]?[0-9_]+)?|[eE][+-]?[0-9_]+)"},{"name":"constant.numeric.decimal.haskell","match":"[0-9][_0-9]*"}]},"module_decl":{"patterns":[{"name":"meta.declaration.module.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(module)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"include":"#invalid"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"module_exports":{"patterns":[{"name":"meta.declaration.exports.haskell","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#c_preprocessor"},{"begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(module)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","patterns":[{"include":"#invalid"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"support.other.module.haskell"}}},{"include":"#function_name"},{"include":"#type_name"},{"include":"#comma"},{"include":"#infix_op"},{"name":"meta.other.constructor-list.haskell","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#c_preprocessor"},{"include":"#type_ctor"},{"include":"#attribute_name"},{"include":"#comma"},{"name":"keyword.operator.wildcard.haskell","match":"\\.\\."},{"include":"#infix_op"}]}],"applyEndPatternLast":true}]},"module_name":{"patterns":[{"name":"support.other.module.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"module_name_prefix":{"patterns":[{"name":"support.other.module.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\."}]},"multiline_type_declaration":{"patterns":[{"name":"meta.multiline.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","end":"^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.double-colon.haskell"}}}]},"newline_escape":{"patterns":[{"name":"markup.other.escape.newline.haskell","match":"\\\\$"}]},"operator":{"patterns":[{"name":"keyword.operator.haskell","match":"(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.operator.prelude.haskell","match":"^(\\!\\!|\\$\\!|\\$|\\\u0026\\\u0026|\\*|\\*\\*|\\*\\\u003e|\\+|\\+\\+|\\-|\\.|\\/|\\/\\=|\\\u003c\\$|\\\u003c\\$\\\u003e|\\\u003c|\\\u003c\\*|\\\u003c\\*\\\u003e|\\\u003c\\=|\\=\\\u003c\\\u003c|\\=\\=|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003e\\\u003e\\=|\\^|\\^\\^|\\|\\|)$"}]}}}]},"pragma":{"patterns":[{"name":"meta.preprocessor.haskell","begin":"\\{-#","end":"#-\\}","patterns":[{"name":"keyword.other.preprocessor.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))((?i:NOTINLINE CONSTRUCTORLIKE|NOINLINE CONSTRUCTORLIKE|INLINE CONSTRUCTORLIKE|SPECIALISE NOTINLINE|SPECIALIZE NOTINLINE|SPECIALISE NOINLINE|SPECIALIZE NOINLINE|NOTINLINE CONLIKE|SPECIALISE INLINE|SPECIALIZE INLINE|NOINLINE CONLIKE|VECTORISE SCALAR|VECTORIZE SCALAR|OPTIONS_HADDOCK|INLINE CONLIKE|OPTIONS_DERIVE|OPTIONS_CATCH|OPTIONS_NHC98|OPTIONS_HUGS|OVERLAPPABLE|NOVECTORISE|NOVECTORIZE|OPTIONS_GHC|OPTIONS_JHC|OPTIONS_YHC|OVERLAPPING|DEPRECATED|INCOHERENT|INLINEABLE|SPECIALISE|SPECIALIZE|GENERATED|INLINABLE|NOTINLINE|VECTORISE|VECTORIZE|CONTRACT|LANGUAGE|NOINLINE|NOUNPACK|OVERLAPS|INCLUDE|MINIMAL|OPTIONS|WARNING|CFILES|INLINE|SOURCE|UNPACK|CTYPE|RULES|CORE|LINE|ANN|SCC))(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}]},"quasi_quotes":{"patterns":[{"contentName":"quoted.quasiquotes.qq-$3.haskell","begin":"(\\[)((?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))(\\|)","end":"(\\|)(\\])","beginCaptures":{"1":{"name":"punctuation.definition.quasiquotes.begin.haskell"},"2":{"name":"entity.name.tag.haskell","patterns":[{"include":"#module_name_prefix"}]}},"endCaptures":{"2":{"name":"punctuation.definition.quasiquotes.end.haskell"}}}]},"quoted_character":{"patterns":[{"name":"string.quoted.single.haskell","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\\\\\\\"'\\\u0026])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))(')","captures":{"1":{"name":"punctuation.definition.string.begin.haskell"},"2":{"patterns":[{"include":"#characters"}]},"3":{"name":"punctuation.definition.string.end.haskell"}}}]},"record_field_declaration":{"patterns":[{"name":"meta.record-field.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"(?=(?:(?:((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))|})","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"patterns":[{"include":"#attribute_name"},{"include":"#infix_op"}]},"2":{"name":"keyword.other.double-colon.haskell"}}}]},"regular_import":{"patterns":[{"name":"meta.import.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(import)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#module_name"},{"include":"#module_exports"},{"match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(qualified|as|hiding)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}}}]},"scoped_type":{"patterns":[{"match":"\\(((?\u003cparen\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen\u003e\\))*)(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))(?\u003cparen2\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen2\u003e\\))*))\\)","captures":{"1":{"patterns":[{"include":"#haskell_expr"}]}}},{"match":"((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))|$).|{-.*?-})*)","captures":{"1":{"name":"keyword.other.double-colon.haskell"},"2":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]}}}]},"scoped_type_override":{"patterns":[{"match":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","captures":{"2":{"patterns":[{"include":"#identifier"}]},"3":{"name":"keyword.other.double-colon.haskell"},"4":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]},"5":{"patterns":[{"include":"#assignment_op"},{"include":"#operator"}]}}}]},"shebang":{"patterns":[{"name":"comment.line.shebang.haskell","match":"^\\#\\!.*\\brunhaskell\\b.*$"}]},"string":{"patterns":[{"name":"string.quoted.double.haskell","begin":"\"","end":"\"","patterns":[{"include":"#characters"},{"begin":"\\\\\\s","end":"\\\\","patterns":[{"include":"#invalid"}],"beginCaptures":{"0":{"name":"markup.other.escape.newline.begin.haskell"}},"endCaptures":{"0":{"name":"markup.other.escape.newline.end.haskell"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.haskell"}}}]},"type_alias":{"patterns":[{"name":"meta.declaration.type.type.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(type)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#family_and_instance"},{"include":"#where"},{"include":"#assignment_op"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.type.haskell"}}}]},"type_ctor":{"patterns":[{"name":"entity.name.tag.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.tag.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(EQ|GT|LT|Left|Right|True|False)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"type_ctor_alt":{"patterns":[{"contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*","end":"^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))","patterns":[{"include":"#comments"},{"include":"#type_signature"}],"beginCaptures":{"1":{"patterns":[{"include":"#type_ctor"}]}}}]},"type_ctor_forall":{"patterns":[{"contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))","patterns":[{"include":"#comments"},{"match":"\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))","captures":{"0":{"patterns":[{"include":"#type_signature"}]}}},{"match":"\\G.*?\\.","captures":{"0":{"patterns":[{"include":"#type_signature"}]}}},{"include":"#big_arrow"},{"include":"#type_variable"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#type_signature"}]},{"include":"#type_ctor_alt"}],"beginCaptures":{"0":{"patterns":[{"include":"#type_signature"}]}}}]},"type_name":{"patterns":[{"name":"entity.name.type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"entity.other.inherited-class.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(Applicative|Bounded|Enum|Eq|Floating|Foldable|Fractional|Functor|Integral|Monad|Monoid|Num|Ord|Read|Real|RealFloat|RealFrac|Show|Traversable)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"support.class.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(Either|FilePath|IO|IOError|Integer|Ordering|Rational|ReadS|ShowS|String|Bool|Char|Double|Float|Int|Just|Maybe|Nothing|Word)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"type_signature":{"patterns":[{"include":"#pragma"},{"include":"#comments"},{"name":"keyword.other.forall.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"constant.language.unit.promoted.haskell","match":"'(\\(\\))","captures":{"1":{"patterns":[{"include":"#unit"}]}}},{"include":"#unit"},{"name":"constant.language.empty-list.promoted.haskell","match":"'(\\[\\])","captures":{"1":{"patterns":[{"include":"#empty_list"}]}}},{"include":"#empty_list"},{"include":"#string"},{"include":"#arrow"},{"include":"#big_arrow"},{"name":"keyword.operator.promoted.haskell","match":"'((?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+)","captures":{"1":{"patterns":[{"include":"#operator"}]}}},{"include":"#operator"},{"include":"#type_variable"},{"name":"entity.name.type.promoted.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}'])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))'([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"patterns":[{"include":"#type_name"}]}}},{"include":"#quoted_character"},{"include":"#type_name"},{"include":"#lit_num"}]},"type_variable":{"patterns":[{"name":"variable.other.generic-type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"unit":{"patterns":[{"name":"constant.language.unit.haskell","match":"\\(\\)"}]},"via":{"patterns":[{"include":"#via_list"},{"include":"#via_list_newline"},{"include":"#via_indent"},{"include":"#via_simple"},{"include":"#via_keyword"}]},"via_indent":{"patterns":[{"name":"meta.via.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(via)\\s*","end":"^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}}}]},"via_keyword":{"patterns":[{"name":"meta.via.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}}]},"via_list":{"patterns":[{"name":"meta.via.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*\\(","end":"\\)","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"via_list_newline":{"patterns":[{"name":"meta.via.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*","end":"$","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"via_simple":{"patterns":[{"name":"meta.via.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#type_signature"}]}}}]},"where":{"patterns":[{"name":"keyword.other.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}
1
+ {"name":"Literate Haskell","scopeName":"text.tex.latex.haskell","patterns":[{"name":"meta.embedded.block.haskell.latex.haskell","contentName":"source.haskell.embedded.latex.haskell","begin":"^((\\\\)begin)({)(code|spec)(})(\\s*$)?","end":"^((\\\\)end)({)\\4(})","patterns":[{"include":"source.haskell"}],"beginCaptures":{"1":{"name":"support.function.be.latex.haskell"},"2":{"name":"punctuation.definition.function.latex.haskell"},"3":{"name":"punctuation.definition.arguments.begin.latex.haskell"},"5":{"name":"punctuation.definition.arguments.end.latex.haskell"}},"endCaptures":{"1":{"name":"support.function.be.latex.haskell"},"2":{"name":"punctuation.definition.function.latex.haskell"},"3":{"name":"punctuation.definition.arguments.begin.latex.haskell"},"4":{"name":"punctuation.definition.arguments.end.latex.haskell"}}},{"name":"meta.embedded.haskell","begin":"^(?=[\u003e\u003c] )","end":"^(?![\u003e\u003c] )","patterns":[{"include":"#haskell_source"},{"name":"punctuation.definition.bird-track.haskell","match":"^\u003e "}]},{"name":"meta.embedded.text.haskell.latex.haskell","match":"(?\u003c!\\\\verb)\\|((:?[^|]|\\|\\|)+)\\|","captures":{"1":{"patterns":[{"include":"source.haskell"}]}}},{"include":"text.tex.latex"}],"repository":{"arrow":{"patterns":[{"name":"keyword.other.arrow.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"assignment_op":{"patterns":[{"match":"=","captures":{"0":{"name":"keyword.operator.assignment.haskell"}}}]},"attribute_name":{"patterns":[{"name":"entity.other.attribute-name.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"big_arrow":{"patterns":[{"name":"keyword.other.big-arrow.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"block_comment":{"patterns":[{"name":"comment.block.haddock.haskell","begin":"\\{-\\s*[|^]","end":"-\\}","patterns":[{"include":"#block_comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.haddock.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.haddock.haskell"}},"applyEndPatternLast":true},{"name":"comment.block.haskell","begin":"\\{-","end":"-\\}","patterns":[{"include":"#block_comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.block.start.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.haskell"}},"applyEndPatternLast":true}]},"c_preprocessor":{"patterns":[{"name":"meta.preprocessor.c.haskell","begin":"^(?:\u003e|\u003c) (?=#)","end":"(?\u003c!\\\\)(?=$)","patterns":[{"name":"keyword.control.c.haskell","match":"^#\\S+"}]}]},"characters":{"patterns":[{"name":"constant.character.escape.haskell","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\\\\\\\"'\\\u0026])"},{"name":"constant.character.escape.octal.haskell","match":"(?:\\\\o[0-7]+)"},{"name":"constant.character.escape.hexadecimal.haskell","match":"(?:\\\\x[0-9A-Fa-f]+)"},{"name":"constant.character.escape.control.haskell","match":"(?:\\\\\\^[A-Z@\\[\\]\\\\^_])"}]},"class_decl":{"patterns":[{"name":"meta.declaration.class.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(class)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.class.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"comma":{"patterns":[{"name":"punctuation.separator.comma.haskell","match":","}]},"comments":{"patterns":[{"begin":"(^(?:\u003e|\u003c) [ \\t]+)?(?=--+\\s+[|^])","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.haddock.haskell","begin":"(--+)\\s+([|^])","end":"$","beginCaptures":{"1":{"name":"punctuation.definition.comment.haskell"},"2":{"name":"punctuation.definition.comment.haddock.haskell"}}}]},{"begin":"(^(?:\u003e|\u003c) [ \\t]+)?(?=--+(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.haskell","begin":"--","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.haskell"}}}]},{"include":"#block_comment"}]},"common_toplevel":{"patterns":[{"include":"#class_decl"},{"include":"#instance_decl"},{"include":"#deriving_instance_decl"},{"include":"#foreign_import"},{"include":"#regular_import"},{"include":"#data_decl"},{"include":"#type_alias"},{"include":"#c_preprocessor"}]},"ctor_type_declaration":{"patterns":[{"name":"meta.ctor.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:[\\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{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:[\\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{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#type_ctor"},{"include":"#infix_op"}]},"3":{"name":"keyword.other.double-colon.haskell"}}}]},"data_decl":{"patterns":[{"name":"meta.declaration.type.data.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(data|newtype)\\s+((?:(?!(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))|(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|{-).|{-.*?-})*)","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#string"},{"include":"#where"},{"include":"#deriving"},{"include":"#via"},{"include":"#assignment_op"},{"include":"#type_ctor_forall"},{"include":"#type_ctor_alt"},{"match":"\\|","captures":{"0":{"name":"punctuation.separator.pipe.haskell"}}},{"name":"meta.declaration.type.data.record.block.haskell","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#comma"},{"include":"#record_field_declaration"}],"beginCaptures":{"0":{"name":"keyword.operator.record.begin.haskell"}},"endCaptures":{"0":{"name":"keyword.operator.record.end.haskell"}}},{"include":"#ctor_type_declaration"}],"beginCaptures":{"2":{"name":"keyword.other.data.haskell"},"3":{"name":"meta.type-signature.haskell","patterns":[{"include":"#family_and_instance"},{"include":"#type_signature"}]}}}]},"deriving":{"patterns":[{"include":"#deriving_list"},{"include":"#deriving_simple"},{"include":"#deriving_keyword"}]},"deriving_instance_decl":{"patterns":[{"name":"meta.declaration.instance.deriving.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s+|(deriving)\\s+(via)\\s+(.*)\\s+)?(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"},"3":{"patterns":[{"include":"#deriving_strategies"}]},"4":{"name":"keyword.other.haskell"},"5":{"name":"keyword.other.haskell"},"6":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]},"7":{"name":"keyword.other.haskell"}}}]},"deriving_keyword":{"patterns":[{"name":"meta.deriving.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]}}}]},"deriving_list":{"patterns":[{"name":"meta.deriving.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*\\(","end":"\\)","patterns":[{"match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"entity.other.inherited-class.haskell"}}}],"beginCaptures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]}}}]},"deriving_simple":{"patterns":[{"name":"meta.deriving.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]},"3":{"name":"entity.other.inherited-class.haskell"}}}]},"deriving_strategies":{"patterns":[{"name":"meta.deriving.strategy.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(stock|newtype|anyclass)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}}]},"double_colon_operator":{"patterns":[{"name":"keyword.other.double-colon.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"empty_list":{"patterns":[{"name":"constant.language.empty-list.haskell","match":"\\[\\]"}]},"family_and_instance":{"patterns":[{"name":"keyword.other.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(family|instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"foreign_import":{"patterns":[{"name":"meta.foreign.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(foreign)\\s+(import|export)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"match":"(?:un)?safe","captures":{"0":{"name":"keyword.other.haskell"}}},{"include":"#function_type_declaration"},{"include":"#haskell_expr"},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"},"3":{"name":"keyword.other.haskell"}}}]},"function_name":{"patterns":[{"name":"entity.name.function.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"}]}}}]},"function_type_declaration":{"patterns":[{"name":"meta.function.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#function_name"},{"include":"#infix_op"}]},"3":{"name":"keyword.other.double-colon.haskell"}}}]},"function_type_declaration_with_scoped_type":{"patterns":[{"include":"#scoped_type_override"},{"include":"#function_type_declaration"},{"include":"#multiline_type_declaration"}]},"haskell_expr":{"patterns":[{"include":"#infix_function"},{"include":"#unit"},{"include":"#empty_list"},{"include":"#quasi_quotes"},{"include":"#keywords"},{"include":"#pragma"},{"include":"#string"},{"include":"#newline_escape"},{"include":"#quoted_character"},{"include":"#comments"},{"include":"#infix_op"},{"include":"#comma"},{"include":"#lit_num"},{"include":"#scoped_type"},{"include":"#type_application"},{"include":"#operator"},{"include":"#identifier"},{"include":"#type_ctor"}]},"haskell_source":{"patterns":[{"include":"#shebang"},{"include":"#module_decl"},{"include":"#haskell_toplevel"}]},"haskell_toplevel":{"patterns":[{"include":"#liquidhaskell_annotation"},{"include":"#common_toplevel"},{"include":"#function_type_declaration_with_scoped_type"},{"include":"#haskell_expr"}]},"hsig_decl":{"patterns":[{"name":"meta.declaration.module.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(signature)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"include":"#invalid"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"hsig_source":{"patterns":[{"include":"#hsig_decl"},{"include":"#hsig_toplevel"}]},"hsig_toplevel":{"patterns":[{"include":"#common_toplevel"},{"include":"#function_type_declaration"},{"include":"#lazy_function_type_signature"},{"include":"#comments"}]},"identifier":{"patterns":[{"name":"identifier.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.function.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(abs|acos|acosh|all|and|any|appendFile|asTypeOf|asin|asinh|atan|atan2|atanh|break|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|errorWithoutStackTrace|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldMap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|mappend|max|maxBound|maximum|maybe|mconcat|mempty|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|pure|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequenceA|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|traverse|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"infix_function":{"patterns":[{"name":"keyword.operator.function.infix.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}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)","captures":{"1":{"name":"punctuation.definition.entity.haskell"},"2":{"name":"punctuation.definition.entity.haskell"}}}]},"infix_op":{"patterns":[{"name":"entity.name.function.operator.haskell","match":"(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.operator.prelude.haskell","match":"^\\((\\!\\!|\\$\\!|\\$|\\\u0026\\\u0026|\\*|\\*\\*|\\*\\\u003e|\\+|\\+\\+|\\-|\\.|\\/|\\/\\=|\\\u003c\\$|\\\u003c\\$\\\u003e|\\\u003c|\\\u003c\\*|\\\u003c\\*\\\u003e|\\\u003c\\=|\\=\\\u003c\\\u003c|\\=\\=|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003e\\\u003e\\=|\\^|\\^\\^|\\|\\|)\\)$"}]}}}]},"instance_decl":{"patterns":[{"name":"meta.declaration.instance.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"invalid":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.haskell","match":"\\S+"}]},"keywords":{"patterns":[{"name":"keyword.other.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving|where|data|type|newtype)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"keyword.operator.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(infix[lr]?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"keyword.control.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(do|if|then|else|case|of|let|in|default|mdo|rec|proc)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"lazy_function_type_signature":{"patterns":[{"name":"meta.function.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))\\s*$","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#double_colon_operator"},{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#function_name"},{"include":"#infix_op"}]}}}]},"liquidhaskell_annotation":{"patterns":[{"name":"block.liquidhaskell.haskell","contentName":"block.liquidhaskell.annotation.haskell","begin":"\\{-@(?!#)","end":"@-\\}","patterns":[{"include":"annotation.liquidhaskell.haskell"}]}]},"lit_num":{"patterns":[{"name":"constant.numeric.hexfloat.haskell","match":"0[xX][0-9a-fA-F_]*(?:\\.[0-9a-fA-F_]+(?:[pP][+-]?[0-9_]+)?|[pP][+-]?[0-9_]+)"},{"name":"constant.numeric.hexadecimal.haskell","match":"0[xX][_0-9a-fA-F]+"},{"name":"constant.numeric.octal.haskell","match":"0[oO][_0-7]+"},{"name":"constant.numeric.binary.haskell","match":"0[bB][_01]+"},{"name":"constant.numeric.float.haskell","match":"[0-9][0-9_]*(?:\\.[0-9_]+(?:[eE][+-]?[0-9_]+)?|[eE][+-]?[0-9_]+)"},{"name":"constant.numeric.decimal.haskell","match":"[0-9][_0-9]*"}]},"module_decl":{"patterns":[{"name":"meta.declaration.module.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(module)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"include":"#invalid"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"module_exports":{"patterns":[{"name":"meta.declaration.exports.haskell","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#c_preprocessor"},{"begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(module)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","patterns":[{"include":"#invalid"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"support.other.module.haskell"}}},{"include":"#function_name"},{"include":"#type_name"},{"include":"#comma"},{"include":"#infix_op"},{"name":"meta.other.constructor-list.haskell","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#c_preprocessor"},{"include":"#type_ctor"},{"include":"#attribute_name"},{"include":"#comma"},{"name":"keyword.operator.wildcard.haskell","match":"\\.\\."},{"include":"#infix_op"}]}],"applyEndPatternLast":true}]},"module_name":{"patterns":[{"name":"support.other.module.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"module_name_prefix":{"patterns":[{"name":"support.other.module.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\."}]},"multiline_type_declaration":{"patterns":[{"name":"meta.multiline.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","end":"^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.double-colon.haskell"}}}]},"newline_escape":{"patterns":[{"name":"markup.other.escape.newline.haskell","match":"\\\\$"}]},"operator":{"patterns":[{"name":"keyword.operator.haskell","match":"(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.operator.prelude.haskell","match":"^(\\!\\!|\\$\\!|\\$|\\\u0026\\\u0026|\\*|\\*\\*|\\*\\\u003e|\\+|\\+\\+|\\-|\\.|\\/|\\/\\=|\\\u003c\\$|\\\u003c\\$\\\u003e|\\\u003c|\\\u003c\\*|\\\u003c\\*\\\u003e|\\\u003c\\=|\\=\\\u003c\\\u003c|\\=\\=|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003e\\\u003e\\=|\\^|\\^\\^|\\|\\|)$"}]}}}]},"pragma":{"patterns":[{"name":"meta.preprocessor.haskell","begin":"\\{-#","end":"#-\\}","patterns":[{"name":"keyword.other.preprocessor.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))((?i:NOTINLINE CONSTRUCTORLIKE|NOINLINE CONSTRUCTORLIKE|INLINE CONSTRUCTORLIKE|SPECIALISE NOTINLINE|SPECIALIZE NOTINLINE|SPECIALISE NOINLINE|SPECIALIZE NOINLINE|NOTINLINE CONLIKE|SPECIALISE INLINE|SPECIALIZE INLINE|NOINLINE CONLIKE|VECTORISE SCALAR|VECTORIZE SCALAR|OPTIONS_HADDOCK|INLINE CONLIKE|OPTIONS_DERIVE|OPTIONS_CATCH|OPTIONS_NHC98|OPTIONS_HUGS|OVERLAPPABLE|NOVECTORISE|NOVECTORIZE|OPTIONS_GHC|OPTIONS_JHC|OPTIONS_YHC|OVERLAPPING|DEPRECATED|INCOHERENT|INLINEABLE|SPECIALISE|SPECIALIZE|GENERATED|INLINABLE|NOTINLINE|VECTORISE|VECTORIZE|CONTRACT|LANGUAGE|NOINLINE|NOUNPACK|OVERLAPS|INCLUDE|MINIMAL|OPTIONS|WARNING|CFILES|INLINE|SOURCE|UNPACK|CTYPE|RULES|CORE|LINE|ANN|SCC))(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}]},"quasi_quotes":{"patterns":[{"contentName":"quoted.quasiquotes.qq-$3.haskell","begin":"(\\[)((?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))(\\|)","end":"(\\|)(\\])","beginCaptures":{"1":{"name":"punctuation.definition.quasiquotes.begin.haskell"},"2":{"name":"entity.name.tag.haskell","patterns":[{"include":"#module_name_prefix"}]}},"endCaptures":{"2":{"name":"punctuation.definition.quasiquotes.end.haskell"}}}]},"quoted_character":{"patterns":[{"name":"string.quoted.single.haskell","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\\\\\\\"'\\\u0026])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))(')","captures":{"1":{"name":"punctuation.definition.string.begin.haskell"},"2":{"patterns":[{"include":"#characters"}]},"3":{"name":"punctuation.definition.string.end.haskell"}}}]},"record_field_declaration":{"patterns":[{"name":"meta.record-field.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"(?=(?:(?:((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))|})","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"patterns":[{"include":"#attribute_name"},{"include":"#infix_op"}]},"2":{"name":"keyword.other.double-colon.haskell"}}}]},"regular_import":{"patterns":[{"name":"meta.import.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(import)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#module_name"},{"include":"#module_exports"},{"match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(qualified|as|hiding)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}}}]},"scoped_type":{"patterns":[{"match":"\\(((?\u003cparen\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen\u003e\\))*)(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))(?\u003cparen2\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen2\u003e\\))*))\\)","captures":{"1":{"patterns":[{"include":"#haskell_expr"}]}}},{"match":"((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))|$).|{-.*?-})*)","captures":{"1":{"name":"keyword.other.double-colon.haskell"},"2":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]}}}]},"scoped_type_override":{"patterns":[{"match":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","captures":{"2":{"patterns":[{"include":"#identifier"}]},"3":{"name":"keyword.other.double-colon.haskell"},"4":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]},"5":{"patterns":[{"include":"#assignment_op"},{"include":"#operator"}]}}}]},"shebang":{"patterns":[{"name":"comment.line.shebang.haskell","match":"^\\#\\!.*\\brunhaskell\\b.*$"}]},"string":{"patterns":[{"name":"string.quoted.double.haskell","begin":"\"","end":"\"","patterns":[{"include":"#characters"},{"begin":"\\\\\\s","end":"\\\\","patterns":[{"include":"#invalid"}],"beginCaptures":{"0":{"name":"markup.other.escape.newline.begin.haskell"}},"endCaptures":{"0":{"name":"markup.other.escape.newline.end.haskell"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.haskell"}}}]},"type_alias":{"patterns":[{"name":"meta.declaration.type.type.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(type)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#family_and_instance"},{"include":"#where"},{"include":"#assignment_op"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.type.haskell"}}}]},"type_application":{"patterns":[{"name":"other.type-application.haskell","match":"(\u003c?\\s+)(@)(\\'?\\((?\u003cparen\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen\u003e\\))*)\\)|\\'?\\[(?\u003cbrack\u003e(?:(?!\\[|\\]).|\\[\\g\u003cbrack\u003e\\])*)\\]|\"(?\u003cquot\u003e(?:(?!\"|\").|\"\\g\u003cquot\u003e\")*)\"|'(?:[\\ -\\[\\]-~]|\\\\(?: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\\\\\\\"'\\\u0026])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))'|\\S+)","captures":{"2":{"patterns":[{"include":"#operator"}]},"3":{"patterns":[{"include":"#type_signature"}]}}}]},"type_ctor":{"patterns":[{"name":"entity.name.tag.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.tag.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(EQ|GT|LT|Left|Right|True|False)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"type_ctor_alt":{"patterns":[{"contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*","end":"^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))","patterns":[{"include":"#comments"},{"include":"#type_signature"}],"beginCaptures":{"1":{"patterns":[{"include":"#type_ctor"}]}}}]},"type_ctor_forall":{"patterns":[{"contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))","patterns":[{"include":"#comments"},{"match":"\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))","captures":{"0":{"patterns":[{"include":"#type_signature"}]}}},{"match":"\\G.*?\\.","captures":{"0":{"patterns":[{"include":"#type_signature"}]}}},{"include":"#big_arrow"},{"include":"#type_variable"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#type_signature"}]},{"include":"#type_ctor_alt"}],"beginCaptures":{"0":{"patterns":[{"include":"#type_signature"}]}}}]},"type_name":{"patterns":[{"name":"entity.name.type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"entity.other.inherited-class.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(Applicative|Bounded|Enum|Eq|Floating|Foldable|Fractional|Functor|Integral|Monad|Monoid|Num|Ord|Read|Real|RealFloat|RealFrac|Show|Traversable)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"support.class.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(Either|FilePath|IO|IOError|Integer|Ordering|Rational|ReadS|ShowS|String|Bool|Char|Double|Float|Int|Just|Maybe|Nothing|Word)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"type_signature":{"patterns":[{"include":"#pragma"},{"include":"#comments"},{"name":"keyword.other.forall.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"include":"#quoted_character"},{"name":"other.promoted.haskell","match":"'(\\(\\))","captures":{"1":{"patterns":[{"include":"#unit"}]}}},{"include":"#unit"},{"name":"other.promoted.haskell","match":"'(\\[\\])","captures":{"1":{"patterns":[{"include":"#empty_list"}]}}},{"include":"#empty_list"},{"include":"#string"},{"include":"#arrow"},{"include":"#big_arrow"},{"name":"other.promoted.haskell","match":"'((?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+)","captures":{"1":{"patterns":[{"include":"#operator"}]}}},{"include":"#operator"},{"include":"#type_variable"},{"name":"other.promoted.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}'])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))'([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"patterns":[{"include":"#type_name"}]}}},{"include":"#type_name"},{"include":"#lit_num"}]},"type_variable":{"patterns":[{"name":"variable.other.generic-type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"unit":{"patterns":[{"name":"constant.language.unit.haskell","match":"\\(\\)"}]},"via":{"patterns":[{"include":"#via_list"},{"include":"#via_list_newline"},{"include":"#via_indent"},{"include":"#via_simple"},{"include":"#via_keyword"}]},"via_indent":{"patterns":[{"name":"meta.via.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(via)\\s*","end":"^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}}}]},"via_keyword":{"patterns":[{"name":"meta.via.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}}]},"via_list":{"patterns":[{"name":"meta.via.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*\\(","end":"\\)","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"via_list_newline":{"patterns":[{"name":"meta.via.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*","end":"$","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"via_simple":{"patterns":[{"name":"meta.via.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#type_signature"}]}}}]},"where":{"patterns":[{"name":"keyword.other.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}
@@ -1 +1 @@
1
- {"name":"SVG","scopeName":"text.xml.svg","patterns":[{"include":"#main"}],"repository":{"attr":{"name":"meta.attribute.${0:/downcase}.xml.svg","begin":"[A-Za-z_:][-\\w.:]*","end":"(?=\\s*(?:/?\u003e|[^\\s=]))|(?\u003c=[\"'])","patterns":[{"include":"#attrValueCSS"},{"include":"#attrValuePlain"}],"beginCaptures":{"0":{"patterns":[{"include":"#attrName"}]}}},"attrName":{"patterns":[{"match":"(?:^|\\G)([-\\w.]+)(:)(?=[-\\w.:])","captures":{"1":{"name":"entity.other.attribute-name.namespace.xml.svg"},"2":{"name":"punctuation.separator.namespace.xml.svg"}}},{"name":"entity.other.attribute-name.localname.xml.svg","match":"[A-Za-z_:][-\\w.:]*"}]},"attrValueCSS":{"begin":"(?i)(?\u003c=style)\\G\\s*(=)","end":"(?=\\s*(?:[%?/]?\u003e))|(?\u003c=[\"'])([^\\s\u003e]*)|(?:\\G|^)\\s*([^\\s\"'\u003e]+)","patterns":[{"match":"(?:\\G|^)\\s+(?!/?\u003e)"},{"name":"string.quoted.double.xml.svg","begin":"\"","end":"\"","patterns":[{"name":"source.css.style.xml.svg","match":"[^\"]+","captures":{"0":{"patterns":[{"include":"#entity"},{"include":"source.css#rule-list-innards"}]}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},{"name":"string.quoted.single.xml.svg","begin":"'","end":"'","patterns":[{"name":"source.css.style.xml.svg","match":"[^']+","captures":{"0":{"patterns":[{"include":"#entity"},{"include":"source.css#rule-list-innards"}]}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.xml.svg"}},"endCaptures":{"1":{"name":"invalid.illegal.syntax.xml.svg"},"2":{"name":"string.unquoted.xml.svg","patterns":[{"include":"source.css#rule-list-innards"}]}}},"attrValuePlain":{"begin":"\\s*(=)","end":"(?=\\s*(?:[%?/]?\u003e))|(?\u003c=[\"'])([^\\s\u003e]*)|(?:\\G|^)\\s*([^\\s\"'\u003e]+)","patterns":[{"match":"(?:\\G|^)\\s+(?!/?\u003e)"},{"name":"string.quoted.double.xml.svg","begin":"\"","end":"\"","patterns":[{"include":"#entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},{"name":"string.quoted.single.xml.svg","begin":"'","end":"'","patterns":[{"include":"#entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.xml.svg"}},"endCaptures":{"1":{"name":"invalid.illegal.syntax.xml.svg"},"2":{"name":"string.unquoted.xml.svg"}}},"cdata":{"name":"string.unquoted.cdata.xml.svg","begin":"\u003c!\\[CDATA\\[","end":"\\]\\]\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},"comment":{"name":"comment.block.xml.svg","begin":"\u003c!--","end":"--\u003e","patterns":[{"name":"invalid.illegal.bad-comment.xml.svg","match":"--(?!\u003e)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.xml.svg"}}},"entity":{"patterns":[{"include":"text.xml#entity"},{"include":"text.xml#bare-ampersand"}]},"main":{"patterns":[{"include":"#comment"},{"include":"#cdata"},{"include":"text.xml#EntityDecl"},{"include":"text.xml#parameterEntity"},{"include":"#entity"},{"include":"#preprocessor"},{"include":"#scriptTag"},{"include":"#styleTag"},{"include":"#tag"},{"include":"#unmatchedTag"}]},"preprocessor":{"name":"meta.tag.preprocessor.xml.svg","begin":"(\u003c\\?)\\s*","end":"\\?\u003e","patterns":[{"begin":"\\G","end":"([-\\w]+)|(?=\\s*\\?\u003e)","endCaptures":{"1":{"name":"entity.name.tag.xml.svg"}}},{"include":"#attr"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.xml.svg"}}},"scriptTag":{"patterns":[{"include":"#scriptTagPlain"},{"include":"#scriptTagJS"}]},"scriptTagJS":{"name":"meta.tag.script.xml.svg","begin":"(?i)(\u003c)(script)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"contentName":"source.js.embedded.xml.svg","begin":"(?\u003c=\u003e)","end":"(?i)(?=\\s*\u003c/script\\s*\u003e)","patterns":[{"include":"source.js"},{"include":"#entity"}]}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"scriptTagPlain":{"name":"meta.tag.script.xml.svg","begin":"(?x)\n(\u003c)((?i)script)\n(\n\t\\s+[^\u003e]*?\n\t(?\u003c=\\s)(?i:type)\\s*=\\s*\n\t([\"'])?\n\t(?! module\n\t| application/(?:x-)?(?:ecma|java)script\n\t| text/\n\t\t(?: javascript(?:1.[0-5])?\n\t\t| (?:j|ecma|live)script\n\t\t| x-(?:ecma|java)script\n\t\t)\n\t)\n\t(?: (?\u003c=\")(?:[^\"\u003e]+)\"\n\t| (?\u003c=')(?:[^'\u003e]+)'\n\t| [^\\s\"'\u003e]+\n\t)\n\t(?=\\s|/?\u003e)\n)","end":"(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"include":"#main"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"patterns":[{"include":"#attr"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"styleTag":{"name":"meta.tag.style.xml.svg","begin":"(?i)(\u003c)(style)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(style)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"contentName":"source.css.embedded.xml.svg","begin":"(?\u003c=\u003e)","end":"(?i)(?=\\s*\u003c/style\\s*\u003e)","patterns":[{"include":"source.css"},{"include":"#entity"}]}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"tag":{"name":"meta.tag.${2:/downcase}.xml.svg","begin":"(?i)(\u003c)([A-Za-z_:][-\\w.:]*)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(\\2)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"include":"#main"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"tagAttr":{"begin":"\\G(?!\\s*/\u003e)","end":"\u003e|(?=\\s*/\u003e)","patterns":[{"include":"#attr"}],"endCaptures":{"0":{"name":"punctuation.definition.tag.opening.end.xml.svg"}}},"tagName":{"patterns":[{"match":"(?:^|\\G)([A-Za-z_][-\\w.]*)(:)(?=[-\\w.:])","captures":{"1":{"name":"entity.name.tag.namespace.xml.svg"},"2":{"name":"punctuation.separator.namespace.xml.svg"}}},{"name":"entity.name.tag.localname.xml.svg","match":"[A-Za-z_:][-\\w.:]*"}]},"unmatchedTag":{"name":"invalid.illegal.unmatched-tag.xml.svg","match":"(\u003c/)([A-Za-z_:][-\\w.:]*)\\s*(\u003e)"}}}
1
+ {"name":"SVG","scopeName":"text.xml.svg","patterns":[{"begin":"\\A(?=[ \\t]*$)","end":"(?=\\S)"},{"name":"meta.drawing-commands.xml.svg","begin":"(?i)(?=[MLHVCSQTAZ][-\\d\\s.,MLHVCSQTAZ]*(?:$|['\"]))","end":"(?i)(?=[^-\\d\\s.,MLHVCSQTAZ])","patterns":[{"include":"#commands"}]},{"begin":"(?=\\S)","end":"(?=A)B","patterns":[{"include":"#main"}]}],"repository":{"attr":{"name":"meta.attribute.${0:/downcase}.xml.svg","begin":"[A-Za-z_:][-\\w.:]*","end":"(?=\\s*(?:/?\u003e|[^\\s=]))|(?\u003c=[\"'])","patterns":[{"include":"#attrValueCSS"},{"include":"#attrValuePlain"}],"beginCaptures":{"0":{"patterns":[{"include":"#attrName"}]}}},"attrName":{"patterns":[{"match":"(?:^|\\G)([-\\w.]+)(:)(?=[-\\w.:])","captures":{"1":{"name":"entity.other.attribute-name.namespace.xml.svg"},"2":{"name":"punctuation.separator.namespace.xml.svg"}}},{"name":"entity.other.attribute-name.localname.xml.svg","match":"[A-Za-z_:][-\\w.:]*"}]},"attrValueCSS":{"begin":"(?i)(?\u003c=style)\\G\\s*(=)","end":"(?=\\s*(?:[%?/]?\u003e))|(?\u003c=[\"'])([^\\s\u003e]*)|(?:\\G|^)\\s*([^\\s\"'\u003e]+)","patterns":[{"match":"(?:\\G|^)\\s+(?!/?\u003e)"},{"name":"string.quoted.double.xml.svg","begin":"\"","end":"\"","patterns":[{"name":"source.css.style.xml.svg","match":"[^\"]+","captures":{"0":{"patterns":[{"include":"#entity"},{"include":"source.css#rule-list-innards"}]}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},{"name":"string.quoted.single.xml.svg","begin":"'","end":"'","patterns":[{"name":"source.css.style.xml.svg","match":"[^']+","captures":{"0":{"patterns":[{"include":"#entity"},{"include":"source.css#rule-list-innards"}]}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.xml.svg"}},"endCaptures":{"1":{"name":"invalid.illegal.syntax.xml.svg"},"2":{"name":"string.unquoted.xml.svg","patterns":[{"include":"source.css#rule-list-innards"}]}}},"attrValuePlain":{"begin":"\\s*(=)","end":"(?=\\s*(?:[%?/]?\u003e))|(?\u003c=[\"'])([^\\s\u003e]*)|(?:\\G|^)\\s*([^\\s\"'\u003e]+)","patterns":[{"match":"(?:\\G|^)\\s+(?!/?\u003e)"},{"name":"string.quoted.double.xml.svg","begin":"\"","end":"\"","patterns":[{"include":"#entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},{"name":"string.quoted.single.xml.svg","begin":"'","end":"'","patterns":[{"include":"#entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.key-value.xml.svg"}},"endCaptures":{"1":{"name":"invalid.illegal.syntax.xml.svg"},"2":{"name":"string.unquoted.xml.svg"}}},"cdata":{"name":"string.unquoted.cdata.xml.svg","begin":"\u003c!\\[CDATA\\[","end":"\\]\\]\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml.svg"}}},"commands":{"patterns":[{"name":"keyword.operator.drawing-command.xml.svg","match":"(?i)[MLHVCSQTAZ]"},{"name":"constant.numeric.number.xml.svg","match":"-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)"},{"name":"punctuation.separator.coordinates.comma.xml.svg","match":","}]},"comment":{"name":"comment.block.xml.svg","begin":"\u003c!--","end":"--\u003e","patterns":[{"name":"invalid.illegal.bad-comment.xml.svg","match":"--(?!\u003e)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.xml.svg"}}},"doctype":{"name":"meta.tag.sgml.doctype.xml.svg","begin":"(\u003c!)(DOCTYPE)\\s+([:a-zA-Z_][-:\\w.]*)","end":"\\s*(\u003e)","patterns":[{"include":"text.xml#internalSubset"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.svg"},"2":{"name":"keyword.other.doctype.xml.svg"},"3":{"name":"variable.language.documentroot.xml.svg"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.end.xml.svg"}}},"entity":{"patterns":[{"include":"text.xml#entity"},{"include":"text.xml#bare-ampersand"}]},"main":{"patterns":[{"include":"#comment"},{"include":"#cdata"},{"include":"#doctype"},{"include":"text.xml#EntityDecl"},{"include":"text.xml#parameterEntity"},{"include":"#entity"},{"include":"#preprocessor"},{"include":"#scriptTag"},{"include":"#styleTag"},{"include":"#tag"},{"include":"#unmatchedTag"}]},"preprocessor":{"name":"meta.tag.preprocessor.xml.svg","begin":"(\u003c\\?)\\s*","end":"\\?\u003e","patterns":[{"begin":"\\G","end":"([-\\w]+)|(?=\\s*\\?\u003e)","endCaptures":{"1":{"name":"entity.name.tag.xml.svg"}}},{"include":"#attr"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.xml.svg"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.end.xml.svg"}}},"scriptTag":{"patterns":[{"include":"#scriptTagPlain"},{"include":"#scriptTagJS"}]},"scriptTagJS":{"name":"meta.tag.script.xml.svg","begin":"(?i)(\u003c)(script)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"contentName":"source.js.embedded.xml.svg","begin":"(?\u003c=\u003e)","end":"(?i)(?=\\s*\u003c/script\\s*\u003e)","patterns":[{"include":"source.js"},{"include":"#entity"}]}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"scriptTagPlain":{"name":"meta.tag.script.xml.svg","begin":"(?x)\n(\u003c)((?i)script)\n(\n\t\\s+[^\u003e]*?\n\t(?\u003c=\\s)(?i:type)\\s*=\\s*\n\t([\"'])?\n\t(?! module\n\t| application/(?:x-)?(?:ecma|java)script\n\t| text/\n\t\t(?: javascript(?:1.[0-5])?\n\t\t| (?:j|ecma|live)script\n\t\t| x-(?:ecma|java)script\n\t\t)\n\t)\n\t(?: (?\u003c=\")(?:[^\"\u003e]+)\"\n\t| (?\u003c=')(?:[^'\u003e]+)'\n\t| [^\\s\"'\u003e]+\n\t)\n\t(?=\\s|/?\u003e)\n)","end":"(?i)(\u003c/)(script)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"include":"#main"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"patterns":[{"include":"#attr"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"styleTag":{"name":"meta.tag.style.xml.svg","begin":"(?i)(\u003c)(style)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(style)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"contentName":"source.css.embedded.xml.svg","begin":"(?\u003c=\u003e)","end":"(?i)(?=\\s*\u003c/style\\s*\u003e)","patterns":[{"include":"source.css"},{"include":"#entity"}]}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"tag":{"name":"meta.tag.${2:/downcase}.xml.svg","begin":"(?i)(\u003c)([A-Za-z_:][-\\w.:]*)(?=$|\\s|/?\u003e)","end":"(?i)(\u003c/)(\\2)\\s*(\u003e)|(/\u003e)","patterns":[{"include":"#tagAttr"},{"include":"#main"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.opening.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]}},"endCaptures":{"1":{"name":"punctuation.definition.tag.closing.begin.xml.svg"},"2":{"patterns":[{"include":"#tagName"}]},"3":{"name":"punctuation.definition.tag.closing.end.xml.svg"},"4":{"name":"punctuation.definition.tag.self-closing.end.xml.svg"}}},"tagAttr":{"begin":"\\G(?!\\s*/\u003e)","end":"\u003e|(?=\\s*/\u003e)","patterns":[{"include":"#attr"}],"endCaptures":{"0":{"name":"punctuation.definition.tag.opening.end.xml.svg"}}},"tagName":{"patterns":[{"match":"(?:^|\\G)([A-Za-z_][-\\w.]*)(:)(?=[-\\w.:])","captures":{"1":{"name":"entity.name.tag.namespace.xml.svg"},"2":{"name":"punctuation.separator.namespace.xml.svg"}}},{"name":"entity.name.tag.localname.xml.svg","match":"[A-Za-z_:][-\\w.:]*"}]},"unmatchedTag":{"name":"invalid.illegal.unmatched-tag.xml.svg","match":"(\u003c/)([A-Za-z_:][-\\w.:]*)\\s*(\u003e)"}},"injections":{"R:meta.attribute.d.xml.svg string":{"patterns":[{"include":"#commands"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"Format String","scopeName":"textmate.format-string","patterns":[{"name":"constant.character.escape.format-string","match":"\\\\[\\\\$(nt]"},{"name":"constant.other.reference.format-string","match":"\\\\[ULEul]"},{"name":"variable.other.readwrite.format-string","match":"(\\$)(?:\\d+|\\w+)","captures":{"1":{"name":"punctuation.definition.variable.begin.format-string"}}},{"name":"variable.other.transform.format-string","match":"(\\$\\{)\\w+(:/)(?:upcase|downcase|capitalize|titlecase|asciify|(.*?))(\\})","captures":{"1":{"name":"punctuation.definition.transform.begin.format-string"},"2":{"name":"punctuation.separator.transform.format-string"},"3":{"name":"invalid.illegal.unknown-transform.format-string"},"4":{"name":"punctuation.definition.transform.end.format-string"}}},{"name":"variable.other.condition.binary.format-string","begin":"(\\$\\{)\\w+(:\\?)","end":"\\}","patterns":[{"name":"constant.character.escape.format-string","match":"\\\\[:}]"},{"include":"textmate.format-string"},{"begin":":","end":"(?=\\})","patterns":[{"name":"constant.character.escape.format-string","match":"\\\\[}]"},{"include":"textmate.format-string"}],"beginCaptures":{"0":{"name":"punctuation.separator.condition.format-string"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.condition.begin.format-string"},"2":{"name":"punctuation.separator.condition.format-string"}},"endCaptures":{"1":{"name":"punctuation.definition.condition.end.format-string"}}},{"name":"variable.other.condition.unary.format-string","begin":"(\\$\\{)\\w+(:[-+]?)","end":"\\}","patterns":[{"name":"constant.character.escape.format-string","match":"\\\\}"},{"include":"textmate.format-string"}],"beginCaptures":{"1":{"name":"punctuation.definition.condition.begin.format-string"},"2":{"name":"punctuation.separator.condition.format-string"}},"endCaptures":{"1":{"name":"punctuation.definition.condition.end.format-string"}}},{"name":"variable.other.replacement.format-string","begin":"(\\$\\{)\\w+(/)","end":"\\}","patterns":[{"name":"constant.character.escape.format-string","match":"\\\\/"},{"include":"source.regexp.oniguruma"},{"begin":"/","end":"(/)([a-z]*)(?=\\})","patterns":[{"name":"constant.character.escape.format-string","match":"\\\\/"},{"include":"textmate.format-string"}],"beginCaptures":{"0":{"name":"punctuation.separator.replacement.format-string"}},"endCaptures":{"1":{"name":"punctuation.separator.replacement.format-string"},"2":{"patterns":[{"name":"invalid.illegal.unknown-option.format-string","match":"[^giems]+"}]}}}],"beginCaptures":{"1":{"name":"punctuation.definition.replacement.begin.format-string"},"2":{"name":"punctuation.separator.replacement.format-string"}},"endCaptures":{"1":{"name":"punctuation.definition.replacement.end.format-string"}}},{"name":"invalid.deprecated.condition.format-string","begin":"\\(\\?\\d+:","end":"\\)"}]}
data/grammars/version CHANGED
@@ -1 +1 @@
1
- 7.14.0
1
+ 7.17.0
data/lib/linguist/VERSION CHANGED
@@ -1 +1 @@
1
- 7.14.0
1
+ 7.17.0
@@ -20,6 +20,7 @@
20
20
 
21
21
  ## Documentation files ##
22
22
 
23
+ - (^|/)CITATION(\.cff|(S)?(\.(bib|md))?)$
23
24
  - (^|/)CHANGE(S|LOG)?(\.|$)
24
25
  - (^|/)CONTRIBUTING(\.|$)
25
26
  - (^|/)COPYING(\.|$)
@@ -83,6 +83,7 @@ module Linguist
83
83
  generated_apache_thrift? ||
84
84
  generated_jni_header? ||
85
85
  vcr_cassette? ||
86
+ jest_snapshot? ||
86
87
  generated_antlr? ||
87
88
  generated_module? ||
88
89
  generated_unity3d_meta? ||
@@ -443,6 +444,18 @@ module Linguist
443
444
  return lines[-2].include?("recorded_with: VCR")
444
445
  end
445
446
 
447
+ # Is this a Jest Snapshot?
448
+ #
449
+ # Jest Snapshots always start with:
450
+ # // Jest Snapshot v1 ...
451
+ #
452
+ # Returns true or false
453
+ def jest_snapshot?
454
+ return false unless extname == '.snap'
455
+ return false unless lines.count > 1
456
+ return lines[0].include?("// Jest Snapshot ")
457
+ end
458
+
446
459
  # Is this a generated ANTLR file?
447
460
  #
448
461
  # Returns true or false