github-linguist 7.29.0 → 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +7 -3
  3. data/bin/github-linguist +6 -3
  4. data/grammars/etc.json +1 -1
  5. data/grammars/inline.edgeql.json +1 -1
  6. data/grammars/inline.graphql.json +1 -1
  7. data/grammars/inline.peggy.json +1 -0
  8. data/grammars/markdown.gleam.codeblock.json +1 -0
  9. data/grammars/markdown.move.codeblock.json +1 -1
  10. data/grammars/markdown.rego.codeblock.json +1 -0
  11. data/grammars/mdx.move.codeblock.json +1 -0
  12. data/grammars/source.8xp.json +1 -1
  13. data/grammars/source.Caddyfile-test.json +1 -0
  14. data/grammars/source.Caddyfile.json +1 -0
  15. data/grammars/source.abl.json +1 -1
  16. data/grammars/source.astro.json +1 -1
  17. data/grammars/source.bicep.json +1 -1
  18. data/grammars/source.bms.json +1 -1
  19. data/grammars/source.bqn.json +1 -0
  20. data/grammars/source.brs.json +1 -1
  21. data/grammars/source.cairo.json +1 -1
  22. data/grammars/source.cairo0.json +1 -0
  23. data/grammars/source.cl.json +1 -1
  24. data/grammars/source.clar.json +1 -1
  25. data/grammars/source.cmd.json +1 -1
  26. data/grammars/source.cobol.json +1 -1
  27. data/grammars/source.commonlisp.json +1 -1
  28. data/grammars/source.cs.json +1 -1
  29. data/grammars/source.curlrc.json +1 -1
  30. data/grammars/source.curry.json +1 -1
  31. data/grammars/source.cylc.json +1 -0
  32. data/grammars/source.d2.json +1 -1
  33. data/grammars/source.dart.json +1 -1
  34. data/grammars/source.dds.dspf.json +1 -1
  35. data/grammars/source.dds.icff.json +1 -1
  36. data/grammars/source.dds.lf.json +1 -1
  37. data/grammars/source.dds.pf.json +1 -1
  38. data/grammars/source.dds.prtf.json +1 -1
  39. data/grammars/source.dune.json +1 -0
  40. data/grammars/source.elvish.json +1 -1
  41. data/grammars/source.firrtl.json +1 -0
  42. data/grammars/source.fsharp.json +1 -1
  43. data/grammars/source.gdscript.json +1 -1
  44. data/grammars/source.generic-db.json +1 -1
  45. data/grammars/source.gitconfig.json +1 -1
  46. data/grammars/source.gjs.json +1 -1
  47. data/grammars/source.gleam.json +1 -1
  48. data/grammars/source.gts.json +1 -1
  49. data/grammars/source.hcl.json +1 -1
  50. data/grammars/source.hcl.terraform.json +1 -1
  51. data/grammars/source.hgignore.json +1 -1
  52. data/grammars/source.hosts.json +1 -1
  53. data/grammars/source.hx.json +1 -1
  54. data/grammars/source.iCalendar.json +1 -0
  55. data/grammars/source.ice.json +1 -1
  56. data/grammars/source.julia.json +1 -1
  57. data/grammars/source.just.json +1 -1
  58. data/grammars/source.kotlin.json +1 -1
  59. data/grammars/source.lcb.json +1 -0
  60. data/grammars/source.lilypond.json +1 -1
  61. data/grammars/source.livecodescript.json +1 -0
  62. data/grammars/source.lua.json +1 -1
  63. data/grammars/source.luau.json +1 -0
  64. data/grammars/source.m2.json +1 -1
  65. data/grammars/source.markdown.caddy.codeblock.json +1 -0
  66. data/grammars/source.matlab.json +1 -1
  67. data/grammars/source.mcfunction.json +1 -1
  68. data/grammars/source.mdx.json +1 -1
  69. data/grammars/source.mo.json +1 -1
  70. data/grammars/source.mojo.json +1 -1
  71. data/grammars/source.move.json +1 -1
  72. data/grammars/source.nanorc.json +1 -1
  73. data/grammars/source.nim.json +1 -1
  74. data/grammars/source.nr.json +1 -0
  75. data/grammars/source.nushell.json +1 -1
  76. data/grammars/source.odin.json +1 -1
  77. data/grammars/source.p4.json +1 -1
  78. data/grammars/source.peggy.json +1 -0
  79. data/grammars/source.pkl.json +1 -0
  80. data/grammars/source.polar.json +1 -1
  81. data/grammars/source.powerbuilder.json +1 -0
  82. data/grammars/source.qsharp.json +1 -1
  83. data/grammars/source.rascal.json +1 -1
  84. data/grammars/source.rego.json +1 -1
  85. data/grammars/source.rescript.json +1 -1
  86. data/grammars/source.ron.json +1 -0
  87. data/grammars/source.rpgle.json +1 -1
  88. data/grammars/source.rust.json +1 -1
  89. data/grammars/source.sentinel.json +1 -1
  90. data/grammars/source.solidity.json +1 -1
  91. data/grammars/source.sourcepawn.json +1 -1
  92. data/grammars/source.sqf.json +1 -1
  93. data/grammars/source.stan.json +1 -1
  94. data/grammars/source.swift.json +1 -1
  95. data/grammars/source.sy.json +1 -1
  96. data/grammars/source.templ.json +1 -0
  97. data/grammars/source.vba.json +1 -1
  98. data/grammars/source.vcard.json +1 -0
  99. data/grammars/source.wdl.json +1 -1
  100. data/grammars/source.wsd.json +1 -1
  101. data/grammars/text.adblock.json +1 -1
  102. data/grammars/text.crontab.json +1 -0
  103. data/grammars/text.html.jte.json +1 -0
  104. data/grammars/text.html.statamic.json +1 -1
  105. data/grammars/text.md.json +1 -1
  106. data/grammars/text.mdx.astro.codeblock.json +1 -0
  107. data/grammars/text.valve-cfg.json +1 -1
  108. data/grammars/version +1 -1
  109. data/lib/linguist/VERSION +1 -1
  110. data/lib/linguist/classifier.rb +315 -106
  111. data/lib/linguist/generated.rb +33 -4
  112. data/lib/linguist/generic.yml +1 -0
  113. data/lib/linguist/heuristics.rb +6 -6
  114. data/lib/linguist/heuristics.yml +63 -4
  115. data/lib/linguist/languages.json +1 -1
  116. data/lib/linguist/languages.yml +224 -4
  117. data/lib/linguist/repository.rb +8 -6
  118. data/lib/linguist/samples.json +1 -1
  119. data/lib/linguist/samples.rb +9 -1
  120. data/lib/linguist/sha256.rb +1 -1
  121. metadata +29 -7
  122. data/grammars/inline.graphql.rb.json +0 -1
  123. data/grammars/markdown.mcfunction.codeblock.json +0 -1
  124. data/grammars/mdx.LANGUAGE.codeblock.json +0 -1
  125. data/grammars/source.terraform.json +0 -1
@@ -1 +1 @@
1
- {"name":"Motoko","scopeName":"source.mo","patterns":[{"include":"#shebang-line"},{"include":"#comment"},{"include":"#attribute"},{"include":"#literal"},{"include":"#operator"},{"include":"#declaration"},{"include":"#storage-type"},{"include":"#keyword"},{"include":"#type"},{"include":"#boolean"}],"repository":{"access-level-modifier":{"name":"keyword.other.access-level-modifier.motoko","match":"\\b(public|system|private)\\b"},"arithmetic-operator":{"name":"keyword.operator.arithmetic.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+|\\-|\\*|\\/)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"array-type":{"name":"meta.array.motoko","begin":"\\b(Array)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.array.motoko"},"2":{"name":"punctuation.array.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.array.end.motoko"}}},"assignment-operator":{"name":"keyword.operator.assignment.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+|\\-|\\*|\\/|%|\u003c\u003c\u003e?|\u003c?\u003e\u003e|\u0026|\\^|\\||\u0026\u0026|\\|\\|)?=(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"async-await-keyword":{"name":"keyword.async-await.motoko","match":"\\b(async|await)\\b"},"attribute":{"name":"meta.attribute.motoko","patterns":[{"contentName":"meta.attribute.arguments.motoko","begin":"((@)(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B))(\\()","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.motoko"},"2":{"name":"punctuation.definition.attribute.motoko"},"3":{"name":"punctuation.definition.attribute-arguments.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.attribute-arguments.end.motoko"}}},{"match":"((@)(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B))","captures":{"1":{"name":"storage.modifier.attribute.motoko"},"2":{"name":"punctuation.definition.attribute.motoko"}}}]},"bitwise-operator":{"name":"keyword.operator.bitwise.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\u0026|\\||\\^|\u003c\u003c\u003e?|\u003c?\u003e\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"block-comment":{"name":"comment.block.motoko","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.motoko"}}},"boolean":{"name":"keyword.constant.boolean.motoko","match":"\\b(true|false)\\b"},"branch-statement-keyword":{"name":"keyword.control.branch.motoko","patterns":[{"include":"#if-statement-keyword"},{"include":"#switch-statement-keyword"}]},"char-literal":{"name":"meta.literal.char.motoko","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.motoko","match":"\\\\([0tnr\\\"\\'\\\\]|x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8})"},{"name":"invalid.illegal.motoko","match":"(\\'|\\\\)"},{"name":"string.quoted.single.motoko","match":"(.)"}],"beginCaptures":{"0":{"name":"string.quoted.double.motoko"}},"endCaptures":{"0":{"name":"string.quoted.single.motoko"}}},"code-block":{"begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.code-block.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.code-block.end.motoko"}}},"comment":{"patterns":[{"include":"#documentation-comment"},{"include":"#block-comment"},{"include":"#in-line-comment"}]},"comparative-operator":{"name":"keyword.operator.comparative.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])((=|!)==?|(\u003c|\u003e)=?|~=)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"control-transfer-statement-keyword":{"name":"keyword.control.transfer.motoko","match":"\\b(continue|break|return)\\b"},"custom-operator":{"patterns":[{"name":"keyword.operator.custom.prefix.unary.motoko","match":"(?\u003c=[\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?![\\s)\\]},;:])"},{"name":"keyword.operator.custom.postfix.unary.motoko","match":"(?\u003c![\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?![\\s)\\]},;:\\.])"},{"name":"keyword.operator.custom.binary.motoko","match":"(?\u003c=[\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?=[\\s)\\]},;:])"}]},"declaration":{"name":"meta.declaration.motoko","patterns":[{"include":"#import-declaration"}]},"declaration-modifier":{"name":"keyword.other.declaration-modifier.motoko","match":"\\b(class|object|type|shared)\\b"},"dictionary-type":{"name":"meta.dictionary.motoko","begin":"\\b(Dictionary)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.dictionary.motoko"},"2":{"name":"punctuation.dictionary.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.dictionary.end.motoko"}}},"documentation-comment":{"name":"comment.block.documentation.motoko","begin":"/\\*\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.documentation.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.documentation.end.motoko"}}},"floating-point-literal":{"name":"constant.numeric.floating-point.motoko","patterns":[{"match":"\\b([0-9][0-9_]*)(\\.([0-9][0-9_]*))?([eE][+\\-]?([0-9][0-9_]*))?\\b"},{"match":"\\b(0x[[:xdigit:]][[[:xdigit:]]_]*)(\\.(0x[[:xdigit:]][[[:xdigit:]]_]*))?([pP][+\\-]?(0x[[:xdigit:]][[[:xdigit:]]_]*))\\b"}]},"function-body":{"name":"meta.function-body.motoko","patterns":[{"include":"#code-block"}]},"function-declaration":{"name":"meta.function-declaration.motoko","begin":"\\b(func)\\s+(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+)\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})","patterns":[{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#function-body"}],"beginCaptures":{"1":{"name":"storage.type.function.motoko"},"2":{"name":"entity.type.function.motoko"}}},"function-result":{"name":"meta.function-result.motoko","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"\\s*(?=\\{)","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.motoko"}}},"generic-parameter-clause":{"name":"meta.generic-parameter-clause.motoko","begin":"(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.generic-parameter-clause.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.generic-parameter-clause.end.motoko"}}},"identifier":{"name":"meta.identifier.motoko","match":"(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B)"},"if-statement-keyword":{"name":"keyword.control.if.motoko","match":"\\b(if|else)\\b"},"import-declaration":{"name":"meta.import.motoko","match":"\\b(import)\\s+(?:(class|var|func)\\s+)?((?:\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+)(?:\\.(?:\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+))*)","captures":{"1":{"name":"keyword.other.import.motoko"},"2":{"name":"storage.modifier.motoko"},"3":{"name":"support.type.module.import.motoko"}}},"in-line-comment":{"name":"comment.line.double-slash.motoko","match":"(//).*","captures":{"1":{"name":"punctuation.definition.comment.line.double-slash.motoko"}}},"increment-decrement-operator":{"name":"keyword.operator.increment-or-decrement.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+\\+|\\-\\-)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"integer-literal":{"name":"constant.numeric.integer.motoko","patterns":[{"name":"constant.numeric.integer.binary.motoko","match":"(\\B\\-|\\b)(0b[01][01_]*)\\b"},{"name":"constant.numeric.integer.octal.motoko","match":"(\\B\\-|\\b)(0o[0-7][0-7_]*)\\b"},{"name":"constant.numeric.integer.decimal.motoko","match":"(\\B\\-|\\b)([0-9][0-9_]*)\\b"},{"name":"constant.numeric.integer.hexadecimal.motoko","match":"(\\B\\-|\\b)(0x[[:xdigit:]][[[:xdigit:]]_]*)\\b"}]},"keyword":{"patterns":[{"include":"#branch-statement-keyword"},{"include":"#control-transfer-statement-keyword"},{"include":"#loop-statement-keyword"},{"include":"#catch-statement-keyword"},{"include":"#async-await-keyword"},{"include":"#operator-declaration-modifier"},{"include":"#declaration-modifier"},{"include":"#access-level-modifier"},{"name":"keyword.declaration.motoko","match":"\\b(actor|and|class|func|import|let|module|not|or)\\b"},{"name":"keyword.statement.motoko","match":"\\b(assert|break|case|continue|debug|debug_show|else|if|ignore|in|for|label|null|return|switch|while|loop|try|throw|catch|do|to_candid|from_candid|with)\\b"},{"name":"keyword.other.motoko","match":"\\b(flexible|query|stable|composite)\\b"}]},"literal":{"patterns":[{"include":"#integer-literal"},{"include":"#floating-point-literal"},{"include":"#nil-literal"},{"include":"#string-literal"},{"include":"#char-literal"}]},"logical-operator":{"name":"keyword.operator.logical.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(!|\u0026\u0026|\\|\\|)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"loop-statement-keyword":{"name":"keyword.control.loop.motoko","match":"\\b(while|repeat|for|in|loop)\\b"},"null-literal":{"name":"constant.null.motoko","match":"\\bnull\\b"},"operator":{"patterns":[{"include":"#comparative-operator"},{"include":"#assignment-operator"},{"include":"#logical-operator"},{"include":"#remainder-operator"},{"include":"#increment-decrement-operator"},{"include":"#overflow-operator"},{"include":"#range-operator"},{"include":"#bitwise-operator"},{"include":"#arithmetic-operator"},{"include":"#ternary-operator"},{"include":"#type-casting-operator"},{"include":"#custom-operator"}]},"optional-type":{"name":"meta.optional.motoko","match":"\\b(Optional)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.optional.motoko"},"2":{"name":"punctuation.optional.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.optional.end.motoko"}}},"overflow-operator":{"name":"keyword.operator.overflow.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\\u0026(\\+|\\-|\\*|\\/|%)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"parameter-clause":{"name":"meta.parameter-clause.motoko","begin":"(\\()","end":"(\\))","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.function-arguments.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.function-arguments.end.motoko"}}},"primitive-type":{"name":"support.type.motoko","match":"\\b(Blob|Bool|Char|Float|(Int|Nat)(8|16|32|64)?|Principal|Text|Error)\\b"},"protocol-composition-type":{"name":"meta.protocol.motoko","match":"\\b(protocol)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.protocol.motoko"},"2":{"name":"punctuation.protocol.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.protocol.end.motoko"}}},"range-operator":{"name":"keyword.operator.range.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\.\\.(?:\\.)?(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"remainder-operator":{"name":"keyword.operator.remainder.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\%(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"resolved-type":{"name":"support.type.motoko","match":"\\b[A-Z].*?\\b"},"shebang-line":{"name":"comment.line.shebang.motoko","match":"^(#!).*$","captures":{"1":{"name":"punctuation.definition.comment.line.shebang.motoko"}}},"storage-type":{"name":"storage.type.motoko","match":"\\b(var|func|let|class|module|actor)\\b"},"string-literal":{"name":"meta.literal.string.motoko","begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.motoko","match":"\\\\([0tnr\\\"\\'\\\\]|x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8})"},{"name":"invalid.illegal.motoko","match":"(\\\"|\\\\)"},{"name":"string.quoted.double.motoko","match":"(.)"}],"beginCaptures":{"0":{"name":"string.quoted.double.motoko"}},"endCaptures":{"0":{"name":"string.quoted.double.motoko"}}},"switch-statement-keyword":{"name":"keyword.control.switch.motoko","match":"\\b(switch|case)\\b"},"type":{"patterns":[{"include":"#primitive-type"},{"include":"#resolved-type"},{"include":"#optional-type"},{"include":"#protocol-composition-type"}]}}}
1
+ {"name":"Motoko","scopeName":"source.mo","patterns":[{"include":"#shebang-line"},{"include":"#comment"},{"include":"#attribute"},{"include":"#literal"},{"include":"#operator"},{"include":"#declaration"},{"include":"#storage-type"},{"include":"#keyword"},{"include":"#type"},{"include":"#boolean"}],"repository":{"access-level-modifier":{"name":"keyword.other.access-level-modifier.motoko","match":"\\b(public|system|private)\\b"},"arithmetic-operator":{"name":"keyword.operator.arithmetic.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+|\\-|\\*|\\/)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"array-type":{"name":"meta.array.motoko","begin":"\\b(Array)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.array.motoko"},"2":{"name":"punctuation.array.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.array.end.motoko"}}},"assignment-operator":{"name":"keyword.operator.assignment.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+|\\-|\\*|\\/|%|\u003c\u003c\u003e?|\u003c?\u003e\u003e|\u0026|\\^|\\||\u0026\u0026|\\|\\|)?=(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"async-await-keyword":{"name":"keyword.async-await.motoko","match":"\\b(async|await)\\b"},"attribute":{"name":"meta.attribute.motoko","patterns":[{"contentName":"meta.attribute.arguments.motoko","begin":"((@)(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B))(\\()","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.motoko"},"2":{"name":"punctuation.definition.attribute.motoko"},"3":{"name":"punctuation.definition.attribute-arguments.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.attribute-arguments.end.motoko"}}},{"match":"((@)(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B))","captures":{"1":{"name":"storage.modifier.attribute.motoko"},"2":{"name":"punctuation.definition.attribute.motoko"}}}]},"bitwise-operator":{"name":"keyword.operator.bitwise.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\u0026|\\||\\^|\u003c\u003c\u003e?|\u003c?\u003e\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"block-comment":{"name":"comment.block.motoko","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.motoko"}}},"boolean":{"name":"keyword.constant.boolean.motoko","match":"\\b(true|false)\\b"},"branch-statement-keyword":{"name":"keyword.control.branch.motoko","patterns":[{"include":"#if-statement-keyword"},{"include":"#switch-statement-keyword"}]},"char-literal":{"name":"meta.literal.char.motoko","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.motoko","match":"\\\\([0tnr\\\"\\'\\\\]|x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8})"},{"name":"invalid.illegal.motoko","match":"(\\'|\\\\)"},{"name":"string.quoted.single.motoko","match":"(.)"}],"beginCaptures":{"0":{"name":"string.quoted.double.motoko"}},"endCaptures":{"0":{"name":"string.quoted.single.motoko"}}},"code-block":{"begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.code-block.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.code-block.end.motoko"}}},"comment":{"patterns":[{"include":"#documentation-comment"},{"include":"#block-comment"},{"include":"#in-line-comment"}]},"comparative-operator":{"name":"keyword.operator.comparative.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])((=|!)==?|(\u003c|\u003e)=?|~=)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"control-transfer-statement-keyword":{"name":"keyword.control.transfer.motoko","match":"\\b(continue|break|return)\\b"},"custom-operator":{"patterns":[{"name":"keyword.operator.custom.prefix.unary.motoko","match":"(?\u003c=[\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?![\\s)\\]},;:])"},{"name":"keyword.operator.custom.postfix.unary.motoko","match":"(?\u003c![\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?![\\s)\\]},;:\\.])"},{"name":"keyword.operator.custom.binary.motoko","match":"(?\u003c=[\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?=[\\s)\\]},;:])"}]},"declaration":{"name":"meta.declaration.motoko","patterns":[{"include":"#import-declaration"}]},"declaration-modifier":{"name":"keyword.other.declaration-modifier.motoko","match":"\\b(class|object|type|shared)\\b"},"dictionary-type":{"name":"meta.dictionary.motoko","begin":"\\b(Dictionary)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.dictionary.motoko"},"2":{"name":"punctuation.dictionary.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.dictionary.end.motoko"}}},"documentation-comment":{"name":"comment.block.documentation.motoko","begin":"/\\*\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.documentation.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.documentation.end.motoko"}}},"floating-point-literal":{"name":"constant.numeric.floating-point.motoko","patterns":[{"match":"\\b([0-9][0-9_]*)(\\.([0-9][0-9_]*))?([eE][+\\-]?([0-9][0-9_]*))?\\b"},{"match":"\\b(0x[[:xdigit:]][[[:xdigit:]]_]*)(\\.(0x[[:xdigit:]][[[:xdigit:]]_]*))?([pP][+\\-]?(0x[[:xdigit:]][[[:xdigit:]]_]*))\\b"}]},"function-body":{"name":"meta.function-body.motoko","patterns":[{"include":"#code-block"}]},"function-declaration":{"name":"meta.function-declaration.motoko","begin":"\\b(func)\\s+(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+)\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})","patterns":[{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#function-body"}],"beginCaptures":{"1":{"name":"storage.type.function.motoko"},"2":{"name":"entity.type.function.motoko"}}},"function-result":{"name":"meta.function-result.motoko","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"\\s*(?=\\{)","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.motoko"}}},"generic-parameter-clause":{"name":"meta.generic-parameter-clause.motoko","begin":"(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.generic-parameter-clause.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.generic-parameter-clause.end.motoko"}}},"identifier":{"name":"meta.identifier.motoko","match":"(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B)"},"if-statement-keyword":{"name":"keyword.control.if.motoko","match":"\\b(if|else)\\b"},"import-declaration":{"name":"meta.import.motoko","match":"\\b(import)\\s+(?:(class|var|func)\\s+)?((?:\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+)(?:\\.(?:\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+))*)","captures":{"1":{"name":"keyword.other.import.motoko"},"2":{"name":"storage.modifier.motoko"},"3":{"name":"support.type.module.import.motoko"}}},"in-line-comment":{"name":"comment.line.double-slash.motoko","match":"(//).*","captures":{"1":{"name":"punctuation.definition.comment.line.double-slash.motoko"}}},"increment-decrement-operator":{"name":"keyword.operator.increment-or-decrement.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+\\+|\\-\\-)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"integer-literal":{"name":"constant.numeric.integer.motoko","patterns":[{"name":"constant.numeric.integer.binary.motoko","match":"(\\B\\-|\\b)(0b[01][01_]*)\\b"},{"name":"constant.numeric.integer.octal.motoko","match":"(\\B\\-|\\b)(0o[0-7][0-7_]*)\\b"},{"name":"constant.numeric.integer.decimal.motoko","match":"(\\B\\-|\\b)([0-9][0-9_]*)\\b"},{"name":"constant.numeric.integer.hexadecimal.motoko","match":"(\\B\\-|\\b)(0x[[:xdigit:]][[[:xdigit:]]_]*)\\b"}]},"keyword":{"patterns":[{"include":"#branch-statement-keyword"},{"include":"#control-transfer-statement-keyword"},{"include":"#loop-statement-keyword"},{"include":"#catch-statement-keyword"},{"include":"#async-await-keyword"},{"include":"#operator-declaration-modifier"},{"include":"#declaration-modifier"},{"include":"#access-level-modifier"},{"name":"keyword.declaration.motoko","match":"\\b(actor|and|class|func|import|let|module|not|or)\\b"},{"name":"keyword.statement.motoko","match":"\\b(assert|break|case|continue|debug|debug_show|else|if|ignore|in|for|label|null|return|switch|while|loop|try|throw|catch|finally|do|to_candid|from_candid|with)\\b"},{"name":"keyword.other.motoko","match":"\\b(flexible|query|stable|composite)\\b"}]},"literal":{"patterns":[{"include":"#integer-literal"},{"include":"#floating-point-literal"},{"include":"#nil-literal"},{"include":"#string-literal"},{"include":"#char-literal"}]},"logical-operator":{"name":"keyword.operator.logical.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(!|\u0026\u0026|\\|\\|)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"loop-statement-keyword":{"name":"keyword.control.loop.motoko","match":"\\b(while|repeat|for|in|loop)\\b"},"null-literal":{"name":"constant.null.motoko","match":"\\bnull\\b"},"operator":{"patterns":[{"include":"#comparative-operator"},{"include":"#assignment-operator"},{"include":"#logical-operator"},{"include":"#remainder-operator"},{"include":"#increment-decrement-operator"},{"include":"#overflow-operator"},{"include":"#range-operator"},{"include":"#bitwise-operator"},{"include":"#arithmetic-operator"},{"include":"#ternary-operator"},{"include":"#type-casting-operator"},{"include":"#custom-operator"}]},"optional-type":{"name":"meta.optional.motoko","match":"\\b(Optional)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.optional.motoko"},"2":{"name":"punctuation.optional.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.optional.end.motoko"}}},"overflow-operator":{"name":"keyword.operator.overflow.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\\u0026(\\+|\\-|\\*|\\/|%)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"parameter-clause":{"name":"meta.parameter-clause.motoko","begin":"(\\()","end":"(\\))","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.function-arguments.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.function-arguments.end.motoko"}}},"primitive-type":{"name":"support.type.motoko","match":"\\b(Blob|Bool|Char|Float|(Int|Nat)(8|16|32|64)?|Principal|Text|Error)\\b"},"protocol-composition-type":{"name":"meta.protocol.motoko","match":"\\b(protocol)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.protocol.motoko"},"2":{"name":"punctuation.protocol.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.protocol.end.motoko"}}},"range-operator":{"name":"keyword.operator.range.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\.\\.(?:\\.)?(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"remainder-operator":{"name":"keyword.operator.remainder.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\%(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"resolved-type":{"name":"support.type.motoko","match":"\\b[A-Z].*?\\b"},"shebang-line":{"name":"comment.line.shebang.motoko","match":"^(#!).*$","captures":{"1":{"name":"punctuation.definition.comment.line.shebang.motoko"}}},"storage-type":{"name":"storage.type.motoko","match":"\\b(var|func|let|class|module|actor)\\b"},"string-literal":{"name":"meta.literal.string.motoko","begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.motoko","match":"\\\\([0tnr\\\"\\'\\\\]|x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8})"},{"name":"invalid.illegal.motoko","match":"(\\\"|\\\\)"},{"name":"string.quoted.double.motoko","match":"(.)"}],"beginCaptures":{"0":{"name":"string.quoted.double.motoko"}},"endCaptures":{"0":{"name":"string.quoted.double.motoko"}}},"switch-statement-keyword":{"name":"keyword.control.switch.motoko","match":"\\b(switch|case)\\b"},"type":{"patterns":[{"include":"#primitive-type"},{"include":"#resolved-type"},{"include":"#optional-type"},{"include":"#protocol-composition-type"}]}}}