github-linguist 9.2.0 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +23 -4
  3. data/grammars/injection.interpolated-ruby.json +1 -0
  4. data/grammars/injections.etc.json +1 -1
  5. data/grammars/inline.edgeql.json +1 -1
  6. data/grammars/markdown.move.codeblock.json +1 -1
  7. data/grammars/source.abl.json +1 -1
  8. data/grammars/source.ash.json +1 -0
  9. data/grammars/source.ats.json +1 -1
  10. data/grammars/source.bru.json +1 -0
  11. data/grammars/source.c++.json +1 -1
  12. data/grammars/source.c.json +1 -1
  13. data/grammars/source.c.linker.json +1 -1
  14. data/grammars/source.c3.json +1 -0
  15. data/grammars/source.cmake.json +1 -1
  16. data/grammars/source.cmakecache.json +1 -1
  17. data/grammars/source.cobol.json +1 -1
  18. data/grammars/source.cooklang.json +1 -0
  19. data/grammars/source.cs.json +1 -1
  20. data/grammars/source.curlrc.json +1 -1
  21. data/grammars/source.dotenv.json +1 -1
  22. data/grammars/source.edgeql.json +1 -1
  23. data/grammars/source.erlang.json +1 -1
  24. data/grammars/source.flix.json +1 -0
  25. data/grammars/source.fsharp.json +1 -1
  26. data/grammars/source.gdscript.json +1 -1
  27. data/grammars/source.gitignore.json +1 -1
  28. data/grammars/source.harbour.json +1 -1
  29. data/grammars/source.httpspec.json +1 -1
  30. data/grammars/source.hx.json +1 -1
  31. data/grammars/source.ilecobol.json +1 -1
  32. data/grammars/source.inputrc.json +1 -1
  33. data/grammars/source.jai.json +1 -1
  34. data/grammars/source.jq.json +1 -1
  35. data/grammars/source.json.comments.json +1 -1
  36. data/grammars/source.julia.json +1 -1
  37. data/grammars/source.lean4.json +1 -1
  38. data/grammars/source.luau.json +1 -1
  39. data/grammars/source.mermaid.flowchart.json +1 -1
  40. data/grammars/source.mermaid.gantt.json +1 -1
  41. data/grammars/source.mermaid.json +1 -1
  42. data/grammars/source.mermaid.pie-chart.json +1 -1
  43. data/grammars/source.mermaid.quad-chart.json +1 -0
  44. data/grammars/source.mermaid.sankey.json +1 -0
  45. data/grammars/source.mermaid.timeline.json +1 -0
  46. data/grammars/source.mermaid.user-journey.json +1 -1
  47. data/grammars/source.mermaid.zenuml.json +1 -0
  48. data/grammars/source.moonbit.json +1 -1
  49. data/grammars/source.move.json +1 -1
  50. data/grammars/source.nginx.json +1 -1
  51. data/grammars/source.nickel.json +1 -0
  52. data/grammars/source.nim.json +1 -1
  53. data/grammars/source.nr.json +1 -1
  54. data/grammars/source.nushell.json +1 -1
  55. data/grammars/source.odin-ehr.json +1 -1
  56. data/grammars/source.openqasm.json +1 -1
  57. data/grammars/source.postscript.json +1 -1
  58. data/grammars/source.psl.json +1 -0
  59. data/grammars/source.quakec.json +1 -0
  60. data/grammars/source.rascal.json +1 -1
  61. data/grammars/source.record-jar.json +1 -1
  62. data/grammars/source.rosmsg.json +1 -0
  63. data/grammars/source.sieve.json +1 -1
  64. data/grammars/source.slang.json +1 -1
  65. data/grammars/source.slint.json +1 -1
  66. data/grammars/source.stan.json +1 -1
  67. data/grammars/source.swift.json +1 -1
  68. data/grammars/source.templ.json +1 -1
  69. data/grammars/source.vba.json +1 -1
  70. data/grammars/source.vcl.json +1 -0
  71. data/grammars/source.vento.json +1 -1
  72. data/grammars/source.vhdl.json +1 -1
  73. data/grammars/source.vue.json +1 -1
  74. data/grammars/source.wdl.json +1 -1
  75. data/grammars/source.wesl.json +1 -0
  76. data/grammars/source.wgsl.json +1 -1
  77. data/grammars/source.wit.json +1 -1
  78. data/grammars/text.codeowners.json +1 -1
  79. data/grammars/text.html.jte.json +1 -1
  80. data/grammars/text.jira.json +1 -0
  81. data/grammars/text.marko.json +1 -1
  82. data/grammars/text.slim.json +1 -1
  83. data/grammars/text.srt.json +1 -1
  84. data/grammars/text.xml.svg.json +1 -1
  85. data/grammars/version +1 -1
  86. data/lib/linguist/VERSION +1 -1
  87. data/lib/linguist/generated.rb +5 -5
  88. data/lib/linguist/generic.yml +2 -0
  89. data/lib/linguist/heuristics.yml +39 -8
  90. data/lib/linguist/instrumenter.rb +19 -0
  91. data/lib/linguist/languages.json +1 -1
  92. data/lib/linguist/languages.yml +184 -92
  93. data/lib/linguist/samples.json +1 -1
  94. data/lib/linguist.rb +1 -0
  95. metadata +20 -3
  96. data/grammars/source.varnish.vcl.json +0 -1
@@ -0,0 +1 @@
1
+ {"scopeName":"source.mermaid.zenuml","patterns":[{"include":"#main"}],"repository":{"alt":{"name":"meta.conditional.mermaid","begin":"(?=\\bif(?:$|\\s*[\\({]))","end":"(?!\\G)(?=\\s*(?!//|(?:if|else)(?:$|[\\s({]))\\S)","patterns":[{"name":"meta.branch.mermaid","begin":"\\b(if|else(?:\\s+if)?)(?=$|[\\s({])","end":"(?\u003c=})","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.mermaid"}}},{"include":"#comment"}],"applyEndPatternLast":true},"block":{"name":"meta.block.mermaid","begin":"{","end":"}","patterns":[{"include":"#block"},{"include":"#main"}],"beginCaptures":{"0":{"patterns":[{"include":"source.mermaid#brace"}]}},"endCaptures":{"0":{"patterns":[{"include":"source.mermaid#brace"}]}}},"comment":{"name":"comment.line.double-slash.zenuml.mermaid","begin":"(//)[ \\t]*","end":"(?=\\s*$)","patterns":[{"match":"(?:^|\\G)(.+)","captures":{"1":{"patterns":[{}]}}}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.mermaid"}}},"keywordBlock":{"name":"meta.$1.block.mermaid","begin":"\\b(opt|par|try|catch|finally)(?=\\s*(?:$|{))","end":"(?!\\G)","patterns":[{"begin":"\\G","end":"(?=\\S)"},{"include":"#block"}],"beginCaptures":{"1":{"name":"keyword.control.flow.mermaid"}},"applyEndPatternLast":true},"loop":{"name":"meta.loop.mermaid","begin":"\\b(while|for|for[Ee]ach|loop)(?=$|\\s*[\\({])","end":"(?!\\G)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"name":"keyword.control.flow.${1:/downcase}.mermaid"}},"applyEndPatternLast":true},"main":{"patterns":[{"include":"source.mermaid#a11y"},{"include":"source.mermaid#terminator"},{"include":"source.mermaid#directive"},{"include":"source.mermaid#comment"},{"include":"source.mermaid#title"},{"include":"#comment"},{"include":"#return"},{"include":"#loop"},{"include":"#alt"},{"include":"#keywordBlock"},{"include":"#messages"},{"include":"#variable"},{"include":"#participant"}]},"messageAsync":{"name":"meta.message.async.mermaid","contentName":"string.unquoted.message-text.mermaid","begin":"\\b(\\w+)(-\u003e)(\\w+)\\b\\s*(:)[ \\t]*","end":"(?=\\s*(?:$|%%|//))","beginCaptures":{"1":{"name":"entity.name.tag.participant.sender.mermaid"},"2":{"name":"keyword.operator.arrow.message.mermaid"},"3":{"name":"entity.name.tag.participant.recipient.mermaid"},"4":{"patterns":[{"include":"source.mermaid#colon"}]}}},"messageCreation":{"name":"meta.message.creation.mermaid","begin":"\\b(new)\\s+(\\w+)","end":"(?!\\G)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"name":"keyword.operator.message.mermaid"},"2":{"name":"entity.name.function.message.mermaid"}},"applyEndPatternLast":true},"messageSync":{"name":"meta.message.sync.mermaid","begin":"(?:\\b(\\w+)(-\u003e))?\\b(\\w+)(\\.)(\\w+)","end":"(?!\\G)","patterns":[{"include":"#parameters"}],"beginCaptures":{"1":{"name":"entity.name.tag.participant.sender.mermaid"},"2":{"name":"keyword.operator.arrow.message.mermaid"},"3":{"name":"entity.name.tag.participant.sender.mermaid"},"4":{"name":"punctuation.delimiter.period.property.mermaid"},"5":{"name":"entity.name.function.message.mermaid"}},"applyEndPatternLast":true},"messages":{"patterns":[{"include":"#messageSync"},{"include":"#messageCreation"},{"include":"#messageAsync"}]},"parameter":{"patterns":[{"name":"variable.parameter.message.function","match":"[^\\s,\\(\\){}]+"},{"include":"source.mermaid#comma"},{"include":"#parentheses"}]},"parameters":{"patterns":[{"name":"meta.arguments.mermaid","begin":"\\G(\\()","end":"(\\))","patterns":[{"include":"#parameter"}],"beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.mermaid"},"1":{"name":"brackethighlighter.round"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.mermaid"},"1":{"name":"brackethighlighter.round"}}},{"begin":"(?\u003c=\\))|\\G","end":"(?=\\s*[^\\s{])|(?\u003c=})","patterns":[{"include":"#block"}]}]},"parentheses":{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#parameter"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.begin.mermaid"},"1":{"name":"brackethighlighter.round"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.end.mermaid"},"1":{"name":"brackethighlighter.round"}}},"participant":{"name":"meta.participant.mermaid","begin":"(?=@\\w+|\\b\\w+\\b)","end":"(?!\\G)","patterns":[{"begin":"(?\u003c=\\s|^|\\G)(@)(\\w+)\\b","end":"(?\u003c=\\s|^)(?=\\w)","beginCaptures":{"0":{"name":"storage.modifier.annotator.${2:/downcase}.mermaid"},"1":{"name":"punctuation.definition.annotator.mermaid"}}},{"name":"meta.participant.$1.mermaid","begin":"\\b(\\w+)\\b(?!\\.|-\u003e|\\s*=)","end":"(?=\\s*(?!as(?:$|\\s))\\S)","patterns":[{"name":"meta.alias.mermaid","begin":"(?i)(?\u003c=\\s|^)(as)(?=$|\\s)","end":"(?i)(?=@|(?\u003c=\\s|^)new\\s|\\b\\w+(?:\\.|-\u003e|\\s*=))|\\b(\\w+)\\b","beginCaptures":{"1":{"name":"keyword.operator.alias.mermaid"}},"endCaptures":{"1":{"name":"entity.name.alias.participant.mermaid"}}}],"beginCaptures":{"0":{"name":"entity.name.tag.participant.mermaid"}}}]},"return":{"patterns":[{"include":"#returnStatement"},{"include":"#returnAnnotator"}]},"returnAnnotator":{"name":"meta.return.annotator.mermaid","begin":"(?i)(@)(return|reply)(?=$|\\s)","end":"(?!\\G)","patterns":[{"begin":"\\G","end":"(?=\\S)"},{"include":"#messages"}],"beginCaptures":{"0":{"name":"keyword.control.annotator.${2:/downcase}.mermaid"},"1":{"name":"punctuation.definition.annotator.mermaid"}},"applyEndPatternLast":true},"returnStatement":{"name":"meta.return.statement.mermaid","begin":"\\breturn(?=$|\\s)","end":"(?\u003c=\")|[^\\s\"{}]+","patterns":[{"name":"string.quoted.double.reply.mermaid","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.mermaid"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.mermaid"}}}],"beginCaptures":{"0":{"name":"keyword.control.flow.return.mermaid"}},"endCaptures":{"0":{"name":"string.unquoted.reply.mermaid"}}},"variable":{"name":"meta.assignment.mermaid","begin":"\\s*\\b(?:(\\w+)\\s+)?(\\w+)\\s*(=)","end":"(?!\\G)","patterns":[{"begin":"\\G","end":"(?=\\S)"},{"include":"#messageSync"},{"include":"#messageCreation"}],"beginCaptures":{"1":{"name":"entity.name.type.mermaid"},"2":{"name":"variable.assignment.mermaid"},"3":{"name":"keyword.operator.assignment.mermaid"}},"applyEndPatternLast":true}}}
@@ -1 +1 @@
1
- {"name":"moonbit","scopeName":"source.moonbit","patterns":[{"include":"#strings"},{"include":"#comments"},{"include":"#constants"},{"include":"#keywords"},{"include":"#functions"},{"include":"#support"},{"include":"#attribute"},{"include":"#types"},{"include":"#modules"},{"include":"#variables"}],"repository":{"attribute":{"patterns":[{"match":"(#[a-z][A-Za-z0-9_. ]*)(.*)","captures":{"1":{"name":"keyword.control.directive"},"2":{"patterns":[{"include":"#strings"},{"name":"entity.name.tag","match":"[a-zA-Z0-9_. ]+"},{"name":"keyword.operator.attribute.moonbit","match":"="}]}}}]},"comments":{"patterns":[{"name":"comment.line","match":"//[^/].*"},{"name":"comment.block.documentation.moonbit","begin":"///","while":"///","patterns":[{"name":"meta.embedded.line.moonbit","begin":"\\s*```","end":"\\s*```","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"markup.fenced_code.block.markdown"}},"endCaptures":{"0":{"name":"markup.fenced_code.block.markdown"}}},{"name":"comment.block.documentation.moonbit","match":".*"}]}]},"constants":{"patterns":[{"name":"constant.numeric.moonbit","match":"\\b\\d(\\d|_)*(?!\\.)((U)?(L)?|N?)\\b"},{"name":"constant.numeric.moonbit","match":"(?\u003c=\\.)\\d((?=\\.)|\\b)"},{"name":"constant.numeric.moonbit","match":"\\b\\d+(?=\\.\\.)"},{"name":"constant.numeric.moonbit","match":"\\b\\d[\\d_]*\\.[\\d_]*([Ee][+-]?\\d[\\d_]*\\b)?"},{"name":"constant.numeric.moonbit","match":"\\b0[Oo][0-7][0-7]*((U)?(L)?|N?)\\b"},{"name":"constant.numeric.moonbit","match":"\\b0[Xx][\\dAaBbCcDdEeFf][\\dAaBbCcDdEeFf_]*((U|L|UL|N)\\b|\\.[\\da-fA-F_]*([Pp][+-]?[\\da-fA-F_]+\\b)?)?"},{"name":"constant.language.moonbit","match":"\\b(true|false)\\b"}]},"escape":{"patterns":[{"name":"constant.character.escape.moonbit","match":"\\\\[0\\\\tnrb\"']"},{"name":"constant.character.escape.moonbit","match":"\\\\x[0-9a-fA-F]{2}"},{"name":"constant.character.escape.moonbit","match":"\\\\o[0-3][0-7]{2}"},{"name":"constant.character.escape.unicode.moonbit","match":"\\\\u[0-9a-fA-F]{4}"},{"name":"constant.character.escape.unicode.moonbit","match":"\\\\u{[0-9a-fA-F]*}"}]},"functions":{"patterns":[{"match":"\\b(fn)\\b\\s*(?:([A-Z][A-Za-z0-9_]*)::)?([a-z0-9_][A-Za-z0-9_]*)?\\b","captures":{"1":{"name":"keyword.moonbit"},"2":{"name":"entity.name.type.moonbit"},"3":{"name":"entity.name.function.moonbit"}}},{"name":"meta.function.call.moonbit","begin":"(?!\\bfn\\s+)(?:\\.|::)?([a-z0-9_][A-Za-z0-9_]*(\\!|\\?|\\!\\!)?)\\s*(\\()","end":"\\)","patterns":[{"include":"#comments"},{"include":"#constants"},{"include":"#functions"},{"include":"#support"},{"include":"#types"},{"include":"#keywords"},{"include":"#modules"},{"include":"#strings"},{"include":"#variables"}],"beginCaptures":{"1":{"name":"entity.name.function.moonbit"},"2":{"name":"punctuation.brackets.round.moonbit"}},"endCaptures":{"0":{"name":"punctuation.brackets.round.moonbit"}}}]},"interpolation":{"patterns":[{"name":"meta.embedded.line.moonbit","contentName":"source.moonbit","begin":"\\\\{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.moonbit"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.moonbit"}}}]},"keywords":{"patterns":[{"name":"keyword.control.moonbit","match":"\\b(guard|if|while|break|continue|return|try|catch|except|raise|match|else|as|in|is|loop|for|async)\\b"},{"name":"keyword.moonbit","match":"\\b(type!|(type|typealias|let|const|enum|struct|import|trait|traitalias|derive|test|impl|with|fnalias|recur)\\b)"},{"name":"variable.language.moonbit","match":"\\b(self)\\b"},{"name":"storage.modifier.moonbit","match":"\\b(mut|pub|priv|readonly|extern)\\b"},{"name":"storage.type.function.arrow.moonbit","match":"-\u003e"},{"name":"storage.type.function.arrow.moonbit","match":"=\u003e"},{"name":"keyword.operator.assignment.moonbit","match":"="},{"name":"keyword.operator.other.moonbit","match":"\\|\u003e"},{"name":"keyword.operator.comparison.moonbit","match":"(===|==|!=|\u003e=|\u003c=|(?\u003c!-)(?\u003c!\\|)\u003e(?!\u003e)|\u003c(?!\u003c))"},{"name":"keyword.operator.logical.moonbit","match":"(\\bnot\\b|\u0026\u0026|\\|\\|)"},{"name":"keyword.operator.bitwise.moonbit","match":"(\\|(?!\\|)(?!\u003e)|\u0026(?!\u0026)|\\^|\u003c\u003c|\u003e\u003e)"},{"name":"keyword.operator.math.moonbit","match":"(\\+|-(?!\u003e)|\\*|%|/)"}]},"modules":{"patterns":[{"name":"entity.name.namespace.moonbit","match":"@[A-Za-z][A-Za-z0-9_/]*"}]},"strings":{"patterns":[{"name":"string.line","match":"(#\\|).*","captures":{"1":{"name":"keyword.operator.other.moonbit"}}},{"name":"string.line","match":"(\\$\\|)(.*)","captures":{"1":{"name":"keyword.operator.other.moonbit"},"2":{"patterns":[{"include":"#escape"},{"include":"#interpolation"}]}}},{"name":"string.quoted.single.moonbit","begin":"'","end":"'","patterns":[{"include":"#escape"}]},{"name":"string.quoted.double.moonbit","begin":"\"","end":"\"","patterns":[{"include":"#escape"},{"include":"#interpolation"}]}]},"support":{"patterns":[{"name":"support.class.moonbit","match":"\\b(Eq|Compare|Hash|Show|Default|ToJson|FromJson)\\b"}]},"types":{"patterns":[{"name":"entity.name.type.moonbit","match":"\\b(?\u003c!@)[A-Z][A-Za-z0-9_]*((\\?)+|\\b)"}]},"variables":{"patterns":[{"name":"variable.other.moonbit","match":"\\b(?\u003c!\\.|::)[a-z_][a-zA-Z0-9_]*\\b"}]}}}
1
+ {"name":"moonbit","scopeName":"source.moonbit","patterns":[{"include":"#strings"},{"include":"#comments"},{"include":"#constants"},{"include":"#keywords"},{"include":"#functions"},{"include":"#support"},{"include":"#attribute"},{"include":"#types"},{"include":"#modules"},{"include":"#variables"}],"repository":{"attribute":{"patterns":[{"match":"(#[a-z][A-Za-z0-9_. ]*)(.*)","captures":{"1":{"name":"keyword.control.directive"},"2":{"patterns":[{"include":"#strings"},{"name":"entity.name.tag","match":"[a-zA-Z0-9_. ]+"},{"name":"keyword.operator.attribute.moonbit","match":"="}]}}}]},"comments":{"patterns":[{"name":"comment.line","match":"//[^/].*"},{"name":"comment.block.documentation.moonbit","begin":"///","while":"///","patterns":[{"name":"meta.embedded.line.moonbit","begin":"\\s*```","end":"\\s*```","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"markup.fenced_code.block.markdown"}},"endCaptures":{"0":{"name":"markup.fenced_code.block.markdown"}}},{"name":"comment.block.documentation.moonbit","match":".*"}]}]},"constants":{"patterns":[{"name":"constant.numeric.moonbit","match":"\\b\\d(\\d|_)*(?!\\.)((U)?(L)?|N?)\\b"},{"name":"constant.numeric.moonbit","match":"(?\u003c=\\.)\\d((?=\\.)|\\b)"},{"name":"constant.numeric.moonbit","match":"\\b\\d+(?=\\.\\.)"},{"name":"constant.numeric.moonbit","match":"\\b\\d[\\d_]*\\.[\\d_]*([Ee][+-]?\\d[\\d_]*\\b)?"},{"name":"constant.numeric.moonbit","match":"\\b0[Oo][0-7][0-7]*((U)?(L)?|N?)\\b"},{"name":"constant.numeric.moonbit","match":"\\b0[Xx][\\dAaBbCcDdEeFf][\\dAaBbCcDdEeFf_]*((U|L|UL|N)\\b|\\.[\\da-fA-F_]*([Pp][+-]?[\\da-fA-F_]+\\b)?)?"},{"name":"constant.language.moonbit","match":"\\b(true|false)\\b"}]},"escape":{"patterns":[{"name":"constant.character.escape.moonbit","match":"\\\\[0\\\\tnrb\"']"},{"name":"constant.character.escape.moonbit","match":"\\\\x[0-9a-fA-F]{2}"},{"name":"constant.character.escape.moonbit","match":"\\\\o[0-3][0-7]{2}"},{"name":"constant.character.escape.unicode.moonbit","match":"\\\\u[0-9a-fA-F]{4}"},{"name":"constant.character.escape.unicode.moonbit","match":"\\\\u{[0-9a-fA-F]*}"}]},"functions":{"patterns":[{"match":"\\b(fn)\\b\\s*(?:([A-Z][A-Za-z0-9_]*)::)?([a-z0-9_][A-Za-z0-9_]*)?\\b","captures":{"1":{"name":"keyword.moonbit"},"2":{"name":"entity.name.type.moonbit"},"3":{"name":"entity.name.function.moonbit"}}},{"name":"meta.function.call.moonbit","begin":"(?!\\bfn\\s+)(?:\\.|::)?([a-z0-9_][A-Za-z0-9_]*(\\!|\\?|\\!\\!)?)\\s*(\\()","end":"\\)","patterns":[{"include":"#comments"},{"include":"#constants"},{"include":"#keywords"},{"include":"#functions"},{"include":"#support"},{"include":"#types"},{"include":"#modules"},{"include":"#strings"},{"include":"#variables"}],"beginCaptures":{"1":{"name":"entity.name.function.moonbit"},"2":{"name":"punctuation.brackets.round.moonbit"}},"endCaptures":{"0":{"name":"punctuation.brackets.round.moonbit"}}}]},"interpolation":{"patterns":[{"name":"meta.embedded.line.moonbit","contentName":"source.moonbit","begin":"\\\\{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.moonbit"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.moonbit"}}}]},"keywords":{"patterns":[{"name":"keyword.control.moonbit.async","match":"\\b(async)\\b"},{"name":"keyword.control.moonbit","match":"\\b(guard|if|while|break|continue|return|try|catch|except|raise|match|using|else|as|in|is|loop|for|async)\\b"},{"name":"keyword.moonbit","match":"\\b(type!|(type|typealias|let|const|enum|struct|import|trait|traitalias|derive|test|impl|with|fnalias|recur|suberror)\\b)"},{"name":"variable.language.moonbit","match":"\\b(self)\\b"},{"name":"storage.modifier.moonbit","match":"\\b(mut|pub|priv|readonly|extern)\\b"},{"name":"storage.type.function.arrow.moonbit","match":"-\u003e"},{"name":"storage.type.function.arrow.moonbit","match":"=\u003e"},{"name":"keyword.operator.assignment.moonbit","match":"="},{"name":"keyword.operator.other.moonbit","match":"\\|\u003e"},{"name":"keyword.operator.comparison.moonbit","match":"(===|==|!=|\u003e=|\u003c=|(?\u003c!-)(?\u003c!\\|)\u003e(?!\u003e)|\u003c(?!\u003c))"},{"name":"keyword.operator.logical.moonbit","match":"(\\bnot\\b|\u0026\u0026|\\|\\|)"},{"name":"keyword.operator.bitwise.moonbit","match":"(\\|(?!\\|)(?!\u003e)|\u0026(?!\u0026)|\\^|\u003c\u003c|\u003e\u003e)"},{"name":"keyword.operator.math.moonbit","match":"(\\+|-(?!\u003e)|\\*|%|/)"}]},"modules":{"patterns":[{"name":"entity.name.namespace.moonbit","match":"@[A-Za-z][A-Za-z0-9_/]*"}]},"strings":{"patterns":[{"name":"string.line","match":"(#\\|).*","captures":{"1":{"name":"keyword.operator.other.moonbit"}}},{"name":"string.line","match":"(\\$\\|)(.*)","captures":{"1":{"name":"keyword.operator.other.moonbit"},"2":{"patterns":[{"include":"#escape"},{"include":"#interpolation"}]}}},{"name":"string.quoted.single.moonbit","begin":"'","end":"'","patterns":[{"include":"#escape"}]},{"name":"string.quoted.double.moonbit","begin":"\"","end":"\"","patterns":[{"include":"#escape"},{"include":"#interpolation"}]}]},"support":{"patterns":[{"name":"support.class.moonbit","match":"\\b(Eq|Compare|Hash|Show|Default|ToJson|FromJson)\\b"}]},"types":{"patterns":[{"name":"entity.name.type.moonbit","match":"\\b(?\u003c!@)[A-Z][A-Za-z0-9_]*((\\?)+|\\b)"}]},"variables":{"patterns":[{"name":"variable.other.moonbit","match":"\\b(?\u003c!\\.|::)[a-z_][a-zA-Z0-9_]*\\b"}]}}}
@@ -1 +1 @@
1
- {"scopeName":"source.move","patterns":[{"include":"#address"},{"include":"#comments"},{"include":"#module"},{"include":"#script"},{"include":"#annotation"},{"include":"#comments"},{"include":"#annotation"},{"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"}],"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"}}},"annotation":{"name":"support.constant.annotation.move","begin":"#\\[","end":"\\]","patterns":[{"name":"meta.annotation.name.move","match":"\\b(\\w+)\\s*(?=\\=)"},{"name":"meta.annotation.value.move","begin":"=","end":"(?=[,\\]])","patterns":[{"include":"#literals"}]}]},"as":{"name":"keyword.control.as.move","match":"\\b(as)\\b"},"as-import":{"name":"meta.import.as.move","match":"\\b(as)\\b"},"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"},{"include":"#types"},{"name":"constant.other.move","match":"\\b([A-Z][A-Z_0-9]+)\\b"},{"include":"#error_const"}],"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":"entity.name.function.enum.move","match":"\\b([A-Z][A-Za-z_0-9]*)\\b(?=\\s*\\()"},{"name":"entity.name.type.enum.move","match":"\\b([A-Z][A-Za-z_0-9]*)\\b"},{"name":"meta.enum.tuple.move","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expr_generic"},{"include":"#capitalized"},{"include":"#types"}]},{"name":"meta.enum.struct.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"include":"#expr_generic"},{"include":"#capitalized"},{"include":"#types"}]}]}],"beginCaptures":{"1":{"name":"keyword.control.enum.move"}}},"error_const":{"name":"variable.other.error.const.move","match":"\\b(E[A-Z][A-Za-z0-9_]*)\\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":"#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"},{"include":"#match_expression"},{"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"},{"include":"#error_const"},{"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"}}},"inline":{"name":"storage.modifier.visibility.inline.move","match":"\\b(inline)\\b"},"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"}}},"match_expression":{"name":"meta.match.move","begin":"\\b(match)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"include":"#types"},{"name":"meta.match.block.move","begin":"{","end":"}","patterns":[{"name":"operator.match.move","match":"\\b(=\u003e)\\b"},{"include":"#expr"}]},{"include":"#expr"}],"beginCaptures":{"1":{"name":"keyword.control.match.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)\\b","end":"(?\u003c=[;}])","patterns":[{"include":"#comments"},{"begin":"(?\u003c=\\b(module)\\b)","end":"(?=[;{])","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"name":"constant.other.move","begin":"(?\u003c=\\b(module))","end":"(?=[(::){])","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"}]},{"name":"entity.name.type.move","begin":"(?\u003c=::)","end":"(?=[\\s;{])","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"}]}]},{"name":"meta.module_scope.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#annotation"},{"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"}}},"module_label":{"name":"meta.module.label.move","begin":"^\\s*(module)\\b","end":";\\s*$","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"name":"constant.other.move","begin":"(?\u003c=\\bmodule\\b)","end":"(?=[(::){])"},{"name":"entity.name.type.move","begin":"(?\u003c=::)","end":"(?=[\\s{])"}]},"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
+ {"scopeName":"source.move","patterns":[{"include":"#address"},{"include":"#comments"},{"include":"#module"},{"include":"#script"},{"include":"#annotation"},{"include":"#comments"},{"include":"#annotation"},{"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"}],"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"}}},"annotation":{"name":"support.constant.annotation.move","begin":"#\\[","end":"\\]","patterns":[{"name":"meta.annotation.name.move","match":"\\b(\\w+)\\s*(?=\\=)"},{"name":"meta.annotation.value.move","begin":"=","end":"(?=[,\\]])","patterns":[{"include":"#literals"}]}]},"as":{"name":"keyword.control.as.move","match":"\\b(as)\\b"},"as-import":{"name":"meta.import.as.move","match":"\\b(as)\\b"},"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"},{"include":"#types"},{"name":"constant.other.move","match":"\\b([A-Z][A-Z_0-9]+)\\b"},{"include":"#error_const"}],"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":"entity.name.function.enum.move","match":"\\b([A-Z][A-Za-z_0-9]*)\\b(?=\\s*\\()"},{"name":"entity.name.type.enum.move","match":"\\b([A-Z][A-Za-z_0-9]*)\\b"},{"name":"meta.enum.tuple.move","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expr_generic"},{"include":"#capitalized"},{"include":"#types"}]},{"name":"meta.enum.struct.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"include":"#expr_generic"},{"include":"#capitalized"},{"include":"#types"}]}]}],"beginCaptures":{"1":{"name":"keyword.control.enum.move"}}},"error_const":{"name":"variable.other.error.const.move","match":"\\b(E[A-Z][A-Za-z0-9_]*)\\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":"#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"},{"include":"#match_expression"},{"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"},{"include":"#error_const"},{"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":"#fun_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"}}},"fun_type_param":{"name":"meta.fun_generic_param.move","begin":"\u003c","end":"\u003e","patterns":[{"include":"#comments"},{"include":"#types"},{"include":"#phantom"},{"include":"#capitalized"},{"include":"#module_access"},{"include":"#abilities"}]},"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"}}},"inline":{"name":"storage.modifier.visibility.inline.move","match":"\\b(inline)\\b"},"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.move","begin":"(\\bvector\\b)\\[","end":"\\]","patterns":[{"include":"#expr"}],"captures":{"1":{"name":"support.type.vector.move"}}}]},"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"}}},"match_expression":{"name":"meta.match.move","begin":"\\b(match)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"include":"#types"},{"name":"meta.match.block.move","begin":"{","end":"}","patterns":[{"name":"operator.match.move","match":"\\b(=\u003e)\\b"},{"include":"#expr"}]},{"include":"#expr"}],"beginCaptures":{"1":{"name":"keyword.control.match.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)\\b","end":"(?\u003c=[;}])","patterns":[{"include":"#comments"},{"begin":"(?\u003c=\\b(module)\\b)","end":"(?=[;{])","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"name":"constant.other.move","begin":"(?\u003c=\\b(module))","end":"(?=[(::){])","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"}]},{"name":"entity.name.type.move","begin":"(?\u003c=::)","end":"(?=[\\s;{])","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"}]}]},{"name":"meta.module_scope.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#annotation"},{"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"}}},"module_label":{"name":"meta.module.label.move","begin":"^\\s*(module)\\b","end":";\\s*$","patterns":[{"include":"#comments"},{"include":"#escaped_identifier"},{"name":"constant.other.move","begin":"(?\u003c=\\bmodule\\b)","end":"(?=[(::){])"},{"name":"entity.name.type.move","begin":"(?\u003c=::)","end":"(?=[\\s{])"}]},"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":"nginx","scopeName":"source.nginx","patterns":[{"name":"comment.line.number-sign","match":"\\#.*"},{"name":"meta.context.events.nginx","begin":"\\b(events) +\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.context.nginx"}}},{"name":"meta.context.http.nginx","begin":"\\b(http) +\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.context.nginx"}}},{"name":"meta.context.types.nginx","begin":"\\b(types) +\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.context.nginx"}}},{"name":"meta.context.server.nginx","begin":"\\b(server) +\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.context.nginx"}}},{"name":"meta.context.location.nginx","begin":"\\b(location) +[\\^]?~[\\*]? +(.*?)\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.context.location.nginx"},"2":{"name":"string.regexp.nginx"}}},{"name":"meta.context.location.nginx","begin":"\\b(location) +(.*?)\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.context.location.nginx"},"2":{"name":"entity.name.context.location.nginx"}}},{"name":"meta.context.upstream.nginx","begin":"\\b(upstream) +(.*?)\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.context.nginx"},"2":{"name":"entity.name.context.location.nginx"}}},{"begin":"\\b(if) +\\(","end":"\\)","patterns":[{"include":"#values"}],"beginCaptures":{"1":{"name":"keyword.control.nginx"}}},{"name":"meta.block.nginx","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}]},{"name":"punctuation.definition.variable","begin":"\\b(daemon|env|debug_points|error_log|include|lock_file|master_process|pid|ssl_engine|timer_resolution|user|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(accept_mutex|accept_mutex_delay|debug_connection|devpoll_changes|devpoll_events|epoll_events|kqueue_changes|kqueue_events|multi_accept|rtsig_signo|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|use|worker_connections)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.events.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(aio|alias|chunked_transfer_encoding|client_body_in_file_only|client_body_in_single_buffer|client_body_buffer_size|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|default_type|directio|error_page|if_modified_since|internal|keepalive_disable|keepalive_timeout|keepalive_requests|large_client_header_buffers|limit_except|limit_rate|limit_rate_after|lingering_close|lingering_time|lingering_timeout|listen|log_not_found|log_subrequest|msie_padding|msie_refresh|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|optimize_server_names|port_in_redirect|post_action|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|root|satisfy|satisfy_any|send_timeout|sendfile|server_name|server_name_in_redirect|server_names_hash_max_size|server_names_hash_bucket_size|server_tokens|tcp_nodelay|tcp_nopush|try_files|types\\ |underscores_in_hashes|variables_hash_bucket_size|variables_hash_max_size|types_hash_max_size)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(set_real_ip_from|real_ip_recursive|real_ip_header)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.realip.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(allow|deny)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.access.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(auth_basic|auth_basic_user_file)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.auth_basic.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(autoindex|autoindex_exact_size|autoindex_localtime)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.autoindex.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(ancient_browser|ancient_browser_value|modern_browser|modern_browser_value)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.browser.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(charset|charset_map|override_charset|source_charset)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.charset.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(empty_gif)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.empty_gif.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(fastcgi_bind|fastcgi_buffer_size|fastcgi_buffers|fastcgi_cache|fastcgi_cache_key|fastcgi_cache_path|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_index|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_intercept_errors|fastcgi_max_temp_file_size|fastcgi_no_cache|fastcgi_next_upstream|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_pass_request_body|fastcgi_pass_request_headers|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_path)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.fastcgi.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(geo)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.geo.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_types|gzip_vary)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.gzip.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(gzip_static|gzip_disable|gzip_http_version|gzip_proxied|gzip_vary)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.gzip_static.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(add_header|expires)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.headers.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(index)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.index.nginx"}}},{"name":"punctuation.definition.variable","match":"\\b(limit_req_log_level|limit_req_zone|limit_req)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.limit_req.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(limit_zone|limit_conn|limit_conn_log_level)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.limit_zone.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(limit_conn_zone|limit_conn|limit_conn_log_level)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.limit_conn.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(access_log|log_format|open_log_file_cache)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.log.nginx"}}},{"name":"meta.context.map.nginx","begin":"\\b(map) +(\\$[A-Za-z0-9\\_]+) +(\\$[A-Za-z0-9\\_]+) *\\{","end":"\\}","patterns":[{"include":"#values"},{"name":"punctuation.definition.map.nginx","match":";"},{"name":"comment.line.number-sign","match":"\\#.*"}],"beginCaptures":{"1":{"name":"storage.type.context.nginx"},"2":{"name":"variable.other.nginx"},"3":{"name":"variable.other.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(map_hash_max_size|map_hash_bucket_size)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.map.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(memcached_pass|memcached_connect_timeout|memcached_read_timeout|memcached_send_timeout|memcached_buffer_size|memcached_next_upstream)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.memcached.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(proxy_bind|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_http_version|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_redirect|proxy_read_timeout|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_upstream_fail_timeout|proxy_upstream_max_fails)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.proxy.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(valid_referers)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.referer.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(rewrite_log|set|uninitialized_variable_warn)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.rewrite.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(break|return)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"support.function.module.http.rewrite.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(rewrite)\\b *(\".+?(?\u003c!\\\\)\"|'.+?(?\u003c!\\\\)'|((.+?)(?\u003c!\\\\)\\s))","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.rewrite.nginx"},"2":{"name":"string.regexp.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(scgi_bind|scgi_buffer_size|scgi_buffering|scgi_buffers|scgi_busy_buffers_size|scgi_cache|scgi_cache_bypass|scgi_cache_key|scgi_cache_methods|scgi_cache_min_uses|scgi_cache_path|scgi_cache_use_stale|scgi_cache_valid|scgi_connect_timeout|scgi_hide_header|scgi_ignore_client_abort|scgi_ignore_headers|scgi_intercept_errors|scgi_max_temp_file_size|scgi_next_upstream|scgi_no_cache|scgi_param|scgi_pass|scgi_pass_header|scgi_pass_request_body|scgi_pass_request_headers|scgi_read_timeout|scgi_send_timeout|scgi_store|scgi_store_access|scgi_temp_file_write_size|scgi_temp_path)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.scgi.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(split_clients)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.split_clients.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(ssi|ssi_silent_errors|ssi_types|ssi_value_length)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.ssi.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(ssl|ssl_certificate|ssl_certificate_key|ssl_client_certificate|ssl_dhparam|ssl_ciphers|ssl_crl|ssl_prefer_server_ciphers|ssl_protocols|ssl_verify_client|ssl_verify_depth|ssl_session_cache|ssl_session_timeout|ssl_engine)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.ssl.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(ip_hash|server)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.upstream.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.userid.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(uwsgi_bind|uwsgi_buffer_size|uwsgi_buffering|uwsgi_buffers|uwsgi_busy_buffers_size|uwsgi_cache|uwsgi_cache_bypass|uwsgi_cache_key|uwsgi_cache_methods|uwsgi_cache_min_uses|uwsgi_cache_path|uwsgi_cache_use_stale|uwsgi_cache_valid|uwsgi_connect_timeout|uwsgi_hide_header|uwsgi_ignore_client_abort|uwsgi_ignore_headers|uwsgi_intercept_errors|uwsgi_max_temp_file_size|uwsgi_modifier1|uwsgi_modifier2|uwsgi_next_upstream|uwsgi_no_cache|uwsgi_param|uwsgi_pass|uwsgi_pass_header|uwsgi_pass_request_body|uwsgi_pass_request_headers|uwsgi_read_timeout|uwsgi_send_timeout|uwsgi_store|uwsgi_store_access|uwsgi_string|uwsgi_temp_file_write_size|uwsgi_temp_path)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.uwsgi.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b([a-zA-Z0-9\\_]+)\\s+","end":"(;|$)","patterns":[{"include":"#values"}],"beginCaptures":{"1":{"name":"keyword.directive.module.unsupported.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b(stub_status)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.stub_status.nginx"}}},{"name":"punctuation.definition.variable","begin":"\\b([a-z]+\\/[a-z0-9\\-\\.\\+]+)\\b","end":";","patterns":[{"include":"#values"}],"captures":{"1":{"name":"keyword.directive.module.http.nginx"}}}],"repository":{"values":{"patterns":[{"include":"#variables"},{"match":"[\\t ]([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}|[0-9a-f:]+)(\\/[0-9]{2})?(?=[\\t ;])","captures":{"1":{"name":"string.ipaddress.nginx"},"2":{"name":"constant.numeric.cidr.nginx"}}},{"match":"[\\t ](=?[0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?=[\\t ;])","captures":{"1":{"name":"constant.numeric.nginx"}}},{"name":"constant.language.nginx","match":"[\\t ](on|off|true|false)(?=[\\t ;])"},{"name":"constant.language.nginx","match":"[\\t ](kqueue|rtsig|epoll|\\/dev\\/poll|select|poll|eventport|max|all|default_server|default|main|crit|error|debug|warn|notice|last)(?=[\\t ;])"},{"name":"string.regexp.nginx","match":"\\\\.*\\ |\\~\\*|\\~|\\!\\~\\*|\\!\\~"},{"name":"string.regexp.nginx","match":"\\^.*?\\$"},{"name":"string.quoted.double.nginx","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.nginx","match":"\\\\\""},{"include":"#variables"}]},{"name":"string.quoted.single.nginx","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.nginx","match":"\\\\'"},{"include":"#variables"}]}]},"variables":{"patterns":[{"name":"variable.other.nginx","match":"(\\$[A-Za-z0-9\\_]+)\\b"}]}}}
1
+ {"name":"NGINX Conf","scopeName":"source.nginx","patterns":[{"include":"#keywords"},{"include":"#strings"},{"name":"comment","match":"^(\\s)*(#).*$\\n?"},{"name":"constant.numeric","match":"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{"name":"constant.numeric","match":"\\b\\d+\\w+\\b"},{"name":"constant.character.brace","match":"\\{|\\}"},{"name":"constant.character.end","match":"\\;"},{"name":"constant.character.paren","match":"\\(|\\)"},{"name":"constant.character.quote","match":"\\\""},{"name":"string.regexp","match":"\\\\.*\\ |\\~|\\~\\*|\\!\\~|\\!\\~\\*"},{"name":"string.quoted","match":"\\\"(.*)\\\""},{"name":"string.quoted","match":"\\'(.*)\\'"},{"name":"constant.language.module.events","match":"\\b(events)\\b"},{"name":"constant.language.module.http","match":"\\b^(http)\\b"},{"name":"variable","match":"\\$\\w+"},{"name":"constant.language.module.core","match":"\\b(accept_mutex|accept_mutex_delay|daemon|debug_connection|debug_points|env|error_log|events|include|kqueue_changes|kqueue_events|load_module|lock_file|master_process|multi_accept|optimize_server_names|pcre_jit|pid|ssl_engine|thread_pool|timer_resolution|use|user|worker_aio_requests|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_shutdown_timeout|working_directory)\\b"},{"name":"constant.language.module.google.perftools","match":"\\b(google_perftools_profiles)\\b"},{"name":"constant.language.module.http.access","match":"\\b(allow|deny)\\b"},{"name":"constant.language.module.http.addition","match":"\\b(add_before_body|add_after_body|addition_types)\\b"},{"name":"constant.language.module.http.auth_basic","match":"\\b(auth_basic|auth_basic_user_file)\\b"},{"name":"constant.language.module.http.auth_jwt","match":"\\b(auth_jwt|auth_jwt_claim_set|auth_jwt_header_set|auth_jwt_key_file|auth_jwt_key_request|auth_jwt_leeway)\\b"},{"name":"constant.language.module.http.auth_request","match":"\\b(auth_request|auth_request_set)\\b"},{"name":"constant.language.module.http.autoindex","match":"\\b(autoindex|autoindex_exact_size|autoindex_format|autoindex_localtime)\\b"},{"name":"constant.language.module.http.browser","match":"\\b(ancient_browser|ancient_browser_value|modern_browser|modern_browser_value)\\b"},{"name":"constant.language.module.http.charset","match":"\\b(charset|charset_map|charset_types|override_charset|source_charset)\\b"},{"name":"constant.language.module.http.core","match":"\\b(absolute_redirect|aio|aio_write|alias|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|default_type|directio|directio_alignment|disable_symlinks|error_page|etag|http|if_modified_since|ignore_invalid_headers|internal|keepalive_disable|keepalive_requests|keepalive_timeout|large_client_header_buffers|limit_except|limit_rate|limit_rate_after|lingering_close|lingering_time|lingering_timeout|listen|location|log_not_found|log_subrequest|max_ranges|merge_slashes|msie_padding|msie_refresh|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|root|satisfy|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|subrequest_output_buffer_size|tcp_nodelay|tcp_nopush|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|variables_hash_bucket_size|variables_hash_max_size)\\b"},{"name":"constant.language.module.http.dav","match":"\\b(create_full_put_path|dav_access|dav_methods|min_delete_depth)\\b"},{"name":"constant.language.module.http.empty_gif","match":"\\b(empty_gif)\\b"},{"name":"constant.language.module.http.f4f","match":"\\b(f4f|f4f_buffer_size)\\b"},{"name":"constant.language.module.http.fastcgi","match":"\\b(fastcgi_bind|fastcgi_buffer_size|fastcgi_buffering|fastcgi_buffers|fastcgi_buffers_size|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_background_update|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_age|fastcgi_cache_lock_timeout|fastcgi_cache_max_range_offset|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_revalidate|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_catch_stderr|fastcgi_connect_timeout|fastcgi_force_ranges|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_limit_rate|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_next_upstream_timeout|fastcgi_next_upstream_tries|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_pass_request_body|fastcgi_pass_request_headers|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_request_buffering|fastcgi_send_lowat|fastcgi_send_timeout|fastcgi_socket_keepalive|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path)\\b"},{"name":"constant.language.module.http.flv","match":"\\b(flv)\\b"},{"name":"constant.language.module.http.geoip","match":"\\b(geoip_country|geoip_city|geoip_org|geoip_proxy|geoip_proxy_recursive)\\b"},{"name":"constant.language.module.http.geo","match":"\\b(geo)\\b"},{"name":"constant.language.module.http.grpc","match":"\\b(grpc_bind|grpc_buffer_size|grpc_connect_timeout|grpc_hide_header|grpc_ignore_headers|grpc_intercept_errors|grpc_next_upstream|grpc_next_upstream_timeout|grpc_next_upstream_tries|grpc_pass|grpc_pass_header|grpc_read_timeout|grpc_send_timeout|grpc_set_header|grpc_socket_keepalive|grpc_ssl_certificate|grpc_ssl_certificate_key|grpc_ssl_ciphers|grpc_ssl_crl|grpc_ssl_name|grpc_ssl_password_file|grpc_ssl_protocols|grpc_ssl_server_name|grpc_ssl_session_reuse|grpc_ssl_trusted_certificate|grpc_ssl_verify|grpc_ssl_verify_depth)\\b"},{"name":"constant.language.module.http.gunzip","match":"\\b(gunzip|gunzip_buffers)\\b"},{"name":"constant.language.module.http.gzip","match":"\\b(gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_types|gzip_vary)\\b"},{"name":"constant.language.module.http.gzip_static","match":"\\b(gzip_static)\\b"},{"name":"constant.language.module.http.headers","match":"\\b(add_header|add_trailer|expires)\\b"},{"name":"constant.language.module.http.hls","match":"\\b(hls|hls_buffers|hls_forward_args|hls_fragment|hls_mp4_buffer_size|hls_mp4_max_buffer_size)\\b"},{"name":"constant.language.module.http.image_filter","match":"\\b(image_filter|image_filter_buffer|image_filter_interlace|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|image_filter_webp_quality)\\b"},{"name":"constant.language.module.http.index","match":"\\b(index)\\b"},{"name":"constant.language.module.http.js","match":"\\b(js_content|js_include|js_set)\\b"},{"name":"constant.language.module.http.keyval","match":"\\b(keyval|keyval_zone)\\b"},{"name":"constant.language.module.http.limit_conn","match":"\\b(limit_conn|limit_conn_log_level|limit_conn_status|limit_conn_zone|limit_zone)\\b"},{"name":"constant.language.module.http.limit_req","match":"\\b(limit_req|limit_req_log_level|limit_req_status|limit_req_zone)\\b"},{"name":"constant.language.module.http.log","match":"\\b(access_log|log_format|open_log_file_cache)\\b"},{"name":"constant.language.module.http.map","match":"\\b(map|map_hash_bucket_size|map_hash_max_size)\\b"},{"name":"constant.language.module.http.memcached","match":"\\b(memcached_bind|memcached_buffer_size|memcached_connect_timeout|memcached_force_ranges|memcached_gzip_flag|memcached_next_upstream|memcached_next_upstream_timeout|memcached_next_upstream_tries|memcached_pass|memcached_read_timeout|memcached_send_timeout|memcached_socket_keepalive)\\b"},{"name":"constant.language.module.http.mirror","match":"\\b(mirror|mirror_request_body)\\b"},{"name":"constant.language.module.http.mp4","match":"\\b(mp4|mp4_buffer_size|mp4_max_buffer_size|mp4_limit_rate|mp4_limit_rate_after)\\b"},{"name":"constant.language.module.http.perl","match":"\\b(perl|perl_modules|perl_require|perl_set)\\b"},{"name":"constant.language.module.http.proxy","match":"\\b(proxy_bind|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_background_update|proxy_cache_bypass|proxy_cache_convert_head|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_age|proxy_cache_lock_timeout|proxy_cache_max_range_offset|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_purge|proxy_cache_revalidate|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_force_ranges|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_limit_rate|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_next_upstream_timeout|proxy_next_upstream_tries|proxy_no_cache|proxy_pass|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_request_buffering|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_socket_keepalive|proxy_ssl_certificate|proxy_ssl_certificate_key|proxy_ssl_ciphers|proxy_ssl_crl|proxy_ssl_name|proxy_ssl_password_file|proxy_ssl_protocols|proxy_ssl_server_name|proxy_ssl_session_reuse|proxy_ssl_trusted_certificate|proxy_ssl_verify|proxy_ssl_verify_depth|proxy_store|proxy_store_access|proxy_t|proxy_temp_file_write_size|proxy_temp_path|proxy_upstream_max_fails)\\b"},{"name":"constant.language.module.http.random_index","match":"\\b(random_index)\\b"},{"name":"constant.language.module.http.realip","match":"\\b(set_real_ip_from|real_ip_header|real_ip_recursive)\\b"},{"name":"constant.language.module.http.referer","match":"\\b(referer_hash_bucket_size|referer_hash_max_size|valid_referers)\\b"},{"name":"constant.language.module.http.rewrite","match":"\\b(break|if|return|rewrite|rewrite_log|set|uninitialized_variable_warn)\\b"},{"name":"constant.language.module.http.scgi","match":"\\b(scgi_bind|scgi_buffer_size|scgi_buffering|scgi_buffers|scgi_busy_buffers_size|scgi_cache|scgi_cache_background_update|scgi_cache_bypass|scgi_cache_key|scgi_cache_lock|scgi_cache_lock_age|scgi_cache_lock_timeout|scgi_cache_max_range_offset|scgi_cache_methods|scgi_cache_min_uses|scgi_cache_path|scgi_cache_purge|scgi_cache_revalidate|scgi_cache_use_stale|scgi_cache_valid|scgi_connect_timeout|scgi_force_ranges|scgi_hide_header|scgi_ignore_client_abort|scgi_ignore_headers|scgi_intercept_errors|scgi_limit_rate|scgi_max_temp_file_size|scgi_next_upstream|scgi_next_upstream_timeout|scgi_next_upstream_tries|scgi_no_cache|scgi_param|scgi_pass|scgi_pass_header|scgi_pass_request_body|scgi_pass_request_headers|scgi_read_timeout|scgi_request_buffering|scgi_send_timeout|scgi_socket_keepalive|scgi_store|scgi_store_access|scgi_temp_file_write_size|scgi_temp_path)\\b"},{"name":"constant.language.module.http.secure_link","match":"\\b(secure_link|secure_link_md5|secure_link_secret)\\b"},{"name":"constant.language.module.http.session_log","match":"\\b(session_log|session_log_format|session_log_zone)\\b"},{"name":"constant.language.module.http.slice","match":"\\b(slice)\\b"},{"name":"constant.language.module.http.spdy","match":"\\b(spdy_chunk_size|spdy_headers_comp)\\b"},{"name":"constant.language.module.http.split_clients","match":"\\b(split_clients)\\b"},{"name":"constant.language.module.http.ssi","match":"\\b(ssi|ssi_last_modified|ssi_min_file_chunk|ssi_silent_errors|ssi_types|ssi_value_length)\\b"},{"name":"constant.language.module.http.ssl","match":"\\b(ssl|ssl_buffer_size|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_early_data|ssl_ecdh_curve|ssl_password_file|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_ticket_key|ssl_session_tickets|ssl_session_timeout|ssl_stapling|ssl_stapling_file|ssl_stapling_responder|ssl_stapling_verify|ssl_trusted_certificate|ssl_verify_client|ssl_verify_depth)\\b"},{"name":"constant.language.module.http.status","match":"\\b(status|status_format|status_zone)\\b"},{"name":"constant.language.module.http.stub_status","match":"\\b(stub_status)\\b"},{"name":"constant.language.module.http.sub","match":"\\b(sub_filter|sub_filter_last_modified|sub_filter_once|sub_filter_types)\\b"},{"name":"constant.language.module.http.upstream_conf","match":"\\b(upstream_conf)\\b"},{"name":"constant.language.module.http.upstream_hc","match":"\\b(health_check|match)\\b"},{"name":"constant.language.module.http.upstream","match":"\\b(upstream|server|zone|state|hash|ip_hash|keepalive|keepalive_requests|keepalive_timeout|ntlm|least_conn|least_time|queue|random|sticky|sticky_cookie_insert)\\b"},{"name":"constant.language.module.http.userid","match":"\\b(userid|userid_domain|userid_expires|userid_mark|userid_name|userid_p3p|userid_path|userid_service)\\b"},{"name":"constant.language.module.http.uwsgi","match":"\\b(uwsgi_bind|uwsgi_buffer_size|uwsgi_buffering|uwsgi_buffers|uwsgi_busy_buffers_size|uwsgi_cache|uwsgi_cache_background_update|uwsgi_cache_bypass|uwsgi_cache_key|uwsgi_cache_lock|uwsgi_cache_lock_age|uwsgi_cache_lock_timeout|uwsgi_cache_max_range_offset|uwsgi_cache_methods|uwsgi_cache_min_uses|uwsgi_cache_path|uwsgi_cache_purge|uwsgi_cache_revalidate|uwsgi_cache_use_stale|uwsgi_cache_valid|uwsgi_connect_timeout|uwsgi_force_ranges|uwsgi_hide_header|uwsgi_ignore_client_abort|uwsgi_ignore_headers|uwsgi_intercept_errors|uwsgi_limit_rate|uwsgi_max_temp_file_size|uwsgi_modifier1|uwsgi_modifier2|uwsgi_next_upstream|uwsgi_next_upstream_timeout|uwsgi_next_upstream_tries|uwsgi_no_cache|uwsgi_param|uwsgi_pass|uwsgi_pass_header|uwsgi_pass_request_body|uwsgi_pass_request_headers|uwsgi_read_timeout|uwsgi_request_buffering|uwsgi_send_timeout|uwsgi_socket_keepalive|uwsgi_ssl_certificate|uwsgi_ssl_certificate_key|uwsgi_ssl_ciphers|uwsgi_ssl_crl|uwsgi_ssl_name|uwsgi_ssl_password_file|uwsgi_ssl_protocols|uwsgi_ssl_server_name|uwsgi_ssl_session_reuse|uwsgi_ssl_trusted_certificate|uwsgi_ssl_verify|uwsgi_ssl_verify_depth|uwsgi_store|uwsgi_store_access|uwsgi_temp_file_write_size|uwsgi_temp_path)\\b"},{"name":"constant.language.module.http.v2","match":"\\b(http2_body_preread_size|http2_chunk_size|http2_idle_timeout|http2_max_concurrent_pushes|http2_max_concurrent_streams|http2_max_field_size|http2_max_header_size|http2_max_requests|http2_push|http2_push_preload|http2_recv_buffer_size|http2_recv_timeout)\\b"},{"name":"constant.language.module.http.xslt","match":"\\b(xml_entities|xslt_last_modified|xslt_param|xslt_string_param|xslt_stylesheet|xslt_types)\\b"},{"name":"constant.language.module.mail.auth_http","match":"\\b(auth_http|auth_http_header|auth_http_pass_client_cert|auth_http_timeout)\\b"},{"name":"constant.language.module.mail.core","match":"\\b(listen|mail|protocol|resolver|resolver_timeout|server|server_name|timeout)\\b"},{"name":"constant.language.module.mail.imap","match":"\\b(imap_auth|imap_capabilities|imap_client_buffer)\\b"},{"name":"constant.language.module.mail.pop3","match":"\\b(pop3_auth|pop3_capabilities)\\b"},{"name":"constant.language.module.mail.proxy","match":"\\b(proxy_buffer|proxy_pass_error_message|proxy_timeout|xclient)\\b"},{"name":"constant.language.module.mail.smtp","match":"\\b(smtp_auth|smtp_capabilities|smtp_client_buffer|smtp_greeting_delay)\\b"},{"name":"constant.language.module.mail.ssl","match":"\\b(ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_ecdh_curve|ssl_password_file|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_ticket_key|ssl_session_tickets|ssl_session_timeout|ssl_trusted_certificate|ssl_verify_client|ssl_verify_depth|starttls)\\b"},{"name":"constant.language.module.stream.access","match":"\\b(allow|deny)\\b"},{"name":"constant.language.module.stream.core","match":"\\b(listen|preread_buffer_size|preread_timeout|proxy_protocol_timeout|resolver|resolver_timeout|server|stream|tcp_nodelay|variables_hash_bucket_size|variables_hash_max_size)\\b"},{"name":"constant.language.module.stream.geoip","match":"\\b(geoip_country|geoip_city|geoip_org)\\b"},{"name":"constant.language.module.stream.geo","match":"\\b(geo)\\b"},{"name":"constant.language.module.stream.js","match":"\\b(js_access|js_filter|js_include|js_preread|js_set)\\b"},{"name":"constant.language.module.stream.keyval","match":"\\b(keyval|keyval_zone)\\b"},{"name":"constant.language.module.stream.limit_conn","match":"\\b(limit_conn|limit_conn_log_level|limit_conn_zone)\\b"},{"name":"constant.language.module.stream.log","match":"\\b(access_log|log_format|open_log_file_cache)\\b"},{"name":"constant.language.module.stream.map","match":"\\b(map|map_hash_bucket_size|map_hash_max_size)\\b"},{"name":"constant.language.module.stream.proxy","match":"\\b(proxy_bind|proxy_buffer_size|proxy_connect_timeout|proxy_download_rate|proxy_next_upstream|proxy_next_upstream_timeout|proxy_next_upstream_tries|proxy_pass|proxy_protocol|proxy_requests|proxy_responses|proxy_socket_keepalive|proxy_ssl|proxy_ssl_certificate|proxy_ssl_certificate_key|proxy_ssl_ciphers|proxy_ssl_crl|proxy_ssl_name|proxy_ssl_password_file|proxy_ssl_protocols|proxy_ssl_server_name|proxy_ssl_session_reuse|proxy_ssl_trusted_certificate|proxy_ssl_verify|proxy_ssl_verify_depth|proxy_timeout|proxy_upload_rate)\\b"},{"name":"constant.language.module.stream.realip","match":"\\b(set_real_ip_from)\\b"},{"name":"constant.language.module.stream.return","match":"\\b(return)\\b"},{"name":"constant.language.module.stream.split_clients","match":"\\b(split_clients)\\b"},{"name":"constant.language.module.stream.ssl","match":"\\b(ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_ecdh_curve|ssl_handshake_timeout|ssl_password_file|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_ticket_key|ssl_session_tickets|ssl_session_timeout|ssl_trusted_certificate|ssl_verify_client|ssl_verify_depth)\\b"},{"name":"constant.language.module.stream.ssl_preread","match":"\\b(ssl_preread)\\b"},{"name":"constant.language.module.stream.upstream_hc","match":"\\b(health_check|health_check_timeout|match)\\b"},{"name":"constant.language.module.stream.upstream","match":"\\b(upstream|server|zone|state|hash|least_conn|least_time|random)\\b"},{"name":"constant.language.module.stream.zone_sync","match":"\\b(zone_sync|zone_sync_buffers|zone_sync_connect_retry_interval|zone_sync_connect_timeout|zone_sync_interval|zone_sync_recv_buffer_size|zone_sync_server|zone_sync_ssl|zone_sync_ssl_certificate|zone_sync_ssl_certificate_key|zone_sync_ssl_ciphers|zone_sync_ssl_crl|zone_sync_ssl_name|zone_sync_ssl_password_file|zone_sync_ssl_protocols|zone_sync_ssl_server_name|zone_sync_ssl_trusted_certificate|zone_sync_ssl_verify|zone_sync_ssl_verify_depth|zone_sync_timeout)\\b"}],"repository":{"keywords":{"patterns":[{"name":"keyword.control.nginx","match":"\\b(if|while|for|return)\\b"}]},"strings":{"name":"string.quoted.double.nginx","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.nginx","match":"\\\\."}]}}}
@@ -0,0 +1 @@
1
+ {"name":"Nickel","scopeName":"source.nickel","patterns":[{"include":"#keywords"},{"include":"#multiline_strings"},{"include":"#strings"},{"include":"#records"},{"include":"#arrays"},{"include":"#comments"},{"include":"#operators"},{"include":"#numbers"},{"include":"#bools"},{"include":"#storage"},{"include":"#types"},{"include":"#identifiers"}],"repository":{"arrays":{"begin":"\\[","end":"\\]","patterns":[{"include":"$self"}]},"bools":{"name":"constant.boolean","patterns":[{"name":"constant.boolean","match":"\\b(true|false)\\b"}]},"comments":{"name":"comment.line.number-sign","patterns":[{"name":"comment.line.number-sign","match":"#(.+)"}]},"identifiers":{"patterns":[{"name":"variable.uppercase-identifier","match":"\\b[[:upper:]][[:word:]'-]*\\b"},{"name":"variable.lowercase-identifier","match":"\\b[[:lower:]_][[:word:]'-]*\\b"},{"name":"constant.other.enum-tag","match":"\\b'[[:alpha:]][[:word:]-]*\\b"},{"name":"constant.other.enum-tag","begin":"\\b'\"","end":"\"","patterns":[{"name":"constant.character.escape","match":"\\\\."}]}]},"keywords":{"patterns":[{"name":"keyword.control","match":"\\b(if|else|then|match)\\b"}]},"multiline_strings":{"name":"string.quoted.double","begin":"m(%+)\"","end":"\"\\1","patterns":[{"name":"constant.character.escape","match":"\\\\."},{"include":"#strings_interpolation"}]},"null":{"name":"constant.null","patterns":[{"name":"constant.null","match":"\\b(null)\\b"}]},"numbers":{"name":"constant.numeric","patterns":[{"name":"constant.numeric","match":"(\\d+)(\\.\\d+)"}]},"operators":{"name":"keyword.operator","patterns":[{"name":"keyword.operator","match":"(=\u003e|==|=|\\|\\||\\||-\u003e|\u003c|\u003e|\u003e=|\u003c=|\\+\\+|\\+|\\-\\$|\\-|\\*|\\/|\u0026\u0026|\u0026|\\.|\\:|@)"}]},"records":{"name":"meta.embedded","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}]},"storage":{"patterns":[{"name":"storage.modifier","match":"\\b(let|in|forall|import|default|force|optional|priority|doc|rec)\\b"},{"name":"storage.type","match":"\\b(fun)\\b"}]},"strings":{"name":"string.quoted.double","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape","match":"\\\\."},{"include":"#strings_interpolation"}]},"strings_interpolation":{"name":"meta.embedded","begin":"%\\{","end":"\\}","patterns":[{"include":"$self"}]},"types":{"patterns":[{"name":"support.class","match":"\\b(Number|Bool|Dyn|String|Array)\\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":"\\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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_|`[^;,\\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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]] |\\{(?!\\.) ) ) ) )","end":"(?=[^\\[\\(`\\w\\x{80}-\\x{ff}])|(?\u003c=[\"\\)])","patterns":[{"name":"entity.name.function.nim","begin":"(?=[`_A-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])","end":"(?=[^`_A-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])","patterns":[{"include":"#builtins"},{"name":"support.type.nim","match":"[A-Z][\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]]+\\b"},{"match":"[A-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_|`[^;,\\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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_|`[^;,\\n`]+`"},{"include":"#pragmas"},{"include":"#comments"}]},"for-stmts":{"patterns":[{"begin":"for\\b","end":"(in\\b)|(?=[^#,{_`A-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]\\s])","patterns":[{"begin":"\\(","end":"(in\\b)|(\\))|(?=[^#,{_`A-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]\\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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]\\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\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])+\\b"},{"name":"support.type.nim","match":"[A-Z][\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]]+\\b"},{"match":"[A-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_|`[^;,\\n`]+`"}]},"interpolation":{"patterns":[{"match":"(`) *(?:[A-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_) *(`)","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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_|`[^;,\\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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|(?:[Ff](?:32|64)|[Dd]))? |('(?:[A-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|(?:[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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|[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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|(?:[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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|(?:[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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|(?:[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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|(?:[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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|(?:[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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_)|(?:[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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_|`[^;,\\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-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\dA-Za-z\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]])*|_|`[^;,\\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\\x80-\\x{10FFFF}\u0026\u0026[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔]](?:_?[\\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-\\x{10FFFF}](?:_?(?:(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}]))*|_|`[^;,\\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-\\x{10FFFF}] |\\{(?!\\.) ) ) ) )","end":"(?=[^\\[\\(`\\w\\x{80}-\\x{10FFFF}]|[∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])|(?\u003c=[\"\\)])","patterns":[{"name":"entity.name.function.nim","begin":"(?=(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[`_A-Za-z\\x80-\\x{10FFFF}])","end":"(?=[^`_A-Za-z\\x80-\\x{10FFFF}]|[∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])","patterns":[{"include":"#builtins"},{"name":"support.type.nim","match":"[A-Z](?:(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])+\\b"},{"match":"(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[A-Za-z\\x80-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_|`[^;,\\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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_|`[^;,\\n`]+`"},{"include":"#pragmas"},{"include":"#comments"}]},"for-stmts":{"patterns":[{"begin":"for\\b","end":"(in\\b)|(?=[^#,{_`A-Za-z\\s\\x80-\\x{10FFFF}]|[∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])","patterns":[{"begin":"\\(","end":"(in\\b)|(\\))|(?=[^#,{_`A-Za-z\\s\\x80-\\x{10FFFF}]|[∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])","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=(?\u003c=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[`*\\w\\x{80}-\\x{10FFFF}]) *(\\[)","end":"(])|(?=[^#_`:=,;A-Za-z\\x80-\\x{10FFFF}\\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":"\\p{Lu}(?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[A-Z\\d\\x80-\\x{10FFFF}])+\\b"},{"name":"support.type.nim","match":"\\p{Lu}(?:(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])+\\b"},{"match":"(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[A-Za-z\\x80-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_|`[^;,\\n`]+`"}]},"interpolation":{"patterns":[{"match":"(`) *(?:(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[A-Za-z\\x80-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_) *(`)","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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_|`[^;,\\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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|(?:[Ff](?:32|64)|[Dd]))? |('(?:(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[A-Za-z\\x80-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|(?:[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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|[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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|(?:[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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|(?:[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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|(?:[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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|(?:[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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|(?:[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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_)|(?:[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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_|`[^;,\\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-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*|_|`[^;,\\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\\x80-\\x{10FFFF}](?:_?(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])*\\[)(?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)|(\\p{Lu}(?:(?=[^∙∘×★⊗⊘⊙⊛⊠⊡∩∧⊓±⊕⊖⊞⊟∪∨⊔])[\\dA-Za-z\\x80-\\x{10FFFF}])+))(\\[)","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":"The Noir Programming Language","scopeName":"source.nr","patterns":[{"include":"#code"}],"repository":{"--struct-content":{"patterns":[{"match":"(pub|pub\\(crate\\))?\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*:\\s*([a-zA-Z_][a-zA-Z0-9_]*)","patterns":[{"include":"#comments"}],"captures":{"1":{"name":"keyword.nr"},"2":{"name":"support.type.property-name.nr"},"3":{"name":"support.type.nr"}}},{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#--struct-types"}]},{"include":"#comments"}]},"--struct-types":{"patterns":[{"name":"support.type.nr","match":"[a-zA-Z_][a-zA-Z0-9_]*"},{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#--struct-types"}]},{"include":"#comments"}]},"attribute":{"begin":"#\\[","end":"\\]","patterns":[{"begin":"[a-zA-Z_][a-zA-Z0-9_]\\s*\\(","end":"\\)"},{"match":"[a-zA-Z_][a-zA-Z0-9_]"}]},"code":{"patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#numeric"},{"include":"#syntax"},{"include":"#attribute"},{"include":"#keywords"},{"include":"#input"}]},"comments":{"patterns":[{"name":"comment.block.nr","begin":"\\/\\*","end":"\\*\\/","patterns":[{"include":"#comments"}]},{"name":"comment.line.double-slash.nr","match":"\\/\\/.*\n"}]},"input":{"patterns":[{"name":"support.type.nr","match":"\\b((u|i)\\d+|str|bool|field|Field)\\b"},{"name":"support.type.nr","match":"\\b(_*[A-Z][a-zA-Z0-9_]*|[a-zA-Z_][a-zA-Z0-9_]*::)\\b"},{"begin":"\\b([a-z_][a-zA-Z0-9_]*)\\s*(::\u003c(.*)\u003e\\s*)?\\(","end":"\\)","patterns":[{"include":"#code"}],"beginCaptures":{"1":{"name":"support.function.nr"},"2":{"patterns":[{"include":"#code"}]}}},{"name":"variable.nr","match":"\\b[a-z_][a-zA-Z0-9_]*\\b"}]},"interpolated-string-escapes":{"name":"constant.character.escape.nr","match":"\\\\.|{{|}}"},"interpolations":{"name":"variable.other.nr","match":"({)[^\"{}]*(})","captures":{"1":{"name":"constant.character.nr"},"2":{"name":"constant.character.nr"}}},"keywords":{"patterns":[{"name":"keyword.control.nr","match":"\\b(fn|impl|trait|type|mod|use|struct|if|else|for|loop|enum|match)\\b"},{"name":"keyword.nr","match":"\\b(global|comptime|quote|unsafe|unconstrained|pub|crate|\u0026mut|mut|self|in|as|let)\\b"}]},"numeric":{"patterns":[{"name":"token.error-token.nr","match":"(\\-)?\\d+\\.\\d+(\\.|[a-zA-Z])"},{"name":"constant.numeric.nr","match":"(\\-)?0x[0-9a-fA-F]+"},{"name":"constant.numeric.nr","match":"(\\-)?\\d+(\\.\\d+)?"},{"name":"constant.language.nr","match":"\\b(true|false)\\b"}]},"string-escapes":{"name":"constant.character.escape.nr","match":"\\\\."},"strings":{"patterns":[{"name":"string.quoted.double.nr","begin":"\"","end":"\"","patterns":[{"include":"#string-escapes"}]},{"name":"string.quoted.double.nr","begin":"r(#*)\"","end":"\"(\\1)","beginCaptures":{"1":{"name":"string.quoted.byte.raw.nr"}},"endCaptures":{"1":{"name":"string.quoted.byte.raw.nr"}}},{"name":"string.interpolated.nr","begin":"f\"","end":"\"","patterns":[{"include":"#interpolated-string-escapes"},{"include":"#interpolations"}]}]},"syntax":{"patterns":[{"begin":"\\b(mod|use)\\s+([a-zA-Z_][a-zA-Z0-9_]*(::[a-zA-Z_][a-zA-Z0-9_]*)*::)\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"match":"\\b(mod|use)\\s+([a-zA-Z_][a-zA-Z0-9_]*(::[a-zA-Z_][a-zA-Z0-9_]*)*)","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"match":"\\b(fn)\\s+([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.function.nr"}}},{"match":"\\b(let)\\s+(mut\\s+)?([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.nr"},"2":{"name":"keyword.nr"},"3":{"name":"variable.nr"}}},{"match":"\\b(for)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s+(in)\\b","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"variable.nr"},"3":{"name":"keyword.nr"}}},{"begin":"\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\{","end":"\\}","patterns":[{"include":"#--struct-content"}],"beginCaptures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"begin":"\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(","end":"\\)","patterns":[{"include":"#--struct-content"}],"beginCaptures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"match":"\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"match":"(\\-\u003e)\\s*([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}}]}}}
1
+ {"name":"The Noir Programming Language","scopeName":"source.nr","patterns":[{"include":"#code"}],"repository":{"--struct-content":{"patterns":[{"match":"(pub|pub\\(.+\\))?\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*:\\s*(.+)","patterns":[{"include":"#comments"}],"captures":{"1":{"patterns":[{"include":"#code"}]},"2":{"name":"support.type.property-name.nr"},"3":{"patterns":[{"include":"#code"}]}}},{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#--struct-types"}]},{"include":"#comments"}]},"--struct-types":{"patterns":[{"name":"support.type.nr","match":"[a-zA-Z_][a-zA-Z0-9_]*"},{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#--struct-types"}]},{"include":"#comments"}]},"attribute":{"begin":"#\\[","end":"\\]","patterns":[{"begin":"[a-zA-Z_][a-zA-Z0-9_]\\s*\\(","end":"\\)"},{"match":"[a-zA-Z_][a-zA-Z0-9_]"}]},"code":{"patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#numeric"},{"include":"#syntax"},{"include":"#attribute"},{"include":"#keywords"},{"include":"#input"}]},"comments":{"patterns":[{"name":"comment.block.nr","begin":"\\/\\*","end":"\\*\\/","patterns":[{"include":"#comments"}]},{"name":"comment.line.double-slash.nr","match":"\\/\\/.*\n"}]},"input":{"patterns":[{"name":"support.type.nr","match":"\\b((u|i)\\d+|str|bool|field|Field)\\b"},{"name":"support.type.nr","match":"\\b(_*[A-Z][a-zA-Z0-9_]*|[a-zA-Z_][a-zA-Z0-9_]*::)\\b"},{"begin":"\\b([a-z_][a-zA-Z0-9_]*)\\s*(::\u003c(.*)\u003e\\s*)?\\(","end":"\\)","patterns":[{"include":"#code"}],"beginCaptures":{"1":{"name":"support.function.nr"},"2":{"patterns":[{"include":"#code"}]}}},{"name":"variable.nr","match":"\\b[a-z_][a-zA-Z0-9_]*\\b"}]},"interpolated-string-escapes":{"name":"constant.character.escape.nr","match":"\\\\.|{{|}}"},"interpolations":{"name":"variable.other.nr","match":"({)[^\"{}]*(})","captures":{"1":{"name":"constant.character.nr"},"2":{"name":"constant.character.nr"}}},"keywords":{"patterns":[{"name":"keyword.control.nr","match":"\\b(fn|impl|trait|type|mod|use|struct|if|else|for|loop|while|enum|match)\\b"},{"name":"keyword.nr","match":"\\b(global|comptime|quote|unsafe|unconstrained|pub|crate|\u0026mut|mut|self|in|as|let)\\b"}]},"numeric":{"patterns":[{"name":"token.error-token.nr","match":"(\\-)?\\d+\\.\\d+(\\.|[a-zA-Z])"},{"name":"constant.numeric.nr","match":"(\\-)?0x[0-9a-fA-F]+"},{"name":"constant.numeric.nr","match":"(\\-)?\\d+(\\.\\d+)?"},{"name":"constant.language.nr","match":"\\b(true|false)\\b"}]},"string-escapes":{"name":"constant.character.escape.nr","match":"\\\\."},"strings":{"patterns":[{"name":"string.quoted.double.nr","begin":"\"","end":"\"","patterns":[{"include":"#string-escapes"}]},{"name":"string.quoted.double.nr","begin":"r(#*)\"","end":"\"(\\1)","beginCaptures":{"1":{"name":"string.quoted.byte.raw.nr"}},"endCaptures":{"1":{"name":"string.quoted.byte.raw.nr"}}},{"name":"string.interpolated.nr","begin":"f\"","end":"\"","patterns":[{"include":"#interpolated-string-escapes"},{"include":"#interpolations"}]}]},"syntax":{"patterns":[{"begin":"\\b(mod|use)\\s+([a-zA-Z_][a-zA-Z0-9_]*(::[a-zA-Z_][a-zA-Z0-9_]*)*::)\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"match":"\\b(mod|use)\\s+([a-zA-Z_][a-zA-Z0-9_]*(::[a-zA-Z_][a-zA-Z0-9_]*)*)","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"match":"\\b(fn)\\s+([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.function.nr"}}},{"match":"\\b(let)\\s+(mut\\s+)?([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.nr"},"2":{"name":"keyword.nr"},"3":{"name":"variable.nr"}}},{"match":"\\b(for)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s+(in)\\b","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"variable.nr"},"3":{"name":"keyword.nr"}}},{"begin":"\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\{","end":"\\}","patterns":[{"include":"#--struct-content"}],"beginCaptures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"begin":"\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(","end":"\\)","patterns":[{"include":"#--struct-content"}],"beginCaptures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"match":"\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}},{"match":"(\\-\u003e)\\s*([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.control.nr"},"2":{"name":"support.type.nr"}}}]}}}