github-linguist 9.1.0 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +24 -5
  3. data/grammars/etc.json +1 -1
  4. data/grammars/injection.interpolated-ruby.json +1 -0
  5. data/grammars/injections.etc.json +1 -1
  6. data/grammars/inline.edgeql.json +1 -1
  7. data/grammars/liquid.injection.json +1 -1
  8. data/grammars/markdown.move.codeblock.json +1 -1
  9. data/grammars/source.4dm.json +1 -1
  10. data/grammars/source.QB64.json +1 -1
  11. data/grammars/source.abl.json +1 -1
  12. data/grammars/source.aiken.json +1 -0
  13. data/grammars/source.apex.json +1 -1
  14. data/grammars/source.ash.json +1 -0
  15. data/grammars/source.ats.json +1 -1
  16. data/grammars/source.ballerina.json +1 -1
  17. data/grammars/source.brs.json +1 -1
  18. data/grammars/source.bru.json +1 -0
  19. data/grammars/source.c++.json +1 -1
  20. data/grammars/source.c.calendar.json +1 -0
  21. data/grammars/source.c.json +1 -1
  22. data/grammars/source.c.linker.json +1 -1
  23. data/grammars/source.c3.json +1 -0
  24. data/grammars/source.cl.json +1 -1
  25. data/grammars/source.clue.json +1 -0
  26. data/grammars/source.cmake.json +1 -1
  27. data/grammars/source.cobol.json +1 -1
  28. data/grammars/source.cooklang.json +1 -0
  29. data/grammars/source.cs.json +1 -1
  30. data/grammars/source.curlrc.json +1 -1
  31. data/grammars/source.daslang.json +1 -0
  32. data/grammars/source.dds.dspf.json +1 -1
  33. data/grammars/source.dotenv.json +1 -1
  34. data/grammars/source.edgeql.json +1 -1
  35. data/grammars/source.erlang.json +1 -1
  36. data/grammars/source.flix.json +1 -0
  37. data/grammars/source.fsharp.json +1 -1
  38. data/grammars/source.gdscript.json +1 -1
  39. data/grammars/source.git-revlist.json +1 -1
  40. data/grammars/source.gitignore.json +1 -1
  41. data/grammars/source.gleam.json +1 -1
  42. data/grammars/source.harbour.json +1 -1
  43. data/grammars/source.httpspec.json +1 -1
  44. data/grammars/source.hx.json +1 -1
  45. data/grammars/source.ilecobol.json +1 -0
  46. data/grammars/source.inputrc.json +1 -1
  47. data/grammars/source.jai.json +1 -1
  48. data/grammars/source.jq.json +1 -1
  49. data/grammars/source.json.comments.json +1 -1
  50. data/grammars/source.julia.console.json +1 -1
  51. data/grammars/source.julia.json +1 -1
  52. data/grammars/source.just.json +1 -1
  53. data/grammars/source.koka.json +1 -0
  54. data/grammars/source.lean4.json +1 -1
  55. data/grammars/source.leo.json +1 -0
  56. data/grammars/source.livescript.json +1 -1
  57. data/grammars/source.luau.json +1 -1
  58. data/grammars/source.m2.json +1 -1
  59. data/grammars/source.m3u.json +1 -0
  60. data/grammars/source.mermaid.flowchart.json +1 -1
  61. data/grammars/source.mermaid.gantt.json +1 -1
  62. data/grammars/source.mermaid.json +1 -1
  63. data/grammars/source.mermaid.pie-chart.json +1 -1
  64. data/grammars/source.mermaid.quad-chart.json +1 -0
  65. data/grammars/source.mermaid.sankey.json +1 -0
  66. data/grammars/source.mermaid.timeline.json +1 -0
  67. data/grammars/source.mermaid.user-journey.json +1 -1
  68. data/grammars/source.mermaid.zenuml.json +1 -0
  69. data/grammars/source.moonbit.json +1 -1
  70. data/grammars/source.move.json +1 -1
  71. data/grammars/source.nasl.json +1 -1
  72. data/grammars/source.nginx.json +1 -1
  73. data/grammars/source.nickel.json +1 -0
  74. data/grammars/source.nim.json +1 -1
  75. data/grammars/source.nr.json +1 -1
  76. data/grammars/source.nushell.json +1 -1
  77. data/grammars/source.objc.json +1 -1
  78. data/grammars/source.odin-ehr.json +1 -1
  79. data/grammars/source.odin.json +1 -1
  80. data/grammars/source.openqasm.json +1 -0
  81. data/grammars/source.postscript.json +1 -1
  82. data/grammars/source.psl.json +1 -0
  83. data/grammars/source.quakec.json +1 -0
  84. data/grammars/source.record-jar.json +1 -1
  85. data/grammars/source.rescript.json +1 -1
  86. data/grammars/source.roc.json +1 -1
  87. data/grammars/source.rosmsg.json +1 -0
  88. data/grammars/source.rust.json +1 -1
  89. data/grammars/source.sail.json +1 -0
  90. data/grammars/source.sieve.json +1 -1
  91. data/grammars/source.slang.json +1 -1
  92. data/grammars/source.slint.json +1 -1
  93. data/grammars/source.smithy.json +1 -1
  94. data/grammars/source.soql.json +1 -1
  95. data/grammars/source.stan.json +1 -1
  96. data/grammars/source.sway.json +1 -1
  97. data/grammars/source.swift.json +1 -1
  98. data/grammars/source.tact.json +1 -1
  99. data/grammars/source.talon.json +1 -1
  100. data/grammars/source.templ.json +1 -1
  101. data/grammars/source.toc.json +1 -1
  102. data/grammars/source.torrc.json +1 -0
  103. data/grammars/source.typst.json +1 -1
  104. data/grammars/source.uplc.json +1 -0
  105. data/grammars/source.vba.json +1 -1
  106. data/grammars/source.vcl.json +1 -0
  107. data/grammars/source.vento.json +1 -0
  108. data/grammars/source.vhdl.json +1 -1
  109. data/grammars/source.vue.json +1 -1
  110. data/grammars/source.wdl.json +1 -1
  111. data/grammars/source.wesl.json +1 -0
  112. data/grammars/source.wgsl.json +1 -1
  113. data/grammars/source.wit.json +1 -1
  114. data/grammars/source.zmodel.json +1 -0
  115. data/grammars/text.adblock.json +1 -1
  116. data/grammars/text.codeowners.json +1 -1
  117. data/grammars/text.html.jte.json +1 -1
  118. data/grammars/text.html.liquid.json +1 -1
  119. data/grammars/text.html.vento.json +1 -0
  120. data/grammars/text.jira.json +1 -0
  121. data/grammars/text.marko.json +1 -1
  122. data/grammars/text.slim.json +1 -1
  123. data/grammars/text.srt.json +1 -1
  124. data/grammars/text.valve-cfg.json +1 -1
  125. data/grammars/text.xml.svg.json +1 -1
  126. data/grammars/version +1 -1
  127. data/lib/linguist/VERSION +1 -1
  128. data/lib/linguist/generated.rb +28 -6
  129. data/lib/linguist/generic.yml +2 -0
  130. data/lib/linguist/heuristics.yml +47 -9
  131. data/lib/linguist/instrumenter.rb +19 -0
  132. data/lib/linguist/languages.json +1 -1
  133. data/lib/linguist/languages.yml +327 -102
  134. data/lib/linguist/samples.json +1 -1
  135. data/lib/linguist.rb +1 -0
  136. metadata +39 -12
  137. data/grammars/source.c.platform.json +0 -1
  138. data/grammars/source.varnish.vcl.json +0 -1
@@ -1 +1 @@
1
- {"name":"Erlang","scopeName":"source.erlang","patterns":[{"include":"#module-directive"},{"include":"#import-export-directive"},{"include":"#behaviour-directive"},{"include":"#record-directive"},{"include":"#define-directive"},{"include":"#macro-directive"},{"include":"#directive"},{"include":"#function"},{"include":"#everything-else"}],"repository":{"atom":{"patterns":[{"name":"constant.other.symbol.quoted.single.erlang","begin":"(')","end":"(')","patterns":[{"name":"constant.other.symbol.escape.erlang","match":"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})","captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.atom.erlang","match":"\\\\\\^?.?"}],"beginCaptures":{"1":{"name":"punctuation.definition.symbol.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.symbol.end.erlang"}}},{"name":"constant.other.symbol.unquoted.erlang","match":"[a-z][a-zA-Z\\d@_]*+"}]},"behaviour-directive":{"name":"meta.directive.behaviour.erlang","match":"^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.behaviour.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.behaviour.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},"binary":{"name":"meta.structure.binary.erlang","begin":"(\u003c\u003c)","end":"(\u003e\u003e)","patterns":[{"match":"(,)|(:)","captures":{"1":{"name":"punctuation.separator.binary.erlang"},"2":{"name":"punctuation.separator.value-size.erlang"}}},{"include":"#internal-type-specifiers"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.binary.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.binary.end.erlang"}}},"character":{"patterns":[{"name":"constant.character.erlang","match":"(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))","captures":{"1":{"name":"punctuation.definition.character.erlang"},"2":{"name":"constant.character.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"},"5":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.character.erlang","match":"\\$\\\\\\^?.?"},{"name":"constant.character.erlang","match":"(\\$)[ \\S]","captures":{"1":{"name":"punctuation.definition.character.erlang"}}},{"name":"invalid.illegal.character.erlang","match":"\\$.?"}]},"comment":{"begin":"(^[ \\t]+)?(?=%)","end":"(?!\\G)","patterns":[{"name":"comment.line.percentage.erlang","begin":"%","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.erlang"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.erlang"}}},"define-directive":{"patterns":[{"name":"meta.directive.define.erlang","begin":"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.define.erlang","begin":"(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()","end":"(\\))\\s*+(\\.)","patterns":[{"begin":"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()","end":"(\\))\\s*(,)","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.separator.parameters.erlang"}}},{"name":"punctuation.separator.define.erlang","match":"\\|\\||\\||:|;|,|\\.|-\u003e"},{"include":"#everything-else"}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}}]},"directive":{"patterns":[{"name":"meta.directive.erlang","begin":"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)","end":"(\\)?)\\s*+(\\.)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.erlang","match":"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.section.directive.end.erlang"}}}]},"docstring":{"name":"string.quoted.triple.erlang","begin":"(?\u003c!\")(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\2))(?!\")","beginCaptures":{"1":{"name":"meta.string.quoted.triple.begin.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"},"3":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"everything-else":{"patterns":[{"include":"#comment"},{"include":"#record-usage"},{"include":"#macro-usage"},{"include":"#expression"},{"include":"#keyword"},{"include":"#textual-operator"},{"include":"#language-constant"},{"include":"#function-call"},{"include":"#tuple"},{"include":"#list"},{"include":"#binary"},{"include":"#parenthesized-expression"},{"include":"#character"},{"include":"#number"},{"include":"#atom"},{"include":"#sigil-docstring"},{"include":"#sigil-string"},{"include":"#docstring"},{"include":"#string"},{"include":"#symbolic-operator"},{"include":"#variable"}]},"expression":{"patterns":[{"name":"meta.expression.if.erlang","begin":"\\b(if)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.if.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.case.erlang","begin":"\\b(case)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.case.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.receive.erlang","begin":"\\b(receive)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.receive.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","match":"\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)","captures":{"1":{"name":"keyword.control.fun.erlang"},"10":{"name":"punctuation.separator.function-arity.erlang"},"4":{"name":"entity.name.type.class.module.erlang"},"5":{"name":"variable.other.erlang"},"6":{"name":"punctuation.separator.module-function.erlang"},"8":{"name":"entity.name.function.erlang"},"9":{"name":"variable.other.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","begin":"\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)","end":"(/)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"},"3":{"name":"entity.name.type.class.module.erlang"},"4":{"name":"variable.other.erlang"},"5":{"name":"punctuation.separator.module-function.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.function-arity.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","begin":"\\b(fun)\\s+(?!\\()","end":"(/)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.function-arity.erlang"}}},{"begin":"\\b(fun)\\s*+(\\()(?=(\\s*+\\()|(\\)))","end":"(\\))","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},{"name":"meta.expression.fun.erlang","begin":"\\b(fun)\\b","end":"\\b(end)\\b","patterns":[{"begin":"(?=\\()","end":"(;)|(?=\\bend\\b)","patterns":[{"include":"#internal-function-parts"}],"endCaptures":{"1":{"name":"punctuation.separator.clauses.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.try.erlang","begin":"\\b(try)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.try.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.begin.erlang","begin":"\\b(begin)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.begin.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.maybe.erlang","begin":"\\b(maybe)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.maybe.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}}]},"function":{"name":"meta.function.erlang","begin":"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()","end":"(\\.)","patterns":[{"match":"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()","captures":{"1":{"name":"entity.name.function.erlang"}}},{"begin":"(?=\\()","end":"(;)|(?=\\.)","patterns":[{"include":"#parenthesized-expression"},{"include":"#internal-function-parts"}],"endCaptures":{"1":{"name":"punctuation.separator.clauses.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.definition.erlang"}},"endCaptures":{"1":{"name":"punctuation.terminator.function.erlang"}}},"function-call":{"name":"meta.function-call.erlang","begin":"(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())","end":"(\\))","patterns":[{"begin":"((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()","end":"(?=\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"2":{"name":"entity.name.type.class.module.erlang"},"3":{"name":"punctuation.separator.module-function.erlang"},"4":{"name":"entity.name.function.guard.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}}},{"begin":"((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()","end":"(?=\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"3":{"name":"entity.name.type.class.module.erlang"},"4":{"name":"variable.other.erlang"},"5":{"name":"punctuation.separator.module-function.erlang"},"7":{"name":"entity.name.function.erlang"},"8":{"name":"variable.other.erlang"},"9":{"name":"punctuation.definition.parameters.begin.erlang"}}}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},"import-export-directive":{"patterns":[{"name":"meta.directive.import.erlang","begin":"^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-function-list"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.export.erlang","begin":"^\\s*+(-)\\s*+(export)\\s*+(\\()","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-function-list"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.export.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}}]},"internal-expression-punctuation":{"match":"(-\u003e)|(;)|(,)","captures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"},"2":{"name":"punctuation.separator.clauses.erlang"},"3":{"name":"punctuation.separator.expressions.erlang"}}},"internal-function-list":{"name":"meta.structure.list.function.erlang","begin":"(\\[)","end":"(\\])","patterns":[{"begin":"([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)","end":"(,)|(?=\\])","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.separator.function-arity.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.list.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}}},"internal-function-parts":{"patterns":[{"begin":"(?=\\()","end":"(-\u003e)","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},{"name":"punctuation.separator.guards.erlang","match":",|;"},{"include":"#everything-else"}],"endCaptures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"}}},{"name":"punctuation.separator.expressions.erlang","match":","},{"include":"#everything-else"}]},"internal-record-body":{"name":"meta.structure.record.erlang","begin":"(\\{)","end":"(\\})","patterns":[{"begin":"(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))","end":"(,)|(?=\\})","patterns":[{"include":"#everything-else"}],"beginCaptures":{"2":{"name":"variable.other.field.erlang"},"3":{"name":"variable.language.omitted.field.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.class.record.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.class.record.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.class.record.end.erlang"}}},"internal-string-body":{"patterns":[{"name":"constant.character.escape.erlang","match":"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})","captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.string.erlang","match":"\\\\\\^?.?"},{"name":"constant.character.format.placeholder.other.erlang","match":"(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]","captures":{"1":{"name":"punctuation.definition.placeholder.erlang"},"10":{"name":"punctuation.separator.placeholder-parts.erlang"},"6":{"name":"punctuation.separator.placeholder-parts.erlang"}}},{"name":"constant.character.format.placeholder.other.erlang","match":"(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]","captures":{"1":{"name":"punctuation.definition.placeholder.erlang"}}},{"name":"invalid.illegal.string.erlang","match":"~[^\"]?"}]},"internal-type-specifiers":{"begin":"(/)","end":"(?=,|:|\u003e\u003e)","patterns":[{"match":"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)","captures":{"1":{"name":"storage.type.erlang"},"2":{"name":"storage.modifier.signedness.erlang"},"3":{"name":"storage.modifier.endianness.erlang"},"4":{"name":"storage.modifier.unit.erlang"},"5":{"name":"punctuation.separator.unit-specifiers.erlang"},"6":{"name":"constant.numeric.integer.decimal.erlang"},"7":{"name":"punctuation.separator.type-specifiers.erlang"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.value-type.erlang"}}},"keyword":{"name":"keyword.control.erlang","match":"\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b"},"language-constant":{"name":"constant.language","match":"\\b(false|true|undefined)\\b"},"list":{"name":"meta.structure.list.erlang","begin":"(\\[)","end":"(\\])","patterns":[{"name":"punctuation.separator.list.erlang","match":"\\||\\|\\||,"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}}},"macro-directive":{"patterns":[{"name":"meta.directive.ifdef.erlang","match":"^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifdef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.ifndef.erlang","match":"^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifndef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.undef.erlang","match":"^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.undef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}}]},"macro-usage":{"name":"meta.macro-usage.erlang","match":"(\\?\\??)\\s*+([a-zA-Z\\d@_]++)","captures":{"1":{"name":"keyword.operator.macro.erlang"},"2":{"name":"entity.name.function.macro.erlang"}}},"module-directive":{"name":"meta.directive.module.erlang","match":"^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.module.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},"number":{"begin":"(?=\\d)","end":"(?!\\d)","patterns":[{"name":"constant.numeric.float.erlang","match":"\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?","captures":{"1":{"name":"punctuation.separator.integer-float.erlang"},"2":{"name":"punctuation.separator.float-exponent.erlang"}}},{"name":"constant.numeric.integer.binary.erlang","match":"2(#)([0-1]++_)*[0-1]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-3.erlang","match":"3(#)([0-2]++_)*[0-2]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-4.erlang","match":"4(#)([0-3]++_)*[0-3]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-5.erlang","match":"5(#)([0-4]++_)*[0-4]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-6.erlang","match":"6(#)([0-5]++_)*[0-5]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-7.erlang","match":"7(#)([0-6]++_)*[0-6]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.octal.erlang","match":"8(#)([0-7]++_)*[0-7]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-9.erlang","match":"9(#)([0-8]++_)*[0-8]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.decimal.erlang","match":"10(#)(\\d++_)*\\d++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-11.erlang","match":"11(#)([\\daA]++_)*[\\daA]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-12.erlang","match":"12(#)([\\da-bA-B]++_)*[\\da-bA-B]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-13.erlang","match":"13(#)([\\da-cA-C]++_)*[\\da-cA-C]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-14.erlang","match":"14(#)([\\da-dA-D]++_)*[\\da-dA-D]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-15.erlang","match":"15(#)([\\da-eA-E]++_)*[\\da-eA-E]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.hexadecimal.erlang","match":"16(#)([\\da-fA-F]++_)*[\\da-fA-F]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-17.erlang","match":"17(#)([\\da-gA-G]++_)*[\\da-gA-G]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-18.erlang","match":"18(#)([\\da-hA-H]++_)*[\\da-hA-H]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-19.erlang","match":"19(#)([\\da-iA-I]++_)*[\\da-iA-I]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-20.erlang","match":"20(#)([\\da-jA-J]++_)*[\\da-jA-J]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-21.erlang","match":"21(#)([\\da-kA-K]++_)*[\\da-kA-K]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-22.erlang","match":"22(#)([\\da-lA-L]++_)*[\\da-lA-L]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-23.erlang","match":"23(#)([\\da-mA-M]++_)*[\\da-mA-M]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-24.erlang","match":"24(#)([\\da-nA-N]++_)*[\\da-nA-N]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-25.erlang","match":"25(#)([\\da-oA-O]++_)*[\\da-oA-O]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-26.erlang","match":"26(#)([\\da-pA-P]++_)*[\\da-pA-P]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-27.erlang","match":"27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-28.erlang","match":"28(#)([\\da-rA-R]++_)*[\\da-rA-R]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-29.erlang","match":"29(#)([\\da-sA-S]++_)*[\\da-sA-S]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-30.erlang","match":"30(#)([\\da-tA-T]++_)*[\\da-tA-T]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-31.erlang","match":"31(#)([\\da-uA-U]++_)*[\\da-uA-U]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-32.erlang","match":"32(#)([\\da-vA-V]++_)*[\\da-vA-V]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-33.erlang","match":"33(#)([\\da-wA-W]++_)*[\\da-wA-W]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-34.erlang","match":"34(#)([\\da-xA-X]++_)*[\\da-xA-X]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-35.erlang","match":"35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-36.erlang","match":"36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"invalid.illegal.integer.erlang","match":"\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++"},{"name":"constant.numeric.integer.decimal.erlang","match":"(\\d++_)*\\d++"}]},"parenthesized-expression":{"name":"meta.expression.parenthesized","begin":"(\\()","end":"(\\))","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.expression.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.section.expression.end.erlang"}}},"record-directive":{"name":"meta.directive.record.erlang","begin":"^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-record-body"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.record.definition.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},"record-usage":{"patterns":[{"name":"meta.record-usage.erlang","match":"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')","captures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"},"3":{"name":"punctuation.separator.record-field.erlang"},"4":{"name":"variable.other.field.erlang"}}},{"name":"meta.record-usage.erlang","begin":"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')","end":"(?\u003c=\\})","patterns":[{"include":"#internal-record-body"}],"beginCaptures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"}}}]},"sigil-docstring":{"name":"string.quoted.tripple.sigil.erlang","begin":"(~[bBsS]?)(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\3))(?!\")","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"meta.string.quoted.triple.begin.erlang"},"3":{"name":"punctuation.definition.string.begin.erlang"},"4":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string":{"patterns":[{"include":"#sigil-string-parenthesis"},{"include":"#sigil-string-parenthesis-verbatim"},{"include":"#sigil-string-curly-brackets"},{"include":"#sigil-string-curly-brackets-verbatim"},{"include":"#sigil-string-square-brackets"},{"include":"#sigil-string-square-brackets-verbatim"},{"include":"#sigil-string-less-greater"},{"include":"#sigil-string-less-greater-verbatim"},{"include":"#sigil-string-single-character"},{"include":"#sigil-string-single-character-verbatim"},{"include":"#sigil-string-single-quote"},{"include":"#sigil-string-single-quote-verbatim"},{"include":"#sigil-string-double-quote"},{"include":"#sigil-string-double-quote-verbatim"}]},"sigil-string-curly-brackets":{"name":"string.quoted.curly-brackets.sigil.erlang","begin":"(~[bs]?)([{])","end":"([}])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-curly-brackets-verbatim":{"name":"string.quoted.curly-brackets.sigil.erlang","begin":"(~[BS])([{])","end":"([}])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-double-quote":{"name":"string.quoted.double.sigil.erlang","begin":"(~[bs]?)(\")","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-double-quote-verbatim":{"name":"string.quoted.double.sigil.erlang","begin":"(~[BS])(\")","end":"(\\2)","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-less-greater":{"name":"string.quoted.less-greater.sigil.erlang","begin":"(~[bs]?)(\u003c)","end":"(\u003e)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-less-greater-verbatim":{"name":"string.quoted.less-greater.sigil.erlang","begin":"(~[BS])(\u003c)","end":"(\u003e)","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-parenthesis":{"name":"string.quoted.parenthesis.sigil.erlang","begin":"(~[bs]?)([(])","end":"([)])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-parenthesis-verbatim":{"name":"string.quoted.parenthesis.sigil.erlang","begin":"(~[BS])([(])","end":"([)])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-character":{"name":"string.quoted.other.sigil.erlang","begin":"(~[bs]?)([/\\|`#])","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-character-verbatim":{"name":"string.quoted.other.sigil.erlang","begin":"(~[BS])([/\\|`#])","end":"(\\2)","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-quote":{"name":"string.quoted.single.sigil.erlang","begin":"(~[bs]?)(')","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-quote-verbatim":{"name":"string.quoted.single.sigil.erlang","begin":"(~[BS])(')","end":"(\\2)","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-square-brackets":{"name":"string.quoted.square-brackets.sigil.erlang","begin":"(~[bs]?)([\\[])","end":"([\\]])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-square-brackets-verbatim":{"name":"string.quoted.square-brackets.sigil.erlang","begin":"(~[BS])([\\[])","end":"([\\]])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"string":{"name":"string.quoted.double.erlang","begin":"(\")","end":"(\")","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"symbolic-operator":{"name":"keyword.operator.symbolic.erlang","match":"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=\u003c|=|\u003c-|\u003c|\u003e=|\u003e|!|::|\\?="},"textual-operator":{"name":"keyword.operator.textual.erlang","match":"\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b"},"tuple":{"name":"meta.structure.tuple.erlang","begin":"(\\{)","end":"(\\})","patterns":[{"name":"punctuation.separator.tuple.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.tuple.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.tuple.end.erlang"}}},"variable":{"match":"(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)","captures":{"1":{"name":"variable.other.erlang"},"2":{"name":"variable.language.omitted.erlang"}}}}}
1
+ {"name":"Erlang","scopeName":"source.erlang","patterns":[{"include":"#module-directive"},{"include":"#import-export-directive"},{"include":"#behaviour-directive"},{"include":"#record-directive"},{"include":"#define-directive"},{"include":"#macro-directive"},{"include":"#doc-directive"},{"include":"#directive"},{"include":"#function"},{"include":"#everything-else"}],"repository":{"atom":{"patterns":[{"name":"constant.other.symbol.quoted.single.erlang","begin":"(')","end":"(')","patterns":[{"name":"constant.other.symbol.escape.erlang","match":"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})","captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.atom.erlang","match":"\\\\\\^?.?"}],"beginCaptures":{"1":{"name":"punctuation.definition.symbol.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.symbol.end.erlang"}}},{"name":"constant.other.symbol.unquoted.erlang","match":"[a-z][a-zA-Z\\d@_]*+"}]},"behaviour-directive":{"name":"meta.directive.behaviour.erlang","match":"^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.behaviour.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.behaviour.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},"binary":{"name":"meta.structure.binary.erlang","begin":"(\u003c\u003c)","end":"(\u003e\u003e)","patterns":[{"match":"(,)|(:)","captures":{"1":{"name":"punctuation.separator.binary.erlang"},"2":{"name":"punctuation.separator.value-size.erlang"}}},{"include":"#internal-type-specifiers"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.binary.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.binary.end.erlang"}}},"character":{"patterns":[{"name":"constant.character.erlang","match":"(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))","captures":{"1":{"name":"punctuation.definition.character.erlang"},"2":{"name":"constant.character.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"},"5":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.character.erlang","match":"\\$\\\\\\^?.?"},{"name":"constant.character.erlang","match":"(\\$)[ \\S]","captures":{"1":{"name":"punctuation.definition.character.erlang"}}},{"name":"invalid.illegal.character.erlang","match":"\\$.?"}]},"comment":{"begin":"(^[ \\t]+)?(?=%)","end":"(?!\\G)","patterns":[{"name":"comment.line.percentage.erlang","begin":"%","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.erlang"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.erlang"}}},"define-directive":{"patterns":[{"name":"meta.directive.define.erlang","begin":"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.define.erlang","begin":"(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()","end":"(\\))\\s*+(\\.)","patterns":[{"begin":"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()","end":"(\\))\\s*(,)","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.separator.parameters.erlang"}}},{"name":"punctuation.separator.define.erlang","match":"\\|\\||\\||:|;|,|\\.|-\u003e"},{"include":"#everything-else"}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}}]},"directive":{"patterns":[{"name":"meta.directive.erlang","begin":"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)","end":"(\\)?)\\s*+(\\.)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.erlang","match":"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.section.directive.end.erlang"}}}]},"doc-directive":{"name":"meta.directive.doc.erlang","contentName":"meta.embedded.block.markdown","begin":"^\\s*+(-)\\s*+((module)?doc)\\s*([(]\\s*)?(~[bBsS]?)?(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\7))\\s*([)]\\s*)?(\\.)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.doc.erlang"},"4":{"name":"punctuation.definition.parameters.begin.erlang"},"5":{"name":"storage.type.string.erlang"},"6":{"name":"comment.block.documentation.erlang"},"7":{"name":"punctuation.definition.string.begin.erlang"},"8":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"comment.block.documentation.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"},"3":{"name":"punctuation.section.directive.end.Erlang"}}},"docstring":{"name":"string.quoted.triple.erlang","begin":"(?\u003c!\")(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\2))(?!\")","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"meta.string.quoted.triple.begin.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"},"3":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"everything-else":{"patterns":[{"include":"#comment"},{"include":"#record-usage"},{"include":"#macro-usage"},{"include":"#expression"},{"include":"#keyword"},{"include":"#textual-operator"},{"include":"#language-constant"},{"include":"#function-call"},{"include":"#tuple"},{"include":"#list"},{"include":"#binary"},{"include":"#parenthesized-expression"},{"include":"#character"},{"include":"#number"},{"include":"#atom"},{"include":"#sigil-docstring"},{"include":"#sigil-docstring-verbatim"},{"include":"#sigil-string"},{"include":"#docstring"},{"include":"#string"},{"include":"#symbolic-operator"},{"include":"#variable"}]},"expression":{"patterns":[{"name":"meta.expression.if.erlang","begin":"\\b(if)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.if.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.case.erlang","begin":"\\b(case)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.case.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.receive.erlang","begin":"\\b(receive)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.receive.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","match":"\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)","captures":{"1":{"name":"keyword.control.fun.erlang"},"10":{"name":"punctuation.separator.function-arity.erlang"},"4":{"name":"entity.name.type.class.module.erlang"},"5":{"name":"variable.other.erlang"},"6":{"name":"punctuation.separator.module-function.erlang"},"8":{"name":"entity.name.function.erlang"},"9":{"name":"variable.other.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","begin":"\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)","end":"(/)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"},"3":{"name":"entity.name.type.class.module.erlang"},"4":{"name":"variable.other.erlang"},"5":{"name":"punctuation.separator.module-function.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.function-arity.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","begin":"\\b(fun)\\s+(?!\\()","end":"(/)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.function-arity.erlang"}}},{"begin":"\\b(fun)\\s*+(\\()(?=(\\s*+\\()|(\\)))","end":"(\\))","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},{"name":"meta.expression.fun.erlang","begin":"\\b(fun)\\b","end":"\\b(end)\\b","patterns":[{"begin":"(?=\\()","end":"(;)|(?=\\bend\\b)","patterns":[{"include":"#internal-function-parts"}],"endCaptures":{"1":{"name":"punctuation.separator.clauses.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.try.erlang","begin":"\\b(try)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.try.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.begin.erlang","begin":"\\b(begin)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.begin.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.maybe.erlang","begin":"\\b(maybe)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.maybe.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}}]},"function":{"name":"meta.function.erlang","begin":"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()","end":"(\\.)","patterns":[{"match":"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()","captures":{"1":{"name":"entity.name.function.erlang"}}},{"begin":"(?=\\()","end":"(;)|(?=\\.)","patterns":[{"include":"#parenthesized-expression"},{"include":"#internal-function-parts"}],"endCaptures":{"1":{"name":"punctuation.separator.clauses.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.definition.erlang"}},"endCaptures":{"1":{"name":"punctuation.terminator.function.erlang"}}},"function-call":{"name":"meta.function-call.erlang","begin":"(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())","end":"(\\))","patterns":[{"begin":"((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()","end":"(?=\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"2":{"name":"entity.name.type.class.module.erlang"},"3":{"name":"punctuation.separator.module-function.erlang"},"4":{"name":"entity.name.function.guard.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}}},{"begin":"((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()","end":"(?=\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"3":{"name":"entity.name.type.class.module.erlang"},"4":{"name":"variable.other.erlang"},"5":{"name":"punctuation.separator.module-function.erlang"},"7":{"name":"entity.name.function.erlang"},"8":{"name":"variable.other.erlang"},"9":{"name":"punctuation.definition.parameters.begin.erlang"}}}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},"import-export-directive":{"patterns":[{"name":"meta.directive.import.erlang","begin":"^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-function-list"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.export.erlang","begin":"^\\s*+(-)\\s*+(export)\\s*+(\\()","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-function-list"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.export.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}}]},"internal-expression-punctuation":{"match":"(-\u003e)|(;)|(,)","captures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"},"2":{"name":"punctuation.separator.clauses.erlang"},"3":{"name":"punctuation.separator.expressions.erlang"}}},"internal-function-list":{"name":"meta.structure.list.function.erlang","begin":"(\\[)","end":"(\\])","patterns":[{"begin":"([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)","end":"(,)|(?=\\])","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.separator.function-arity.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.list.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}}},"internal-function-parts":{"patterns":[{"begin":"(?=\\()","end":"(-\u003e)","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},{"name":"punctuation.separator.guards.erlang","match":",|;"},{"include":"#everything-else"}],"endCaptures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"}}},{"name":"punctuation.separator.expressions.erlang","match":","},{"include":"#everything-else"}]},"internal-record-body":{"name":"meta.structure.record.erlang","begin":"(\\{)","end":"(\\})","patterns":[{"begin":"(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))","end":"(,)|(?=\\})","patterns":[{"include":"#everything-else"}],"beginCaptures":{"2":{"name":"variable.other.field.erlang"},"3":{"name":"variable.language.omitted.field.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.class.record.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.class.record.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.class.record.end.erlang"}}},"internal-string-body":{"patterns":[{"name":"constant.character.escape.erlang","match":"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})","captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.string.erlang","match":"\\\\\\^?.?"},{"include":"#internal-string-body-verbatim"}]},"internal-string-body-verbatim":{"patterns":[{"name":"constant.character.format.placeholder.other.erlang","match":"(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]","captures":{"1":{"name":"punctuation.definition.placeholder.erlang"},"10":{"name":"punctuation.separator.placeholder-parts.erlang"},"6":{"name":"punctuation.separator.placeholder-parts.erlang"}}},{"name":"constant.character.format.placeholder.other.erlang","match":"(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]","captures":{"1":{"name":"punctuation.definition.placeholder.erlang"}}},{"name":"invalid.illegal.string.erlang","match":"~[^\"]?"}]},"internal-type-specifiers":{"begin":"(/)","end":"(?=,|:|\u003e\u003e)","patterns":[{"match":"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)","captures":{"1":{"name":"storage.type.erlang"},"2":{"name":"storage.modifier.signedness.erlang"},"3":{"name":"storage.modifier.endianness.erlang"},"4":{"name":"storage.modifier.unit.erlang"},"5":{"name":"punctuation.separator.unit-specifiers.erlang"},"6":{"name":"constant.numeric.integer.decimal.erlang"},"7":{"name":"punctuation.separator.type-specifiers.erlang"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.value-type.erlang"}}},"keyword":{"name":"keyword.control.erlang","match":"\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b"},"language-constant":{"name":"constant.language","match":"\\b(false|true|undefined)\\b"},"list":{"name":"meta.structure.list.erlang","begin":"(\\[)","end":"(\\])","patterns":[{"name":"punctuation.separator.list.erlang","match":"\\||\\|\\||,"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}}},"macro-directive":{"patterns":[{"name":"meta.directive.ifdef.erlang","match":"^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifdef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.ifndef.erlang","match":"^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifndef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.undef.erlang","match":"^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.undef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}}]},"macro-usage":{"name":"meta.macro-usage.erlang","match":"(\\?\\??)\\s*+([a-zA-Z\\d@_]++)","captures":{"1":{"name":"keyword.operator.macro.erlang"},"2":{"name":"entity.name.function.macro.erlang"}}},"module-directive":{"name":"meta.directive.module.erlang","match":"^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.module.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},"number":{"begin":"(?=\\d)","end":"(?!\\d)","patterns":[{"name":"constant.numeric.float.erlang","match":"\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?","captures":{"1":{"name":"punctuation.separator.integer-float.erlang"},"2":{"name":"punctuation.separator.float-exponent.erlang"}}},{"name":"constant.numeric.integer.binary.erlang","match":"2(#)([0-1]++_)*[0-1]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-3.erlang","match":"3(#)([0-2]++_)*[0-2]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-4.erlang","match":"4(#)([0-3]++_)*[0-3]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-5.erlang","match":"5(#)([0-4]++_)*[0-4]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-6.erlang","match":"6(#)([0-5]++_)*[0-5]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-7.erlang","match":"7(#)([0-6]++_)*[0-6]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.octal.erlang","match":"8(#)([0-7]++_)*[0-7]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-9.erlang","match":"9(#)([0-8]++_)*[0-8]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.decimal.erlang","match":"10(#)(\\d++_)*\\d++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-11.erlang","match":"11(#)([\\daA]++_)*[\\daA]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-12.erlang","match":"12(#)([\\da-bA-B]++_)*[\\da-bA-B]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-13.erlang","match":"13(#)([\\da-cA-C]++_)*[\\da-cA-C]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-14.erlang","match":"14(#)([\\da-dA-D]++_)*[\\da-dA-D]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-15.erlang","match":"15(#)([\\da-eA-E]++_)*[\\da-eA-E]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.hexadecimal.erlang","match":"16(#)([\\da-fA-F]++_)*[\\da-fA-F]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-17.erlang","match":"17(#)([\\da-gA-G]++_)*[\\da-gA-G]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-18.erlang","match":"18(#)([\\da-hA-H]++_)*[\\da-hA-H]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-19.erlang","match":"19(#)([\\da-iA-I]++_)*[\\da-iA-I]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-20.erlang","match":"20(#)([\\da-jA-J]++_)*[\\da-jA-J]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-21.erlang","match":"21(#)([\\da-kA-K]++_)*[\\da-kA-K]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-22.erlang","match":"22(#)([\\da-lA-L]++_)*[\\da-lA-L]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-23.erlang","match":"23(#)([\\da-mA-M]++_)*[\\da-mA-M]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-24.erlang","match":"24(#)([\\da-nA-N]++_)*[\\da-nA-N]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-25.erlang","match":"25(#)([\\da-oA-O]++_)*[\\da-oA-O]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-26.erlang","match":"26(#)([\\da-pA-P]++_)*[\\da-pA-P]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-27.erlang","match":"27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-28.erlang","match":"28(#)([\\da-rA-R]++_)*[\\da-rA-R]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-29.erlang","match":"29(#)([\\da-sA-S]++_)*[\\da-sA-S]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-30.erlang","match":"30(#)([\\da-tA-T]++_)*[\\da-tA-T]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-31.erlang","match":"31(#)([\\da-uA-U]++_)*[\\da-uA-U]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-32.erlang","match":"32(#)([\\da-vA-V]++_)*[\\da-vA-V]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-33.erlang","match":"33(#)([\\da-wA-W]++_)*[\\da-wA-W]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-34.erlang","match":"34(#)([\\da-xA-X]++_)*[\\da-xA-X]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-35.erlang","match":"35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-36.erlang","match":"36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"invalid.illegal.integer.erlang","match":"\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++"},{"name":"constant.numeric.integer.decimal.erlang","match":"(\\d++_)*\\d++"}]},"parenthesized-expression":{"name":"meta.expression.parenthesized","begin":"(\\()","end":"(\\))","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.expression.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.section.expression.end.erlang"}}},"record-directive":{"name":"meta.directive.record.erlang","begin":"^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-record-body"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.record.definition.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},"record-usage":{"patterns":[{"name":"meta.record-usage.erlang","match":"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')","captures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"},"3":{"name":"punctuation.separator.record-field.erlang"},"4":{"name":"variable.other.field.erlang"}}},{"name":"meta.record-usage.erlang","begin":"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')","end":"(?\u003c=\\})","patterns":[{"include":"#internal-record-body"}],"beginCaptures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"}}}]},"sigil-docstring":{"name":"string.quoted.tripple.sigil.erlang","begin":"(~[bs])(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\3))(?!\")","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"meta.string.quoted.triple.begin.erlang"},"3":{"name":"punctuation.definition.string.begin.erlang"},"4":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-docstring-verbatim":{"name":"string.quoted.tripple.sigil.erlang","begin":"(~[BS]?)(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\3))(?!\")","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"meta.string.quoted.triple.begin.erlang"},"3":{"name":"punctuation.definition.string.begin.erlang"},"4":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string":{"patterns":[{"include":"#sigil-string-parenthesis"},{"include":"#sigil-string-parenthesis-verbatim"},{"include":"#sigil-string-curly-brackets"},{"include":"#sigil-string-curly-brackets-verbatim"},{"include":"#sigil-string-square-brackets"},{"include":"#sigil-string-square-brackets-verbatim"},{"include":"#sigil-string-less-greater"},{"include":"#sigil-string-less-greater-verbatim"},{"include":"#sigil-string-single-character"},{"include":"#sigil-string-single-character-verbatim"},{"include":"#sigil-string-single-quote"},{"include":"#sigil-string-single-quote-verbatim"},{"include":"#sigil-string-double-quote"},{"include":"#sigil-string-double-quote-verbatim"}]},"sigil-string-curly-brackets":{"name":"string.quoted.curly-brackets.sigil.erlang","begin":"(~[bs]?)([{])","end":"([}])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-curly-brackets-verbatim":{"name":"string.quoted.curly-brackets.sigil.erlang","begin":"(~[BS])([{])","end":"([}])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-double-quote":{"name":"string.quoted.double.sigil.erlang","begin":"(~[bs]?)(\")","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-double-quote-verbatim":{"name":"string.quoted.double.sigil.erlang","begin":"(~[BS])(\")","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-less-greater":{"name":"string.quoted.less-greater.sigil.erlang","begin":"(~[bs]?)(\u003c)","end":"(\u003e)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-less-greater-verbatim":{"name":"string.quoted.less-greater.sigil.erlang","begin":"(~[BS])(\u003c)","end":"(\u003e)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-parenthesis":{"name":"string.quoted.parenthesis.sigil.erlang","begin":"(~[bs]?)([(])","end":"([)])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-parenthesis-verbatim":{"name":"string.quoted.parenthesis.sigil.erlang","begin":"(~[BS])([(])","end":"([)])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-character":{"name":"string.quoted.other.sigil.erlang","begin":"(~[bs]?)([/\\|`#])","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-character-verbatim":{"name":"string.quoted.other.sigil.erlang","begin":"(~[BS])([/\\|`#])","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-quote":{"name":"string.quoted.single.sigil.erlang","begin":"(~[bs]?)(')","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-quote-verbatim":{"name":"string.quoted.single.sigil.erlang","begin":"(~[BS])(')","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-square-brackets":{"name":"string.quoted.square-brackets.sigil.erlang","begin":"(~[bs]?)([\\[])","end":"([\\]])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-square-brackets-verbatim":{"name":"string.quoted.square-brackets.sigil.erlang","begin":"(~[BS])([\\[])","end":"([\\]])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"string":{"name":"string.quoted.double.erlang","begin":"(\")","end":"(\")","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"symbolic-operator":{"name":"keyword.operator.symbolic.erlang","match":"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=\u003c|=|\u003c-|\u003c|\u003e=|\u003e|!|::|\\?="},"textual-operator":{"name":"keyword.operator.textual.erlang","match":"\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b"},"tuple":{"name":"meta.structure.tuple.erlang","begin":"(\\{)","end":"(\\})","patterns":[{"name":"punctuation.separator.tuple.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.tuple.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.tuple.end.erlang"}}},"variable":{"match":"(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)","captures":{"1":{"name":"variable.other.erlang"},"2":{"name":"variable.language.omitted.erlang"}}}}}
@@ -0,0 +1 @@
1
+ {"name":"flix","scopeName":"source.flix","patterns":[{"include":"#all_patterns"}],"repository":{"all_patterns":{"patterns":[{"include":"#constants"},{"include":"#keywords"},{"include":"#literal_char"},{"include":"#literal_string"},{"include":"#literal_dec"},{"include":"#literal_hex"},{"include":"#annotations"},{"include":"#types"},{"include":"#comments"}]},"annotations":{"patterns":[{"name":"storage.type.annotation.flix","match":"@Deprecated"},{"name":"storage.type.annotation.flix","match":"@Experimental"},{"name":"storage.type.annotation.flix","match":"@Internal"},{"name":"storage.type.annotation.flix","match":"@ParallelWhenPure"},{"name":"storage.type.annotation.flix","match":"@Parallel"},{"name":"storage.type.annotation.flix","match":"@LazyWhenPure"},{"name":"storage.type.annotation.flix","match":"@Lazy"},{"name":"storage.type.annotation.flix","match":"@Skip"},{"name":"storage.type.annotation.flix","match":"@Test"}]},"comments":{"patterns":[{"name":"comment.line.double-slash.flix","match":"//.*$"},{"name":"comment.block.flix","begin":"/\\*","end":"\\*/"}]},"constants":{"patterns":[{"name":"constant.language.unit.flix","match":"\\b\\(\\)\\b"},{"name":"constant.language.bool.flix","match":"\\b(true|false)\\b"},{"name":"constant.language.comparison.flix","match":"\\b(LessThan|EqualTo|GreaterThan)\\b"},{"name":"constant.language.nil.flix","match":"\\b(Nil)\\b"},{"name":"constant.language.null.flix","match":"\\b(null)\\b"},{"name":"constant.language.option.flix","match":"\\b(Some|None)\\b"},{"name":"constant.language.result.flix","match":"\\b(Ok|Err)\\b"}]},"keywords":{"patterns":[{"name":"keyword.control.choose.flix","match":"\\b(choose\\*|choose)\\b"},{"name":"keyword.control.debug.flix","match":"\\b(dbg)\\b"},{"name":"keyword.control.applicativefor.flix","match":"\\b(forA)\\b"},{"name":"keyword.control.monadicfor.flix","match":"\\b(forM)\\b"},{"name":"keyword.control.foreach.flix","match":"\\b(foreach)\\b"},{"name":"keyword.control.handler.flix","match":"\\b(handler)\\b"},{"name":"keyword.control.yield.flix","match":"\\b(yield)\\b"},{"name":"keyword.control.if.flix","match":"\\b(if|else)\\b"},{"name":"keyword.control.match.flix","match":"\\b(case|match|typematch|ematch)\\b"},{"name":"keyword.control.run.flix","match":"\\b(run)\\b"},{"name":"keyword.control.resume.flix","match":"\\b(resume)\\b"},{"name":"keyword.control.throw.flix","match":"\\b(throw)\\b"},{"name":"keyword.control.try.flix","match":"\\b(try|catch)\\b"},{"name":"keyword.control.spawn.flix","match":"\\b(spawn)\\b"},{"name":"keyword.control.par.flix","match":"\\b(par)\\b"},{"name":"keyword.control.unsafe.flix","match":"\\b(unsafe)\\b"},{"name":"keyword.control.ast.flix","match":"\\b(branch|jumpto)\\b"},{"name":"keyword.forall.flix","match":"\\b(forall)\\b"},{"name":"keyword.operator.bool.flix","match":"\\b(not|and|or)\\b"},{"name":"keyword.operator.fix.flix","match":"\\bfix\\b"},{"name":"keyword.operator.new.flix","match":"\\b(new)\\b"},{"name":"keyword.declaration.flix","match":"\\b(eff|def|redef|law|enum|case|type|alias|trait|instance|with|without|opaque|mod|struct|handler|xvar)\\b"},{"name":"keyword.expression.cast.flix","match":"\\b(checked_cast|checked_ecast|unchecked_cast|as)\\b"},{"name":"keyword.expression.discard.flix","match":"\\b(discard)\\b"},{"name":"keyword.expression.fixpoint.flix","match":"\\b(from|into|inject|project|psolve|solve|query|pquery|where|select)\\b"},{"name":"keyword.expression.force.flix","match":"\\b(force)\\b"},{"name":"keyword.expression.hole.flix","match":"(\\?\\?\\?|\\?[a-zA-Z0-9]+)"},{"name":"keyword.expression.import.flix","match":"\\b(import)\\b"},{"name":"keyword.expression.instanceof.flix","match":"\\b(instanceof)\\b"},{"name":"keyword.expression.let.flix","match":"\\b(let)\\b"},{"name":"keyword.expression.lazy.flix","match":"\\b(lazy)\\b"},{"name":"keyword.expression.region.flix","match":"\\b(region)\\b"},{"name":"keyword.use.flix","match":"\\b(use)\\b"},{"name":"keyword.mut.flix","match":"\\b(mut)\\b"},{"name":"keyword.symbols.flix","match":"(~\u003e|\u003c\\-|=\u003e)"},{"name":"keyword.arrow.function.flix","match":"(\\s\\-\u003e\\s|\\s\\-\u003e|\\-\u003e\\s)"},{"name":"keyword.operator.arrow.struct.flix","match":"\\-\u003e"},{"name":"keyword.control.semicolon.flix","match":";"},{"name":"storage.type.modifier.flix","match":"\\b(lawful|pub|sealed|static)\\b"}]},"literal_char":{"name":"string.quoted.single.flix","begin":"'","end":"'","patterns":[{"name":"constant.character.escape","match":"\\\\((u[0-9a-fA-F]{4})|.)"}]},"literal_dec":{"patterns":[{"name":"constant.numeric.decimal.flix","match":"\\b[0-9](_*[0-9])*\\.[0-9](_*[0-9])*(f32|f64)?\\b"},{"name":"constant.numeric.decimal.bigdecimal.flix","match":"\\b[0-9](_*[0-9])*\\.[0-9](_*[0-9])*(ff)?\\b"},{"name":"constant.numeric.decimal.flix","match":"(?\u003c!\\$)\\b[0-9](_*[0-9])*(i8|i16|i32|i64|ii)?\\b"}]},"literal_hex":{"name":"constant.numeric.hex.flix","match":"\\b0x[a-fA-F0-9](_*[a-fA-F0-9])*(i8|i16|i32|i64|ii)?\\b"},"literal_string":{"name":"string.quoted.double.flix","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.flix","match":"\\\\((u[0-9a-fA-F]{4})|.)"},{"contentName":"meta.embedded.line.flix","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#all_patterns"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.flix"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.flix"}}}]},"types":{"patterns":[{"name":"entity.name.type","match":"\\b(Unit|Bool|Char|Float32|Float64|Int8|Int16|Int32|Int64|BigInt|String)\\b"}]}}}
@@ -1 +1 @@
1
- {"name":"fsharp","scopeName":"source.fsharp","patterns":[{"include":"#compiler_directives"},{"include":"#comments"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#abstract_definition"},{"include":"#attributes"},{"include":"#modules"},{"include":"#anonymous_functions"},{"include":"#du_declaration"},{"include":"#record_declaration"},{"include":"#records"},{"include":"#strp_inlined"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"repository":{"abstract_definition":{"name":"abstract.definition.fsharp","begin":"\\b(static\\s+)?(abstract)\\s+(member)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(\u003c)?","end":"\\s*(with)\\b|=|$","patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"match":"(?!with|get|set\\b)\\s*([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.fsharp"},"4":{"name":"support.function.attribute.fsharp"},"5":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},"anonymous_functions":{"patterns":[{"name":"function.anonymous","begin":"\\b(fun)\\b","end":"(-\u003e)","patterns":[{"include":"#comments"},{"begin":"(\\()","end":"\\s*(?=(-\u003e))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}},{"include":"#variables"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}}]},"anonymous_record_declaration":{"begin":"(\\{\\|)","end":"(\\|\\})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(:)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},"attributes":{"patterns":[{"name":"support.function.attribute.fsharp","begin":"\\[\\\u003c","end":"\\\u003e\\]|\\]","patterns":[{"include":"$self"}]}]},"cexprs":{"patterns":[{"name":"cexpr.fsharp","match":"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)","captures":{"0":{"name":"keyword.fsharp"}}}]},"chars":{"patterns":[{"name":"char.fsharp","match":"('\\\\?.')","captures":{"1":{"name":"string.quoted.single.fsharp"}}}]},"comments":{"patterns":[{"name":"comment.literate.command.fsharp","match":"(\\(\\*{3}.*\\*{3}\\))","beginCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp","begin":"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$","while":"^(?!\\s*(\\*)+\\)\\s*$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.fsharp","begin":"(\\(\\*(?!\\)))","end":"(\\*+\\))","patterns":[{"name":"fast-capture.comment.line.double-slash.fsharp","match":"//"},{"name":"fast-capture.comment.line.mul-operator.fsharp","match":"\\(\\*\\)"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp.end","match":"((?\u003c!\\()(\\*)+\\))","captures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.line.markdown.fsharp","begin":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])///(?!/)","while":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])///(?!/)","patterns":[{"include":"source.gfm"}]},{"name":"comment.line.double-slash.fsharp","match":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])//(.*$)"}]},"common_binding_definition":{"patterns":[{"include":"#comments"},{"include":"#attributes"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(:)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)","end":"(?=:)","patterns":[{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"match":"([[:alpha:]0-9'^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(:)\\s*([?[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"match":"(-\u003e)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*","captures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))*)","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*","end":"(?==)|(?=\\))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\u003c+(?![[:space:]]*\\)))","end":"((?\u003c!:)\u003e|\\))","patterns":[{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"({)","end":"(})","patterns":[{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#definition"},{"include":"#variables"},{"include":"#keywords"}]},"common_declaration":{"patterns":[{"begin":"\\s*(-\u003e)\\s*([[:alpha:]0-9'`^._ ]+)(\u003c)","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(-\u003e)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(\u003c))","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"keyword.symbol.fsharp"},"5":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"compiler_directives":{"patterns":[{"name":"keyword.control.directive.fsharp","match":"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)"}]},"constants":{"patterns":[{"name":"keyword.symbol.fsharp","match":"\\(\\)"},{"name":"constant.numeric.float.fsharp","match":"\\b-?[0-9][0-9_]*((\\.(?!\\.)([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))"},{"name":"constant.numeric.integer.nativeint.fsharp","match":"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))"},{"name":"constant.language.boolean.fsharp","match":"\\b(true|false)\\b"},{"name":"constant.other.fsharp","match":"\\b(null|void)\\b"}]},"definition":{"patterns":[{"name":"binding.fsharp","begin":"\\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*((with\\b)|(=|\\n+=|(?\u003c=\\=)))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=)","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"(?\u003c=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=|\\n+=|(?\u003c=\\=))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"4":{"name":"variable.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(static val mutable|val mutable|val inline|val)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\n$","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(new)\\b\\s+(\\()","end":"(\\))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"double_tick":{"patterns":[{"name":"variable.other.binding.fsharp","match":"(``)([^`]*)(``)","captures":{"1":{"name":"string.quoted.single.fsharp"},"2":{"name":"variable.other.binding.fsharp"},"3":{"name":"string.quoted.single.fsharp"}}}]},"du_declaration":{"patterns":[{"name":"du_declaration.fsharp","begin":"\\b(of)\\b","end":"$|(\\|)","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)","captures":{"1":{"name":"variable.parameter.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"match":"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"generic_declaration":{"patterns":[{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.symbol.fsharp","match":":"},{"include":"#constants"},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"(\u003e)","patterns":[{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"},{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"match":"(\\|)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"keywords":{"patterns":[{"name":"storage.modifier","match":"\\b(private|public|internal)\\b"},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.control","match":"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b"},{"name":"keyword.symbol.arrow.fsharp","match":"(\\-\u003e|\\\u003c\\-)"},{"name":"keyword.symbol.fsharp","match":"[.?]*(\u0026\u0026\u0026|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~\\-|\u003c\u003c\u003c|\u003e\u003e\u003e|\\|\u003e|:\u003e|:\\?\u003e|:|\\[|\\]|\\;|\u003c\u003e|=|@|\\|\\||\u0026\u0026|\u0026|%|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003c|\\\u003c\\=|\\(|\\)|\\\u003c\\\u003c)[.?]*"}]},"member_declaration":{"patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`\u003c\u003e._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}]},"modules":{"patterns":[{"name":"entity.name.section.fsharp","begin":"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|``][[:alpha:]0-9'_. ]*)","end":"(\\s?=|\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"storage.modifier.fsharp"},"4":{"name":"entity.name.section.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"namespace.open.fsharp","begin":"\\b(open type|open)\\s+([[:alpha:]|``][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"name":"namespace.alias.fsharp","begin":"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.type.namespace.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.section.fsharp"}}}]},"record_declaration":{"patterns":[{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`\u003c\u003e^._]*)\\s*((?\u003c!:):(?!:))\\s*","end":"$|(;|\\})","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#attributes"},{"include":"#anonymous_functions"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"record_signature":{"patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"begin":"({)","end":"(})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"records":{"patterns":[{"name":"record.fsharp","begin":"\\b(type)[\\s]+(private|internal|public)?\\s*","end":"\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))","patterns":[{"include":"#comments"},{"include":"#attributes"},{"match":"([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"((?\u003c!:)\u003e)","patterns":[{"match":"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(static member|member|new)","captures":{"1":{"name":"keyword.fsharp"}}},{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(private|internal|public)","captures":{"1":{"name":"storage.modifier.fsharp"}}},{"begin":"(\\()","end":"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"storage.modifier.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.fsharp"},"5":{"name":"variable.parameter.fsharp"},"6":{"name":"keyword.symbol.fsharp"},"7":{"name":"keyword.symbol.fsharp"}}}]},"string_formatter":{"patterns":[{"name":"entity.name.type.format.specifier.fsharp","match":"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))","captures":{"1":{"name":"keyword.format.specifier.fsharp"}}}]},"strings":{"patterns":[{"name":"string.quoted.literal.fsharp","begin":"(?=[^\\\\])(@\")","end":"(\")(?!\")","patterns":[{"name":"constant.character.string.escape.fsharp","match":"\"(\")"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.triple.fsharp","begin":"(?=[^\\\\])(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.double.fsharp","begin":"(?=[^\\\\])(\")","end":"(\")","patterns":[{"name":"punctuation.separator.string.ignore-eol.fsharp","match":"\\\\$[ \\t]*"},{"name":"constant.character.string.escape.fsharp","match":"\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))"},{"name":"invalid.illegal.character.string.fsharp","match":"\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])"},{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}}]},"strp_inlined":{"patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"strp_inlined_body":{"patterns":[{"include":"#comments"},{"include":"#anonymous_functions"},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(static member|member)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)","captures":{"1":{"name":"keyword.fsharp"},"2":{"name":"variable.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#keywords"},{"include":"#text"},{"include":"#definition"},{"include":"#attributes"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}]},"text":{"patterns":[{"name":"text.fsharp","match":"\\\\"}]},"tuple_signature":{"patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"variables":{"patterns":[{"name":"keyword.symbol.fsharp","match":"\\(\\)"},{"match":"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`\u003c\u003e^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}}]}}}
1
+ {"name":"fsharp","scopeName":"source.fsharp","patterns":[{"include":"#compiler_directives"},{"include":"#comments"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#abstract_definition"},{"include":"#attributes"},{"include":"#modules"},{"include":"#anonymous_functions"},{"include":"#du_declaration"},{"include":"#record_declaration"},{"include":"#records"},{"include":"#strp_inlined"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"repository":{"abstract_definition":{"name":"abstract.definition.fsharp","begin":"\\b(static\\s+)?(abstract)\\s+(member)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(\u003c)?","end":"\\s*(with)\\b|=|$","patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"match":"(?!with|get|set\\b)\\s*([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.fsharp"},"4":{"name":"support.function.attribute.fsharp"},"5":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},"anonymous_functions":{"patterns":[{"name":"function.anonymous","begin":"\\b(fun)\\b","end":"(-\u003e)","patterns":[{"include":"#comments"},{"begin":"(\\()","end":"\\s*(?=(-\u003e))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}},{"include":"#variables"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}}]},"anonymous_record_declaration":{"begin":"(\\{\\|)","end":"(\\|\\})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(:)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},"attributes":{"patterns":[{"name":"support.function.attribute.fsharp","begin":"\\[\\\u003c","end":"\\\u003e\\]|\\]","patterns":[{"include":"$self"}]}]},"cexprs":{"patterns":[{"name":"cexpr.fsharp","match":"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)","captures":{"0":{"name":"keyword.fsharp"}}}]},"chars":{"patterns":[{"name":"char.fsharp","match":"('\\\\?.')","captures":{"1":{"name":"string.quoted.single.fsharp"}}}]},"comments":{"patterns":[{"name":"comment.block.markdown.fsharp","begin":"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$","while":"^(?!\\s*(\\*)+\\)\\s*$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"whileCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.fsharp","begin":"(\\(\\*(?!\\)))","end":"(\\*+\\))","patterns":[{"name":"fast-capture.comment.line.double-slash.fsharp","match":"//"},{"name":"fast-capture.comment.line.mul-operator.fsharp","match":"\\(\\*\\)"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp.end","match":"((?\u003c!\\()(\\*)+\\))","captures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.line.markdown.fsharp","begin":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])///(?!/)","while":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])///(?!/)","patterns":[{"include":"source.gfm"}]},{"name":"comment.line.double-slash.fsharp","match":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])//(.*$)"}]},"common_binding_definition":{"patterns":[{"include":"#comments"},{"include":"#attributes"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(:)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)","end":"(?=:)","patterns":[{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"match":"([[:alpha:]0-9'^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(:)\\s*([?[:alpha:]0-9'`^._ ]+)(\\|\\s*(null))?","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"match":"(-\u003e)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*","captures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))*)","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*","end":"(?==)|(?=\\))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\u003c+(?![[:space:]]*\\)))","end":"((?\u003c!:)\u003e|\\))","patterns":[{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"({)","end":"(})","patterns":[{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#definition"},{"include":"#variables"},{"include":"#keywords"}]},"common_declaration":{"patterns":[{"begin":"\\s*(-\u003e)\\s*([[:alpha:]0-9'`^._ ]+)(\u003c)","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(-\u003e)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(\u003c))","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"keyword.symbol.fsharp"},"5":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"compiler_directives":{"patterns":[{"name":"keyword.control.directive.fsharp","match":"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn|#warnon)"}]},"constants":{"patterns":[{"name":"keyword.symbol.fsharp","match":"\\(\\)"},{"name":"constant.numeric.float.fsharp","match":"\\b-?[0-9][0-9_]*((\\.(?!\\.)([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))"},{"name":"constant.numeric.integer.nativeint.fsharp","match":"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))"},{"name":"constant.language.boolean.fsharp","match":"\\b(true|false)\\b"},{"name":"constant.other.fsharp","match":"\\b(null|void)\\b"}]},"definition":{"patterns":[{"name":"binding.fsharp","begin":"\\b(let mutable|static let mutable|static let|let inline|let|and inline|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*((with inline|with)\\b|(=|\\n+=|(?\u003c=\\=)))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=)","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"(?\u003c=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=|\\n+=|(?\u003c=\\=))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"4":{"name":"variable.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(static val mutable|val mutable|val inline|val)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\n$","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(new)\\b\\s+(\\()","end":"(\\))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"double_tick":{"patterns":[{"name":"variable.other.binding.fsharp","match":"(``)([^`]*)(``)","captures":{"1":{"name":"string.quoted.single.fsharp"},"2":{"name":"variable.other.binding.fsharp"},"3":{"name":"string.quoted.single.fsharp"}}}]},"du_declaration":{"patterns":[{"name":"du_declaration.fsharp","begin":"\\b(of)\\b","end":"$|(\\|)","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)","captures":{"1":{"name":"variable.parameter.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"match":"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"generic_declaration":{"patterns":[{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.symbol.fsharp","match":":"},{"include":"#constants"},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"(\u003e)","patterns":[{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"},{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"match":"(\\|)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"keywords":{"patterns":[{"name":"storage.modifier","match":"\\b(private|public|internal)\\b"},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.control","match":"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b"},{"name":"keyword.symbol.arrow.fsharp","match":"(\\-\u003e|\\\u003c\\-)"},{"name":"keyword.symbol.fsharp","match":"[.?]*(\u0026\u0026\u0026|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~\\-|\u003c\u003c\u003c|\u003e\u003e\u003e|\\|\u003e|:\u003e|:\\?\u003e|:|\\[|\\]|\\;|\u003c\u003e|=|@|\\|\\||\u0026\u0026|\u0026|%|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003c|\\\u003c\\=|\\(|\\)|\\\u003c\\\u003c)[.?]*"}]},"member_declaration":{"patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`\u003c\u003e._ ]+)){0,1}(\\|\\s*(null))?","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"},"7":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}]},"modules":{"patterns":[{"name":"entity.name.section.fsharp","begin":"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|``][[:alpha:]0-9'_. ]*)","end":"(\\s?=|\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"storage.modifier.fsharp"},"4":{"name":"entity.name.section.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"namespace.open.fsharp","begin":"\\b(open type|open)\\s+([[:alpha:]|``][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"name":"namespace.alias.fsharp","begin":"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.type.namespace.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.section.fsharp"}}}]},"record_declaration":{"patterns":[{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`\u003c\u003e^._]*)\\s*((?\u003c!:):(?!:))\\s*","end":"$|(;|\\})","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#attributes"},{"include":"#anonymous_functions"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"record_signature":{"patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"begin":"({)","end":"(})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"records":{"patterns":[{"name":"record.fsharp","begin":"\\b(type)[\\s]+(private|internal|public)?\\s*","end":"\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))","patterns":[{"include":"#comments"},{"include":"#attributes"},{"match":"([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"((?\u003c!:)\u003e)","patterns":[{"match":"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(static member|member|new)","captures":{"1":{"name":"keyword.fsharp"}}},{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(private|internal|public)","captures":{"1":{"name":"storage.modifier.fsharp"}}},{"begin":"(\\()","end":"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"storage.modifier.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.fsharp"},"5":{"name":"variable.parameter.fsharp"},"6":{"name":"keyword.symbol.fsharp"},"7":{"name":"keyword.symbol.fsharp"}}}]},"string_formatter":{"patterns":[{"name":"entity.name.type.format.specifier.fsharp","match":"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))","captures":{"1":{"name":"keyword.format.specifier.fsharp"}}}]},"strings":{"patterns":[{"name":"string.quoted.literal.fsharp","begin":"(?=[^\\\\])(@\")","end":"(\")(?!\")","patterns":[{"name":"constant.character.string.escape.fsharp","match":"\"(\")"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.triple.fsharp","begin":"(?=[^\\\\])(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.double.fsharp","begin":"(?=[^\\\\])(\")","end":"(\")","patterns":[{"name":"punctuation.separator.string.ignore-eol.fsharp","match":"\\\\$[ \\t]*"},{"name":"constant.character.string.escape.fsharp","match":"\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))"},{"name":"invalid.illegal.character.string.fsharp","match":"\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])"},{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}}]},"strp_inlined":{"patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"strp_inlined_body":{"patterns":[{"include":"#comments"},{"include":"#anonymous_functions"},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(static member|member)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)","captures":{"1":{"name":"keyword.fsharp"},"2":{"name":"variable.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#keywords"},{"include":"#text"},{"include":"#definition"},{"include":"#attributes"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}]},"text":{"patterns":[{"name":"text.fsharp","match":"\\\\"}]},"tuple_signature":{"patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"variables":{"patterns":[{"name":"keyword.symbol.fsharp","match":"\\(\\)"},{"match":"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`\u003c\u003e^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}}]}}}