github-linguist 7.29.0 → 7.30.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) 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/markdown.gleam.codeblock.json +1 -0
  8. data/grammars/markdown.move.codeblock.json +1 -1
  9. data/grammars/markdown.rego.codeblock.json +1 -0
  10. data/grammars/source.8xp.json +1 -1
  11. data/grammars/source.Caddyfile-test.json +1 -0
  12. data/grammars/source.Caddyfile.json +1 -0
  13. data/grammars/source.abl.json +1 -1
  14. data/grammars/source.astro.json +1 -1
  15. data/grammars/source.bicep.json +1 -1
  16. data/grammars/source.bms.json +1 -1
  17. data/grammars/source.bqn.json +1 -0
  18. data/grammars/source.brs.json +1 -1
  19. data/grammars/source.clarion.json +1 -1
  20. data/grammars/source.cobol.json +1 -1
  21. data/grammars/source.d2.json +1 -1
  22. data/grammars/source.dart.json +1 -1
  23. data/grammars/source.firrtl.json +1 -0
  24. data/grammars/source.fsharp.json +1 -1
  25. data/grammars/source.generic-db.json +1 -1
  26. data/grammars/source.gjs.json +1 -1
  27. data/grammars/source.gleam.json +1 -1
  28. data/grammars/source.gts.json +1 -1
  29. data/grammars/source.hcl.json +1 -1
  30. data/grammars/source.hcl.terraform.json +1 -1
  31. data/grammars/source.hx.json +1 -1
  32. data/grammars/source.ice.json +1 -1
  33. data/grammars/source.julia.json +1 -1
  34. data/grammars/source.kotlin.json +1 -1
  35. data/grammars/source.lua.json +1 -1
  36. data/grammars/source.luau.json +1 -0
  37. data/grammars/source.m2.json +1 -1
  38. data/grammars/source.markdown.caddy.codeblock.json +1 -0
  39. data/grammars/source.mojo.json +1 -1
  40. data/grammars/source.move.json +1 -1
  41. data/grammars/source.nim.json +1 -1
  42. data/grammars/source.nushell.json +1 -1
  43. data/grammars/source.odin.json +1 -1
  44. data/grammars/source.pkl.json +1 -0
  45. data/grammars/source.rascal.json +1 -1
  46. data/grammars/source.rego.json +1 -1
  47. data/grammars/source.rescript.json +1 -1
  48. data/grammars/source.ron.json +1 -0
  49. data/grammars/source.solidity.json +1 -1
  50. data/grammars/source.sqf.json +1 -1
  51. data/grammars/source.templ.json +1 -0
  52. data/grammars/source.wsd.json +1 -1
  53. data/grammars/text.adblock.json +1 -1
  54. data/grammars/text.crontab.json +1 -0
  55. data/grammars/text.html.statamic.json +1 -1
  56. data/grammars/text.valve-cfg.json +1 -1
  57. data/grammars/version +1 -1
  58. data/lib/linguist/VERSION +1 -1
  59. data/lib/linguist/generated.rb +16 -0
  60. data/lib/linguist/heuristics.yml +9 -0
  61. data/lib/linguist/languages.json +1 -1
  62. data/lib/linguist/languages.yml +105 -1
  63. data/lib/linguist/repository.rb +8 -6
  64. data/lib/linguist/samples.json +1 -1
  65. metadata +15 -5
  66. data/grammars/inline.graphql.rb.json +0 -1
  67. data/grammars/source.terraform.json +0 -1
@@ -1 +1 @@
1
- {"scopeName":"source.move","patterns":[{"include":"#address"},{"include":"#comments"},{"include":"#module"},{"include":"#script"},{"include":"#macros"}],"repository":{"address":{"name":"meta.address_block.move","begin":"\\b(address)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"meta.address.definition.move","begin":"(?\u003c=address)","end":"(?=[{])","patterns":[{"include":"#comments"},{"include":"#address_literal"},{"name":"entity.name.type.move","match":"\\b(\\w+)\\b"}]},{"include":"#module"}],"beginCaptures":{"1":{"name":"storage.modifier.type.address.keyword.move"}}},"address_literal":{"patterns":[{"name":"support.constant.diem.address.move","match":"\\b(0x[A-Fa-f0-9][A-Fa-f0-9]{,31})\\b"},{"name":"support.constant.dfinance.address.move","match":"\\b(wallet1\\w{38})"},{"name":"support.constant.named.address.move","match":"\\s([@]\\w+)\\b"}]},"as":{"name":"keyword.control.move","match":"\\b(as)\\b"},"as-import":{"name":"meta.import_as.move","match":"\\b(as)\\b"},"assert":{"name":"support.function.assert.move","match":"\\b(assert)\\b"},"block":{"name":"meta.block.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#as"},{"include":"#mut"},{"include":"#let"},{"include":"#types"},{"include":"#assert"},{"include":"#literals"},{"include":"#control"},{"include":"#move_copy"},{"include":"#resource_methods"},{"include":"#module_access"},{"include":"#fun_call"},{"include":"#block"}]},"block-comments":{"patterns":[{"name":"comment.block.documentation.move","begin":"/\\*[\\*!](?![\\*/])","end":"\\*/"},{"name":"comment.block.move","begin":"/\\*","end":"\\*/"}]},"comments":{"name":"meta.comments.move","patterns":[{"include":"#line-comments"},{"include":"#block-comments"}]},"const":{"name":"meta.const.move","begin":"\\b(const)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#primitives"},{"include":"#vector"},{"include":"#literals"},{"name":"constant.other.move","match":"\\b([\\w_]+)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.const.move"}}},"control":{"name":"keyword.control.move","match":"\\b(return|while|loop|if|else|break|continue|abort)\\b"},"entry_fun":{"name":"meta.entry_fun.move","begin":"\\b(entry)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"storage.modifier.native.move","match":"\\b(native)\\b"},{"name":"storage.modifier.public.move","match":"\\b(public)\\b"},{"include":"#fun"}],"beginCaptures":{"1":{"name":"storage.modifier.entry.move"}}},"friend":{"name":"meta.friend.move","begin":"\\b(friend)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#address_literal"},{"name":"entity.name.type.module.move","match":"\\b(\\w+)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"fun":{"patterns":[{"include":"#fun_signature"},{"include":"#fun_body"}]},"fun_body":{"name":"meta.fun_body.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#import"},{"include":"#as"},{"include":"#mut"},{"include":"#let"},{"include":"#types"},{"include":"#assert"},{"include":"#literals"},{"include":"#control"},{"include":"#move_copy"},{"include":"#resource_methods"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#fun_call"},{"include":"#block"}]},"fun_call":{"name":"meta.fun_call.move","begin":"\\b(\\w+)\\s*(?:\u003c[\\w\\s,]+\u003e)?\\s*[(]","end":"[)]","patterns":[{"include":"#comments"},{"include":"#resource_methods"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#move_copy"},{"include":"#literals"},{"include":"#fun_call"},{"include":"#block"},{"include":"#mut"},{"include":"#as"}],"beginCaptures":{"1":{"name":"entity.name.function.call.move"}}},"fun_signature":{"name":"meta.fun_signature.move","begin":"\\b(fun)\\b","end":"(?=[;{])","patterns":[{"include":"#comments"},{"include":"#module_access"},{"include":"#types"},{"include":"#mut"},{"name":"meta.function_name.move","begin":"(?\u003c=fun)","end":"(?=[\u003c(])","patterns":[{"include":"#comments"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"}]},{"include":"#type_param"},{"name":"meta.parentheses.move","begin":"[(]","end":"[)]","patterns":[{"include":"#comments"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#types"},{"include":"#mut"}]},{"name":"storage.modifier","match":"\\b(acquires)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.fun.move"}}},"import":{"name":"meta.import.move","begin":"\\b(use)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#address_literal"},{"include":"#as-import"},{"name":"entity.name.type.move","match":"\\b([A-Z]\\w*)\\b"},{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#as-import"},{"name":"entity.name.type.move","match":"\\b([A-Z]\\w*)\\b"}]},{"name":"meta.entity.name.type.module.move","match":"\\b(\\w+)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"let":{"name":"keyword.control.move","match":"\\b(let)\\b"},"line-comments":{"name":"comment.line.double-slash.move","begin":"//","end":"$"},"literals":{"patterns":[{"name":"constant.numeric.hex.move","match":"0x[_a-fA-F0-9]+(?:[iu](?:8|16|32|64|size))?"},{"name":"constant.numeric.move","match":"(?\u003c!(?:\\w|(?:(?\u003c!\\.)\\.)))[0-9][_0-9]*(?:\\.(?!\\.)(?:[0-9][_0-9]*)?)?(?:[eE][+\\-]?[_0-9]+)?(?:[u](?:8|16|32|64|128|256))?"},{"match":"\\b(?:h)(\"[a-fA-F0-9]+\")","captures":{"1":{"name":"constant.character.move"}}},{"name":"meta.ascii_literal.move","begin":"\\bb\"","end":"\"","patterns":[{"name":"constant.character.escape.move","match":"\\\\[nrt\\0\"]"},{"name":"constant.character.escape.hex.move","match":"\\\\x[a-fA-F0-9][A-Fa-f0-9]"},{"name":"string.quoted.double.raw.move","match":"[\\x00-\\x7F]"}]},{"name":"meta.hex_literal.move","match":"x\"([A-F0-9a-f]+)\"","captures":{"1":{"name":"constant.numeric.hex.move"}}},{"name":"constant.language.boolean.move","match":"\\b(?:true|false)\\b"},{"include":"#address_literal"}]},"macros":{"name":"support.constant.macro.move","match":"#\\[(?:[\\w0-9=,_\\(\\)\\s\"\\:=]+)\\]"},"module":{"name":"meta.module.move","begin":"\\b(module|spec)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"end":"(?={)","patterns":[{"include":"#comments"},{"name":"constant.other.move","end":"(?=[(::){])"},{"name":"entity.name.type.move","begin":"(?\u003c=::)","end":"(?=[\\s{])"}]},{"name":"meta.module_scope.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#macros"},{"include":"#import"},{"include":"#friend"},{"include":"#const"},{"include":"#struct"},{"include":"#entry_fun"},{"include":"#native_fun"},{"include":"#public_fun"},{"include":"#fun"},{"include":"#spec"},{"include":"#block"}]}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"module_access":{"name":"meta.module_access.move","match":"\\b(\\w+)::(\\w+)\\b","captures":{"1":{"name":"meta.entity.name.type.accessed.module.move"},"2":{"name":"entity.name.function.call.move"}}},"move_copy":{"name":"variable.language.move","match":"\\b(move|copy)\\b"},"mut":{"name":"storage.modifier.mut.move","match":"(?\u003c=\u0026)(mut)\\b"},"native_fun":{"name":"meta.native_fun.move","begin":"\\b(native)\\b","end":"(?\u003c=[;}])","patterns":[{"include":"#comments"},{"name":"storage.modifier.public.move","match":"\\b(public)\\b"},{"name":"storage.modifier.entry.move","match":"\\b(entry)\\b"},{"include":"#fun_signature"}],"beginCaptures":{"1":{"name":"storage.modifier.native.move"}}},"phantom":{"name":"keyword.control.phantom.move","match":"\\b(phantom)\\b"},"primitives":{"name":"support.type.primitives.move","match":"\\b(u8|u16|u32|u64|u128|u256|address|bool|signer)\\b"},"public_fun":{"name":"meta.public_fun.move","begin":"\\b(public)\\b","end":"(?\u003c=[;}])","patterns":[{"include":"#comments"},{"name":"storage.modifier.native.move","match":"\\b(native)\\b"},{"name":"storage.modifier.entry.move","match":"\\b(entry)\\b"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"name":"storage.modifier.public.script.move","match":"\\b(script|friend)\\b"}]},{"include":"#fun"}],"beginCaptures":{"1":{"name":"storage.modifier.public.move"}}},"resource_methods":{"name":"support.function.typed.move","match":"\\b(borrow_global|borrow_global_mut|exists|move_from|move_to_sender|move_to)\\b"},"script":{"name":"meta.script.move","begin":"\\b(script)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"meta.script_scope.move","begin":"{","end":"}","patterns":[{"include":"#const"},{"include":"#comments"},{"include":"#import"},{"include":"#fun"}]}],"beginCaptures":{"1":{"name":"storage.modifier.script.move"}}},"self_access":{"name":"meta.self_access.move","match":"\\b(Self)::(\\w+)\\b","captures":{"1":{"name":"variable.language.self.move"},"2":{"name":"entity.name.function.call.move"}}},"spec":{"name":"meta.spec.move","begin":"\\b(spec)\\b","end":"(?\u003c=[;}])","patterns":[{"name":"storage.modifier.spec.target.move","match":"\\b(module|schema|struct|fun)"},{"name":"storage.modifier.spec.define.move","match":"\\b(define)"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"},{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#spec_block"},{"include":"#spec_types"},{"include":"#spec_define"},{"include":"#spec_keywords"},{"include":"#control"},{"include":"#fun_call"},{"include":"#literals"},{"include":"#types"},{"include":"#let"}]}],"beginCaptures":{"1":{"name":"storage.modifier.spec.move"}}},"spec_block":{"name":"meta.spec_block.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#spec_block"},{"include":"#spec_types"},{"include":"#fun_call"},{"include":"#literals"},{"include":"#control"},{"include":"#types"},{"include":"#let"}]},"spec_define":{"name":"meta.spec_define.move","begin":"\\b(define)\\b","end":"(?=[;{])","patterns":[{"include":"#comments"},{"include":"#spec_types"},{"include":"#types"},{"begin":"(?\u003c=define)","end":"(?=[(])","patterns":[{"include":"#comments"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"}]}],"beginCaptures":{"1":{"name":"keyword.control.move.spec"}}},"spec_keywords":{"name":"keyword.control.move.spec","match":"\\b(global|pack|unpack|pragma|native|include|ensures|requires|invariant|apply|aborts_if|modifies)\\b"},"spec_types":{"name":"support.type.vector.move","match":"\\b(range|num|vector|bool|u8|u16|u32|u64|u128|u256|address)\\b"},"struct":{"name":"meta.struct.move","begin":"\\b(struct)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"meta.struct_def.move","begin":"(?\u003c=struct)","end":"(?={)","patterns":[{"include":"#comments"},{"name":"keyword.control.ability.has.move","match":"\\b(has)\\b"},{"name":"entity.name.type.ability.move","match":"\\b(store|key|drop|copy)\\b"},{"name":"entity.name.type.move","match":"\\b(\\w+)\\b"},{"include":"#type_param"}]},{"name":"meta.struct_body.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#types"}]}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"type_param":{"name":"meta.generic_param.move","begin":"\u003c","end":"\u003e","patterns":[{"include":"#comments"},{"include":"#phantom"},{"include":"#module_access"},{"name":"entity.name.type.kind.move","match":"\\b(store|drop|key|copy)\\b"}]},"types":{"name":"meta.types.move","patterns":[{"include":"#primitives"},{"include":"#vector"},{"name":"entity.name.type","match":"\\b([A-Z][A-Za-z_]+)\\b"},{"name":"constant.other.move","match":"\\b([A-Z_]+)\\b"}]},"vector":{"name":"meta.vector.move","begin":"\\b(vector)\u003c","end":"\u003e","patterns":[{"include":"#primitives"},{"include":"#vector"}],"beginCaptures":{"1":{"name":"support.type.vector.move"}}}}}
1
+ {"scopeName":"source.move","patterns":[{"include":"#address"},{"include":"#comments"},{"include":"#module"},{"include":"#script"},{"include":"#attributes"},{"name":"keyword.control.while.whaaat.move","begin":"\\b(while)\\b","while":"[a-z]"}],"repository":{"=== DEPRECATED_BELOW ===":{},"abilities":{"name":"support.type.ability.move","match":"\\b(store|key|drop|copy)\\b"},"address":{"name":"meta.address_block.move","begin":"\\b(address)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"meta.address.definition.move","begin":"(?\u003c=address)","end":"(?=[{])","patterns":[{"include":"#comments"},{"include":"#address_literal"},{"name":"entity.name.type.move","match":"\\b(\\w+)\\b"}]},{"include":"#module"}],"beginCaptures":{"1":{"name":"storage.modifier.type.address.keyword.move"}}},"as":{"name":"keyword.control.as.move","match":"\\b(as)\\b"},"as-import":{"name":"meta.import.as.move","match":"\\b(as)\\b"},"attributes":{"name":"support.constant.attribute.move","match":"#\\[(?:[\\w0-9=,_\\(\\)\\s\"\\:=]+)\\]"},"block":{"name":"meta.block.move","begin":"{","end":"}","patterns":[{"include":"#expr"}]},"block-comments":{"patterns":[{"name":"comment.block.documentation.move","begin":"/\\*[\\*!](?![\\*/])","end":"\\*/"},{"name":"comment.block.move","begin":"/\\*","end":"\\*/"}]},"capitalized":{"name":"entity.name.type.use.move","match":"\\b([A-Z][a-zA-Z_0-9]*)\\b"},"comments":{"name":"meta.comments.move","patterns":[{"include":"#doc-comments"},{"include":"#line-comments"},{"include":"#block-comments"}]},"const":{"name":"meta.const.move","begin":"\\b(const)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#primitives"},{"include":"#literals"},{"name":"constant.other.move","match":"\\b([\\w_]+)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.const.move"}}},"control":{"name":"keyword.control.move","match":"\\b(return|while|loop|if|else|break|continue|abort)\\b"},"doc-comments":{"name":"comment.block.documentation.move","begin":"///","end":"$","patterns":[{"match":"`(\\w+)`","captures":{"1":{"name":"markup.underline.link.move"}}}]},"entry":{"name":"storage.modifier.visibility.entry.move","match":"\\b(entry)\\b"},"enum":{"name":"meta.enum.move","begin":"\\b(enum)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"include":"#type_param"},{"name":"entity.name.type.enum.move","match":"\\b[A-Z][a-zA-Z_0-9]*\\b"},{"include":"#has"},{"include":"#abilities"},{"name":"meta.enum.definition.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"name":"meta.enum.tuple.move","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#types"}]},{"name":"meta.enum.struct.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"include":"#types"}]}]}],"beginCaptures":{"1":{"name":"keyword.control.enum.move"}}},"error_const":{"name":"variable.language.error.move","match":"\\b(E[A-Z][A-Za-z_]*)\\b"},"escaped_identifier":{"name":"variable.language.escaped.move","begin":"`","end":"`"},"expr":{"name":"meta.expression.move","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"include":"#expr_generic"},{"include":"#error_const"},{"include":"#packed_field"},{"include":"#import"},{"include":"#as"},{"include":"#mut"},{"include":"#let"},{"include":"#types"},{"include":"#literals"},{"include":"#control"},{"include":"#move_copy"},{"include":"#resource_methods"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#label"},{"include":"#macro_call"},{"include":"#local_call"},{"include":"#method_call"},{"include":"#path_access"},{"name":"keyword.operator.macro.dollar.move","match":"\\$(?=[a-z])"},{"name":"variable.other.meta.move","match":"(?\u003c=[$])[a-z][A-Z_0-9a-z]*"},{"name":"constant.other.move","match":"\\b([A-Z][A-Z_]+)\\b"},{"name":"entity.name.type.move","match":"\\b([A-Z][a-zA-Z_0-9]*)\\b"},{"include":"#paren"},{"include":"#block"}]},"expr_generic":{"name":"meta.expression.generic.type.move","begin":"\u003c(?=([\\sa-z_,0-9A-Z\u003c\u003e]+\u003e))","end":"\u003e","patterns":[{"include":"#comments"},{"include":"#types"},{"include":"#capitalized"},{"include":"#expr_generic"}]},"friend":{"name":"meta.friend.move","begin":"\\b(friend)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#address_literal"},{"name":"entity.name.type.module.move","match":"\\b([a-zA-Z][A-Za-z_0-9]*)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"fun":{"patterns":[{"include":"#fun_signature"},{"include":"#block"}]},"fun_body":{"name":"meta.fun_body.move","begin":"{","end":"(?\u003c=})","patterns":[{"include":"#expr"}]},"fun_call":{"name":"meta.fun_call.move","begin":"\\b(\\w+)\\s*(?:\u003c[\\w\\s,]+\u003e)?\\s*[(]","end":"[)]","patterns":[{"include":"#comments"},{"include":"#resource_methods"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#move_copy"},{"include":"#literals"},{"include":"#fun_call"},{"include":"#block"},{"include":"#mut"},{"include":"#as"}],"beginCaptures":{"1":{"name":"entity.name.function.call.move"}}},"fun_signature":{"name":"meta.fun_signature.move","begin":"\\b(fun)\\b","end":"(?=[;{])","patterns":[{"include":"#comments"},{"include":"#module_access"},{"include":"#capitalized"},{"include":"#types"},{"include":"#mut"},{"name":"meta.function_name.move","begin":"(?\u003c=\\bfun)","end":"(?=[\u003c(])","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"}]},{"include":"#type_param"},{"name":"meta.parentheses.move","begin":"[(]","end":"[)]","patterns":[{"include":"#comments"},{"include":"#self_access"},{"include":"#expr_generic"},{"include":"#escaped_identifier"},{"include":"#module_access"},{"include":"#capitalized"},{"include":"#types"},{"include":"#mut"}]},{"name":"storage.modifier","match":"\\b(acquires)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.fun.move"}}},"has":{"name":"keyword.control.ability.has.move","match":"\\b(has)\\b"},"has_ability":{"name":"meta.has.ability.move","begin":"(?\u003c=[})])\\s+(has)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#abilities"}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"ident":{"name":"meta.identifier.move","match":"\\b([a-zA-Z][A-Z_a-z0-9]*)\\b"},"import":{"name":"meta.import.move","begin":"\\b(use)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#use_fun"},{"include":"#address_literal"},{"include":"#as-import"},{"name":"entity.name.type.move","match":"\\b([A-Z]\\w*)\\b"},{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#as-import"},{"name":"entity.name.type.move","match":"\\b([A-Z]\\w*)\\b"}]},{"name":"meta.entity.name.type.module.move","match":"\\b(\\w+)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"label":{"name":"string.quoted.single.label.move","match":"'[a-z][a-z_0-9]*"},"let":{"name":"keyword.control.move","match":"\\b(let)\\b"},"line-comments":{"name":"comment.line.double-slash.move","begin":"//","end":"$"},"literals":{"name":"meta.literal.move","patterns":[{"name":"support.constant.address.base16.move","match":"@0x[A-F0-9a-f]+"},{"name":"support.constant.address.name.move","match":"@[a-zA-Z][a-zA-Z_0-9]*"},{"name":"constant.numeric.hex.move","match":"0x[_a-fA-F0-9]+(?:u(?:8|16|32|64|128|256))?"},{"name":"constant.numeric.move","match":"(?\u003c!(?:\\w|(?:(?\u003c!\\.)\\.)))[0-9][_0-9]*(?:\\.(?!\\.)(?:[0-9][_0-9]*)?)?(?:[eE][+\\-]?[_0-9]+)?(?:[u](?:8|16|32|64|128|256))?"},{"name":"meta.vector.literal.ascii.move","begin":"\\bb\"","end":"\"","patterns":[{"name":"constant.character.escape.move","match":"\\\\."},{"name":"constant.character.escape.move","match":"\\\\[nrt\\0\"]"},{"name":"constant.character.escape.hex.move","match":"\\\\x[a-fA-F0-9][A-Fa-f0-9]"},{"name":"string.quoted.double.raw.move","match":"[\\x00-\\x7F]"}]},{"name":"meta.vector.literal.hex.move","begin":"x\"","end":"\"","patterns":[{"name":"constant.character.move","match":"[A-Fa-f0-9]+"}]},{"name":"constant.language.boolean.move","match":"\\b(?:true|false)\\b"},{"name":"meta.vector.literal.macro.move","begin":"vector\\[","end":"\\]","patterns":[{"include":"#expr"}]}]},"local_call":{"name":"entity.name.function.call.local.move","match":"\\b([a-z][_a-z0-9]*)(?=[\u003c\\(])"},"macro":{"name":"meta.macro.move","begin":"\\b(macro)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"include":"#fun"}],"beginCaptures":{"1":{"name":"keyword.control.macro.move"}}},"macro_call":{"name":"meta.macro.call","match":"(\\b|\\.)([a-z][A-Za-z0-9_]*)!","captures":{"2":{"name":"support.function.macro.move"}}},"method_call":{"name":"meta.path.call.move","match":"\\.([a-z][_a-z0-9]*)(?=[\u003c\\(])","captures":{"1":{"name":"entity.name.function.call.path.move"}}},"module":{"name":"meta.module.move","begin":"\\b(module|spec)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"end":"(?={)","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"name":"constant.other.move","end":"(?=[(::){])"},{"name":"entity.name.type.move","begin":"(?\u003c=::)","end":"(?=[\\s{])"}]},{"name":"meta.module_scope.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#attributes"},{"include":"#entry"},{"include":"#public-scope"},{"include":"#public"},{"include":"#native"},{"include":"#import"},{"include":"#friend"},{"include":"#const"},{"include":"#struct"},{"include":"#has_ability"},{"include":"#enum"},{"include":"#macro"},{"include":"#fun"},{"include":"#spec"}]}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"module_access":{"name":"meta.module_access.move","match":"\\b(\\w+)::(\\w+)\\b","captures":{"1":{"name":"meta.entity.name.type.accessed.module.move"},"2":{"name":"entity.name.function.call.move"}}},"move_copy":{"name":"variable.language.move","match":"\\b(move|copy)\\b"},"mut":{"name":"storage.modifier.mut.move","match":"\\b(mut)\\b"},"native":{"name":"storage.modifier.visibility.native.move","match":"\\b(native)\\b"},"packed_field":{"name":"meta.struct.field.move","match":"[a-z][a-z0-9_]+\\s*:\\s*(?=\\s)"},"paren":{"name":"meta.paren.move","begin":"\\(","end":"\\)","patterns":[{"include":"#expr"}]},"path_access":{"name":"meta.path.access.move","match":"\\.[a-z][_a-z0-9]*\\b"},"phantom":{"name":"keyword.control.phantom.move","match":"\\b(phantom)\\b"},"primitives":{"name":"support.type.primitives.move","match":"\\b(u8|u16|u32|u64|u128|u256|address|bool|signer)\\b"},"public":{"name":"storage.modifier.visibility.public.move","match":"\\b(public)\\b"},"public-scope":{"name":"meta.public.scoped.move","begin":"(?\u003c=\\b(public))\\s*\\(","end":"\\)","patterns":[{"include":"#comments"},{"name":"keyword.control.public.scope.move","match":"\\b(friend|script|package)\\b"}]},"resource_methods":{"name":"support.function.typed.move","match":"\\b(borrow_global|borrow_global_mut|exists|move_from|move_to_sender|move_to)\\b"},"script":{"name":"meta.script.move","begin":"\\b(script)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"meta.script_scope.move","begin":"{","end":"}","patterns":[{"include":"#const"},{"include":"#comments"},{"include":"#import"},{"include":"#fun"}]}],"beginCaptures":{"1":{"name":"storage.modifier.script.move"}}},"self_access":{"name":"meta.self_access.move","match":"\\b(Self)::(\\w+)\\b","captures":{"1":{"name":"variable.language.self.move"},"2":{"name":"entity.name.function.call.move"}}},"spec":{"name":"meta.spec.move","begin":"\\b(spec)\\b","end":"(?\u003c=[;}])","patterns":[{"name":"storage.modifier.spec.target.move","match":"\\b(module|schema|struct|fun)"},{"name":"storage.modifier.spec.define.move","match":"\\b(define)"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"},{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#spec_block"},{"include":"#spec_types"},{"include":"#spec_define"},{"include":"#spec_keywords"},{"include":"#control"},{"include":"#fun_call"},{"include":"#literals"},{"include":"#types"},{"include":"#let"}]}],"beginCaptures":{"1":{"name":"storage.modifier.spec.move"}}},"spec_block":{"name":"meta.spec_block.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#spec_block"},{"include":"#spec_types"},{"include":"#fun_call"},{"include":"#literals"},{"include":"#control"},{"include":"#types"},{"include":"#let"}]},"spec_define":{"name":"meta.spec_define.move","begin":"\\b(define)\\b","end":"(?=[;{])","patterns":[{"include":"#comments"},{"include":"#spec_types"},{"include":"#types"},{"begin":"(?\u003c=\\bdefine)","end":"(?=[(])","patterns":[{"include":"#comments"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"}]}],"beginCaptures":{"1":{"name":"keyword.control.move.spec"}}},"spec_keywords":{"name":"keyword.control.move.spec","match":"\\b(global|pack|unpack|pragma|native|include|ensures|requires|invariant|apply|aborts_if|modifies)\\b"},"spec_types":{"name":"support.type.vector.move","match":"\\b(range|num|vector|bool|u8|u16|u32|u64|u128|u256|address)\\b"},"struct":{"name":"meta.struct.move","begin":"\\b(struct)\\b","end":"(?\u003c=[};\\)])","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"include":"#has"},{"include":"#abilities"},{"name":"entity.name.type.struct.move","match":"\\b[A-Z][a-zA-Z_0-9]*\\b"},{"name":"meta.struct.paren.move","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#capitalized"},{"include":"#types"}]},{"include":"#type_param"},{"name":"meta.struct.paren.move","begin":"\\(","end":"(?\u003c=[)])","patterns":[{"include":"#comments"},{"include":"#types"}]},{"name":"meta.struct.body.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#self_access"},{"include":"#escaped_identifier"},{"include":"#module_access"},{"include":"#expr_generic"},{"include":"#capitalized"},{"include":"#types"}]},{"include":"#has_ability"}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"struct_pack":{"name":"meta.struct.pack.move","begin":"(?\u003c=[A-Za-z0-9_\u003e])\\s*{","end":"}","patterns":[{"include":"#comments"}]},"type_param":{"name":"meta.generic_param.move","begin":"\u003c","end":"\u003e","patterns":[{"include":"#comments"},{"include":"#phantom"},{"include":"#capitalized"},{"include":"#module_access"},{"include":"#abilities"}]},"types":{"name":"meta.types.move","patterns":[{"include":"#primitives"},{"include":"#vector"}]},"use_fun":{"name":"meta.import.fun.move","begin":"\\b(fun)\\b","end":"(?=;)","patterns":[{"include":"#comments"},{"name":"keyword.control.as.move","match":"\\b(as)\\b"},{"name":"variable.language.self.use.fun.move","match":"\\b(Self)\\b"},{"name":"entity.name.function.use.move","match":"\\b(_______[a-z][a-z_0-9]+)\\b"},{"include":"#types"},{"include":"#escaped_identifier"},{"include":"#capitalized"}],"beginCaptures":{"1":{"name":"storage.modifier.fun.move"}}},"vector":{"name":"support.type.vector.move","match":"\\b(vector)\\b"}}}
@@ -1 +1 @@
1
- {"name":"Nim","scopeName":"source.nim","patterns":[{"include":"#pragmas"},{"include":"#brackets"},{"include":"#punctuations"},{"include":"#block-doc-comments"},{"include":"#comments"},{"include":"#for-stmts"},{"include":"#asm-stmts"},{"include":"#routines"},{"include":"#fmt-strs"},{"include":"#operators"},{"include":"#literals"},{"include":"#keywords"},{"include":"#do-stmts"},{"include":"#calls"},{"include":"#types"},{"include":"#builtins"},{"include":"#generic-symbols"}],"repository":{"asm-stmt-1":{"patterns":[{"contentName":"string.quoted.triple.nim","begin":"([Rr])?(\"\"\")","end":"\"\"\"(?!\")","patterns":[{"include":"#interpolation"}],"captures":{"1":{"name":"storage.type.string.nim"},"2":{"name":"string.quoted.triple.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"0":{"name":"string.quoted.triple.nim punctuation.definition.string.end.nim"}}},{"contentName":"string.quoted.double.nim","begin":"([Rr])(\")","end":"(\")|(\\n)","patterns":[{"include":"#interpolation"}],"beginCaptures":{"1":{"name":"storage.type.string.nim"},"2":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"},"2":{"name":"invalid.illegal.nim"}}},{"name":"string.quoted.double.nim","begin":"\"","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nim","match":"\\\\"},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"},"2":{"name":"invalid.illegal.nim"}}}]},"asm-stmts":{"patterns":[{"begin":"asm\\b","end":"(?=[^\"Rr{\\s])|(?\u003c=\")","patterns":[{"include":"#pragmas"},{"include":"#asm-stmt-1"}],"beginCaptures":{"0":{"name":"keyword.control.flow.nim"}}}]},"block-comments":{"patterns":[{"name":"comment.block.number-sign.nim","begin":"#\\[","end":"]#","patterns":[{"include":"#block-comments"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.nim"}}}]},"block-doc-comments":{"patterns":[{"name":"comment.block.documentation.nim","begin":"##\\[","end":"]##","patterns":[{"include":"#block-doc-comments"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.nim"}}}]},"brackets":{"patterns":[{"include":"#square-brackets"},{"name":"meta.braces.nim","begin":"\\{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.braces.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.braces.end.nim"}}},{"name":"meta.parens.nim","begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.nim"}}}]},"builtins":{"patterns":[{"name":"variable.language.nim","match":"\\bresult\\b"},{"name":"storage.type.primitive.nim","match":"\\b(?x:any|array|auto|bool|byte |c(?:double|float|u?(?:long(?:long)?|char|int|short)|longdouble|schar |size(?:_t)?|string(?:[Aa]rray)?) |char|float(?:32|64)?|iterable|lent|open[Aa]rray|owned|pointer|ptr|range|ref|se[qt] |sink|static|string|typed?|type[Dd]esc|u?int(?:8|16|32|64)?|untyped|varargs|void)\\b"},{"name":"support.constant.builtin.nim","match":"(?x:appType|Compile(?:Date|Time)|cpuEndian |host(?:CPU|OS) |isMainModule|NaN|(?:Neg)?Inf|Nim(?:Major|Minor|Patch|Version)|nimvm|off|on |Quit(?:Failure|Success))"}]},"calls":{"patterns":[{"begin":"(?x: (?= (?: (?!(?:out|ptr|ref|tuple)\\b) [A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+` ) (?:\\[.*])? (?: \\( |\" |[ ]+ (?: [_\\d\"'`\\[\\(] |(?!\\.|(?:\\*?[ ]*)[:=]|=[^=])[-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]+[^\\-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔\\s] |(?!as|asm|and|bind|break|concept|const|continue|converter |defer|discard|distinct|div|elif|else|end|except|export|finally|from|import |include|interface|is(?:not)?|let|macro|method|mixin|mod|(?:not)?in|of |raise|sh[lr]|template|using|while|yield|x?or)[A-Za-z\\x80-\\xff] |\\{(?!\\.) ) ) ) )","end":"(?=[^\\[\\(`\\w\\x{80}-\\x{ff}])|(?\u003c=[\"\\)])","patterns":[{"name":"entity.name.function.nim","begin":"(?=[`_A-Za-z\\x80-\\xff])","end":"(?=[^`_A-Za-z\\x80-\\xff])","patterns":[{"include":"#builtins"},{"name":"support.type.nim","match":"[A-Z][\\dA-Za-z]+\\b"},{"match":"[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`"}]},{"name":"meta.function-call.nim meta.generic.nim","begin":"\\[:?","end":"]","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.generic.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.generic.end.nim"}}},{"name":"meta.function-call.arguments.nim","begin":"\\(","end":"(\\))","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.arguments.begin.nim"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.nim"}}},{"include":"#triplestr_lit"},{"name":"string.quoted.double.nim","begin":"\"","end":"(\"(?!\"))|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"\"\""}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.nim"},"2":{"name":"invalid.illegal.unclosed-string.nim"}}}]}]},"characters":{"patterns":[{"match":"'(?:[^\\\\']|(\\\\(?:[ABCEFLNRTVabceflnrtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2})))'","captures":{"0":{"name":"constant.character.nim"},"1":{"name":"constant.character.escape.nim"}}},{"name":"invalid.illegal.nim","match":"'[^']+'"}]},"comments":{"patterns":[{"include":"#block-comments"},{"include":"#line-comments"}]},"do-stmts":{"patterns":[{"begin":"\\bdo\\b","end":"(-\u003e)|(?=[^\\-\\( ])","patterns":[{"include":"#param-list"}],"beginCaptures":{"0":{"name":"storage.type.function.nim"}},"endCaptures":{"1":{"name":"punctuation.separator.annotation.return.nim"}}}]},"doc-comments":{"patterns":[{"include":"#block-doc-comments"},{"include":"#line-doc-comments"}]},"fmt-strs":{"patterns":[{"contentName":"string.quoted.triple.nim","begin":"(?:(fmt)|(\u0026))(\"\"\")","end":"\"\"\"(?!\")","patterns":[{"name":"constant.character.escape.nim","match":"{{|}}"},{"name":"source.nim","begin":"{","end":"(=?(?: *:[^}]*)?) *(})|(?=\"\"\"[^\"])","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.nim"}},"endCaptures":{"1":{"name":"constant.other.format-spec.nim"},"2":{"name":"punctuation.section.embedded.end.nim"}}}],"beginCaptures":{"1":{"name":"meta.function-call.nim variable.function.nim"},"2":{"name":"keyword.operator.nim"},"3":{"name":"string.quoted.triple.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"0":{"name":"string.quoted.triple.nim punctuation.definition.string.end.nim"}}},{"contentName":"string.quoted.triple.nim","begin":"(fmt)(\")","end":"(\"(?!\"))|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"{{|}}|\"\""},{"name":"source.nim","begin":"{","end":"(=?(?: *:[^}]*)?) *(})|(\\n)|(?=\")","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.nim"}},"endCaptures":{"1":{"name":"constant.other.format-spec.nim"},"2":{"name":"punctuation.section.embedded.end.nim"},"3":{"name":"invalid.illegal.nim"}}}],"beginCaptures":{"1":{"name":"meta.function-call.nim variable.function.nim"},"2":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.end.nim"},"2":{"name":"invalid.illegal.nim"}}},{"contentName":"string.quoted.double.nim","begin":"(\u0026)(\")","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"{{|}}"},{"name":"source.nim","begin":"{","end":"(=?(?: *:[^}]*)?) *(})|(\\n)|(?=\")","patterns":[{"name":"constant.character.escape.nim","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nim","match":"\\\\"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.nim"}},"endCaptures":{"1":{"name":"constant.other.format-spec.nim"},"2":{"name":"punctuation.section.embedded.end.nim"},"3":{"name":"invalid.illegal.nim"}}},{"name":"constant.character.escape.nim","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nim","match":"\\\\"}],"beginCaptures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.end.nim"},"2":{"name":"invalid.illegal.nim"}}}]},"for-stmt-1":{"patterns":[{"name":"punctuation.separator.nim","match":","},{"match":"[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`"},{"include":"#pragmas"},{"include":"#comments"}]},"for-stmts":{"patterns":[{"begin":"for\\b","end":"(in\\b)|(?=[^#,{_`A-Za-z\\x80-\\xff\\s])","patterns":[{"begin":"\\(","end":"(in\\b)|(\\))|(?=[^#,{_`A-Za-z\\x80-\\xff\\s])","patterns":[{"include":"#for-stmt-1"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.nim"}},"endCaptures":{"1":{"name":"keyword.control.loop.for.in.nim"},"2":{"name":"punctuation.section.parens.end.nim"}}},{"include":"#for-stmt-1"}],"beginCaptures":{"0":{"name":"keyword.control.loop.for.nim"}},"endCaptures":{"1":{"name":"keyword.control.loop.for.in.nim"}}}]},"generic-param-list":{"patterns":[{"name":"meta.generic.nim","begin":"(?\u003c=[`*\\w\\x{80}-\\x{ff}]) *(\\[)","end":"(])|(?=[^#_`:=,;A-Za-z\\x80-\\xff\\s])","patterns":[{"include":"#generic-param-list-0"}],"beginCaptures":{"1":{"name":"punctuation.section.generic.begin.nim"}},"endCaptures":{"1":{"name":"punctuation.section.generic.end.nim"}}}]},"generic-param-list-0":{"patterns":[{"name":"punctuation.separator.nim","match":"[,;]"},{"begin":"(:)|(=)","end":"([,;])|(?=\\])","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.separator.annotation.nim"},"2":{"name":"keyword.operator.assignment.nim"}},"endCaptures":{"1":{"name":"punctuation.separator.nim"}}},{"include":"#comments"}]},"generic-symbols":{"patterns":[{"name":"support.constant.nim","match":"[A-Z](_?[A-Z\\d_])+\\b"},{"name":"support.type.nim","match":"[A-Z][\\dA-Za-z]+\\b"},{"match":"[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`"}]},"interpolation":{"patterns":[{"match":"(`) *(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_) *(`)","captures":{"0":{"name":"source.nim.embedded"},"1":{"name":"punctuation.section.embedded.begin.nim"},"2":{"name":"punctuation.section.embedded.end.nim"}}}]},"keywords":{"patterns":[{"name":"keyword.operator.word.nim","match":"\\b(?:addr|cast)\\b"},{"name":"comment.block.nim","begin":"\\bdiscard +\"\"\"","end":"\"\"\"(?!\")","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.nim"}}},{"name":"keyword.other.nim","match":"\\b(?:distinct|discard)\\b"},{"name":"keyword.control.flow.nim","match":"\\b(?:asm|end|break|continue|raise|return|yield)\\b"},{"name":"storage.type.nim","match":"\\b(?:concept|enum|interface)\\b"},{"match":"\\b(object)\\b(?: *(of)\\b)?","captures":{"1":{"name":"storage.type.nim"},"2":{"name":"keyword.other.nim"}}},{"name":"keyword.control.loop.while.nim","match":"\\bwhile\\b"},{"name":"keyword.control.conditional.switch.nim","match":"\\bcase\\b"},{"name":"keyword.control.conditional.case.nim","match":"^ *(of)\\b"},{"name":"keyword.control.conditional.if.nim","match":"\\bif\\b"},{"name":"keyword.control.conditional.when.nim","match":"\\bwhen\\b"},{"name":"keyword.control.conditional.elseif.nim","match":"\\belif\\b"},{"match":"\\b(else)\\b(?: *(:))?","captures":{"0":{"name":"meta.statement.conditional.else.nim"},"1":{"name":"keyword.control.conditional.else.nim"},"2":{"name":"punctuation.section.block.conditional.else.nim"}}},{"match":"\\b(try)\\b(?: *(:))?","captures":{"0":{"name":"meta.statement.exception.try.nim"},"1":{"name":"keyword.control.exception.try.nim"},"2":{"name":"punctuation.section.block.exception.nim"}}},{"match":"\\b(finally)\\b(?: *(:))?","captures":{"0":{"name":"meta.statement.exception.finally.nim"},"1":{"name":"keyword.control.exception.finally.nim"},"2":{"name":"punctuation.section.block.exception.finally.nim"}}},{"match":"\\b(defer)\\b(?: *(:))?","captures":{"1":{"name":"keyword.control.flow.defer.nim"},"2":{"name":"punctuation.section.block.begin.nim"}}},{"match":"\\b(block)\\b(?:(?: *(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`))? *(:))?","captures":{"1":{"name":"keyword.declaration.block.nim"},"2":{"name":"punctuation.section.block.begin.nim"}}},{"name":"keyword.control.nim","match":"\\b(?:as|(?:ex|im)port|include|bind|mixin|from|except)\\b"},{"name":"storage.modifier.nim","match":"\\b(?:const|let|var|using)\\b"}]},"language-constants":{"patterns":[{"name":"constant.language.nim","match":"\\b(?:true|false|nil)\\b"}]},"line-comments":{"patterns":[{"name":"comment.line.number-sign.nim","begin":"(#)(?: *(TODO|todo)\\b)?","end":"$\\n?","beginCaptures":{"1":{"name":"punctuation.definition.comment.nim"},"2":{"name":"invalid.deprecated.nim"}}}]},"line-doc-comments":{"patterns":[{"name":"comment.line.documentation.nim","begin":"##","end":"$\\n?","beginCaptures":{"0":{"name":"punctuation.definition.comment.nim"}}}]},"literals":{"patterns":[{"include":"#str_lits"},{"include":"#numbers"},{"include":"#characters"},{"include":"#language-constants"}]},"numbers":{"patterns":[{"match":"(?x: \\b(\\d(?:_?\\d)*) (?: (?: ((\\.)\\d(?:_?\\d)*) ([Ee][-+]?\\d(?:_?\\d)*)? |([Ee][-+]?\\d(?:_?\\d)*) ) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[Ff](?:32|64)|[Dd]))? |('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[Ff](?:32|64)|[Dd])) ) )","captures":{"0":{"name":"meta.number.float.decimal.nim"},"1":{"name":"constant.numeric.value.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"punctuation.separator.decimal.nim"},"4":{"name":"constant.numeric.value.exponent.nim"},"5":{"name":"constant.numeric.value.exponent.nim"},"6":{"name":"constant.numeric.suffix.nim"},"7":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0[Xx]) ([[:xdigit:]](?:_?[[:xdigit:]])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|[Ff](?:32|64)) )","captures":{"0":{"name":"meta.number.float.hexadecimal.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0o) ([0-7](?:_?[0-7])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[Ff](?:32|64)|[Dd])) )","captures":{"0":{"name":"meta.number.float.octal.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0[Bb]) ([01](?:_?[01])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[Ff](?:32|64)|[Dd])) )","captures":{"0":{"name":"meta.number.float.binary.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0[Xx]) ([[:xdigit:]](?:_?[[:xdigit:]])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[IUiu](?:8|16|32|64)|[Uu]))? )","captures":{"0":{"name":"meta.number.integer.hexadecimal.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0o) ([0-7](?:_?[0-7])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[IUiu](?:8|16|32|64)|[Uu]))? )","captures":{"0":{"name":"meta.number.integer.octal.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0[Bb]) ([01](?:_?[01])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[IUiu](?:8|16|32|64)|[Uu]))? )","captures":{"0":{"name":"meta.number.integer.binary.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(\\d(?:_?\\d)*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[IUiu](?:8|16|32|64)|[Uu]))? )","captures":{"0":{"name":"meta.number.integer.decimal.nim"},"1":{"name":"constant.numeric.value.nim"},"2":{"name":"constant.numeric.suffix.nim"}}}]},"operators":{"patterns":[{"name":"keyword.operator.logical.nim","match":"\\b(?:and|not|x?or)\\b"},{"name":"keyword.control.conditional.case.nim","match":"^of\\b"},{"name":"keyword.operator.word.nim","match":"\\b(?:of|(?:not)?in|is(?:not)?)\\b"},{"name":"keyword.operator.bitwise.nim","match":"\\bsh[lr]\\b"},{"name":"keyword.operator.arithmetic.nim","match":"\\b(?:div|mod)\\b"},{"name":"keyword.operator.comparison.nim","match":"==|\u003c=?|\u003e=?|!="},{"name":"keyword.operator.assignment.nim","match":"(?:[-+*/@$\u0026%|^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔][-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]*)?=(?![-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])"},{"name":"keyword.operator.nim","match":"[-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]+"}]},"param-list":{"patterns":[{"name":"meta.function.parameters","begin":"\\(","end":"\\)","patterns":[{"name":"punctuation.separator.nim","match":"[,;]"},{"begin":"(:)|(=)","end":"(?=[,;\\)])","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.separator.annotation.nim"},"2":{"name":"keyword.operator.assignment.nim"}}},{"include":"#comments"}],"beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.nim"}}}]},"patterns":{"patterns":[{"name":"meta.pattern.nim","begin":"\\{(?!\\.)","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.pattern.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.pattern.end.nim"}}}]},"pragmas":{"patterns":[{"name":"meta.annotation.nim","begin":"\\{\\.(?!\\.})","end":"\\.?}","patterns":[{"include":"#calls"},{"name":"entity.other.attribute-name.pragma.nim","match":"[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`"},{"include":"#square-brackets"},{"begin":"(?=\\S)","end":"(,)|(?=\\.?})","patterns":[{"begin":":","end":"(?=,|\\.?})","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.nim"}}}],"endCaptures":{"1":{"name":"punctuation.separator.sequence.nim"}}}],"beginCaptures":{"0":{"name":"punctuation.section.annotation.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.annotation.end.nim"}}}]},"punctuations":{"patterns":[{"name":"punctuation.terminator.statement.nim","match":";"},{"name":"punctuation.separator.nim","match":","},{"name":"punctuation.section.block.begin.nim","match":":"},{"name":"punctuation.accessor.dot.nim","match":"\\.(?![-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])"},{"match":"(\\*) *(:|(?=,|#|\\{\\.))","captures":{"1":{"name":"storage.modifier.nim"},"2":{"name":"punctuation.separator.annotation.nim"}}},{"name":"invalid.illegal.nim","match":"\\)|]|}"}]},"routines":{"patterns":[{"name":"meta.function.nim","begin":"(?x: (proc|template|iterator|func|method|macro|converter)\\b (?:[ ]*([A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`)(?:[ ]*(\\*))?)? )","end":"(:)|(?=[^#\\(\\[:\\s]|##)","patterns":[{"include":"#comments"},{"include":"#patterns"},{"include":"#generic-param-list"},{"include":"#param-list"}],"beginCaptures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"entity.name.function.nim"},"3":{"name":"storage.modifier.nim"}},"endCaptures":{"1":{"name":"punctuation.separator.annotation.nim"}}}]},"rstr_lit":{"patterns":[{"contentName":"string.quoted.double.nim","begin":"([Rr])(\")","end":"(\"(?!\"))|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"\"\""}],"beginCaptures":{"1":{"name":"storage.type.nim"},"2":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.end.nim"},"2":{"name":"string.quoted.double.nim invalid.illegal.unclosed-string.nim"}}}]},"square-brackets":{"patterns":[{"name":"meta.brackets.nim","begin":"\\[","end":"]","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.nim"}}}]},"str_lit":{"patterns":[{"name":"string.quoted.double.nim","begin":"\"","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nim","match":"\\\\"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.nim"},"2":{"name":"invalid.illegal.nim"}}}]},"str_lits":{"patterns":[{"include":"#triplestr_lit"},{"include":"#rstr_lit"},{"include":"#str_lit"}]},"triplestr_lit":{"patterns":[{"contentName":"string.quoted.triple.nim","begin":"([Rr])?(\"\"\")","end":"\"\"\"(?!\")","beginCaptures":{"1":{"name":"storage.type.nim"},"2":{"name":"string.quoted.triple.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"0":{"name":"string.quoted.triple.nim punctuation.definition.string.end.nim"}}}]},"types":{"patterns":[{"contentName":"meta.generic.nim","begin":"(?=(?:[A-Za-z](?:_?[\\dA-Za-z])*)\\[)(?x:(out|ptr|ref|array |cstring[Aa]rray|iterable|lent|open[Aa]rray|owned|ptr|range|ref|se[qt] |sink|static|type(?:[Dd]esc)?|varargs)|([A-Z][\\dA-Za-z]+))(\\[)","end":"]","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.primitive.nim"},"2":{"name":"support.type.nim"},"3":{"name":"meta.generic.nim punctuation.section.generic.begin.nim"}},"endCaptures":{"0":{"name":"meta.generic.nim punctuation.section.generic.nim"}}},{"name":"storage.type.primitive.nim","match":"\\b(?:out|tuple|ref|ptr)\\b"}]}}}
1
+ {"name":"Nim","scopeName":"source.nim","patterns":[{"include":"#pragmas"},{"include":"#brackets"},{"include":"#punctuations"},{"include":"#block-doc-comments"},{"include":"#comments"},{"include":"#for-stmts"},{"include":"#asm-stmts"},{"include":"#routines"},{"include":"#fmt-strs"},{"include":"#operators"},{"include":"#literals"},{"include":"#keywords"},{"include":"#do-stmts"},{"include":"#calls"},{"include":"#types"},{"include":"#builtins"},{"include":"#generic-symbols"}],"repository":{"asm-stmt-1":{"patterns":[{"contentName":"string.quoted.triple.nim","begin":"([Rr])?(\"\"\")","end":"\"\"\"(?!\")","patterns":[{"include":"#interpolation"}],"captures":{"1":{"name":"storage.type.string.nim"},"2":{"name":"string.quoted.triple.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"0":{"name":"string.quoted.triple.nim punctuation.definition.string.end.nim"}}},{"contentName":"string.quoted.double.nim","begin":"([Rr])(\")","end":"(\")|(\\n)","patterns":[{"include":"#interpolation"}],"beginCaptures":{"1":{"name":"storage.type.string.nim"},"2":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"},"2":{"name":"invalid.illegal.nim"}}},{"name":"string.quoted.double.nim","begin":"\"","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nim","match":"\\\\"},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"},"2":{"name":"invalid.illegal.nim"}}}]},"asm-stmts":{"patterns":[{"begin":"asm\\b","end":"(?=[^\"Rr{\\s])|(?\u003c=\")","patterns":[{"include":"#pragmas"},{"include":"#asm-stmt-1"}],"beginCaptures":{"0":{"name":"keyword.control.flow.nim"}}}]},"block-comments":{"patterns":[{"name":"comment.block.number-sign.nim","begin":"#\\[","end":"]#","patterns":[{"include":"#block-comments"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.nim"}}}]},"block-doc-comments":{"patterns":[{"name":"comment.block.documentation.nim","begin":"##\\[","end":"]##","patterns":[{"include":"#block-doc-comments"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.nim"}}}]},"brackets":{"patterns":[{"include":"#square-brackets"},{"name":"meta.braces.nim","begin":"\\{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.braces.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.braces.end.nim"}}},{"name":"meta.parens.nim","begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.nim"}}}]},"builtins":{"patterns":[{"name":"variable.language.nim","match":"\\bresult\\b"},{"name":"storage.type.primitive.nim","match":"\\b(?x:any|array|auto|bool|byte |c(?:double|float|u?(?:long(?:long)?|char|int|short)|longdouble|schar |size(?:_t)?|string(?:[Aa]rray)?) |char|float(?:32|64)?|iterable|lent|open[Aa]rray|owned|pointer|ptr|range|ref|se[qt] |sink|static|string|typed?|type[Dd]esc|u?int(?:8|16|32|64)?|untyped|varargs|void)\\b"},{"name":"support.constant.builtin.nim","match":"\\b(?x:appType|Compile(?:Date|Time)|cpuEndian |host(?:CPU|OS) |isMainModule|NaN|(?:Neg)?Inf|Nim(?:Major|Minor|Patch|Version)|nimvm|off|on |Quit(?:Failure|Success))\\b"}]},"calls":{"patterns":[{"begin":"(?x: (?= (?: (?!(?:out|ptr|ref|tuple)\\b) [A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+` ) (?:\\[.*])? (?: \\( |\" |[ ]+ (?: [_\\d\"'`\\[\\(] |(?!\\.|(?:\\*?[ ]*)[:=]|=[^=])[-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]+[^\\-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔\\s] |(?!(as|asm|and|bind|break|concept|const|continue|converter |defer|discard|distinct|div|elif|else|end|except|export|finally|from|import |include|interface|is(?:not)?|let|macro|method|mixin|mod|(?:not)?in|of |raise|sh[lr]|template|using|while|yield|x?or)\\b)[A-Za-z\\x80-\\xff] |\\{(?!\\.) ) ) ) )","end":"(?=[^\\[\\(`\\w\\x{80}-\\x{ff}])|(?\u003c=[\"\\)])","patterns":[{"name":"entity.name.function.nim","begin":"(?=[`_A-Za-z\\x80-\\xff])","end":"(?=[^`_A-Za-z\\x80-\\xff])","patterns":[{"include":"#builtins"},{"name":"support.type.nim","match":"[A-Z][\\dA-Za-z]+\\b"},{"match":"[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`"}]},{"name":"meta.function-call.nim meta.generic.nim","begin":"\\[:?","end":"]","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.generic.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.generic.end.nim"}}},{"name":"meta.function-call.arguments.nim","begin":"\\(","end":"(\\))","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.arguments.begin.nim"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.nim"}}},{"include":"#triplestr_lit"},{"name":"string.quoted.double.nim","begin":"\"","end":"(\"(?!\"))|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"\"\""}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.nim"},"2":{"name":"invalid.illegal.unclosed-string.nim"}}}]}]},"characters":{"patterns":[{"match":"'(?:[^\\\\']|(\\\\(?:[ABCEFLNRTVabceflnrtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2})))'","captures":{"0":{"name":"constant.character.nim"},"1":{"name":"constant.character.escape.nim"}}},{"name":"invalid.illegal.nim","match":"'[^']+'"}]},"comments":{"patterns":[{"include":"#block-comments"},{"include":"#line-comments"}]},"do-stmts":{"patterns":[{"begin":"\\bdo\\b","end":"(-\u003e)|(?=[^\\-\\( ])","patterns":[{"include":"#param-list"}],"beginCaptures":{"0":{"name":"storage.type.function.nim"}},"endCaptures":{"1":{"name":"punctuation.separator.annotation.return.nim"}}}]},"doc-comments":{"patterns":[{"include":"#block-doc-comments"},{"include":"#line-doc-comments"}]},"fmt-strs":{"patterns":[{"contentName":"string.quoted.triple.nim","begin":"(?:(fmt)|(\u0026))(\"\"\")","end":"\"\"\"(?!\")","patterns":[{"name":"constant.character.escape.nim","match":"{{|}}"},{"name":"source.nim","begin":"{","end":"(=?(?: *:[^}]*)?) *(})|(?=\"\"\"[^\"])","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.nim"}},"endCaptures":{"1":{"name":"constant.other.format-spec.nim"},"2":{"name":"punctuation.section.embedded.end.nim"}}}],"beginCaptures":{"1":{"name":"meta.function-call.nim variable.function.nim"},"2":{"name":"keyword.operator.nim"},"3":{"name":"string.quoted.triple.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"0":{"name":"string.quoted.triple.nim punctuation.definition.string.end.nim"}}},{"contentName":"string.quoted.triple.nim","begin":"(fmt)(\")","end":"(\"(?!\"))|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"{{|}}|\"\""},{"name":"source.nim","begin":"{","end":"(=?(?: *:[^}]*)?) *(})|(\\n)|(?=\")","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.nim"}},"endCaptures":{"1":{"name":"constant.other.format-spec.nim"},"2":{"name":"punctuation.section.embedded.end.nim"},"3":{"name":"invalid.illegal.nim"}}}],"beginCaptures":{"1":{"name":"meta.function-call.nim variable.function.nim"},"2":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.end.nim"},"2":{"name":"invalid.illegal.nim"}}},{"contentName":"string.quoted.double.nim","begin":"(\u0026)(\")","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"{{|}}"},{"name":"source.nim","begin":"{","end":"(=?(?: *:[^}]*)?) *(})|(\\n)|(?=\")","patterns":[{"name":"constant.character.escape.nim","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nim","match":"\\\\"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.nim"}},"endCaptures":{"1":{"name":"constant.other.format-spec.nim"},"2":{"name":"punctuation.section.embedded.end.nim"},"3":{"name":"invalid.illegal.nim"}}},{"name":"constant.character.escape.nim","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nim","match":"\\\\"}],"beginCaptures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.end.nim"},"2":{"name":"invalid.illegal.nim"}}}]},"for-stmt-1":{"patterns":[{"name":"punctuation.separator.nim","match":","},{"match":"[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`"},{"include":"#pragmas"},{"include":"#comments"}]},"for-stmts":{"patterns":[{"begin":"for\\b","end":"(in\\b)|(?=[^#,{_`A-Za-z\\x80-\\xff\\s])","patterns":[{"begin":"\\(","end":"(in\\b)|(\\))|(?=[^#,{_`A-Za-z\\x80-\\xff\\s])","patterns":[{"include":"#for-stmt-1"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.nim"}},"endCaptures":{"1":{"name":"keyword.control.loop.for.in.nim"},"2":{"name":"punctuation.section.parens.end.nim"}}},{"include":"#for-stmt-1"}],"beginCaptures":{"0":{"name":"keyword.control.loop.for.nim"}},"endCaptures":{"1":{"name":"keyword.control.loop.for.in.nim"}}}]},"generic-param-list":{"patterns":[{"name":"meta.generic.nim","begin":"(?\u003c=[`*\\w\\x{80}-\\x{ff}]) *(\\[)","end":"(])|(?=[^#_`:=,;A-Za-z\\x80-\\xff\\s])","patterns":[{"include":"#generic-param-list-0"}],"beginCaptures":{"1":{"name":"punctuation.section.generic.begin.nim"}},"endCaptures":{"1":{"name":"punctuation.section.generic.end.nim"}}}]},"generic-param-list-0":{"patterns":[{"name":"punctuation.separator.nim","match":"[,;]"},{"begin":"(:)|(=)","end":"([,;])|(?=\\])","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.separator.annotation.nim"},"2":{"name":"keyword.operator.assignment.nim"}},"endCaptures":{"1":{"name":"punctuation.separator.nim"}}},{"include":"#comments"}]},"generic-symbols":{"patterns":[{"name":"support.constant.nim","match":"[A-Z](_?[A-Z\\d_])+\\b"},{"name":"support.type.nim","match":"[A-Z][\\dA-Za-z]+\\b"},{"match":"[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`"}]},"interpolation":{"patterns":[{"match":"(`) *(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_) *(`)","captures":{"0":{"name":"source.nim.embedded"},"1":{"name":"punctuation.section.embedded.begin.nim"},"2":{"name":"punctuation.section.embedded.end.nim"}}}]},"keywords":{"patterns":[{"name":"keyword.operator.word.nim","match":"\\b(?:addr|cast)\\b"},{"name":"comment.block.nim","begin":"\\bdiscard +\"\"\"","end":"\"\"\"(?!\")","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.nim"}}},{"name":"keyword.other.nim","match":"\\b(?:distinct|discard)\\b"},{"name":"keyword.control.flow.nim","match":"\\b(?:asm|end|break|continue|raise|return|yield)\\b"},{"name":"storage.type.nim","match":"\\b(?:concept|enum|interface)\\b"},{"match":"\\b(object)\\b(?: *(of)\\b)?","captures":{"1":{"name":"storage.type.nim"},"2":{"name":"keyword.other.nim"}}},{"name":"keyword.control.loop.while.nim","match":"\\bwhile\\b"},{"name":"keyword.control.conditional.switch.nim","match":"\\bcase\\b"},{"name":"keyword.control.conditional.case.nim","match":"^ *(of)\\b"},{"name":"keyword.control.conditional.if.nim","match":"\\bif\\b"},{"name":"keyword.control.conditional.when.nim","match":"\\bwhen\\b"},{"name":"keyword.control.conditional.elseif.nim","match":"\\belif\\b"},{"match":"\\b(else)\\b(?: *(:))?","captures":{"0":{"name":"meta.statement.conditional.else.nim"},"1":{"name":"keyword.control.conditional.else.nim"},"2":{"name":"punctuation.section.block.conditional.else.nim"}}},{"match":"\\b(try)\\b(?: *(:))?","captures":{"0":{"name":"meta.statement.exception.try.nim"},"1":{"name":"keyword.control.exception.try.nim"},"2":{"name":"punctuation.section.block.exception.nim"}}},{"match":"\\b(finally)\\b(?: *(:))?","captures":{"0":{"name":"meta.statement.exception.finally.nim"},"1":{"name":"keyword.control.exception.finally.nim"},"2":{"name":"punctuation.section.block.exception.finally.nim"}}},{"match":"\\b(defer)\\b(?: *(:))?","captures":{"1":{"name":"keyword.control.flow.defer.nim"},"2":{"name":"punctuation.section.block.begin.nim"}}},{"match":"\\b(block)\\b(?:(?: *(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`))? *(:))?","captures":{"1":{"name":"keyword.declaration.block.nim"},"2":{"name":"punctuation.section.block.begin.nim"}}},{"name":"keyword.control.nim","match":"\\b(?:as|(?:ex|im)port|include|bind|mixin|from|except)\\b"},{"name":"storage.modifier.nim","match":"\\b(?:const|let|var|using)\\b"}]},"language-constants":{"patterns":[{"name":"constant.language.nim","match":"\\b(?:true|false|nil)\\b"}]},"line-comments":{"patterns":[{"name":"comment.line.number-sign.nim","begin":"(#)(?: *(TODO|todo)\\b)?","end":"$\\n?","beginCaptures":{"1":{"name":"punctuation.definition.comment.nim"},"2":{"name":"invalid.deprecated.nim"}}}]},"line-doc-comments":{"patterns":[{"name":"comment.line.documentation.nim","begin":"##","end":"$\\n?","beginCaptures":{"0":{"name":"punctuation.definition.comment.nim"}}}]},"literals":{"patterns":[{"include":"#str_lits"},{"include":"#numbers"},{"include":"#characters"},{"include":"#language-constants"}]},"numbers":{"patterns":[{"match":"(?x: \\b(\\d(?:_?\\d)*) (?: (?: ((\\.)\\d(?:_?\\d)*) ([Ee][-+]?\\d(?:_?\\d)*)? |([Ee][-+]?\\d(?:_?\\d)*) ) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[Ff](?:32|64)|[Dd]))? |('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[Ff](?:32|64)|[Dd])) ) )","captures":{"0":{"name":"meta.number.float.decimal.nim"},"1":{"name":"constant.numeric.value.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"punctuation.separator.decimal.nim"},"4":{"name":"constant.numeric.value.exponent.nim"},"5":{"name":"constant.numeric.value.exponent.nim"},"6":{"name":"constant.numeric.suffix.nim"},"7":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0[Xx]) ([[:xdigit:]](?:_?[[:xdigit:]])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|[Ff](?:32|64)) )","captures":{"0":{"name":"meta.number.float.hexadecimal.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0o) ([0-7](?:_?[0-7])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[Ff](?:32|64)|[Dd])) )","captures":{"0":{"name":"meta.number.float.octal.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0[Bb]) ([01](?:_?[01])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[Ff](?:32|64)|[Dd])) )","captures":{"0":{"name":"meta.number.float.binary.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0[Xx]) ([[:xdigit:]](?:_?[[:xdigit:]])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[IUiu](?:8|16|32|64)|[Uu]))? )","captures":{"0":{"name":"meta.number.integer.hexadecimal.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0o) ([0-7](?:_?[0-7])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[IUiu](?:8|16|32|64)|[Uu]))? )","captures":{"0":{"name":"meta.number.integer.octal.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(0[Bb]) ([01](?:_?[01])*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[IUiu](?:8|16|32|64)|[Uu]))? )","captures":{"0":{"name":"meta.number.integer.binary.nim"},"1":{"name":"constant.numeric.base.nim"},"2":{"name":"constant.numeric.value.nim"},"3":{"name":"constant.numeric.suffix.nim"}}},{"match":"(?x: \\b(\\d(?:_?\\d)*) ('(?:[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_)|(?:[IUiu](?:8|16|32|64)|[Uu]))? )","captures":{"0":{"name":"meta.number.integer.decimal.nim"},"1":{"name":"constant.numeric.value.nim"},"2":{"name":"constant.numeric.suffix.nim"}}}]},"operators":{"patterns":[{"name":"keyword.operator.logical.nim","match":"\\b(?:and|not|x?or)\\b"},{"name":"keyword.control.conditional.case.nim","match":"^of\\b"},{"name":"keyword.operator.word.nim","match":"\\b(?:of|(?:not)?in|is(?:not)?)\\b"},{"name":"keyword.operator.bitwise.nim","match":"\\bsh[lr]\\b"},{"name":"keyword.operator.arithmetic.nim","match":"\\b(?:div|mod)\\b"},{"name":"keyword.operator.comparison.nim","match":"==|\u003c=?|\u003e=?|!="},{"name":"keyword.operator.assignment.nim","match":"(?:[-+*/@$\u0026%|^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔][-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]*)?=(?![-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])"},{"name":"keyword.operator.nim","match":"[-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]+"}]},"param-list":{"patterns":[{"name":"meta.function.parameters","begin":"\\(","end":"\\)","patterns":[{"name":"punctuation.separator.nim","match":"[,;]"},{"begin":"(:)|(=)","end":"(?=[,;\\)])","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.separator.annotation.nim"},"2":{"name":"keyword.operator.assignment.nim"}}},{"include":"#comments"}],"beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.nim"}}}]},"patterns":{"patterns":[{"name":"meta.pattern.nim","begin":"\\{(?!\\.)","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.pattern.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.pattern.end.nim"}}}]},"pragmas":{"patterns":[{"name":"meta.annotation.nim","begin":"\\{\\.(?!\\.})","end":"\\.?}","patterns":[{"include":"#calls"},{"name":"entity.other.attribute-name.pragma.nim","match":"[A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`"},{"include":"#square-brackets"},{"begin":"(?=\\S)","end":"(,)|(?=\\.?})","patterns":[{"begin":":","end":"(?=,|\\.?})","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.nim"}}}],"endCaptures":{"1":{"name":"punctuation.separator.sequence.nim"}}}],"beginCaptures":{"0":{"name":"punctuation.section.annotation.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.annotation.end.nim"}}}]},"punctuations":{"patterns":[{"name":"punctuation.terminator.statement.nim","match":";"},{"name":"punctuation.separator.nim","match":","},{"name":"punctuation.section.block.begin.nim","match":":"},{"name":"punctuation.accessor.dot.nim","match":"\\.(?![-=+*/\u003c\u003e@$~\u0026%|!?^.:\\\\∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])"},{"match":"(\\*) *(:|(?=,|#|\\{\\.))","captures":{"1":{"name":"storage.modifier.nim"},"2":{"name":"punctuation.separator.annotation.nim"}}},{"name":"invalid.illegal.nim","match":"\\)|]|}"}]},"routines":{"patterns":[{"name":"meta.function.nim","begin":"(?x: (proc|template|iterator|func|method|macro|converter)\\b (?:[ ]*([A-Za-z\\x80-\\xff](?:_?[\\dA-Za-z\\x80-\\xff])*|_|`[^;,\\n`]+`)(?:[ ]*(\\*))?)? )","end":"(:)|(?=[^#\\(\\[:\\s]|##)","patterns":[{"include":"#comments"},{"include":"#patterns"},{"include":"#generic-param-list"},{"include":"#param-list"}],"beginCaptures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"entity.name.function.nim"},"3":{"name":"storage.modifier.nim"}},"endCaptures":{"1":{"name":"punctuation.separator.annotation.nim"}}}]},"rstr_lit":{"patterns":[{"contentName":"string.quoted.double.nim","begin":"([Rr])(\")","end":"(\"(?!\"))|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"\"\""}],"beginCaptures":{"1":{"name":"storage.type.nim"},"2":{"name":"string.quoted.double.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"string.quoted.double.nim punctuation.definition.string.end.nim"},"2":{"name":"string.quoted.double.nim invalid.illegal.unclosed-string.nim"}}}]},"square-brackets":{"patterns":[{"name":"meta.brackets.nim","begin":"\\[","end":"]","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.nim"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.nim"}}}]},"str_lit":{"patterns":[{"name":"string.quoted.double.nim","begin":"\"","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.nim","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nim","match":"\\\\"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nim"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.nim"},"2":{"name":"invalid.illegal.nim"}}}]},"str_lits":{"patterns":[{"include":"#triplestr_lit"},{"include":"#rstr_lit"},{"include":"#str_lit"}]},"triplestr_lit":{"patterns":[{"contentName":"string.quoted.triple.nim","begin":"([Rr])?(\"\"\")","end":"\"\"\"(?!\")","beginCaptures":{"1":{"name":"storage.type.nim"},"2":{"name":"string.quoted.triple.nim punctuation.definition.string.begin.nim"}},"endCaptures":{"0":{"name":"string.quoted.triple.nim punctuation.definition.string.end.nim"}}}]},"types":{"patterns":[{"contentName":"meta.generic.nim","begin":"(?=(?:[A-Za-z](?:_?[\\dA-Za-z])*)\\[)(?x:(out|ptr|ref|array |cstring[Aa]rray|iterable|lent|open[Aa]rray|owned|ptr|range|ref|se[qt] |sink|static|type(?:[Dd]esc)?|varargs)|([A-Z][\\dA-Za-z]+))(\\[)","end":"]","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.primitive.nim"},"2":{"name":"support.type.nim"},"3":{"name":"meta.generic.nim punctuation.section.generic.begin.nim"}},"endCaptures":{"0":{"name":"meta.generic.nim punctuation.section.generic.nim"}}},{"name":"storage.type.primitive.nim","match":"\\b(?:out|tuple|ref|ptr)\\b"}]}}}
@@ -1 +1 @@
1
- {"name":"nushell","scopeName":"source.nushell","patterns":[{"include":"#define-variable"},{"include":"#define-alias"},{"include":"#function"},{"include":"#extern"},{"include":"#module"},{"include":"#use-module"},{"include":"#expression"},{"include":"#comment"}],"repository":{"binary":{"name":"constant.binary.nushell","begin":"\\b(0x)(\\[)","end":"\\]","patterns":[{"name":"constant.numeric.nushell","match":"[0-9a-fA-F]{2}"}],"beginCaptures":{"1":{"name":"constant.numeric.nushell"},"2":{"name":"meta.brace.square.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.square.begin.nushell"}}},"braced-expression":{"name":"meta.expression.braced.nushell","begin":"\\{","end":"\\}","patterns":[{"name":"meta.closure.parameters.nushell","begin":"(?\u003c=\\{)\\s*\\|","end":"\\|","patterns":[{"include":"#function-parameter"}]},{"match":"(\\w+)\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"keyword.control.nushell"}}},{"name":"meta.record-entry.nushell","match":"(\\$\"((?:[^\"\\\\]|\\\\.)*)\")\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"variable.other.nushell","patterns":[{"include":"#paren-expression"}]},"3":{"name":"keyword.control.nushell"}}},{"name":"meta.record-entry.nushell","match":"(\"(?:[^\"\\\\]|\\\\.)*\")\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"keyword.control.nushell"}}},{"name":"meta.record-entry.nushell","match":"(\\$'([^']*)')\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"variable.other.nushell","patterns":[{"include":"#paren-expression"}]},"3":{"name":"keyword.control.nushell"}}},{"name":"meta.record-entry.nushell","match":"('[^']*')\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"keyword.control.nushell"}}},{"include":"#spread"},{"include":"source.nushell"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.nushell"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.nushell"}}},"command":{"name":"meta.command.nushell","begin":"(?\u003c!\\w)(?:(\\^)|(?![0-9]|\\$))([\\w.!]+(?:(?: (?!-)[\\w\\-.!]+(?:(?= |\\))|$)|[\\w\\-.!]+))*|(?\u003c=\\^)\\$?(?:\"[^\"]+\"|'[^']+'))","end":"(?=\\||\\)|\\}|;)|$","patterns":[{"include":"#parameters"},{"include":"#spread"},{"include":"#value"}],"beginCaptures":{"1":{"name":"keyword.operator.nushell"},"2":{"patterns":[{"include":"#control-keywords"},{"match":"(?:ansi|char) \\w+","captures":{"0":{"name":"keyword.other.builtin.nushell"}}},{"match":"(a(?:ll|n(?:si(?: (?:gradient|link|strip))?|y)|ppend|st)|b(?:its(?: (?:and|not|or|ro(?:l|r)|sh(?:l|r)|xor))?|reak|ytes(?: (?:a(?:dd|t)|build|collect|ends-with|index-of|length|re(?:move|place|verse)|starts-with))?)|c(?:al|d|har|lear|o(?:l(?:lect|umns)|m(?:mandline|p(?:act|lete))|n(?:fig(?: (?:env|nu|reset))?|tinue))|p)|d(?:ate(?: (?:format|humanize|list-timezone|now|to-(?:record|t(?:able|imezone))))?|e(?:bug|code(?: (?:base64|hex))?|fault|scribe|tect columns)|fr (?:a(?:gg(?:-groups)?|ll-(?:false|true)|ppend|rg-(?:m(?:ax|in)|sort|true|unique|where)|s(?:-date(?:time)?)?)|c(?:ache|o(?:l(?:lect|umns)?|n(?:cat(?:-str|enate)|tains)|unt(?:-null)?)|umulative)|d(?:atepart|rop(?:-(?:duplicates|nulls))?|types|ummies)|exp(?:lode|r-not)|f(?:etch|i(?:l(?:l-n(?:an|ull)|ter(?:-with)?)|rst)|latten)|g(?:et(?:-(?:day|hour|m(?:inute|onth)|nanosecond|ordinal|second|week(?:day)?|year))?|roup-by)|i(?:mplode|nto-(?:df|lazy|nu)|s-(?:duplicated|in|n(?:ot-null|ull)|unique))|join|l(?:ast|it|owercase|s)|m(?:ax|e(?:an|dian|lt)|in)|n(?:-unique|ot)|o(?:pen|therwise)|qu(?:antile|ery)|r(?:e(?:name|place(?:-all)?|verse)|olling)|s(?:ample|e(?:lect|t(?:-with-idx)?)|h(?:ape|ift)|lice|ort-by|t(?:d|r(?:-(?:lengths|slice)|ftime))|um(?:mary)?)|t(?:ake|o-(?:a(?:rrow|vro)|csv|jsonl|parquet))|u(?:nique|ppercase)|va(?:lue-counts|r)|w(?:hen|ith-column))|o|rop(?: (?:column|nth))?|u)|e(?:ach(?: while)?|cho|n(?:code(?: (?:base64|hex))?|umerate)|rror make|very|x(?:ec|it|p(?:l(?:ain|ore)|ort-env)))|f(?:i(?:l(?:l|ter)|nd|rst)|latten|mt|ormat(?: (?:d(?:ate|uration)|filesize))?|rom(?: (?:csv|json|nuon|ods|ssv|t(?:oml|sv)|url|x(?:lsx|ml)|y(?:aml|ml)))?)|g(?:et|lob|r(?:id|oup(?:-by)?))|h(?:ash(?: (?:md5|sha256))?|e(?:aders|lp(?: (?:aliases|commands|externs|modules|operators))?)|i(?:de-env|sto(?:gram|ry(?: session)?))|ttp(?: (?:delete|get|head|options|p(?:atch|ost|ut)))?)|i(?:f|gnore|n(?:put(?: list(?:en)?)?|s(?:ert|pect)|to(?: (?:b(?:i(?:nary|ts)|ool)|d(?:atetime|ecimal|uration)|f(?:ilesize|loat)|int|record|s(?:qlite|tring)))?)|s-(?:admin|empty)|tems)|join|k(?:eybindings(?: (?:default|list(?:en)?))?|ill)|l(?:a(?:st|zy make)|e(?:ngth|t-env)|ines|o(?:ad-env|op)|s)|m(?:at(?:ch|h(?: (?:a(?:bs|rc(?:cos(?:h)?|sin(?:h)?|tan(?:h)?)|vg)|c(?:eil|os(?:h)?)|exp|floor|l(?:n|og)|m(?:ax|edian|in|ode)|product|round|s(?:in(?:h)?|qrt|tddev|um)|tan(?:h)?|variance))?)|e(?:rge|tadata)|kdir|ove|v)|nu-(?:check|highlight)|o(?:pen|verlay list)|p(?:a(?:r(?:-each|se)|th(?: (?:basename|dirname|ex(?:ists|pand)|join|parse|relative-to|split|type))?)|ort|r(?:epend|int|ofile)|s)|query db|r(?:an(?:dom(?: (?:bool|chars|d(?:ecimal|ice)|float|integer|uuid))?|ge)|e(?:duce|ject|name|verse)|m|o(?:ll(?: (?:down|left|right|up))?|tate)|un-external)|s(?:ave|c(?:hema|ope (?:aliases|commands|e(?:ngine-stats|xterns)|modules|variables))|e(?:lect|q(?: (?:char|date))?)|huffle|ize|kip(?: (?:until|while))?|leep|o(?:rt(?:-by)?|urce-env)|plit(?: (?:c(?:hars|olumn)|list|row|words)|-by)?|t(?:art|r(?: (?:c(?:a(?:mel-case|pitalize)|ontains)|d(?:istance|owncase)|e(?:nds-with|xpand)|index-of|join|kebab-case|length|pascal-case|re(?:place|verse)|s(?:creaming-snake-case|nake-case|tarts-with|ubstring)|t(?:itle-case|rim)|upcase))?)|ys)|t(?:a(?:ble|ke(?: (?:until|while))?)|erm size|imeit|o(?: (?:csv|html|json|md|nuon|t(?:ext|oml|sv)|xml|yaml)|uch)?|r(?:anspose|y)|utor)|u(?:cp|niq(?:-by)?|p(?:date(?: cells)?|sert)|rl(?: (?:build-query|encode|join|parse))?)|v(?:alues|ersion|iew(?: (?:files|s(?:ource|pan)))?)|w(?:atch|h(?:ere|i(?:ch|le))|i(?:ndow|th-env)|rap)|zip)(?![\\w-])( (.*))?","captures":{"1":{"name":"keyword.other.builtin.nushell"},"2":{"patterns":[{"include":"#value"}]}}},{"name":"entity.name.type.external.nushell","match":"(?\u003c=\\^)(?:\\$(\"[^\"]+\"|'[^']+')|\"[^\"]+\"|'[^']+')","captures":{"1":{"patterns":[{"include":"#paren-expression"}]}}},{"match":"([\\w.]+(?:-[\\w.!]+)*)(?: (.*))?","captures":{"1":{"name":"entity.name.type.external.nushell"},"2":{"patterns":[{"include":"#value"}]}}},{"include":"#value"}]}}},"comment":{"name":"comment.nushell","match":"(#.*)$"},"constant-keywords":{"name":"constant.language.nushell","match":"\\b(?:true|false|null)\\b"},"constant-value":{"patterns":[{"include":"#constant-keywords"},{"include":"#datetime"},{"include":"#numbers"},{"include":"#numbers-hexa"},{"include":"#binary"}]},"control-keywords":{"name":"keyword.control.nushell","match":"(?\u003c![0-9a-zA-Z_\\-.\\/:\\\\])(?:break|continue|else(?: if)?|for|if|loop|mut|return|try|while)(?![0-9a-zA-Z_\\-.\\/:\\\\])"},"datetime":{"name":"constant.numeric.nushell","match":"\\b\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:\\+\\d{2}:?\\d{2}|Z)?)?\\b"},"define-alias":{"match":"((?:export )?alias)\\s+([\\w\\-!]+)\\s*(=)","captures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.type.nushell"},"3":{"patterns":[{"include":"#operators"}]}}},"define-variable":{"match":"(let|mut|(?:export\\s+)?const)\\s+(\\w+)\\s+(=)","captures":{"1":{"name":"keyword.other.nushell"},"2":{"name":"variable.other.nushell"},"3":{"patterns":[{"include":"#operators"}]}}},"expression":{"patterns":[{"include":"#pre-command"},{"include":"#for-loop"},{"include":"#operators"},{"name":"keyword.control.nushell","match":"\\|"},{"include":"#control-keywords"},{"include":"#constant-value"},{"include":"#command"},{"include":"#value"}]},"extern":{"begin":"((?:export\\s+)?extern)\\s+([\\w\\-]+|\"[\\w\\- ]+\")","end":"(?\u003c=\\])","patterns":[{"include":"#function-parameters"}],"beginCaptures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.type.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.function.end.nushell"}}},"for-loop":{"name":"meta.for-loop.nushell","begin":"(for)\\s+(\\$?\\w+)\\s+(in)\\s+(.+)\\s*(\\{)","end":"\\}","patterns":[{"include":"source.nushell"}],"beginCaptures":{"1":{"name":"keyword.other.nushell"},"2":{"name":"variable.other.nushell"},"3":{"name":"keyword.other.nushell"},"4":{"patterns":[{"include":"#value"}]},"5":{"name":"punctuation.section.block.begin.bracket.curly.nushell"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.nushell"}}},"function":{"begin":"((?:export\\s+)?def(?:\\s+--\\w+)?)\\s+([\\w\\-]+|\"[\\w\\- ]+\")(\\s+--\\w+)?","end":"(?\u003c=\\})","patterns":[{"include":"#function-parameters"},{"include":"#function-body"},{"include":"#function-inout"}],"beginCaptures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.type.nushell"},"3":{"name":"entity.name.function.nushell"}}},"function-body":{"name":"meta.function.body.nushell","begin":"\\{","end":"\\}","patterns":[{"include":"source.nushell"}],"beginCaptures":{"0":{"name":"punctuation.definition.function.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.function.end.nushell"}}},"function-inout":{"patterns":[{"include":"#types"},{"name":"keyword.operator.nushell","match":"-\u003e"},{"include":"#function-multiple-inout"}]},"function-multiple-inout":{"end":"\\]","patterns":[{"include":"#types"},{"match":"\\s*(,)\\s*","captures":{"1":{"name":"punctuation.separator.nushell"}}},{"match":"\\s+(-\u003e)\\s+","captures":{"1":{"name":"keyword.operator.nushell"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.in-out.nushell"},"2":{"name":"meta.brace.square.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.square.end.nushell"}}},"function-parameter":{"patterns":[{"name":"variable.parameter.nushell","match":"(-{0,2}|\\.{3})[\\w-]+(?:\\((-[\\w?])\\))?","captures":{"1":{"name":"keyword.control.nushell"}}},{"begin":"\\??:\\s*","end":"(?=(?:\\s+(?:-{0,2}|\\.{3})[\\w-]+)|(?:\\s*(?:,|\\]|\\||@|=|#|$)))","patterns":[{"include":"#types"}]},{"begin":"@(?=\"|')","end":"(?\u003c=\"|')","patterns":[{"include":"#string"}]},{"name":"default.value.nushell","begin":"=\\s*","end":"(?=(?:\\s+-{0,2}[\\w-]+)|(?:\\s*(?:,|\\]|\\||#|$)))","patterns":[{"include":"#value"}]}]},"function-parameters":{"name":"meta.function.parameters.nushell","begin":"\\[","end":"\\]","patterns":[{"include":"#function-parameter"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"meta.brace.square.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.square.end.nushell"}}},"internal-variables":{"name":"variable.language.nushell","match":"\\$(?:nu|env)\\b"},"keyword":{"name":"keyword.other.nushell","match":"(?:def(?:-env)?)"},"module":{"name":"meta.module.nushell","begin":"((?:export\\s+)?module)\\s+([\\w\\-]+)\\s*\\{","end":"\\}","patterns":[{"include":"source.nushell"}],"beginCaptures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.namespace.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.module.end.nushell"}}},"numbers":{"name":"constant.numeric.nushell","match":"(?\u003c![\\w-])[-+]?(?:\\d+|\\d{1,3}(?:_\\d{3})*)(?:\\.\\d*)?(?i:ns|us|ms|sec|min|hr|day|wk|b|kb|mb|gb|tb|pt|eb|zb|kib|mib|gib|tib|pit|eib|zib)?(?:(?![\\w.])|(?=\\.\\.))"},"numbers-hexa":{"name":"constant.numeric.nushell","match":"(?\u003c![\\w-])0x[0-9a-fA-F]+(?![\\w.])"},"operators":{"patterns":[{"include":"#operators-word"},{"include":"#operators-symbols"},{"include":"#ranges"}]},"operators-symbols":{"name":"keyword.control.nushell","match":"(?\u003c= )(?:(?:\\+|\\-|\\*|\\/)=?|\\/\\/|\\*\\*|!=|[\u003c\u003e=]=?|[!=]~|\\+\\+=?)(?= |$)"},"operators-word":{"name":"keyword.control.nushell","match":"(?\u003c= |\\()(?:mod|in|not-in|not|and|or|xor|bit-or|bit-and|bit-xor|bit-shl|bit-shr|starts-with|ends-with)(?= |\\)|$)"},"parameters":{"name":"variable.parameter.nushell","match":"(?\u003c=\\s)(-{1,2})[\\w-]+","captures":{"1":{"name":"keyword.control.nushell"}}},"paren-expression":{"name":"meta.expression.parenthesis.nushell","begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.round.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.round.end.nushell"}}},"pre-command":{"begin":"(\\w+)(=)","end":"(?=\\s+)","patterns":[{"include":"#value"}],"beginCaptures":{"1":{"name":"variable.other.nushell"},"2":{"patterns":[{"include":"#operators"}]}}},"ranges":{"name":"keyword.control.nushell","match":"\\.\\.\u003c?"},"spread":{"name":"keyword.control.nushell","match":"\\.\\.\\.(?=[^\\s\\]}])"},"string":{"patterns":[{"include":"#string-single-quote"},{"include":"#string-backtick"},{"include":"#string-double-quote"},{"include":"#string-interpolated-double"},{"include":"#string-interpolated-single"},{"include":"#string-bare"}]},"string-backtick":{"name":"string.quoted.single.nushell","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"string-bare":{"name":"string.bare.nushell","match":"[^$\\[{(\"',|#\\s|][^\\[\\]{}()\"'\\s#,|]*"},"string-double-quote":{"name":"string.quoted.double.nushell","begin":"\"","end":"\"","patterns":[{"match":"\\w+"},{"include":"#string-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"string-escape":{"name":"constant.character.escape.nushell","match":"\\\\(?:[bfrnt\\\\'\"/]|u[0-9a-fA-F]{4})"},"string-interpolated-double":{"name":"string.interpolated.double.nushell","begin":"\\$\"","end":"\"","patterns":[{"name":"constant.character.escape.nushell","match":"\\\\[()]"},{"include":"#string-escape"},{"include":"#paren-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"string-interpolated-single":{"name":"string.interpolated.single.nushell","begin":"\\$'","end":"'","patterns":[{"include":"#paren-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"string-single-quote":{"name":"string.quoted.single.nushell","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"table":{"name":"meta.table.nushell","begin":"\\[","end":"\\]","patterns":[{"include":"#spread"},{"include":"#value"},{"name":"punctuation.separator.nushell","match":","}],"beginCaptures":{"0":{"name":"meta.brace.square.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.square.end.nushell"}}},"types":{"patterns":[{"name":"meta.list.nushell","begin":"\\b(list)\\s*\u003c","end":"\u003e","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"entity.name.type.nushell"}}},{"name":"meta.record.nushell","begin":"\\b(record)\\s*\u003c","end":"\u003e","patterns":[{"match":"([\\w\\-]+|\"[\\w\\- ]+\"|'[^']+')\\s*:\\s*","captures":{"1":{"name":"variable.parameter.nushell"}}},{"include":"#types"}],"beginCaptures":{"1":{"name":"entity.name.type.nushell"}}},{"name":"entity.name.type.nushell","match":"\\b(\\w+)\\b"}]},"use-module":{"patterns":[{"match":"^\\s*((?:export )?use)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+')(?:\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*))?\\s*;?$","captures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.namespace.nushell"},"3":{"name":"keyword.other.nushell"}}},{"begin":"^\\s*((?:export )?use)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+')\\s*\\[","end":"(\\])\\s*;?\\s*$","patterns":[{"match":"([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*),?","captures":{"1":{"name":"keyword.other.nushell"}}},{"include":"#comment"}],"beginCaptures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.namespace.nushell"}},"endCaptures":{"1":{"name":"meta.brace.square.end.nushell"}}},{"match":"(?\u003cpath\u003e(?:/|\\\\|~[\\/\\\\]|\\.\\.?[\\/\\\\])?(?:[^\\/\\\\]+[\\/\\\\])*[\\w\\- ]+(?:\\.nu)?){0}^\\s*((?:export )?use)\\s+(\"\\g\u003cpath\u003e\"|'\\g\u003cpath\u003e\\'|(?![\"'])\\g\u003cpath\u003e)(?:\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[^']+'|\\*))?\\s*;?$","captures":{"2":{"name":"entity.name.function.nushell"},"3":{"name":"string.bare.nushell","patterns":[{"match":"([\\w\\- ]+)(?:\\.nu)?(?=$|\"|')","captures":{"1":{"name":"entity.name.namespace.nushell"}}}]},"4":{"name":"keyword.other.nushell"}}},{"begin":"(?\u003cpath\u003e(?:/|\\\\|~[\\/\\\\]|\\.\\.?[\\/\\\\])?(?:[^\\/\\\\]+[\\/\\\\])*[\\w\\- ]+(?:\\.nu)?){0}^\\s*((?:export )?use)\\s+(\"\\g\u003cpath\u003e\"|'\\g\u003cpath\u003e\\'|(?![\"'])\\g\u003cpath\u003e)\\s+\\[","end":"(\\])\\s*;?\\s*$","patterns":[{"match":"([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*),?","captures":{"0":{"name":"keyword.other.nushell"}}},{"include":"#comment"}],"beginCaptures":{"2":{"name":"entity.name.function.nushell"},"3":{"name":"string.bare.nushell","patterns":[{"match":"([\\w\\- ]+)(?:\\.nu)?(?=$|\"|')","captures":{"1":{"name":"entity.name.namespace.nushell"}}}]}},"endCaptures":{"1":{"name":"meta.brace.square.end.nushell"}}},{"match":"^\\s*(?:export )?use\\b","captures":{"0":{"name":"entity.name.function.nushell"}}}]},"value":{"patterns":[{"include":"#variables"},{"include":"#variable-fields"},{"include":"#control-keywords"},{"include":"#constant-value"},{"include":"#table"},{"include":"#operators"},{"include":"#paren-expression"},{"include":"#braced-expression"},{"include":"#string"},{"include":"#comment"}]},"variable-fields":{"name":"variable.other.nushell","match":"(?\u003c=\\)|\\}|\\])(?:\\.(?:[\\w-]+|\"[\\w\\- ]+\"))+"},"variables":{"match":"(\\$[a-zA-Z0-9_]+)((?:\\.(?:[\\w-]+|\"[\\w\\- ]+\"))*)","captures":{"1":{"patterns":[{"include":"#internal-variables"},{"name":"variable.other.nushell","match":"\\$.+"}]},"2":{"name":"variable.other.nushell"}}}}}
1
+ {"name":"nushell","scopeName":"source.nushell","patterns":[{"include":"#define-variable"},{"include":"#define-alias"},{"include":"#function"},{"include":"#extern"},{"include":"#module"},{"include":"#use-module"},{"include":"#expression"},{"include":"#comment"}],"repository":{"binary":{"name":"constant.binary.nushell","begin":"\\b(0x)(\\[)","end":"\\]","patterns":[{"name":"constant.numeric.nushell","match":"[0-9a-fA-F]{2}"}],"beginCaptures":{"1":{"name":"constant.numeric.nushell"},"2":{"name":"meta.brace.square.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.square.begin.nushell"}}},"braced-expression":{"name":"meta.expression.braced.nushell","begin":"\\{","end":"\\}","patterns":[{"name":"meta.closure.parameters.nushell","begin":"(?\u003c=\\{)\\s*\\|","end":"\\|","patterns":[{"include":"#function-parameter"}]},{"match":"(\\w+)\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"keyword.control.nushell"}}},{"name":"meta.record-entry.nushell","match":"(\\$\"((?:[^\"\\\\]|\\\\.)*)\")\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"variable.other.nushell","patterns":[{"include":"#paren-expression"}]},"3":{"name":"keyword.control.nushell"}}},{"name":"meta.record-entry.nushell","match":"(\"(?:[^\"\\\\]|\\\\.)*\")\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"keyword.control.nushell"}}},{"name":"meta.record-entry.nushell","match":"(\\$'([^']*)')\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"variable.other.nushell","patterns":[{"include":"#paren-expression"}]},"3":{"name":"keyword.control.nushell"}}},{"name":"meta.record-entry.nushell","match":"('[^']*')\\s*(:)\\s*","captures":{"1":{"name":"variable.other.nushell"},"2":{"name":"keyword.control.nushell"}}},{"include":"#spread"},{"include":"source.nushell"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.nushell"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.nushell"}}},"command":{"name":"meta.command.nushell","begin":"(?\u003c!\\w)(?:(\\^)|(?![0-9]|\\$))([\\w.!]+(?:(?: (?!-)[\\w\\-.!]+(?:(?= |\\))|$)|[\\w\\-.!]+))*|(?\u003c=\\^)\\$?(?:\"[^\"]+\"|'[^']+'))","end":"(?=\\||\\)|\\}|;)|$","patterns":[{"include":"#parameters"},{"include":"#spread"},{"include":"#value"}],"beginCaptures":{"1":{"name":"keyword.operator.nushell"},"2":{"patterns":[{"include":"#control-keywords"},{"match":"(?:ansi|char) \\w+","captures":{"0":{"name":"keyword.other.builtin.nushell"}}},{"match":"(a(?:l(?:ias|l)|n(?:si(?: (?:gradient|link|strip))?|y)|ppend|st)|b(?:g|its(?: (?:and|not|or|ro(?:l|r)|sh(?:l|r)|xor))?|reak|ytes(?: (?:a(?:dd|t)|build|collect|ends-with|index-of|length|re(?:move|place|verse)|starts-with))?)|c(?:al|d|har|l(?:ear|ipboard (?:copy|paste))|o(?:l(?:lect|umns)|m(?:mandline(?: (?:edit|get-cursor|set-cursor))?|p(?:act|lete))|n(?:fig(?: (?:env|nu|reset))?|st|tinue))|p|ustom-value (?:generate(?:2)?|update(?:-arg)?))|d(?:ate(?: (?:format|humanize|list-timezone|now|to-(?:record|t(?:able|imezone))))?|e(?:bug(?: info)?|code(?: (?:base64|hex))?|f(?:ault)?|scribe|tect columns)|fr(?: (?:a(?:gg(?:-groups)?|ll-(?:false|true)|ppend|rg-(?:m(?:ax|in)|sort|true|unique|where)|s(?:-date(?:time)?)?)|c(?:a(?:che|st)|o(?:l(?:lect|umns)?|n(?:cat(?:-str|enate)|tains)|unt(?:-null)?)|umulative)|d(?:atepart|rop(?:-(?:duplicates|nulls))?|types|ummies)|exp(?:lode|r-not)|f(?:etch|i(?:l(?:l-n(?:an|ull)|ter(?:-with)?)|rst)|latten)|g(?:et(?:-(?:day|hour|m(?:inute|onth)|nanosecond|ordinal|second|week(?:day)?|year))?|roup-by)|i(?:mplode|nto-(?:df|lazy|nu)|s-(?:duplicated|in|n(?:ot-null|ull)|unique))|join|l(?:ast|it|owercase|s)|m(?:ax|e(?:an|dian|lt)|in)|n(?:-unique|ot)|o(?:pen|therwise)|qu(?:antile|ery)|r(?:e(?:name|place(?:-all)?|verse)|olling)|s(?:ample|chema|e(?:lect|t(?:-with-idx)?)|h(?:ape|ift)|lice|ort-by|t(?:d|r(?:-(?:lengths|slice)|ftime))|um(?:mary)?)|t(?:ake|o-(?:a(?:rrow|vro)|csv|jsonl|parquet))|u(?:nique|ppercase)|va(?:lue-counts|r)|w(?:hen|ith-column)))?|o|rop(?: (?:column|nth))?|u)|e(?:ach(?: while)?|cho|moji|n(?:code(?: (?:base64|hex))?|umerate)|rror make|very|x(?:ec|it|p(?:l(?:ain|ore)|ort(?: (?:alias|const|def|extern|module|use)|-env)?)|tern))|f(?:i(?:l(?:e|l|ter)|nd|rst)|latten|mt|or(?:mat(?: (?:d(?:ate|uration)|filesize|pattern))?)?|rom(?: (?:csv|eml|i(?:cs|ni)|json|nuon|ods|p(?:arquet|ng)|ssv|t(?:oml|sv)|url|vcf|x(?:lsx|ml)|y(?:aml|ml)))?)|g(?:e(?:nerate|t)|lob|r(?:id|oup(?:-by)?)|stat)|h(?:ash(?: (?:md5|sha256))?|e(?:aders|lp(?: (?:aliases|commands|e(?:scapes|xterns)|modules|operators))?)|i(?:de(?:-env)?|ghlight|st(?:o(?:gram|ry(?: session)?))?)|ttp(?: (?:delete|get|head|options|p(?:atch|ost|ut)))?)|i(?:f|gnore|n(?:c|put(?: list(?:en)?)?|s(?:ert|pect)|t(?:erleave|o(?: (?:b(?:i(?:nary|ts)|ool)|cell-path|d(?:atetime|uration)|f(?:ilesize|loat)|glob|int|record|s(?:qlite|tring)|value))?))|s-(?:admin|empty|not-empty|terminal)|tems)|j(?:oin|son path|walk)|k(?:eybindings(?: (?:default|list(?:en)?))?|ill)|l(?:a(?:st|zy make)|e(?:ngth|t(?:-env)?)|ines|o(?:ad-env|op)|s)|m(?:at(?:ch|h(?: (?:a(?:bs|rc(?:cos(?:h)?|sin(?:h)?|tan(?:h)?)|vg)|c(?:eil|os(?:h)?)|exp|floor|l(?:n|og)|m(?:ax|edian|in|ode)|product|round|s(?:in(?:h)?|qrt|tddev|um)|tan(?:h)?|variance))?)|e(?:rge|tadata)|k(?:dir|temp)|o(?:dule|ve)|ut|v)|nu-(?:check|example-(?:1|2|3|config)|highlight)|o(?:pen|verlay(?: (?:hide|list|new|use))?)|p(?:a(?:nic|r(?:-each|se)|th(?: (?:basename|dirname|ex(?:ists|pand)|join|parse|relative-to|split|type))?)|eriodic-table|lot|net|ort(?: (?:list|scan))?|r(?:epend|int)|s)|query(?: (?:db|git|json|web|xml))?|r(?:an(?:dom(?: (?:bool|chars|dice|float|int|uuid))?|ge)|e(?:duce|g(?:ex|ist(?:er|ry query))|ject|name|turn|verse)|m|o(?:ll(?: (?:down|left|right|up))?|tate)|un-external)|s(?:ave|c(?:hema|ope(?: (?:aliases|commands|e(?:ngine-stats|xterns)|modules|variables))?)|e(?:lect|q(?: (?:char|date))?)|huffle|kip(?: (?:until|while))?|leep|o(?:rt(?:-by)?|urce(?:-env)?)|plit(?: (?:c(?:hars|olumn)|list|row|words)|-by)?|t(?:art|or(?: (?:create|delete|export|i(?:mport|nsert)|open|reset|update))?|r(?: (?:c(?:a(?:mel-case|pitalize)|ontains)|d(?:istance|owncase)|e(?:nds-with|scape-glob|xpand)|index-of|join|kebab-case|length|pascal-case|re(?:place|verse)|s(?:creaming-snake-case|imilarity|nake-case|ta(?:rts-with|ts)|ubstring)|t(?:itle-case|rim)|upcase)|eam_example(?: (?:collect-external|s(?:eq|um)))?)?)|ys)|t(?:a(?:ble|ke(?: (?:until|while))?)|e(?:e|rm size)|imeit|o(?: (?:csv|html|json|md|nuon|png|qr|t(?:ext|oml|sv)|xml|yaml)|uch)?|r(?:anspose|y)|utor)|u(?:limit|ni(?:q(?:-by)?|ts)|p(?:date(?: cells)?|sert)|rl(?: (?:build-query|decode|encode|join|parse))?|se)|v(?:alues|ersion|iew(?: (?:files|s(?:ource|pan)))?)|w(?:atch|h(?:ere|i(?:ch|le)|oami)|i(?:ndow|th-env)|rap)|xyplot|zip)(?![\\w-])( (.*))?","captures":{"1":{"name":"keyword.other.builtin.nushell"},"2":{"patterns":[{"include":"#value"}]}}},{"name":"entity.name.type.external.nushell","match":"(?\u003c=\\^)(?:\\$(\"[^\"]+\"|'[^']+')|\"[^\"]+\"|'[^']+')","captures":{"1":{"patterns":[{"include":"#paren-expression"}]}}},{"match":"([\\w.]+(?:-[\\w.!]+)*)(?: (.*))?","captures":{"1":{"name":"entity.name.type.external.nushell"},"2":{"patterns":[{"include":"#value"}]}}},{"include":"#value"}]}}},"comment":{"name":"comment.nushell","match":"(#.*)$"},"constant-keywords":{"name":"constant.language.nushell","match":"\\b(?:true|false|null)\\b"},"constant-value":{"patterns":[{"include":"#constant-keywords"},{"include":"#datetime"},{"include":"#numbers"},{"include":"#numbers-hexa"},{"include":"#binary"}]},"control-keywords":{"name":"keyword.control.nushell","match":"(?\u003c![0-9a-zA-Z_\\-.\\/:\\\\])(?:break|continue|else(?: if)?|for|if|loop|mut|return|try|while)(?![0-9a-zA-Z_\\-.\\/:\\\\])"},"datetime":{"name":"constant.numeric.nushell","match":"\\b\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:\\+\\d{2}:?\\d{2}|Z)?)?\\b"},"define-alias":{"match":"((?:export )?alias)\\s+([\\w\\-!]+)\\s*(=)","captures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.type.nushell"},"3":{"patterns":[{"include":"#operators"}]}}},"define-variable":{"match":"(let|mut|(?:export\\s+)?const)\\s+(\\w+)\\s+(=)","captures":{"1":{"name":"keyword.other.nushell"},"2":{"name":"variable.other.nushell"},"3":{"patterns":[{"include":"#operators"}]}}},"expression":{"patterns":[{"include":"#pre-command"},{"include":"#for-loop"},{"include":"#operators"},{"name":"keyword.control.nushell","match":"\\|"},{"include":"#control-keywords"},{"include":"#constant-value"},{"include":"#command"},{"include":"#value"}]},"extern":{"begin":"((?:export\\s+)?extern)\\s+([\\w\\-]+|\"[\\w\\- ]+\")","end":"(?\u003c=\\])","patterns":[{"include":"#function-parameters"}],"beginCaptures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.type.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.function.end.nushell"}}},"for-loop":{"name":"meta.for-loop.nushell","begin":"(for)\\s+(\\$?\\w+)\\s+(in)\\s+(.+)\\s*(\\{)","end":"\\}","patterns":[{"include":"source.nushell"}],"beginCaptures":{"1":{"name":"keyword.other.nushell"},"2":{"name":"variable.other.nushell"},"3":{"name":"keyword.other.nushell"},"4":{"patterns":[{"include":"#value"}]},"5":{"name":"punctuation.section.block.begin.bracket.curly.nushell"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.nushell"}}},"function":{"begin":"((?:export\\s+)?def(?:\\s+--\\w+)*)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|`[\\w\\- ]+`)(\\s+--\\w+)*","end":"(?\u003c=\\})","patterns":[{"include":"#function-parameters"},{"include":"#function-body"},{"include":"#function-inout"}],"beginCaptures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.type.nushell"},"3":{"name":"entity.name.function.nushell"}}},"function-body":{"name":"meta.function.body.nushell","begin":"\\{","end":"\\}","patterns":[{"include":"source.nushell"}],"beginCaptures":{"0":{"name":"punctuation.definition.function.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.function.end.nushell"}}},"function-inout":{"patterns":[{"include":"#types"},{"name":"keyword.operator.nushell","match":"-\u003e"},{"include":"#function-multiple-inout"}]},"function-multiple-inout":{"end":"\\]","patterns":[{"include":"#types"},{"match":"\\s*(,)\\s*","captures":{"1":{"name":"punctuation.separator.nushell"}}},{"match":"\\s+(-\u003e)\\s+","captures":{"1":{"name":"keyword.operator.nushell"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.in-out.nushell"},"2":{"name":"meta.brace.square.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.square.end.nushell"}}},"function-parameter":{"patterns":[{"name":"variable.parameter.nushell","match":"(-{0,2}|\\.{3})[\\w-]+(?:\\((-[\\w?])\\))?","captures":{"1":{"name":"keyword.control.nushell"}}},{"begin":"\\??:\\s*","end":"(?=(?:\\s+(?:-{0,2}|\\.{3})[\\w-]+)|(?:\\s*(?:,|\\]|\\||@|=|#|$)))","patterns":[{"include":"#types"}]},{"begin":"@(?=\"|')","end":"(?\u003c=\"|')","patterns":[{"include":"#string"}]},{"name":"default.value.nushell","begin":"=\\s*","end":"(?=(?:\\s+-{0,2}[\\w-]+)|(?:\\s*(?:,|\\]|\\||#|$)))","patterns":[{"include":"#value"}]}]},"function-parameters":{"name":"meta.function.parameters.nushell","begin":"\\[","end":"\\]","patterns":[{"include":"#function-parameter"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"meta.brace.square.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.square.end.nushell"}}},"internal-variables":{"name":"variable.language.nushell","match":"\\$(?:nu|env)\\b"},"keyword":{"name":"keyword.other.nushell","match":"(?:def(?:-env)?)"},"module":{"name":"meta.module.nushell","begin":"((?:export\\s+)?module)\\s+([\\w\\-]+)\\s*\\{","end":"\\}","patterns":[{"include":"source.nushell"}],"beginCaptures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.namespace.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.module.end.nushell"}}},"numbers":{"name":"constant.numeric.nushell","match":"(?\u003c![\\w-])[-+]?(?:\\d+|\\d{1,3}(?:_\\d{3})*)(?:\\.\\d*)?(?i:ns|us|ms|sec|min|hr|day|wk|b|kb|mb|gb|tb|pt|eb|zb|kib|mib|gib|tib|pit|eib|zib)?(?:(?![\\w.])|(?=\\.\\.))"},"numbers-hexa":{"name":"constant.numeric.nushell","match":"(?\u003c![\\w-])0x[0-9a-fA-F]+(?![\\w.])"},"operators":{"patterns":[{"include":"#operators-word"},{"include":"#operators-symbols"},{"include":"#ranges"}]},"operators-symbols":{"name":"keyword.control.nushell","match":"(?\u003c= )(?:(?:\\+|\\-|\\*|\\/)=?|\\/\\/|\\*\\*|!=|[\u003c\u003e=]=?|[!=]~|\\+\\+=?)(?= |$)"},"operators-word":{"name":"keyword.control.nushell","match":"(?\u003c= |\\()(?:mod|in|not-in|not|and|or|xor|bit-or|bit-and|bit-xor|bit-shl|bit-shr|starts-with|ends-with)(?= |\\)|$)"},"parameters":{"name":"variable.parameter.nushell","match":"(?\u003c=\\s)(-{1,2})[\\w-]+","captures":{"1":{"name":"keyword.control.nushell"}}},"paren-expression":{"name":"meta.expression.parenthesis.nushell","begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.round.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.round.end.nushell"}}},"pre-command":{"begin":"(\\w+)(=)","end":"(?=\\s+)","patterns":[{"include":"#value"}],"beginCaptures":{"1":{"name":"variable.other.nushell"},"2":{"patterns":[{"include":"#operators"}]}}},"ranges":{"name":"keyword.control.nushell","match":"\\.\\.\u003c?"},"spread":{"name":"keyword.control.nushell","match":"\\.\\.\\.(?=[^\\s\\]}])"},"string":{"patterns":[{"include":"#string-single-quote"},{"include":"#string-backtick"},{"include":"#string-double-quote"},{"include":"#string-interpolated-double"},{"include":"#string-interpolated-single"},{"include":"#string-bare"}]},"string-backtick":{"name":"string.quoted.single.nushell","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"string-bare":{"name":"string.bare.nushell","match":"[^$\\[{(\"',|#\\s|][^\\[\\]{}()\"'\\s#,|]*"},"string-double-quote":{"name":"string.quoted.double.nushell","begin":"\"","end":"\"","patterns":[{"match":"\\w+"},{"include":"#string-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"string-escape":{"name":"constant.character.escape.nushell","match":"\\\\(?:[bfrnt\\\\'\"/]|u[0-9a-fA-F]{4})"},"string-interpolated-double":{"name":"string.interpolated.double.nushell","begin":"\\$\"","end":"\"","patterns":[{"name":"constant.character.escape.nushell","match":"\\\\[()]"},{"include":"#string-escape"},{"include":"#paren-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"string-interpolated-single":{"name":"string.interpolated.single.nushell","begin":"\\$'","end":"'","patterns":[{"include":"#paren-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"string-single-quote":{"name":"string.quoted.single.nushell","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nushell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.nushell"}}},"table":{"name":"meta.table.nushell","begin":"\\[","end":"\\]","patterns":[{"include":"#spread"},{"include":"#value"},{"name":"punctuation.separator.nushell","match":","}],"beginCaptures":{"0":{"name":"meta.brace.square.begin.nushell"}},"endCaptures":{"0":{"name":"meta.brace.square.end.nushell"}}},"types":{"patterns":[{"name":"meta.list.nushell","begin":"\\b(list)\\s*\u003c","end":"\u003e","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"entity.name.type.nushell"}}},{"name":"meta.record.nushell","begin":"\\b(record)\\s*\u003c","end":"\u003e","patterns":[{"match":"([\\w\\-]+|\"[\\w\\- ]+\"|'[^']+')\\s*:\\s*","captures":{"1":{"name":"variable.parameter.nushell"}}},{"include":"#types"}],"beginCaptures":{"1":{"name":"entity.name.type.nushell"}}},{"name":"entity.name.type.nushell","match":"\\b(\\w+)\\b"}]},"use-module":{"patterns":[{"match":"^\\s*((?:export )?use)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+')(?:\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*))?\\s*;?$","captures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.namespace.nushell"},"3":{"name":"keyword.other.nushell"}}},{"begin":"^\\s*((?:export )?use)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+')\\s*\\[","end":"(\\])\\s*;?\\s*$","patterns":[{"match":"([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*),?","captures":{"1":{"name":"keyword.other.nushell"}}},{"include":"#comment"}],"beginCaptures":{"1":{"name":"entity.name.function.nushell"},"2":{"name":"entity.name.namespace.nushell"}},"endCaptures":{"1":{"name":"meta.brace.square.end.nushell"}}},{"match":"(?\u003cpath\u003e(?:/|\\\\|~[\\/\\\\]|\\.\\.?[\\/\\\\])?(?:[^\\/\\\\]+[\\/\\\\])*[\\w\\- ]+(?:\\.nu)?){0}^\\s*((?:export )?use)\\s+(\"\\g\u003cpath\u003e\"|'\\g\u003cpath\u003e\\'|(?![\"'])\\g\u003cpath\u003e)(?:\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[^']+'|\\*))?\\s*;?$","captures":{"2":{"name":"entity.name.function.nushell"},"3":{"name":"string.bare.nushell","patterns":[{"match":"([\\w\\- ]+)(?:\\.nu)?(?=$|\"|')","captures":{"1":{"name":"entity.name.namespace.nushell"}}}]},"4":{"name":"keyword.other.nushell"}}},{"begin":"(?\u003cpath\u003e(?:/|\\\\|~[\\/\\\\]|\\.\\.?[\\/\\\\])?(?:[^\\/\\\\]+[\\/\\\\])*[\\w\\- ]+(?:\\.nu)?){0}^\\s*((?:export )?use)\\s+(\"\\g\u003cpath\u003e\"|'\\g\u003cpath\u003e\\'|(?![\"'])\\g\u003cpath\u003e)\\s+\\[","end":"(\\])\\s*;?\\s*$","patterns":[{"match":"([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*),?","captures":{"0":{"name":"keyword.other.nushell"}}},{"include":"#comment"}],"beginCaptures":{"2":{"name":"entity.name.function.nushell"},"3":{"name":"string.bare.nushell","patterns":[{"match":"([\\w\\- ]+)(?:\\.nu)?(?=$|\"|')","captures":{"1":{"name":"entity.name.namespace.nushell"}}}]}},"endCaptures":{"1":{"name":"meta.brace.square.end.nushell"}}},{"match":"^\\s*(?:export )?use\\b","captures":{"0":{"name":"entity.name.function.nushell"}}}]},"value":{"patterns":[{"include":"#variables"},{"include":"#variable-fields"},{"include":"#control-keywords"},{"include":"#constant-value"},{"include":"#table"},{"include":"#operators"},{"include":"#paren-expression"},{"include":"#braced-expression"},{"include":"#string"},{"include":"#comment"}]},"variable-fields":{"name":"variable.other.nushell","match":"(?\u003c=\\)|\\}|\\])(?:\\.(?:[\\w-]+|\"[\\w\\- ]+\"))+"},"variables":{"match":"(\\$[a-zA-Z0-9_]+)((?:\\.(?:[\\w-]+|\"[\\w\\- ]+\"))*)","captures":{"1":{"patterns":[{"include":"#internal-variables"},{"name":"variable.other.nushell","match":"\\$.+"}]},"2":{"name":"variable.other.nushell"}}}}}
@@ -1 +1 @@
1
- {"name":"Odin","scopeName":"source.odin","patterns":[{"include":"#comments"},{"include":"#types"},{"include":"#keywords"},{"include":"#functions_and_declarations"},{"include":"#strings"},{"include":"#string_escaped_char"}],"repository":{"block_comment":{"name":"comment.block.odin","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.odin"}}},"comments":{"patterns":[{"include":"#block_comment"},{"name":"invalid.illegal.stray-comment-end.odin","match":"\\*/.*\\n"},{"include":"#line_comment"}]},"functions_and_declarations":{"patterns":[{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*(proc)","captures":{"1":{"name":"meta.function.odin entity.name.function.odin"},"2":{"name":"storage.type.odin"}}},{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*([#]force_inline|[#]force_no_inline)\\s+(proc)","captures":{"1":{"name":"meta.function.odin entity.name.function.odin"},"2":{"name":"keyword.control.odin"},"3":{"name":"storage.type.odin"}}},{"match":"(proc)\\s*[\\(]","captures":{"1":{"name":"storage.type.odin"}}},{"match":"(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[!]?\\s*[\\(]","captures":{"1":{"name":"support.function.odin"}}},{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*(struct|union|enum|bit_field|bit_set)","captures":{"1":{"name":"meta.type.odin entity.name.type.odin"},"2":{"name":"storage.type.odin"}}},{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*([#]\\s*type)","captures":{"1":{"name":"meta.type.odin entity.name.type.odin"},"2":{"name":"keyword.tag.odin"}}},{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*","captures":{"1":{"name":"meta.constant.odin entity.name.type.odin"}}}]},"keywords":{"patterns":[{"name":"keyword.control.odin","match":"\\b(import|foreign|package)\\b"},{"name":"keyword.control.odin","match":"\\b(if|else|when|for|in|not_in|defer|switch|return|const|do|where)\\b"},{"name":"keyword.control.odin","match":"\\b(fallthrough|break|continue|case)\\b"},{"name":"keyword.control.odin","match":"\\b(using)\\b"},{"name":"keyword.control.odin","match":"\\b(asm|or_return|or_else|or_break|or_continue)\\b"},{"name":"keyword.operator.odin","match":"\\b(distinct)\\b"},{"name":"keyword.operator.odin","match":"\\b(context)\\b"},{"name":"constant.language.odin","match":"\\b(nil|true|false)\\b"},{"name":"constant.numeric.odin","match":"\\b(\\d(\\d|_)*(.\\d(\\d|_)*)?)((e|E)(\\+|-)?\\d+)?[ijk]?\\b"},{"name":"constant.numeric.odin","match":"\\b((0b(0|1|_)+)|(0o(\\d|_)+)|(0d(\\d|_)+)|(0[xXh]([[:xdigit:]]|_)+))[ijk]?\\b"},{"name":"constant.numeric.odin","match":"---"},{"name":"storage.type.odin","match":"\\b(struct|enum|union|map|bit_set|dynamic)\\b"},{"name":"keyword.function.odin","match":"\\b(cast|transmute|auto_cast)\\b"},{"name":"keyword.tag.odin","match":"([#]\\s*\\b([[:alpha:]_]+[[:alnum:]_]*)\\b)"},{"name":"keyword.tag.odin","match":"(\\x40\\s*\\b([[:alpha:]_]+[[:alnum:]_]*)\\b)"},{"name":"keyword.tag.odin","match":"(\\x40\\s*[(]\\s*\\b([[:alpha:]_]+[[:alnum:]_]*)\\b)\\s*[)]"},{"name":"keyword.operator.odin","match":"@"}]},"line_comment":{"begin":"(^[ \\t]+)?((?=//)|(?=#!))","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.odin","begin":"//","end":"\\n","patterns":[{"name":"punctuation.separator.continuation.odin","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.odin"}}},{"name":"comment.line.double-slash.odin","begin":"#!","end":"\\n","patterns":[{"name":"punctuation.separator.continuation.odin","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.odin"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.odin"}}},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.odin","match":"\\\\(\\\\|[abefnrutv'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|[0-7]{3})"},{"name":"invalid.illegal.unknown-escape.odin","match":"\\\\."}]},"strings":{"patterns":[{"name":"string.quoted.double.odin","begin":"\"","end":"\"","patterns":[{"include":"#string_placeholder"},{"include":"#string_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.odin"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.odin"}}},{"name":"string.quoted.single.odin","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.odin"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.odin"}}},{"name":"string.quoted.raw.odin","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.odin"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.odin"}}}]},"types":{"patterns":[{"name":"storage.type.odin","match":"\\b(struct|enum|union|bit_field|bit_set)\\b(?:(\\{)(\\}))?"},{"name":"storage.type.odin","match":"\\b(proc)\\b"},{"name":"storage.type.odin","match":"\\$\\s*(\\b([[:alpha:]_]+[[:alnum:]_]*)\\b)"},{"name":"storage.type.odin","match":"\\b(i8|i16|i32|i64|i128|int)\\b"},{"name":"storage.type.odin","match":"\\b(u8|u16|u32|u64|u128|uint|uintptr)\\b"},{"name":"storage.type.odin","match":"\\b(f16|f32|f64|f128)\\b"},{"name":"storage.type.odin","match":"\\b(f16le|f32le|f64le|f128le)\\b"},{"name":"storage.type.odin","match":"\\b(f16be|f32be|f64be|f128be)\\b"},{"name":"storage.type.odin","match":"\\b(complex32|complex64|complex128)\\b"},{"name":"storage.type.odin","match":"\\b(quaternion64|quaternion128|quaternion256)\\b"},{"name":"storage.type.odin","match":"\\b(bool|b8|b16|b32|b64)\\b"},{"name":"storage.type.odin","match":"\\b(string|cstring|rune)\\b"},{"name":"storage.type.odin","match":"\\b(rawptr)\\b"},{"name":"storage.type.odin","match":"\\b(any|typeid)\\b"},{"name":"storage.type.odin","match":"\\b(byte)\\b"},{"name":"storage.type.odin","match":"\\b(u16le|u32le|u64le|u128le|i16le|i32le|i64le|i128le)\\b"},{"name":"storage.type.odin","match":"\\b(i16be|i32be|i64be|i128be|u16be|u32be|u64be|u128be)\\b"}]}}}
1
+ {"name":"Odin","scopeName":"source.odin","patterns":[{"include":"#comments"},{"include":"#types"},{"include":"#keywords"},{"include":"#functions_and_declarations"},{"include":"#strings"},{"include":"#string_escaped_char"}],"repository":{"block_comment":{"name":"comment.block.odin","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.odin"}}},"comments":{"patterns":[{"include":"#block_comment"},{"name":"invalid.illegal.stray-comment-end.odin","match":"\\*/.*\\n"},{"include":"#line_comment"}]},"functions_and_declarations":{"patterns":[{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*(proc)","captures":{"1":{"name":"meta.function.odin entity.name.function.odin"},"2":{"name":"storage.type.odin"}}},{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*([#]force_inline|[#]force_no_inline)\\s+(proc)","captures":{"1":{"name":"meta.function.odin entity.name.function.odin"},"2":{"name":"keyword.control.odin"},"3":{"name":"storage.type.odin"}}},{"match":"(proc)\\s*[\\(]","captures":{"1":{"name":"storage.type.odin"}}},{"match":"(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[!]?\\s*[\\(]","captures":{"1":{"name":"support.function.odin"}}},{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*(struct|union|enum|bit_field|bit_set)","captures":{"1":{"name":"meta.type.odin entity.name.type.odin"},"2":{"name":"storage.type.odin"}}},{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*([#]\\s*type)","captures":{"1":{"name":"meta.type.odin entity.name.type.odin"},"2":{"name":"keyword.tag.odin"}}},{"match":"\\b(\\b[[:alpha:]_]+[[:alnum:]_]*\\b)\\s*[:]\\s*[:]\\s*","captures":{"1":{"name":"meta.constant.odin entity.name.type.odin"}}}]},"keywords":{"patterns":[{"name":"keyword.control.odin","match":"\\b(import|foreign|package)\\b"},{"name":"keyword.control.odin","match":"\\b(if|else|when|for|in|not_in|defer|switch|return|const|do|where)\\b"},{"name":"keyword.control.odin","match":"\\b(fallthrough|break|continue|case)\\b"},{"name":"keyword.control.odin","match":"\\b(using)\\b"},{"name":"keyword.control.odin","match":"\\b(asm|or_return|or_else|or_break|or_continue)\\b"},{"name":"keyword.operator.odin","match":"\\b(distinct)\\b"},{"name":"keyword.operator.odin","match":"\\b(context)\\b"},{"name":"constant.language.odin","match":"\\b(nil|true|false)\\b"},{"name":"constant.numeric.odin","match":"\\b(\\d(\\d|_)*(.\\d(\\d|_)*)?)((e|E)(\\+|-)?\\d+)?[ijk]?\\b"},{"name":"constant.numeric.odin","match":"\\b((0b(0|1|_)+)|(0o(\\d|_)+)|(0d(\\d|_)+)|(0[xXh]([[:xdigit:]]|_)+))[ijk]?\\b"},{"name":"constant.numeric.odin","match":"---"},{"name":"storage.type.odin","match":"\\b(struct|enum|union|map|bit_set|bit_field|dynamic)\\b"},{"name":"keyword.function.odin","match":"\\b(cast|transmute|auto_cast)\\b"},{"name":"keyword.tag.odin","match":"([#]\\s*\\b([[:alpha:]_]+[[:alnum:]_]*)\\b)"},{"name":"keyword.tag.odin","match":"(\\x40\\s*\\b([[:alpha:]_]+[[:alnum:]_]*)\\b)"},{"name":"keyword.tag.odin","match":"(\\x40\\s*[(]\\s*\\b([[:alpha:]_]+[[:alnum:]_]*)\\b)\\s*[)]"},{"name":"keyword.operator.odin","match":"@"}]},"line_comment":{"begin":"(^[ \\t]+)?((?=//)|(?=#!))","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.odin","begin":"//","end":"\\n","patterns":[{"name":"punctuation.separator.continuation.odin","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.odin"}}},{"name":"comment.line.double-slash.odin","begin":"#!","end":"\\n","patterns":[{"name":"punctuation.separator.continuation.odin","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.odin"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.odin"}}},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.odin","match":"\\\\(\\\\|[abefnrutv'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|[0-7]{3})"},{"name":"invalid.illegal.unknown-escape.odin","match":"\\\\."}]},"strings":{"patterns":[{"name":"string.quoted.double.odin","begin":"\"","end":"\"","patterns":[{"include":"#string_placeholder"},{"include":"#string_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.odin"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.odin"}}},{"name":"string.quoted.single.odin","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.odin"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.odin"}}},{"name":"string.quoted.raw.odin","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.odin"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.odin"}}}]},"types":{"patterns":[{"name":"storage.type.odin","match":"\\b(struct|enum|union|bit_field|bit_set)\\b(?:(\\{)(\\}))?"},{"name":"storage.type.odin","match":"\\b(proc)\\b"},{"name":"storage.type.odin","match":"\\$\\s*(\\b([[:alpha:]_]+[[:alnum:]_]*)\\b)"},{"name":"storage.type.odin","match":"\\b(i8|i16|i32|i64|i128|int)\\b"},{"name":"storage.type.odin","match":"\\b(u8|u16|u32|u64|u128|uint|uintptr)\\b"},{"name":"storage.type.odin","match":"\\b(f16|f32|f64|f128)\\b"},{"name":"storage.type.odin","match":"\\b(f16le|f32le|f64le|f128le)\\b"},{"name":"storage.type.odin","match":"\\b(f16be|f32be|f64be|f128be)\\b"},{"name":"storage.type.odin","match":"\\b(complex32|complex64|complex128)\\b"},{"name":"storage.type.odin","match":"\\b(quaternion64|quaternion128|quaternion256)\\b"},{"name":"storage.type.odin","match":"\\b(bool|b8|b16|b32|b64)\\b"},{"name":"storage.type.odin","match":"\\b(string|cstring|rune)\\b"},{"name":"storage.type.odin","match":"\\b(rawptr)\\b"},{"name":"storage.type.odin","match":"\\b(any|typeid)\\b"},{"name":"storage.type.odin","match":"\\b(byte)\\b"},{"name":"storage.type.odin","match":"\\b(u16le|u32le|u64le|u128le|i16le|i32le|i64le|i128le)\\b"},{"name":"storage.type.odin","match":"\\b(i16be|i32be|i64be|i128be|u16be|u32be|u64be|u128be)\\b"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"Pkl","scopeName":"source.pkl","patterns":[{"match":"(?x:\n \\b\n (module)\n \\s+\n (\n [\\p{L}_$][\\p{L}0-9_$]*(?:\\.[\\p{L}_$][\\p{L}0-9_$]*)*\n )\n)","captures":{"1":{"name":"variable.language.pkl"},"2":{"name":"variable.other.module.pkl"}}},{"match":"(?x:\n (typealias)\n \\s+\n ([\\p{L}_$][\\p{L}0-9_$]*)\n \\s*(=)\\s*\n ((?x:\n (?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n)\n \\s*\n (\\|\\s*(?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n))*\n))\n)","captures":{"1":{"name":"keyword.class.pkl"},"2":{"name":"entity.name.type.pkl"},"3":{"name":"punctuation.pkl"},"4":{"name":"entity.name.type.pkl"}}},{"name":"entity.name.type.pkl","match":"\\b(class)\\s+[\\p{L}_$][\\p{L}0-9_$]*","captures":{"1":{"name":"keyword.class.pkl"}}},{"match":"(?x:\n \\b(for)\n \\s*\\(\n ([\\p{L}_$][\\p{L}0-9_$]*)(?:\\s*,\\s*([\\p{L}_$][\\p{L}0-9_$]*))* # bindings\n \\s+\n (in)\n)","captures":{"1":{"name":"keyword.control.pkl"},"2":{"name":"variable.other.property.pkl"},"3":{"name":"variable.other.property.pkl"},"4":{"name":"storage.modifier.pkl"}}},{"match":"\\b(new)\\s+((?x:\n (?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n)\n \\s*\n (\\|\\s*(?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n))*\n))","captures":{"1":{"name":"keyword.control.pkl"},"2":{"name":"entity.name.type.pkl"}}},{"match":"\\b(function)\\s+([\\p{L}_$][\\p{L}0-9_$]*)","captures":{"1":{"name":"keyword.pkl"},"2":{"name":"variable.other.property.pkl"}}},{"match":"\\b(as)\\s+((?x:\n (?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n)\n \\s*\n (\\|\\s*(?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n))*\n))","captures":{"1":{"name":"keyword.pkl"},"2":{"name":"entity.name.type.pkl"}}},{"name":"constant.character.language.pkl","match":"\\b(true|false|null)\\b"},{"name":"comment.line.pkl","match":"//.*"},{"name":"comment.block.pkl","begin":"/\\*","end":"\\*/"},{"begin":"(?x:\n (\n (?:\\b|\\s*)[\\p{L}_$][\\p{L}0-9_$]* # variable name\n |\n `[^`]+` # quoted variable name\n )\n \\s*\n (:)\n \\s*\n ((?x:\n (?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n)\n \\s*\n (\\|\\s*(?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n))*\n)) # type\n)","end":"\\s*=|,|\\)|^[ \\t]*$","captures":{"1":{"name":"variable.other.property.pkl"},"2":{"name":"punctuation.pkl"},"3":{"name":"entity.name.type.pkl"}}},{"match":"(?x:\n (\n \\b[\\p{L}_$][\\p{L}0-9_$]* # variable name\n |\n `[^`]+` # quoted variable name\n )\n \\s*\n (=)(?!=)\n)","captures":{"1":{"name":"variable.other.property.pkl"},"2":{"name":"punctuation.pkl"}}},{"match":"(:)\\s*((?x:\n (?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n)\n \\s*\n (\\|\\s*(?x:\n [\\p{L}_$][\\p{L}0-9_$]* # ident\n \\s*\n (?:\u003c[^\u003e]*\u003e)? # optional type parameters\n \\s*\n (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n \\s*\n \\?? # optional nulability indicator\n))*\n))","captures":{"1":{"name":"punctuation.pkl"},"2":{"name":"entity.name.type.pkl"}}},{"match":"^\\s*([\\p{L}_$][\\p{L}0-9_$]*)\\s*\\{","captures":{"1":{"name":"variable.other.property.pkl"}}},{"name":"storage.modifier.pkl","match":"\\b(hidden|local|abstract|external|open|in|out|amends|extends|fixed|const)\\b"},{"name":"keyword.pkl","match":"\\b(amends|as|extends|function|is|let|read|read\\?|import|throw|trace)\\b"},{"name":"keyword.control.pkl","match":"\\b(if|else|when|for|import|new)\\b"},{"name":"constant.numeric.hex.pkl","match":"(?x:\n \\b\n 0x(?:[\\da-fA-F][\\da-fA-F_]*[\\da-fA-F]|[\\da-fA-F_])\n \\b\n)"},{"name":"constant.numeric.binary.pkl","match":"(?x:\n \\b\n 0b(?:[0-1][0-1_]*[0-1]|[0-1])\n \\b\n)"},{"name":"constant.numeric.octal.pkl","match":"(?x:\n \\b\n 0o(?:[0-7][0-7_]*[0-7]|[0-7])\n \\b\n)"},{"name":"constant.numeric.decimal.pkl","match":"(?x:\n \\b\n (?:\\d[0-9_]*\\d|\\d)\n \\b\n)"},{"name":"constant.numeric.pkl","match":"(?x:\n \\b\n (?:\n (?:\\d[0-9_]*\\d|\\d)? # 0 or more digits\n \\. # dot literal\n (?:\\d[0-9_]*\\d|\\d) # 1 or more digits\n (?:[eE][+-]?(?:\\d[0-9_]*\\d|\\d))? # optional exponent\n | # OR\n (?:\\d[0-9_]*\\d|\\d) # 1 or more digits\n [eE][+-]?(?:\\d[0-9_]*\\d|\\d) # exponent\n )\n \\b\n)"},{"name":"keyword.operator.pkl","match":"(?x:\n # MATH\n \\+ # add\n |\n - # minus\n |\n \\* # multiply\n |\n / # divide\n |\n ~/ # integer divide\n |\n % # modulo\n |\n \\*\\* # power\n |\n \u003e # greater than\n |\n \u003e= # greater than or equals\n |\n \u003c # less than\n |\n \u003c= # less than or equals\n |\n == # equals\n |\n != # not equals\n\n # LOGICAL\n |\n ! # unary not\n |\n \u0026\u0026 # and\n |\n \\|\\| # or\n |\n\n # MISCELLANEOUS\n \\|\u003e # function pipe\n |\n \\?\\? # nullish coalesce\n |\n !! # non-null assertion\n |\n = # assignment\n |\n -\u003e # lambda arrow\n |\n \\| # type union\n)"},{"name":"variable.language.pkl","match":"\\b(this|module|outer|super)\\b"},{"name":"support.type.pkl","match":"\\b(unknown|never)\\b"},{"name":"meta.brace.pkl","match":"[(){}\\[\\]]"},{"name":"keyword.class.pkl","match":"\\b(class|typealias)\\b"},{"name":"punctuation.pkl","match":"(?x:\n \\.\\? # optional chain\n |\n \\. # member access\n |\n ; # semicolon\n |\n : # colon\n)"},{"name":"entity.name.type.pkl","match":"@[\\p{L}_$][\\p{L}0-9_$]*"},{"name":"string.quoted.triple.0.pkl","begin":"(\"\"\")","end":"(\"\"\")","patterns":[{"name":"constant.character.escape.0.pkl","match":"(?x: # turn on extended mode\n \\\\\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\ # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"captures":{"1":{"name":"punctuation.delimiter.pkl"}}},{"name":"string.quoted.double.0.pkl","begin":"(\")","end":"(?x:\n (\") # string end\n | # OR\n (.?$) # error; unterminated string (flag last character as an error)\n)","patterns":[{"name":"constant.character.escape.0.pkl","match":"(?x: # turn on extended mode\n \\\\\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\ # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pkl"}},"endCaptures":{"1":{"name":"punctuation.delimimter.pkl"},"2":{"name":"invalid.illegal.newline.pkl"}}},{"name":"string.quoted.triple.1.pkl","begin":"(#\"\"\")","end":"(\"\"\"#)","patterns":[{"name":"constant.character.escape.1.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"captures":{"1":{"name":"punctuation.delimiter.pkl"}}},{"name":"string.quoted.double.1.pkl","begin":"(#\")","end":"(?x:\n (\"\\#) # string end\n | # OR\n (.?$) # error; unterminated string (flag last character as an error)\n)","patterns":[{"name":"constant.character.escape.1.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pkl"}},"endCaptures":{"1":{"name":"punctuation.delimimter.pkl"},"2":{"name":"invalid.illegal.newline.pkl"}}},{"name":"string.quoted.triple.2.pkl","begin":"(##\"\"\")","end":"(\"\"\"##)","patterns":[{"name":"constant.character.escape.2.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"captures":{"1":{"name":"punctuation.delimiter.pkl"}}},{"name":"string.quoted.double.2.pkl","begin":"(##\")","end":"(?x:\n (\"\\#\\#) # string end\n | # OR\n (.?$) # error; unterminated string (flag last character as an error)\n)","patterns":[{"name":"constant.character.escape.2.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pkl"}},"endCaptures":{"1":{"name":"punctuation.delimimter.pkl"},"2":{"name":"invalid.illegal.newline.pkl"}}},{"name":"string.quoted.triple.3.pkl","begin":"(###\"\"\")","end":"(\"\"\"###)","patterns":[{"name":"constant.character.escape.3.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"captures":{"1":{"name":"punctuation.delimiter.pkl"}}},{"name":"string.quoted.double.3.pkl","begin":"(###\")","end":"(?x:\n (\"\\#\\#\\#) # string end\n | # OR\n (.?$) # error; unterminated string (flag last character as an error)\n)","patterns":[{"name":"constant.character.escape.3.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pkl"}},"endCaptures":{"1":{"name":"punctuation.delimimter.pkl"},"2":{"name":"invalid.illegal.newline.pkl"}}},{"name":"string.quoted.triple.4.pkl","begin":"(####\"\"\")","end":"(\"\"\"####)","patterns":[{"name":"constant.character.escape.4.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\#\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"captures":{"1":{"name":"punctuation.delimiter.pkl"}}},{"name":"string.quoted.double.4.pkl","begin":"(####\")","end":"(?x:\n (\"\\#\\#\\#\\#) # string end\n | # OR\n (.?$) # error; unterminated string (flag last character as an error)\n)","patterns":[{"name":"constant.character.escape.4.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\#\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pkl"}},"endCaptures":{"1":{"name":"punctuation.delimimter.pkl"},"2":{"name":"invalid.illegal.newline.pkl"}}},{"name":"string.quoted.triple.5.pkl","begin":"(#####\"\"\")","end":"(\"\"\"#####)","patterns":[{"name":"constant.character.escape.5.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\\#\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\#\\#\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"captures":{"1":{"name":"punctuation.delimiter.pkl"}}},{"name":"string.quoted.double.5.pkl","begin":"(#####\")","end":"(?x:\n (\"\\#\\#\\#\\#\\#) # string end\n | # OR\n (.?$) # error; unterminated string (flag last character as an error)\n)","patterns":[{"name":"constant.character.escape.5.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\\#\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\#\\#\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pkl"}},"endCaptures":{"1":{"name":"punctuation.delimimter.pkl"},"2":{"name":"invalid.illegal.newline.pkl"}}},{"name":"string.quoted.triple.6.pkl","begin":"(######\"\"\")","end":"(\"\"\"######)","patterns":[{"name":"constant.character.escape.6.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\\#\\#\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\#\\#\\#\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"captures":{"1":{"name":"punctuation.delimiter.pkl"}}},{"name":"string.quoted.double.6.pkl","begin":"(######\")","end":"(?x:\n (\"\\#\\#\\#\\#\\#\\#) # string end\n | # OR\n (.?$) # error; unterminated string (flag last character as an error)\n)","patterns":[{"name":"constant.character.escape.6.pkl","match":"(?x: # turn on extended mode\n \\\\\\#\\#\\#\\#\\#\\#\n (?:\n [trn\"\\\\] # tab, carriage return, newline, quote, backslash\n | # OR\n u # the letter u\n \\{ # curly opening brace literal\n [\\da-fA-F]+ # 1 or more hex number literal\n } # curly end literal\n | # OR\n \\( # interpolation start\n .+? # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n \\) # interpolation end\n )\n | # OR\n ( # capture group: invalid escape\n \\\\\\#\\#\\#\\#\\#\\# # the escape char\n . # any character\n )\n)","captures":{"1":{"name":"invalid.illegal.unrecognized-string-escape.pkl"}}}],"beginCaptures":{"1":{"name":"punctuation.delimiter.pkl"}},"endCaptures":{"1":{"name":"punctuation.delimimter.pkl"},"2":{"name":"invalid.illegal.newline.pkl"}}}]}
@@ -1 +1 @@
1
- {"name":"Rascal","scopeName":"source.rascal","patterns":[{"include":"#top_level"}],"repository":{"annotation":{"patterns":[{"name":"comment.block.annotation.rascal","begin":"(@[^ {]+)({)","end":"(})","beginCaptures":{"1":{"name":"storage.type.annotation.block.rascal"},"2":{"name":"punctuation.annotation-argument.begin.rascal"}},"endCaptures":{"1":{"name":"punctuation.annotation-argument.end.rascal"}}},{"name":"meta.annotation.inline.rascal","match":"(@[A-Za-z_0-9]+)","captures":{"1":{"name":"storage.type.annotation.inline.rascal"}}}]},"char_set":{"patterns":[{"name":"punctuation.other.lexicalcharset.rascal","begin":"\\[","end":"\\]","patterns":[{"include":"#string_escape"}]}]},"comment":{"patterns":[{"name":"comment.line.double-slash.rascal","match":"//.*$\\n?"},{"name":"comment.block.rascal","begin":"/\\*","end":"\\*/"}]},"regex":{"patterns":[{"name":"string.regexp.rascal","end":"/([dims]*)","patterns":[{"include":"#regex_escape"},{"include":"#string_interpolation"}],"endCaptures":{"1":{"name":"storage.modifier.regex.rascal"}}}]},"regex_escape":{"patterns":[{"name":"constant.character.escape.regex.rascal","match":"\\\\(/|\u003c|\u003e|\\\\)"}]},"string":{"patterns":[{"name":"string.quoted.single.rascal","begin":"'","end":"'","patterns":[{"include":"#string_escape"}]},{"name":"string.quoted.double.rascal","begin":"\"","end":"\"","patterns":[{"include":"#string_escape"},{"include":"#string_interpolation"}]},{"name":"string.interpolated.rascal","begin":"`","end":"`","patterns":[{"include":"#string_interpolation"},{"include":"#syntax_escape"}]}]},"string_escape":{"patterns":[{"name":"constant.character.escape.ordinary.rascal","match":"\\\\(\\\"|\\'|\u003c|\u003e|\\\\|[bnfrt])"},{"name":"constant.character.escape.unicode.rascal","match":"\\\\(u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f] |U(0[0-9 A-F a-f]|10)[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f] |a[0-7][0-9A-Fa-f] )"}]},"string_interpolation":{"patterns":[{"name":"support.interpolated-string.rascal","begin":"(\u003c)","end":"(\u003e)","patterns":[{"include":"#top_level"}],"beginCaptures":{"1":{"name":"punctuation.interpolation.begin.rascal"}},"endCaptures":{"2":{"name":"punctuation.interpolation.end.rascal"}}}]},"syntax_escape":{"patterns":[{"name":"constant.character.escape.syntax.rascal","match":"\\\\(\\\\|\u003c|\u003e|`)"}]},"top_level":{"patterns":[{"name":"punctuation.other.syntactic.rascal","begin":"(lexical|syntax)\\s+([a-zA-Z][A-Za-z_0-9]*)","end":";","patterns":[{"include":"#char_set"},{"include":"#string"},{"include":"#comment"},{"include":"#regex"},{"include":"#annotation"}],"captures":{"1":{"name":"keyword.control.rascal"},"2":{"name":"entity.name.type.rascal"}}},{"name":"constant.numeric.decimal.rascal","match":"(?\u003c![A-Za-z_])(0(?![0-9a-z_A-Z])|[1-9][0-9]*(?![0-9a-z_A-Z]))"},{"name":"constant.numeric.hex.rascal","match":"(?\u003c![A-Za-z_])0[Xx][0-9A-Fa-f]+(?![0-9a-z_A-Z])"},{"name":"constant.numeric.octal.rascal","match":"(?\u003c![A-Za-z_])0[0-7]+(?![0-9a-z_A-Z])"},{"name":"string.other.datetime.rascal","begin":"\\\\$","end":"\\\\$"},{"name":"constant.numeric.real.rascal","match":"(?\u003c![A-Za-z_]) ([0-9]+[dDfF] |[0-9]+[eE][+\\-]?[0-9]+[dDfF]? |[0-9]+\\.(?!\\.)[0-9]*[dDfF]? |[0-9]+\\.[0-9]*[eE][+\\-]?[0-9]+[dDfF]? |\\.(?!\\.)[0-9]+[dDfF]? |\\.(?!\\.)[0-9]+[eE][+\\-]?[0-9]+[dDfF]? )"},{"name":"constant.language.bool.rascal","match":"\\b(true|false)\\b"},{"name":"constant.numeric.rational.rascal","match":"(?\u003c![A-Za-z_])([0-9][0-9]*r|[1-9][0-9]*r[0-9][0-9]*(?![0-9a-z_A-Z]))"},{"name":"keyword.control.rascal","match":"\\b(syntax|keyword|lexical|break|continue|finally|private|fail|filter|if|tag|extend|append|non-assoc|assoc|test|anno|layout|data|join|it|bracket|in|import|all|solve|try|catch|notin|else|insert|switch|return|case|while|throws|visit|for|assert|default|map|alias|any|module|mod|public|one|throw|start)\\b"},{"name":"support.type.basic.rascal","match":"\\b(value|loc|node|num|type|bag|int|rat|rel|lrel|real|tuple|str|bool|void|datetime|set|map|list)\\b"},{"include":"#string"},{"include":"#regex"},{"include":"#annotation"},{"include":"#comment"},{"name":"variable.other.ordinary.rascal","match":"\\b[a-zA-Z][A-Za-z_0-9]*\\b"},{"name":"variable.other.escaped-keyword.rascal","match":"\\\\(syntax|keyword|lexical|break|continue|finally|private|fail|filter|if|tag|extend|append|non-assoc|assoc|test|anno|layout|data|join|it|bracket|in|import|all|solve|try|catch|notin|else|insert|switch|return|case|while|throws|visit|for|assert|default|map|alias|any|module|mod|public|one|throw|start|value|loc|node|num|type|bag|int|rat|rel|lrel|real|tuple|str|bool|void|datetime|set|map|list)"},{"name":"string.other.url.rascal","match":"\\|([0-9a-z_A-Z.\\-_~:/?#\\[\\]@!$\u0026'()*+,;=`])+\\|","captures":{"1":{"name":"markup.underline.link.rascal"}}}]}}}
1
+ {"name":"Rascal","scopeName":"source.rascal","patterns":[{"include":"#top_level"}],"repository":{"annotation":{"patterns":[{"name":"comment.block.annotation.rascal","begin":"(@[^ {]+)({)","end":"(})","beginCaptures":{"1":{"name":"storage.type.annotation.block.rascal"},"2":{"name":"punctuation.annotation-argument.begin.rascal"}},"endCaptures":{"1":{"name":"punctuation.annotation-argument.end.rascal"}}},{"name":"meta.annotation.inline.rascal","match":"(@[A-Za-z_0-9]+)","captures":{"1":{"name":"storage.type.annotation.inline.rascal"}}}]},"char_set":{"patterns":[{"name":"punctuation.other.lexicalcharset.rascal","begin":"\\[","end":"\\]","patterns":[{"include":"#string_escape"}]}]},"comment":{"patterns":[{"name":"comment.line.double-slash.rascal","match":"//.*$\\n?"},{"name":"comment.block.rascal","begin":"/\\*","end":"\\*/"}]},"regex":{"patterns":[{"name":"string.regexp.rascal","begin":"/(?!/|\\*)","end":"/([dims]*)","patterns":[{"include":"#regex_escape"},{"include":"#string_interpolation"}],"endCaptures":{"1":{"name":"storage.modifier.regex.rascal"}}}]},"regex_escape":{"patterns":[{"name":"constant.character.escape.regex.rascal","match":"\\\\(/|\u003c|\u003e|\\\\)"}]},"string":{"patterns":[{"name":"string.quoted.single.rascal","begin":"'","end":"'","patterns":[{"include":"#string_escape"}]},{"name":"string.quoted.double.rascal","begin":"\"","end":"\"","patterns":[{"include":"#string_escape"},{"include":"#string_interpolation"}]},{"name":"string.interpolated.rascal","begin":"`","end":"`","patterns":[{"include":"#string_interpolation"},{"include":"#syntax_escape"}]}]},"string_escape":{"patterns":[{"name":"constant.character.escape.ordinary.rascal","match":"\\\\(\\\"|\\'|\u003c|\u003e|\\\\|[bnfrt])"},{"name":"constant.character.escape.unicode.rascal","match":"\\\\(u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f] |U(0[0-9 A-F a-f]|10)[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f] |a[0-7][0-9A-Fa-f] )"}]},"string_interpolation":{"patterns":[{"name":"support.interpolated-string.rascal","begin":"(\u003c)","end":"(\u003e)","patterns":[{"include":"#top_level"}],"beginCaptures":{"1":{"name":"punctuation.interpolation.begin.rascal"}},"endCaptures":{"2":{"name":"punctuation.interpolation.end.rascal"}}}]},"syntax_escape":{"patterns":[{"name":"constant.character.escape.syntax.rascal","match":"\\\\(\\\\|\u003c|\u003e|`)"}]},"top_level":{"patterns":[{"name":"punctuation.other.syntactic.rascal","begin":"(lexical|syntax)\\s+([a-zA-Z][A-Za-z_0-9]*)","end":";","patterns":[{"include":"#char_set"},{"include":"#string"},{"include":"#comment"},{"include":"#regex"},{"include":"#annotation"}],"captures":{"1":{"name":"keyword.control.rascal"},"2":{"name":"entity.name.type.rascal"}}},{"name":"constant.numeric.decimal.rascal","match":"(?\u003c![A-Za-z_])(0(?![0-9a-z_A-Z])|[1-9][0-9]*(?![0-9a-z_A-Z]))"},{"name":"constant.numeric.hex.rascal","match":"(?\u003c![A-Za-z_])0[Xx][0-9A-Fa-f]+(?![0-9a-z_A-Z])"},{"name":"constant.numeric.octal.rascal","match":"(?\u003c![A-Za-z_])0[0-7]+(?![0-9a-z_A-Z])"},{"name":"string.other.datetime.rascal","begin":"\\\\$","end":"\\\\$"},{"name":"constant.numeric.real.rascal","match":"(?\u003c![A-Za-z_]) ([0-9]+[dDfF] |[0-9]+[eE][+\\-]?[0-9]+[dDfF]? |[0-9]+\\.(?!\\.)[0-9]*[dDfF]? |[0-9]+\\.[0-9]*[eE][+\\-]?[0-9]+[dDfF]? |\\.(?!\\.)[0-9]+[dDfF]? |\\.(?!\\.)[0-9]+[eE][+\\-]?[0-9]+[dDfF]? )"},{"name":"constant.language.bool.rascal","match":"\\b(true|false)\\b"},{"name":"constant.numeric.rational.rascal","match":"(?\u003c![A-Za-z_])([0-9][0-9]*r|[1-9][0-9]*r[0-9][0-9]*(?![0-9a-z_A-Z]))"},{"name":"keyword.control.rascal","match":"\\b(syntax|keyword|lexical|break|continue|finally|private|fail|filter|if|tag|extend|append|non-assoc|assoc|test|anno|layout|data|join|it|bracket|in|import|all|solve|try|catch|notin|else|insert|switch|return|case|while|throws|visit|for|assert|default|map|alias|any|module|mod|public|one|throw|start)\\b"},{"name":"support.type.basic.rascal","match":"\\b(value|loc|node|num|type|bag|int|rat|rel|lrel|real|tuple|str|bool|void|datetime|set|map|list)\\b"},{"include":"#string"},{"include":"#regex"},{"include":"#annotation"},{"include":"#comment"},{"name":"variable.other.ordinary.rascal","match":"\\b[a-zA-Z][A-Za-z_0-9]*\\b"},{"name":"variable.other.escaped-keyword.rascal","match":"\\\\(syntax|keyword|lexical|break|continue|finally|private|fail|filter|if|tag|extend|append|non-assoc|assoc|test|anno|layout|data|join|it|bracket|in|import|all|solve|try|catch|notin|else|insert|switch|return|case|while|throws|visit|for|assert|default|map|alias|any|module|mod|public|one|throw|start|value|loc|node|num|type|bag|int|rat|rel|lrel|real|tuple|str|bool|void|datetime|set|map|list)"},{"name":"string.other.url.rascal","match":"\\|([0-9a-z_A-Z.\\-_~:/?#\\[\\]@!$\u0026'()*+,;=`])+\\|","captures":{"1":{"name":"markup.underline.link.rascal"}}}]}}}
@@ -1 +1 @@
1
- {"name":"Rego","scopeName":"source.rego","patterns":[{"include":"#comment"},{"include":"#keyword"},{"include":"#operator"},{"include":"#term"}],"repository":{"call":{"name":"meta.function-call.rego","match":"([a-zA-Z_][a-zA-Z0-9_]*)\\(","captures":{"1":{"name":"support.function.any-method.rego"}}},"comment":{"name":"comment.line.number-sign.rego","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"}}},"constant":{"name":"constant.language.rego","match":"\\b(?:true|false|null)\\b"},"keyword":{"name":"keyword.other.rego","match":"(^|\\s+)(?:(default|not|package|import|as|with|else|some|in|every|if|contains))\\s+"},"number":{"name":"constant.numeric.rego","match":"(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"},"operator":{"patterns":[{"name":"keyword.operator.comparison.rego","match":"\\=|\\!\\=|\u003e|\u003c|\u003c\\=|\u003e\\=|\\+|-|\\*|%|/|\\||\u0026|:\\="}]},"string":{"name":"string.quoted.double.rego","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.rego","match":"(?x: # turn on extended mode\n\t \\\\ # a literal backslash\n\t (?: # ...followed by...\n\t [\"\\\\/bfnrt] # one of these characters\n\t | # ...or...\n\t u # a u\n\t [0-9a-fA-F]{4} # and four hex digits\n\t )\n\t )"},{"name":"invalid.illegal.unrecognized-string-escape.rego","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},"term":{"patterns":[{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#variable"}]},"variable":{"name":"meta.identifier.rego","match":"\\b[[:alpha:]_][[:alnum:]_]*\\b"}}}
1
+ {"name":"Rego","scopeName":"source.rego","patterns":[{"include":"#comment"},{"include":"#keyword"},{"include":"#operator"},{"include":"#term"}],"repository":{"call":{"name":"meta.function-call.rego","match":"([a-zA-Z_][a-zA-Z0-9_]*)\\(","captures":{"1":{"name":"support.function.any-method.rego"}}},"comment":{"name":"comment.line.number-sign.rego","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"}}},"constant":{"name":"constant.language.rego","match":"\\b(?:true|false|null)\\b"},"keyword":{"name":"keyword.other.rego","match":"(^|\\s+)(?:(default|not|package|import|as|with|else|some|in|every|if|contains))\\s+"},"number":{"name":"constant.numeric.rego","match":"(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"},"operator":{"patterns":[{"name":"keyword.operator.comparison.rego","match":"\\=|\\!\\=|\u003e|\u003c|\u003c\\=|\u003e\\=|\\+|-|\\*|%|/|\\||\u0026|:\\="}]},"string":{"patterns":[{"name":"string.quoted.double.rego","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.rego","match":"(?x: # turn on extended mode\n\t\t\t\t\t\\\\ # a literal backslash\n\t\t\t\t\t(?: # ...followed by...\n\t\t\t\t\t\t[\"\\\\/bfnrt] # one of these characters\n\t\t\t\t\t\t| # ...or...\n\t\t\t\t\t\tu # a u\n\t\t\t\t\t\t[0-9a-fA-F]{4} # and four hex digits\n\t\t\t\t\t)\n\t\t\t\t\t)"},{"name":"invalid.illegal.unrecognized-string-escape.rego","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},{"name":"string.other.raw.rego","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}}]},"term":{"patterns":[{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#variable"}]},"variable":{"name":"meta.identifier.rego","match":"\\b[[:alpha:]_][[:alnum:]_]*\\b"}}}