github-linguist 7.17.0 → 7.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +1 -0
  3. data/grammars/annotation.liquidhaskell.haskell.json +1 -1
  4. data/grammars/hint.haskell.json +1 -1
  5. data/grammars/hint.message.haskell.json +1 -1
  6. data/grammars/hint.type.haskell.json +1 -1
  7. data/grammars/liquid.injection.json +1 -0
  8. data/grammars/markdown.cadence.codeblock.json +1 -0
  9. data/grammars/markdown.curry.codeblock.json +1 -0
  10. data/grammars/markdown.prisma.codeblock.json +1 -0
  11. data/grammars/markdown.textproto.codeblock.json +1 -0
  12. data/grammars/source.2da.json +1 -0
  13. data/grammars/source.abap.json +1 -1
  14. data/grammars/source.acucobol.json +1 -1
  15. data/grammars/source.aidl.json +1 -1
  16. data/grammars/source.alloy.json +1 -1
  17. data/grammars/source.astro.json +1 -0
  18. data/grammars/source.ats.json +1 -1
  19. data/grammars/source.ballerina.json +1 -1
  20. data/grammars/source.berry.bytecode.json +1 -0
  21. data/grammars/source.berry.json +1 -0
  22. data/grammars/source.bms.json +1 -0
  23. data/grammars/source.bmsmap.json +1 -0
  24. data/grammars/source.bnd.json +1 -0
  25. data/grammars/source.cadence.json +1 -0
  26. data/grammars/source.cairo.json +1 -0
  27. data/grammars/source.cl.json +1 -0
  28. data/grammars/source.clar.json +1 -0
  29. data/grammars/source.clojure.json +1 -1
  30. data/grammars/source.cmd.json +1 -0
  31. data/grammars/source.cobol.json +1 -1
  32. data/grammars/source.cobol_acu_listfile.json +1 -0
  33. data/grammars/source.cobol_mf_listfile.json +1 -0
  34. data/grammars/source.cobol_mfprep.json +1 -0
  35. data/grammars/source.cobol_pcob_listfile.json +1 -0
  36. data/grammars/source.cobolit.json +1 -0
  37. data/grammars/source.cobsql_dir.json +1 -0
  38. data/grammars/source.cs.json +1 -1
  39. data/grammars/source.csound.json +1 -1
  40. data/grammars/source.curry.json +1 -0
  41. data/grammars/source.dart.json +1 -1
  42. data/grammars/source.data-weave.json +1 -1
  43. data/grammars/source.dds.dspf.json +1 -0
  44. data/grammars/source.dds.icff.json +1 -0
  45. data/grammars/source.dds.lf.json +1 -0
  46. data/grammars/source.dds.pf.json +1 -0
  47. data/grammars/source.dds.prtf.json +1 -0
  48. data/grammars/source.deb-control.json +1 -0
  49. data/grammars/source.debian.makefile.json +1 -0
  50. data/grammars/source.denizenscript.json +1 -0
  51. data/grammars/source.dir.json +1 -0
  52. data/grammars/source.ditroff.json +1 -1
  53. data/grammars/source.earthfile.json +1 -0
  54. data/grammars/source.elixir.json +1 -1
  55. data/grammars/source.euphoria.json +1 -0
  56. data/grammars/source.fsharp.json +1 -1
  57. data/grammars/source.futhark.json +1 -1
  58. data/grammars/source.gcode.json +1 -1
  59. data/grammars/source.gdscript.json +1 -1
  60. data/grammars/source.genero-forms.json +1 -0
  61. data/grammars/source.genero.json +1 -0
  62. data/grammars/source.gitignore.json +1 -1
  63. data/grammars/source.gleam.json +1 -0
  64. data/grammars/source.goldgrm.json +1 -0
  65. data/grammars/source.gsc.json +1 -0
  66. data/grammars/source.hack.json +1 -1
  67. data/grammars/source.haskell.json +1 -1
  68. data/grammars/source.hlasm.json +1 -0
  69. data/grammars/source.hoon.json +1 -0
  70. data/grammars/source.hsig.json +1 -1
  71. data/grammars/source.icurry.json +1 -0
  72. data/grammars/source.janet.json +1 -0
  73. data/grammars/source.jcl.json +1 -1
  74. data/grammars/source.js.json +1 -1
  75. data/grammars/source.json.json +1 -1
  76. data/grammars/source.julia.json +1 -1
  77. data/grammars/source.kotlin.json +1 -1
  78. data/grammars/source.ligo.json +1 -0
  79. data/grammars/source.m2.json +1 -1
  80. data/grammars/source.matlab.json +1 -1
  81. data/grammars/source.mc.json +1 -0
  82. data/grammars/source.mfu.json +1 -0
  83. data/grammars/source.mfupp_dir.json +1 -0
  84. data/grammars/source.mi.json +1 -0
  85. data/grammars/source.miniyaml.json +1 -0
  86. data/grammars/source.mint.json +1 -0
  87. data/grammars/source.mligo.json +1 -0
  88. data/grammars/source.mlir.json +1 -1
  89. data/grammars/source.mo.json +1 -0
  90. data/grammars/source.opts.json +1 -1
  91. data/grammars/source.p4.json +1 -1
  92. data/grammars/source.pcb.schematic.json +1 -1
  93. data/grammars/source.pcb.sexp.json +1 -1
  94. data/grammars/source.pic.json +1 -1
  95. data/grammars/source.pli.json +1 -0
  96. data/grammars/source.pnlgrp.json +1 -0
  97. data/grammars/source.pony.json +1 -1
  98. data/grammars/source.postscript.json +1 -1
  99. data/grammars/source.procfile.json +1 -0
  100. data/grammars/source.promela.json +1 -0
  101. data/grammars/source.proto.json +1 -1
  102. data/grammars/source.python.kivy.json +1 -0
  103. data/grammars/source.q.json +1 -1
  104. data/grammars/source.q_output.json +1 -1
  105. data/grammars/source.qsharp.json +1 -1
  106. data/grammars/source.rego.json +1 -1
  107. data/grammars/source.religo.json +1 -0
  108. data/grammars/source.rescript.json +1 -1
  109. data/grammars/source.rpg.json +1 -0
  110. data/grammars/source.rpgle.json +1 -0
  111. data/grammars/source.scala.json +1 -1
  112. data/grammars/source.shell.json +1 -1
  113. data/grammars/source.shellcheckrc.json +1 -1
  114. data/grammars/source.smali.json +1 -1
  115. data/grammars/source.solidity.json +1 -1
  116. data/grammars/source.ssh-config.json +1 -1
  117. data/grammars/source.stan.json +1 -1
  118. data/grammars/source.swift.json +1 -1
  119. data/grammars/source.talon.json +1 -0
  120. data/grammars/source.textproto.json +1 -0
  121. data/grammars/source.ts.json +1 -1
  122. data/grammars/source.tsx.json +1 -1
  123. data/grammars/source.utreport.json +1 -0
  124. data/grammars/source.vyper.json +1 -1
  125. data/grammars/source.win32-messages.json +1 -0
  126. data/grammars/source.witcherscript.json +1 -0
  127. data/grammars/source.wsd.json +1 -1
  128. data/grammars/source.yara.json +1 -1
  129. data/grammars/text.html.liquid.json +1 -1
  130. data/grammars/text.html.markdown.astro.json +1 -1
  131. data/grammars/text.html.php.json +1 -1
  132. data/grammars/text.roff.json +1 -1
  133. data/grammars/text.rtf.json +1 -1
  134. data/grammars/text.savane.json +1 -0
  135. data/grammars/text.tex.latex.haskell.json +1 -1
  136. data/grammars/version +1 -1
  137. data/lib/linguist/VERSION +1 -1
  138. data/lib/linguist/generated.rb +32 -14
  139. data/lib/linguist/generic.yml +1 -0
  140. data/lib/linguist/heuristics.yml +63 -1
  141. data/lib/linguist/languages.json +1 -1
  142. data/lib/linguist/languages.yml +333 -3
  143. data/lib/linguist/samples.json +1 -1
  144. data/lib/linguist/vendor.yml +1 -1
  145. metadata +106 -43
  146. data/grammars/source.opencobol.json +0 -1
  147. data/grammars/text.html.astro.json +0 -1
  148. data/lib/linguist/linguist.bundle +0 -0
  149. data/lib/linguist/linguist.so +0 -0
@@ -1 +1 @@
1
- {"name":"Stan","scopeName":"source.stan","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"name":"entity.name.type.stan","match":"\\b(functions|data|transformed\\s+data|parameters|transformed\\s+parameters|model|generated\\s+quantities)\\b"},{"name":"storage.type.stan","match":"\\b(int|real|vector|simplex|unit_vector|ordered|positive_ordered|row_vector|matrix|corr_matrix|cov_matrix|cholesky_factor_cov|cholesky_factor_corr|void)\\b"},{"name":"keyword.control.stan","match":"\\b(for|in|while|if|else|break|continue)\\b"},{"match":"\\b(lower|upper)\\s*(=)","captures":{"1":{"name":"keyword.other.range.stan"},"2":{"name":"punctuation.operator.equal.stan"}}},{"name":"keyword.other.return.stan","match":"\\breturn\\b"},{"match":"\\b(target)\\s*([+][=])","captures":{"1":{"name":"keyword.other.target.stan"},"2":{"name":"keyword.operator.accumulator.stan"}}},{"name":"keyword.other.truncation.stan","match":"\\bT(?=\\s*\\[)"},{"include":"#distributions"},{"name":"keyword.other.special-functions.stan","match":"\\b(print|reject)\\b"},{"name":"support.function.integrate_ode.stan","match":"\\b(integrate_ode_(?:bdf|rk45))\\b"},{"name":"support.function.algebra_solver.stan","match":"\\balgebra_solver\\b"},{"include":"#functions"},{"include":"#reserved"},{"name":"invalid.illegal.variable","match":"\\b([a-zA-Z0-9_]*__|[0-9_][A-Za-z0-9_]+|_)\\b"},{"name":"variable.other.identifier.stan","match":"\\b[A-Za-z][0-9A-Za-z_]*\\b"},{"include":"#operators"},{"name":"meta.delimiter.comma.stan","match":","},{"begin":"{","end":"}","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.stan"}}},{"name":"meta.brace.curly.stan","match":"[{}]"},{"name":"meta.brace.square.stan","match":"\\[|\\]"},{"name":"meta.brace.round.stan","match":"\\(|\\)"},{"name":"punctuation.terminator.statement.stan","match":"\\;"},{"name":"punctuation.sampling.bar.stan","match":"[|]"}],"repository":{"comments":{"patterns":[{"name":"meta.preprocessor.include.stan","begin":"^\\s*((#)\\s*(include))\\b\\s*","end":"\\s*(?=(?://|/\\*|#)|\\n|$)","patterns":[{"name":"string.quoted.double.include.stan","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}},{"name":"string.quoted.other.lt-gt.include.stan","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}},{"name":"string.quoted.single.include.stan","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}},{"name":"string.quoted.other.noquote.include.stan","match":".+"}],"beginCaptures":{"1":{"name":"keyword.control.directive.include.stan"},"2":{"name":"punctuation.definition.directive.stan"},"4":{"name":"string.quoted.other.include.stan"}}},{"name":"comment.block.documentation.stan","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#docblock"}],"captures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.block.stan","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.line.double-slash.stan","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.line.number-sign.stan","begin":"#","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}}]},"distributions":{"patterns":[{"name":"meta.sampling.stan","match":"(~)(\\s*)(bernoulli|bernoulli_logit|beta|beta_binomial|binomial|binomial_logit|categorical|categorical_logit|cauchy|chi_square|dirichlet|double_exponential|exp_mod_normal|exponential|frechet|gamma|gaussian_dlm_obs|gumbel|hypergeometric|inv_chi_square|inv_gamma|inv_wishart|lkj_corr|lkj_corr_cholesky|logistic|lognormal|multi_gp|multi_gp_cholesky|multi_normal|multi_normal_cholesky|multi_normal_prec|multi_student_t|multinomial|neg_binomial|neg_binomial_2|neg_binomial_2_log|normal|ordered_logistic|pareto|pareto_type_2|poisson|poisson_log|rayleigh|scaled_inv_chi_square|skew_normal|student_t|uniform|von_mises|weibull|wiener|wishart)\\b","captures":{"1":{"name":"keyword.operator.sampling.stan"},"3":{"name":"support.function.distribution.stan"}}},{"name":"meta.sampling.stan","match":"(~)(\\s*)([A-Za-z][A-Za-z0-9_]*)\\b","captures":{"1":{"name":"keyword.operator.sampling.stan"},"3":{"name":"variable.other.distribution.stan"}}}]},"docblock":{"patterns":[{"name":"storage.type.class.standoc","match":"(?\u003c!\\w)@(param|return)\\b"}]},"functions":{"patterns":[{"name":"invalid.deprecated.function.stan","match":"\\b([A-Za-z0-9][A-Za-z0-9_]*_log|get_lp|if_else|increment_log_prob|integrate_ode|lkj_cov)\\b"},{"name":"support.function.function.stan","match":"\\b(Phi|Phi_approx|abs|acos|acosh|algebra_solver|append_array|append_col|append_row|asin|asinh|atan|atan2|atanh|bernoulli_cdf|bernoulli_lccdf|bernoulli_lcdf|bernoulli_logit_lpmf|bernoulli_logit_rng|bernoulli_lpmf|bernoulli_rng|bessel_first_kind|bessel_second_kind|beta_binomial_cdf|beta_binomial_lccdf|beta_binomial_lcdf|beta_binomial_lpmf|beta_binomial_rng|beta_cdf|beta_lccdf|beta_lcdf|beta_lpdf|beta_rng|binary_log_loss|binomial_cdf|binomial_coefficient_log|binomial_lccdf|binomial_lcdf|binomial_logit_lpmf|binomial_lpmf|binomial_rng|block|categorical_logit_lpmf|categorical_logit_rng|categorical_lpmf|categorical_rng|cauchy_cdf|cauchy_lccdf|cauchy_lcdf|cauchy_lpdf|cauchy_rng|cbrt|ceil|chi_square_cdf|chi_square_lccdf|chi_square_lcdf|chi_square_lpdf|chi_square_rng|cholesky_decompose|choose|col|cols|columns_dot_product|columns_dot_self|cos|cosh|cov_exp_quad|crossprod|csr_extract_u|csr_extract_v|csr_extract_w|csr_matrix_times_vector|csr_to_dense_matrix|cumulative_sum|determinant|diag_matrix|diag_post_multiply|diag_pre_multiply|diagonal|digamma|dims|dirichlet_lpdf|dirichlet_rng|distance|dot_product|dot_self|double_exponential_cdf|double_exponential_lccdf|double_exponential_lcdf|double_exponential_lpdf|double_exponential_rng|e|eigenvalues_sym|eigenvectors_sym|erf|erfc|exp|exp2|exp_mod_normal_cdf|exp_mod_normal_lccdf|exp_mod_normal_lcdf|exp_mod_normal_lpdf|exp_mod_normal_rng|expm1|exponential_cdf|exponential_lccdf|exponential_lcdf|exponential_lpdf|exponential_rng|fabs|falling_factorial|fdim|floor|fma|fmax|fmin|fmod|frechet_cdf|frechet_lccdf|frechet_lcdf|frechet_lpdf|frechet_rng|gamma_cdf|gamma_lccdf|gamma_lcdf|gamma_lpdf|gamma_p|gamma_q|gamma_rng|gaussian_dlm_obs_lpdf|get_lp|gumbel_cdf|gumbel_lccdf|gumbel_lcdf|gumbel_lpdf|gumbel_rng|head|hypergeometric_lpmf|hypergeometric_rng|hypot|inc_beta|int_step|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|inv|inv_Phi|inv_chi_square_cdf|inv_chi_square_lccdf|inv_chi_square_lcdf|inv_chi_square_lpdf|inv_chi_square_rng|inv_cloglog|inv_gamma_cdf|inv_gamma_lccdf|inv_gamma_lcdf|inv_gamma_lpdf|inv_gamma_rng|inv_logit|inv_sqrt|inv_square|inv_wishart_lpdf|inv_wishart_rng|inverse|inverse_spd|is_inf|is_nan|lbeta|lchoose|lgamma|lkj_corr_cholesky_lpdf|lkj_corr_cholesky_rng|lkj_corr_lpdf|lkj_corr_rng|lmgamma|lmultiply|log|log10|log1m|log1m_exp|log1m_inv_logit|log1p|log1p_exp|log2|log_determinant|log_diff_exp|log_falling_factorial|log_inv_logit|log_mix|log_rising_factorial|log_softmax|log_sum_exp|logistic_cdf|logistic_lccdf|logistic_lcdf|logistic_lpdf|logistic_rng|logit|lognormal_cdf|lognormal_lccdf|lognormal_lcdf|lognormal_lpdf|lognormal_rng|machine_precision|matrix_exp|max|mdivide_left_spd|mdivide_left_tri_low|mdivide_right_spd|mdivide_right_tri_low|mean|min|modified_bessel_first_kind|modified_bessel_second_kind|multi_gp_cholesky_lpdf|multi_gp_lpdf|multi_normal_cholesky_lpdf|multi_normal_cholesky_rng|multi_normal_lpdf|multi_normal_prec_lpdf|multi_normal_rng|multi_student_t_lpdf|multi_student_t_rng|multinomial_lpmf|multinomial_rng|multiply_log|multiply_lower_tri_self_transpose|neg_binomial_2_cdf|neg_binomial_2_lccdf|neg_binomial_2_lcdf|neg_binomial_2_log_lpmf|neg_binomial_2_log_rng|neg_binomial_2_lpmf|neg_binomial_2_rng|neg_binomial_cdf|neg_binomial_lccdf|neg_binomial_lcdf|neg_binomial_lpmf|neg_binomial_rng|negative_infinity|normal_cdf|normal_lccdf|normal_lcdf|normal_lpdf|normal_rng|not_a_number|num_elements|ordered_logistic_lpmf|ordered_logistic_rng|owens_t|pareto_cdf|pareto_lccdf|pareto_lcdf|pareto_lpdf|pareto_rng|pareto_type_2_cdf|pareto_type_2_lccdf|pareto_type_2_lcdf|pareto_type_2_lpdf|pareto_type_2_rng|pi|poisson_cdf|poisson_lccdf|poisson_lcdf|poisson_log_lpmf|poisson_log_rng|poisson_lpmf|poisson_rng|positive_infinity|pow|prod|qr_Q|qr_R|quad_form|quad_form_diag|quad_form_sym|rank|rayleigh_cdf|rayleigh_lccdf|rayleigh_lcdf|rayleigh_lpdf|rayleigh_rng|rep_array|rep_matrix|rep_row_vector|rep_vector|rising_factorial|round|row|rows|rows_dot_product|rows_dot_self|scaled_inv_chi_square_cdf|scaled_inv_chi_square_lccdf|scaled_inv_chi_square_lcdf|scaled_inv_chi_square_lpdf|scaled_inv_chi_square_rng|sd|segment|sin|singular_values|sinh|size|skew_normal_cdf|skew_normal_lccdf|skew_normal_lcdf|skew_normal_lpdf|skew_normal_rng|softmax|sort_asc|sort_desc|sort_indices_asc|sort_indices_desc|sqrt|sqrt2|square|squared_distance|step|student_t_cdf|student_t_lccdf|student_t_lcdf|student_t_lpdf|student_t_rng|sub_col|sub_row|sum|tail|tan|tanh|target|tcrossprod|tgamma|to_array_1d|to_array_2d|to_matrix|to_row_vector|to_vector|trace|trace_gen_quad_form|trace_quad_form|trigamma|trunc|uniform_cdf|uniform_lccdf|uniform_lcdf|uniform_lpdf|uniform_rng|variance|von_mises_lpdf|von_mises_rng|weibull_cdf|weibull_lccdf|weibull_lcdf|weibull_lpdf|weibull_rng|wiener_lpdf|wishart_lpdf|wishart_rng)\\b"}]},"numbers":{"patterns":[{"name":"constant.numeric.real.stan","match":"(?x)\n(\n[0-9]+\\.[0-9]*([eE][+-]?[0-9]+)?\n|\n\\.[0-9]+([eE][+-]?[0-9]+)?\n|\n[0-9]+[eE][+-]?[0-9]+\n)"},{"name":"constant.numeric.integer.stan","match":"[0-9]+(?=[^A-Za-z_])"}]},"operators":{"patterns":[{"name":"invalid.deprecated.assignment.stan","match":"\u003c-"},{"name":"keyword.operator.colon.stan","match":":"},{"name":"keyword.operator.conditional.stan","match":"[?]"},{"name":"keyword.operator.logical.stan","match":"[|]{2}|\u0026\u0026"},{"name":"keyword.operator.comparison.stan","match":"==|!=|\u003c=?|\u003e=?"},{"name":"keyword.operator.logical.stan","match":"!"},{"name":"keyword.operator.assignment.stan","match":"[+-]=|\\.?[*/]=|="},{"name":"keyword.operator.arithmetic.stan","match":"\\+|-|\\.?\\*|\\.?/|%|\\\\|\\^|'"}]},"reserved":{"patterns":[{"name":"invalid.illegal.reserved.stan","match":"\\b(alignas|alignof|and|and_eq|asm|auto|bitand|bitor|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|false|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|not|not_eq|nullptr|operator|or|or_eq|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|true|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while|xor|xor_eq)\\b"},{"name":"invalid.illegal.reserved.stan","match":"\\b(for|in|while|repeat|until|if|then|else|true|false|var|fvar|STAN_MAJOR|STAN_MINOR|STAN_PATCH|STAN_MATH_MAJOR|STAN_MATH_MINOR|STAN_MATH_PATCH)\\b"}]},"strings":{"patterns":[{"name":"string.quoted.double.stan","begin":"\"","end":"\"","patterns":[{"name":"invalid.illegal.string.stan","match":"[^ a-zA-Z0-9~@#$%^\u0026*_'`\\-+={}\\[\\]()\u003c\u003e|/!?.,;:\"]+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}}]}}}
1
+ {"name":"Stan","scopeName":"source.stan","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"name":"entity.name.type.stan","match":"\\b(functions|data|transformed\\s+data|parameters|transformed\\s+parameters|model|generated\\s+quantities)\\b"},{"name":"storage.type.stan","match":"\\b(int|real|complex|array|vector|simplex|unit_vector|ordered|positive_ordered|row_vector|matrix|corr_matrix|cov_matrix|cholesky_factor_cov|cholesky_factor_corr|void)\\b"},{"name":"keyword.control.stan","match":"\\b(for|in|while|if|else|break|continue)\\b"},{"match":"\\b(lower|upper)\\s*(=)","captures":{"1":{"name":"keyword.other.range.stan"},"2":{"name":"punctuation.operator.equal.stan"}}},{"name":"keyword.other.return.stan","match":"\\breturn\\b"},{"match":"\\b(target)\\s*([+][=])","captures":{"1":{"name":"keyword.other.target.stan"},"2":{"name":"keyword.operator.accumulator.stan"}}},{"name":"keyword.other.truncation.stan","match":"\\bT(?=\\s*\\[)"},{"include":"#distributions"},{"name":"keyword.other.special-functions.stan","match":"\\b(print|reject)\\b"},{"name":"support.function.integrate_ode.stan","match":"\\b(integrate_ode_(?:bdf|rk45))\\b"},{"name":"support.function.algebra_solver.stan","match":"\\balgebra_solver\\b"},{"include":"#functions"},{"include":"#reserved"},{"name":"invalid.illegal.variable","match":"\\b([a-zA-Z0-9_]*__|[0-9_][A-Za-z0-9_]+|_)\\b"},{"name":"variable.other.identifier.stan","match":"\\b[A-Za-z][0-9A-Za-z_]*\\b"},{"include":"#operators"},{"name":"meta.delimiter.comma.stan","match":","},{"begin":"{","end":"}","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.stan"}}},{"name":"meta.brace.curly.stan","match":"[{}]"},{"name":"meta.brace.square.stan","match":"\\[|\\]"},{"name":"meta.brace.round.stan","match":"\\(|\\)"},{"name":"punctuation.terminator.statement.stan","match":"\\;"},{"name":"punctuation.sampling.bar.stan","match":"[|]"}],"repository":{"comments":{"patterns":[{"name":"meta.preprocessor.include.stan","begin":"^\\s*((#)\\s*(include))\\b\\s*","end":"\\s*(?=(?://|/\\*|#)|\\n|$)","patterns":[{"name":"string.quoted.double.include.stan","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}},{"name":"string.quoted.other.lt-gt.include.stan","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}},{"name":"string.quoted.single.include.stan","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}},{"name":"string.quoted.other.noquote.include.stan","match":".+"}],"beginCaptures":{"1":{"name":"keyword.control.directive.include.stan"},"2":{"name":"punctuation.definition.directive.stan"},"4":{"name":"string.quoted.other.include.stan"}}},{"name":"comment.block.documentation.stan","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#docblock"}],"captures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.block.stan","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.line.double-slash.stan","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}},{"name":"comment.line.number-sign.stan","begin":"#","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.stan"}}}]},"distributions":{"patterns":[{"name":"meta.sampling.stan","match":"(~)(\\s*)(bernoulli|bernoulli_logit|bernoulli_logit_glm|beta|beta_binomial|binomial|binomial_logit|categorical|categorical_logit|categorical_logit_glm|cauchy|chi_square|dirichlet|discrete_range|double_exponential|exp_mod_normal|exponential|frechet|gamma|gaussian_dlm_obs|gumbel|hypergeometric|inv_chi_square|inv_gamma|inv_wishart|lkj_corr|lkj_corr_cholesky|logistic|loglogistic|lognormal|multi_gp|multi_gp_cholesky|multi_normal|multi_normal_cholesky|multi_normal_prec|multi_student_t|multinomial|multinomial_logit|neg_binomial|neg_binomial_2|neg_binomial_2_log|neg_binomial_2_log_glm|normal|normal_id_glm|ordered_logistic|ordered_logistic_glm|ordered_probit|pareto|pareto_type_2|poisson|poisson_log|poisson_log_glm|rayleigh|scaled_inv_chi_square|skew_double_exponential|skew_normal|std_normal|student_t|uniform|von_mises|weibull|wiener|wishart)\\b","captures":{"1":{"name":"keyword.operator.sampling.stan"},"3":{"name":"support.function.distribution.stan"}}},{"name":"meta.sampling.stan","match":"(~)(\\s*)([A-Za-z][A-Za-z0-9_]*)\\b","captures":{"1":{"name":"keyword.operator.sampling.stan"},"3":{"name":"variable.other.distribution.stan"}}}]},"docblock":{"patterns":[{"name":"storage.type.class.standoc","match":"(?\u003c!\\w)@(param|return)\\b"}]},"functions":{"patterns":[{"name":"invalid.deprecated.function.stan","match":"\\b([A-Za-z0-9][A-Za-z0-9_]*_log|binomial_coefficient_log|get_lp|if_else|increment_log_prob|integrate_ode|lkj_cov|multiply_log)\\b"},{"name":"support.function.function.stan","match":"\\b(Phi|Phi_approx|abs|acos|acosh|add_diag|algebra_solver|algebra_solver_newton|append_array|append_col|append_row|arg|asin|asinh|atan|atan2|atanh|bernoulli_cdf|bernoulli_lccdf|bernoulli_lcdf|bernoulli_logit_glm_lpmf|bernoulli_logit_glm_lupmf|bernoulli_logit_glm_rng|bernoulli_logit_lpmf|bernoulli_logit_lupmf|bernoulli_logit_rng|bernoulli_lpmf|bernoulli_lupmf|bernoulli_rng|bessel_first_kind|bessel_second_kind|beta|beta_binomial_cdf|beta_binomial_lccdf|beta_binomial_lcdf|beta_binomial_lpmf|beta_binomial_lupmf|beta_binomial_rng|beta_cdf|beta_lccdf|beta_lcdf|beta_lpdf|beta_lupdf|beta_proportion_lccdf|beta_proportion_lcdf|beta_proportion_rng|beta_rng|binary_log_loss|binomial_cdf|binomial_coefficient_log|binomial_lccdf|binomial_lcdf|binomial_logit_lpmf|binomial_logit_lupmf|binomial_lpmf|binomial_lupmf|binomial_rng|block|categorical_logit_glm_lpmf|categorical_logit_glm_lupmf|categorical_logit_lpmf|categorical_logit_lupmf|categorical_logit_rng|categorical_lpmf|categorical_lupmf|categorical_rng|cauchy_cdf|cauchy_lccdf|cauchy_lcdf|cauchy_lpdf|cauchy_lupdf|cauchy_rng|cbrt|ceil|chi_square_cdf|chi_square_lccdf|chi_square_lcdf|chi_square_lpdf|chi_square_lupdf|chi_square_rng|chol2inv|cholesky_decompose|choose|col|cols|columns_dot_product|columns_dot_self|conj|cos|cosh|cov_exp_quad|crossprod|csr_extract_u|csr_extract_v|csr_extract_w|csr_matrix_times_vector|csr_to_dense_matrix|cumulative_sum|dae|dae_tol|determinant|diag_matrix|diag_post_multiply|diag_pre_multiply|diagonal|digamma|dims|dirichlet_lpdf|dirichlet_lupdf|dirichlet_rng|discrete_range_cdf|discrete_range_lccdf|discrete_range_lcdf|discrete_range_lpmf|discrete_range_lupmf|discrete_range_rng|distance|dot_product|dot_self|double_exponential_cdf|double_exponential_lccdf|double_exponential_lcdf|double_exponential_lpdf|double_exponential_lupdf|double_exponential_rng|e|eigenvalues_sym|eigenvectors_sym|erf|erfc|exp|exp2|exp_mod_normal_cdf|exp_mod_normal_lccdf|exp_mod_normal_lcdf|exp_mod_normal_lpdf|exp_mod_normal_lupdf|exp_mod_normal_rng|expm1|exponential_cdf|exponential_lccdf|exponential_lcdf|exponential_lpdf|exponential_lupdf|exponential_rng|fabs|falling_factorial|fdim|floor|fma|fmax|fmin|fmod|frechet_cdf|frechet_lccdf|frechet_lcdf|frechet_lpdf|frechet_lupdf|frechet_rng|gamma_cdf|gamma_lccdf|gamma_lcdf|gamma_lpdf|gamma_lupdf|gamma_p|gamma_q|gamma_rng|gaussian_dlm_obs_lpdf|gaussian_dlm_obs_lupdf|generalized_inverse|get_imag|get_lp|get_real|gumbel_cdf|gumbel_lccdf|gumbel_lcdf|gumbel_lpdf|gumbel_lupdf|gumbel_rng|head|hmm_hidden_state_prob|hmm_latent_rng|hmm_marginal|hypergeometric_lpmf|hypergeometric_lupmf|hypergeometric_rng|hypot|identity_matrix|inc_beta|int_step|integrate_1d|integrate_ode|integrate_ode_adams|integrate_ode_bdf|integrate_ode_rk45|inv|inv_Phi|inv_chi_square_cdf|inv_chi_square_lccdf|inv_chi_square_lcdf|inv_chi_square_lpdf|inv_chi_square_lupdf|inv_chi_square_rng|inv_cloglog|inv_erfc|inv_gamma_cdf|inv_gamma_lccdf|inv_gamma_lcdf|inv_gamma_lpdf|inv_gamma_lupdf|inv_gamma_rng|inv_logit|inv_sqrt|inv_square|inv_wishart_lpdf|inv_wishart_lupdf|inv_wishart_rng|inverse|inverse_spd|is_inf|is_nan|lambert_w0|lambert_wm1|lbeta|lchoose|ldexp|lgamma|linspaced_array|linspaced_int_array|linspaced_row_vector|linspaced_vector|lkj_corr_cholesky_lpdf|lkj_corr_cholesky_lupdf|lkj_corr_cholesky_rng|lkj_corr_lpdf|lkj_corr_lupdf|lkj_corr_rng|lmgamma|lmultiply|log|log10|log1m|log1m_exp|log1m_inv_logit|log1p|log1p_exp|log2|log_determinant|log_diff_exp|log_falling_factorial|log_inv_logit|log_inv_logit_diff|log_mix|log_modified_bessel_first_kind|log_rising_factorial|log_softmax|log_sum_exp|logistic_cdf|logistic_lccdf|logistic_lcdf|logistic_lpdf|logistic_lupdf|logistic_rng|logit|loglogistic_cdf|loglogistic_lpdf|loglogistic_rng|lognormal_cdf|lognormal_lccdf|lognormal_lcdf|lognormal_lpdf|lognormal_lupdf|lognormal_rng|machine_precision|map_rect|matrix_exp|matrix_exp_multiply|matrix_power|max|mdivide_left_spd|mdivide_left_tri_low|mdivide_right_spd|mdivide_right_tri_low|mean|min|modified_bessel_first_kind|modified_bessel_second_kind|multi_gp_cholesky_lpdf|multi_gp_cholesky_lupdf|multi_gp_lpdf|multi_gp_lupdf|multi_normal_cholesky_lpdf|multi_normal_cholesky_lupdf|multi_normal_cholesky_rng|multi_normal_lpdf|multi_normal_lupdf|multi_normal_prec_lpdf|multi_normal_prec_lupdf|multi_normal_rng|multi_student_t_lpdf|multi_student_t_lupdf|multi_student_t_rng|multinomial_logit_lpmf|multinomial_logit_lupmf|multinomial_logit_rng|multinomial_lpmf|multinomial_lupmf|multinomial_rng|multiply_log|multiply_lower_tri_self_transpose|neg_binomial_2_cdf|neg_binomial_2_lccdf|neg_binomial_2_lcdf|neg_binomial_2_log_glm_lpmf|neg_binomial_2_log_glm_lupmf|neg_binomial_2_log_lpmf|neg_binomial_2_log_lupmf|neg_binomial_2_log_rng|neg_binomial_2_lpmf|neg_binomial_2_lupmf|neg_binomial_2_rng|neg_binomial_cdf|neg_binomial_lccdf|neg_binomial_lcdf|neg_binomial_lpmf|neg_binomial_lupmf|neg_binomial_rng|negative_infinity|norm|normal_cdf|normal_id_glm_lpdf|normal_id_glm_lupdf|normal_lccdf|normal_lcdf|normal_lpdf|normal_lupdf|normal_rng|not_a_number|num_elements|ode_adams|ode_adams_tol|ode_adjoint_tol_ctl|ode_bdf|ode_bdf_tol|ode_ckrk|ode_ckrk_tol|ode_rk45|ode_rk45_tol|one_hot_array|one_hot_int_array|one_hot_row_vector|one_hot_vector|ones_array|ones_int_array|ones_row_vector|ones_vector|ordered_logistic_glm_lpmf|ordered_logistic_glm_lupmf|ordered_logistic_lpmf|ordered_logistic_lupmf|ordered_logistic_rng|ordered_probit_lpmf|ordered_probit_lupmf|ordered_probit_rng|owens_t|pareto_cdf|pareto_lccdf|pareto_lcdf|pareto_lpdf|pareto_lupdf|pareto_rng|pareto_type_2_cdf|pareto_type_2_lccdf|pareto_type_2_lcdf|pareto_type_2_lpdf|pareto_type_2_lupdf|pareto_type_2_rng|pi|poisson_cdf|poisson_lccdf|poisson_lcdf|poisson_log_glm_lpmf|poisson_log_glm_lupmf|poisson_log_lpmf|poisson_log_lupmf|poisson_log_rng|poisson_lpmf|poisson_lupmf|poisson_rng|polar|positive_infinity|pow|prod|proj|qr_Q|qr_R|qr_thin_Q|qr_thin_R|quad_form|quad_form_diag|quad_form_sym|quantile|rank|rayleigh_cdf|rayleigh_lccdf|rayleigh_lcdf|rayleigh_lpdf|rayleigh_lupdf|rayleigh_rng|reduce_sum|rep_array|rep_matrix|rep_row_vector|rep_vector|reverse|rising_factorial|round|row|rows|rows_dot_product|rows_dot_self|scale_matrix_exp_multiply|scaled_inv_chi_square_cdf|scaled_inv_chi_square_lccdf|scaled_inv_chi_square_lcdf|scaled_inv_chi_square_lpdf|scaled_inv_chi_square_lupdf|scaled_inv_chi_square_rng|sd|segment|sin|singular_values|sinh|size|skew_double_exponential_cdf|skew_double_exponential_lccdf|skew_double_exponential_lcdf|skew_double_exponential_lpdf|skew_double_exponential_lupdf|skew_double_exponential_rng|skew_normal_cdf|skew_normal_lccdf|skew_normal_lcdf|skew_normal_lpdf|skew_normal_lupdf|skew_normal_rng|softmax|sort_asc|sort_desc|sort_indices_asc|sort_indices_desc|sqrt|sqrt2|square|squared_distance|std_normal_cdf|std_normal_lccdf|std_normal_lcdf|std_normal_lpdf|std_normal_lupdf|std_normal_rng|step|student_t_cdf|student_t_lccdf|student_t_lcdf|student_t_lpdf|student_t_lupdf|student_t_rng|sub_col|sub_row|sum|svd_U|svd_V|symmetrize_from_lower_tri|tail|tan|tanh|target|tcrossprod|tgamma|to_array_1d|to_array_2d|to_complex|to_matrix|to_row_vector|to_vector|trace|trace_gen_quad_form|trace_quad_form|trigamma|trunc|uniform_cdf|uniform_lccdf|uniform_lcdf|uniform_lpdf|uniform_lupdf|uniform_rng|uniform_simplex|variance|von_mises_cdf|von_mises_lccdf|von_mises_lcdf|von_mises_lpdf|von_mises_lupdf|von_mises_rng|weibull_cdf|weibull_lccdf|weibull_lcdf|weibull_lpdf|weibull_lupdf|weibull_rng|wiener_lpdf|wiener_lupdf|wishart_lpdf|wishart_lupdf|wishart_rng|zeros_array|zeros_int_array|zeros_row_vector)\\b"}]},"numbers":{"patterns":[{"name":"constant.numeric.real.stan","match":"(?x)\n(\n[0-9]+\\.[0-9]*([eE][+-]?[0-9]+)?\n|\n\\.[0-9]+([eE][+-]?[0-9]+)?\n|\n[0-9]+[eE][+-]?[0-9]+i?\n)"},{"name":"constant.numeric.integer.stan","match":"[0-9]+i?(?=[^A-Za-z_])"}]},"operators":{"patterns":[{"name":"invalid.deprecated.assignment.stan","match":"\u003c-"},{"name":"keyword.operator.colon.stan","match":":"},{"name":"keyword.operator.conditional.stan","match":"[?]"},{"name":"keyword.operator.logical.stan","match":"[|]{2}|\u0026\u0026"},{"name":"keyword.operator.comparison.stan","match":"==|!=|\u003c=?|\u003e=?"},{"name":"keyword.operator.logical.stan","match":"!"},{"name":"keyword.operator.assignment.stan","match":"[+-]=|\\.?[*/]=|="},{"name":"keyword.operator.arithmetic.stan","match":"\\+|-|\\.?\\*|\\.?/|%|\\\\|\\^|'"}]},"reserved":{"patterns":[{"name":"invalid.illegal.reserved.stan","match":"\\b(for|in|while|repeat|until|if|then|else|true|false|var|struct|typedef|export|auto|extern|var|static)\\b"}]},"strings":{"patterns":[{"name":"string.quoted.double.stan","begin":"\"","end":"\"","patterns":[{"name":"invalid.illegal.string.stan","match":"[^ a-zA-Z0-9~@#$%^\u0026*_'`\\-+={}\\[\\]()\u003c\u003e|/!?.,;:\"]+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.stan"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.stan"}}}]}}}
@@ -1 +1 @@
1
- {"name":"Swift","scopeName":"source.swift","patterns":[{"include":"#root"}],"repository":{"async-throws":{"match":"\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b","captures":{"1":{"name":"invalid.illegal.await-must-precede-throws.swift"},"2":{"name":"keyword.control.exception.swift"},"3":{"name":"keyword.control.async.swift"}}},"attributes":{"patterns":[{"name":"meta.attribute.available.swift","begin":"((@)available)(\\()","end":"\\)","patterns":[{"match":"\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?","captures":{"1":{"name":"keyword.other.platform.os.swift"},"2":{"name":"constant.numeric.swift"}}},{"begin":"\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*","end":"(?!\\G)","patterns":[{"name":"constant.numeric.swift","match":"\\b[0-9]+(?:\\.[0-9]+)*\\b"}],"beginCaptures":{"1":{"name":"keyword.other.swift"},"2":{"name":"punctuation.separator.key-value.swift"}}},{"begin":"\\b(message|renamed)\\s*(:)\\s*(?=\")","end":"(?!\\G)","patterns":[{"include":"#literals"}],"beginCaptures":{"1":{"name":"keyword.other.swift"},"2":{"name":"punctuation.separator.key-value.swift"}}},{"match":"(?:(\\*)|\\b(deprecated|unavailable)\\b)\\s*(.*?)(?=[,)])","captures":{"1":{"name":"keyword.other.platform.all.swift"},"2":{"name":"keyword.other.swift"},"3":{"name":"invalid.illegal.character-not-allowed-here.swift"}}}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.swift"},"2":{"name":"punctuation.definition.attribute.swift"},"3":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},{"name":"meta.attribute.objc.swift","begin":"((@)objc)(\\()","end":"\\)","patterns":[{"name":"entity.name.function.swift","match":"\\w*(?::(?:\\w*:)*(\\w*))?","captures":{"1":{"name":"invalid.illegal.missing-colon-after-selector-piece.swift"}}}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.swift"},"2":{"name":"punctuation.definition.attribute.swift"},"3":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},{"name":"meta.attribute.swift","begin":"(@)(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)","end":"(?!\\G\\()","patterns":[{"name":"meta.arguments.attribute.swift","begin":"\\(","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}}],"beginCaptures":{"0":{"name":"storage.modifier.attribute.swift"},"1":{"name":"punctuation.definition.attribute.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}}}]},"builtin-functions":{"patterns":[{"name":"support.function.swift","match":"(?\u003c=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b"},{"name":"support.function.swift","match":"(?\u003c=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()"},{"name":"support.function.swift","match":"(?\u003c=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()"}]},"builtin-global-functions":{"patterns":[{"begin":"\\b(type)(\\()\\s*(of)(:)","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"support.function.dynamic-type.swift"},"2":{"name":"punctuation.definition.arguments.begin.swift"},"3":{"name":"support.variable.parameter.swift"},"4":{"name":"punctuation.separator.argument-label.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},{"name":"support.function.swift","match":"\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b"},{"name":"support.function.swift","match":"\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()"},{"name":"support.function.swift","match":"\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()"}]},"builtin-properties":{"patterns":[{"name":"support.variable.swift","match":"(?\u003c=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)"},{"name":"support.variable.swift","match":"(?\u003c=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b"},{"name":"support.variable.swift","match":"(?\u003c=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b"},{"name":"support.variable.swift","match":"(?\u003c=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b"}]},"builtin-types":{"patterns":[{"include":"#builtin-class-type"},{"include":"#builtin-enum-type"},{"include":"#builtin-protocol-type"},{"include":"#builtin-struct-type"},{"include":"#builtin-typealias"},{"name":"support.type.any.swift","match":"\\bAny\\b"}],"repository":{"builtin-class-type":{"name":"support.class.swift","match":"\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b"},"builtin-enum-type":{"patterns":[{"name":"support.constant.swift","match":"\\b(?:CommandLine|Process(?=\\.))\\b"},{"name":"support.constant.never.swift","match":"\\bNever\\b"},{"name":"support.type.swift","match":"\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b"},{"name":"support.type.swift","match":"\\b(?:MirrorDisposition|QuickLookObject)\\b"}]},"builtin-protocol-type":{"patterns":[{"name":"support.type.swift","match":"\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b"},{"name":"support.type.swift","match":"\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b"}]},"builtin-struct-type":{"patterns":[{"name":"support.type.swift","match":"\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b"},{"name":"support.type.swift","match":"\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b"}]},"builtin-typealias":{"patterns":[{"name":"support.type.swift","match":"\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b"},{"name":"support.type.swift","match":"\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b"}]}}},"code-block":{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.swift"}}},"comments":{"patterns":[{"name":"comment.line.number-sign.swift","match":"\\A^(#!).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.swift"}}},{"name":"comment.block.documentation.swift","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}}},{"name":"comment.block.documentation.playground.swift","begin":"/\\*:","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}}},{"name":"comment.block.swift","begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}}},{"name":"invalid.illegal.unexpected-end-of-block-comment.swift","match":"\\*/"},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.triple-slash.documentation.swift","begin":"///","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}}},{"name":"comment.line.double-slash.documentation.swift","begin":"//:","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}}},{"name":"comment.line.double-slash.swift","begin":"//","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.swift"}}}],"repository":{"nested":{"begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}]}}},"compiler-control":{"patterns":[{"contentName":"comment.block.preprocessor.swift","begin":"^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)","end":"(?=^\\s*(#(elseif|else|endif)\\b))","beginCaptures":{"0":{"name":"meta.preprocessor.conditional.swift"},"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.preprocessor.conditional.swift"},"3":{"name":"constant.language.boolean.swift"}}},{"name":"meta.preprocessor.conditional.swift","begin":"^\\s*(#)(if|elseif)\\s+","end":"(?=\\s*(?://|/\\*))|$","patterns":[{"name":"keyword.operator.logical.swift","match":"(\u0026\u0026|\\|\\|)"},{"name":"constant.language.boolean.swift","match":"\\b(true|false)\\b"},{"match":"\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))","captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"support.constant.platform.architecture.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}}},{"match":"\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))","captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"support.constant.platform.os.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}}},{"match":"\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))","captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"entity.name.type.module.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}}},{"begin":"\\b(targetEnvironment)\\s*(\\()","end":"(\\))|$","patterns":[{"name":"support.constant.platform.environment.swift","match":"\\b(simulator|UIKitForMac)\\b"}],"beginCaptures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"}}},{"begin":"\\b(swift|compiler)\\s*(\\()","end":"(\\))|$","patterns":[{"name":"keyword.operator.comparison.swift","match":"\u003e=|\u003c"},{"name":"constant.numeric.swift","match":"\\b[0-9]+(?:\\.[0-9]+)*\\b"}],"beginCaptures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"}}}],"captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.preprocessor.conditional.swift"}}},{"name":"meta.preprocessor.conditional.swift","match":"^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)","captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.preprocessor.conditional.swift"},"3":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.swift","match":"\\S+"}]}}},{"name":"meta.preprocessor.sourcelocation.swift","match":"^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)","captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.preprocessor.sourcelocation.swift"},"4":{"name":"punctuation.definition.parameters.begin.swift"},"5":{"patterns":[{"begin":"(file)\\s*(:)\\s*(?=\")","end":"(?!\\G)","patterns":[{"include":"#literals"}],"beginCaptures":{"1":{"name":"support.variable.parameter.swift"},"2":{"name":"punctuation.separator.key-value.swift"}}},{"match":"(line)\\s*(:)\\s*([0-9]+)","captures":{"1":{"name":"support.variable.parameter.swift"},"2":{"name":"punctuation.separator.key-value.swift"},"3":{"name":"constant.numeric.integer.swift"}}},{"name":"punctuation.separator.parameters.swift","match":","},{"name":"invalid.illegal.character-not-allowed-here.swift","match":"\\S+"}]},"6":{"name":"punctuation.definition.parameters.begin.swift"},"7":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.swift","match":"\\S+"}]}}}]},"declarations":{"patterns":[{"include":"#function"},{"include":"#function-initializer"},{"include":"#typed-variable-declaration"},{"include":"#import"},{"include":"#operator"},{"include":"#precedencegroup"},{"include":"#protocol"},{"include":"#type"},{"include":"#extension"},{"include":"#typealias"}],"repository":{"available-types":{"patterns":[{"include":"#comments"},{"include":"#builtin-types"},{"include":"#attributes"},{"name":"keyword.control.async.swift","match":"\\basync\\b"},{"name":"keyword.control.exception.swift","match":"\\b(?:throws|rethrows)\\b"},{"name":"keyword.operator.type.opaque.swift","match":"\\bsome\\b"},{"name":"storage.modifier.swift","match":"\\binout\\b"},{"name":"variable.language.swift","match":"\\bSelf\\b"},{"match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","captures":{"1":{"name":"keyword.operator.type.function.swift"}}},{"match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\u0026)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","captures":{"1":{"name":"keyword.operator.type.composition.swift"}}},{"name":"keyword.operator.type.optional.swift","match":"[?!]"},{"name":"keyword.operator.function.variadic-parameter.swift","match":"\\.\\.\\."},{"name":"keyword.operator.type.composition.swift","match":"\\bprotocol\\b"},{"name":"keyword.operator.type.metatype.swift","match":"(?\u003c=\\.)(?:Protocol|Type)\\b"},{"include":"#tuple-type"},{"include":"#collection-type"},{"include":"#generic-argument-clause"}],"repository":{"collection-type":{"begin":"\\[","end":"\\]|(?=[\u003e){}])","patterns":[{"include":"#available-types"},{"begin":":","end":"(?=\\]|[\u003e){}])","patterns":[{"name":"invalid.illegal.extra-colon-in-dictionary-type.swift","match":":"},{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.swift"}}}],"beginCaptures":{"0":{"name":"punctuation.section.collection-type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.collection-type.end.swift"}}},"tuple-type":{"begin":"\\(","end":"\\)|(?=[\u003e\\]{}])","patterns":[{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.section.tuple-type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.tuple-type.end.swift"}}}}},"extension":{"name":"meta.definition.type.$1.swift","begin":"\\b(extension)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.swift","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.swift","patterns":[{"include":"#available-types"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"function":{"name":"meta.definition.function.swift","begin":"(?x)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t\t\t\t\t | (?:\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t(?=\\(|\u003c)\n\t\t\t\t\t","end":"(?\u003c=\\})|$(?# functions in protocol declarations or generated interfaces have no body)","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#async-throws"},{"include":"#generic-where-clause"},{"name":"meta.definition.function.body.swift","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"function-initializer":{"name":"meta.definition.function.initializer.swift","begin":"(?\u003c!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})|$","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#async-throws"},{"include":"#generic-where-clause"},{"name":"meta.definition.function.body.swift","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.function.swift","patterns":[{"name":"invalid.illegal.character-not-allowed-here.swift","match":"(?\u003c=[?!])[?!]+"}]}}},"function-result":{"name":"meta.function-result.swift","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"(?!\\G)(?=\\{|\\bwhere\\b|;)|$","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.swift"}}},"generic-argument-clause":{"name":"meta.generic-argument-clause.swift","begin":"\u003c","end":"\u003e|(?=[)\\]{}])","patterns":[{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.separator.generic-argument-clause.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.separator.generic-argument-clause.end.swift"}}},"generic-parameter-clause":{"name":"meta.generic-parameter-clause.swift","begin":"\u003c","end":"\u003e|(?=[^\\w\\d:\u003c\u003e\\s,=\u0026`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)","patterns":[{"include":"#comments"},{"include":"#generic-where-clause"},{"match":"\\b((?!\\d)\\w[\\w\\d]*)\\b","captures":{"1":{"name":"variable.language.generic-parameter.swift"}}},{"name":"punctuation.separator.generic-parameters.swift","match":","},{"name":"meta.generic-parameter-constraint.swift","begin":"(:)\\s*","end":"(?=[,\u003e]|(?!\\G)\\bwhere\\b)","patterns":[{"name":"entity.other.inherited-class.swift","begin":"\\G","end":"(?=[,\u003e]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#type-identifier"}]}],"beginCaptures":{"1":{"name":"punctuation.separator.generic-parameter-constraint.swift"}}}],"beginCaptures":{"0":{"name":"punctuation.separator.generic-parameter-clause.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.separator.generic-parameter-clause.end.swift"}}},"generic-where-clause":{"name":"meta.generic-where-clause.swift","begin":"\\b(where)\\b\\s*","end":"(?!\\G)$|(?=[\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#comments"},{"include":"#requirement-list"}],"beginCaptures":{"1":{"name":"keyword.other.generic-constraint-introducer.swift"}},"repository":{"requirement-list":{"begin":"\\G|,\\s*","end":"(?=[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#comments"},{"include":"#constraint"},{"include":"#available-types"},{"name":"meta.generic-where-clause.same-type-requirement.swift","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(==)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.operator.generic-constraint.same-type.swift"}}},{"name":"meta.generic-where-clause.conformance-requirement.swift","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(:)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"contentName":"entity.other.inherited-class.swift","begin":"\\G\\s*","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#available-types"}]}],"beginCaptures":{"1":{"name":"keyword.operator.generic-constraint.conforms-to.swift"}}}]}}},"import":{"name":"meta.import.swift","begin":"(?\u003c!\\.)\\b(import)\\s+","end":"(;)|$\\n?|(?=//|/\\*)","patterns":[{"begin":"\\G(?!;|$|//|/\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\s+)?","end":"(?=;|$|//|/\\*)","patterns":[{"name":"entity.name.type.swift","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t\t\t\t\t\t\t\t","captures":{"1":{"name":"punctuation.definition.identifier.swift"},"2":{"name":"punctuation.definition.identifier.swift"}}},{"name":"entity.name.type.swift","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t\\$[0-9]+\n\t\t\t\t\t\t\t\t\t"},{"name":"entity.name.type.swift","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t(?=\\.|;|$|//|/\\*|\\s)\n\t\t\t\t\t\t\t\t\t","captures":{"1":{"patterns":[{"name":"invalid.illegal.dot-not-allowed-here.swift","match":"\\."}]}}},{"name":"punctuation.separator.import.swift","match":"\\."},{"name":"invalid.illegal.character-not-allowed-here.swift","begin":"(?!\\s*(;|$|//|/\\*))","end":"(?=\\s*(;|$|//|/\\*))"}],"beginCaptures":{"1":{"name":"storage.modifier.swift"}}}],"beginCaptures":{"1":{"name":"keyword.control.import.swift"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.swift"}}},"inheritance-clause":{"name":"meta.inheritance-clause.swift","begin":"(:)(?=\\s*\\{)|(:)\\s*","end":"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)","patterns":[{"begin":"\\bclass\\b","end":"(?=[={}]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#comments"},{"include":"#more-types"}],"beginCaptures":{"0":{"name":"storage.type.class.swift"}}},{"begin":"\\G","end":"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#comments"},{"include":"#inherited-type"},{"include":"#more-types"}]}],"beginCaptures":{"1":{"name":"invalid.illegal.empty-inheritance-clause.swift"},"2":{"name":"punctuation.separator.inheritance-clause.swift"}},"repository":{"inherited-type":{"name":"entity.other.inherited-class.swift","begin":"(?=[`\\p{L}_])","end":"(?!\\G)","patterns":[{"include":"#type-identifier"}]},"more-types":{"name":"meta.inheritance-list.more-types","begin":",\\s*","end":"(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#comments"},{"include":"#inherited-type"},{"include":"#more-types"}]}}},"operator":{"name":"meta.definition.operator.swift","begin":"(?x)\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\\b(prefix|infix|postfix)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(operator)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t | \\.\t\t\t\t\t\t\t\t\t# Invalid dot\n\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)*+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )++ )\t\t\t# Dot operators\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t","end":"(;)|$\\n?|(?=//|/\\*)","patterns":[{"include":"#swift2"},{"include":"#swift3"},{"name":"invalid.illegal.character-not-allowed-here.swift","match":"((?!$|;|//|/\\*)\\S)+"}],"beginCaptures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"storage.type.function.operator.swift"},"3":{"name":"entity.name.function.operator.swift"},"4":{"patterns":[{"name":"invalid.illegal.dot-not-allowed-here.swift","match":"\\."}]}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.swift"}},"repository":{"swift2":{"begin":"\\G(\\{)","end":"(\\})","patterns":[{"include":"#comments"},{"match":"\\b(associativity)\\s+(left|right)\\b","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"keyword.other.operator.associativity.swift"}}},{"match":"\\b(precedence)\\s+([0-9]+)\\b","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"constant.numeric.integer.swift"}}},{"match":"\\b(assignment)\\b","captures":{"1":{"name":"storage.modifier.swift"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.operator.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.operator.end.swift"}}},"swift3":{"match":"\\G(:)\\s*((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"2":{"name":"entity.other.inherited-class.swift","patterns":[{"include":"#types-precedencegroup"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}}}},"parameter-clause":{"name":"meta.parameter-clause.swift","begin":"(\\()","end":"(\\))(?:\\s*(async)\\b)?","patterns":[{"include":"#parameter-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"},"2":{"name":"keyword.control.async.swift"}}},"parameter-list":{"patterns":[{"match":"((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq1\u003e))\\s+((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq2\u003e))(?=\\s*:)","captures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"variable.parameter.function.swift"},"5":{"name":"punctuation.definition.identifier.swift"},"6":{"name":"punctuation.definition.identifier.swift"}}},{"match":"(((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)))(?=\\s*:)","captures":{"1":{"name":"variable.parameter.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},{"begin":":\\s*(?!\\s)","end":"(?=[,)])","patterns":[{"include":"#available-types"},{"name":"invalid.illegal.extra-colon-in-parameter-list.swift","match":":"},{"begin":"=","end":"(?=[,)])","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.swift"}}}]}]},"precedencegroup":{"name":"meta.definition.precedencegroup.swift","begin":"\\b(precedencegroup)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(?=\\{)","end":"(?!\\G)","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"match":"\\b(higherThan|lowerThan)\\s*:\\s*((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"entity.other.inherited-class.swift","patterns":[{"include":"#types-precedencegroup"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},{"match":"\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"keyword.other.operator.associativity.swift"}}},{"match":"\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"constant.language.boolean.swift"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.precedencegroup.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.precedencegroup.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.precedencegroup.swift"},"2":{"name":"entity.name.type.precedencegroup.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"protocol":{"name":"meta.definition.type.protocol.swift","begin":"\\b(protocol)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#inheritance-clause"},{"include":"#generic-where-clause"},{"name":"meta.definition.type.body.swift","begin":"\\{","end":"\\}","patterns":[{"include":"#protocol-method"},{"include":"#protocol-initializer"},{"include":"#associated-type"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"repository":{"associated-type":{"name":"meta.definition.associatedtype.swift","begin":"\\b(associatedtype)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\\G)$|(?=[;}]|$)","patterns":[{"include":"#inheritance-clause"},{"include":"#generic-where-clause"},{"include":"#typealias-assignment"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.swift"},"2":{"name":"variable.language.associatedtype.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"protocol-initializer":{"name":"meta.definition.function.initializer.swift","begin":"(?\u003c!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|\u003c)","end":"$|(?=;|//|/\\*|\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#async-throws"},{"include":"#generic-where-clause"},{"name":"invalid.illegal.function-body-not-allowed-in-protocol.swift","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.function.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.function.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.function.swift","patterns":[{"name":"invalid.illegal.character-not-allowed-here.swift","match":"(?\u003c=[?!])[?!]+"}]}}},"protocol-method":{"name":"meta.definition.function.swift","begin":"(?x)\n\t\t\t\t\t\t\t\t\\b\n\t\t\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t \t\t\t\t\t\t | (?:\n\t\t \t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t \t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t \t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t \t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t \t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t \t\t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t)*\n\t\t \t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t \t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t(?=\\(|\u003c)\n\t\t\t\t\t\t\t","end":"$|(?=;|//|/\\*|\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#async-throws"},{"include":"#generic-where-clause"},{"name":"invalid.illegal.function-body-not-allowed-in-protocol.swift","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.function.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.function.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}}}},"type":{"patterns":[{"name":"meta.definition.type.$1.swift","begin":"\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.swift","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},{"include":"#type-enum"}]},"type-enum":{"name":"meta.definition.type.$1.swift","begin":"\\b(enum)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.swift","begin":"\\{","end":"\\}","patterns":[{"include":"#enum-case-clause"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"repository":{"associated-values":{"begin":"\\G\\(","end":"\\)","patterns":[{"include":"#comments"},{"begin":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?:(_)|((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq1\u003e))\n\t\t\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t\t\t(((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq2\u003e))\n\t\t\t\t\t\t\t\t\t\t\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"invalid.illegal.distinct-labels-not-allowed.swift"},"5":{"name":"variable.parameter.function.swift"},"7":{"name":"punctuation.separator.argument-label.swift"}}},{"begin":"(((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq\u003e))\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"variable.parameter.function.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}}},{"begin":"(?![,)\\]])(?=\\S)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"},{"name":"invalid.illegal.extra-colon-in-parameter-list.swift","match":":"}]}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.swift"}}},"enum-case":{"begin":"(?x)((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?\u003c=\\))|(?![=(])","patterns":[{"include":"#comments"},{"include":"#associated-values"},{"include":"#raw-value-assignment"}],"beginCaptures":{"1":{"name":"constant.other.swift"}}},"enum-case-clause":{"begin":"\\b(case)\\b\\s*","end":"(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])","patterns":[{"include":"#comments"},{"include":"#enum-case"},{"include":"#more-cases"}],"beginCaptures":{"1":{"name":"storage.type.enum.case.swift"}}},"more-cases":{"name":"meta.enum-case.more-cases","begin":",\\s*","end":"(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])","patterns":[{"include":"#comments"},{"include":"#enum-case"},{"include":"#more-cases"}]},"raw-value-assignment":{"begin":"(=)\\s*","end":"(?!\\G)","patterns":[{"include":"#comments"},{"include":"#literals"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.swift"}}}}},"type-identifier":{"begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\u003c)","patterns":[{"begin":"(?=\u003c)","end":"(?!\\G)","patterns":[{"include":"#generic-argument-clause"}]}],"beginCaptures":{"1":{"name":"meta.type-name.swift","patterns":[{"include":"#builtin-types"}]},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}}},"typealias":{"name":"meta.definition.typealias.swift","begin":"\\b(typealias)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\\G)$|(?=;|//|/\\*|$)","patterns":[{"begin":"\\G(?=\u003c)","end":"(?!\\G)","patterns":[{"include":"#generic-parameter-clause"}]},{"include":"#typealias-assignment"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.swift"},"2":{"name":"entity.name.type.typealias.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"typealias-assignment":{"begin":"(=)\\s*","end":"(?!\\G)$|(?=;|//|/\\*|$)","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.swift"}}},"typed-variable-declaration":{"begin":"(?x)\n\t\t\t\t\t\t\\b(let|var)\\b\\s+\n\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\\s*\n\t\t\t\t\t\t:\n\t\t\t\t\t","end":"(?=$|[={])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.swift"}}},"types-precedencegroup":{"patterns":[{"name":"support.type.swift","match":"\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b"}]}}},"expressions":{"patterns":[{"include":"#comments"},{"include":"#code-block"},{"include":"#attributes"},{"include":"#closure-parameter"},{"include":"#literals"},{"include":"#operators"},{"include":"#builtin-types"},{"include":"#builtin-functions"},{"include":"#builtin-global-functions"},{"include":"#builtin-properties"},{"include":"#compound-name"},{"include":"#keywords"},{"include":"#function-call-expression"},{"include":"#subscript-expression"},{"include":"#parenthesized-expression"},{"include":"#member-reference"},{"include":"#availability-condition"},{"name":"support.variable.discard-value.swift","match":"\\b_\\b"}],"repository":{"availability-condition":{"begin":"\\B(#(?:un)?available)(\\()","end":"\\)","patterns":[{"match":"\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))","captures":{"1":{"name":"keyword.other.platform.os.swift"},"2":{"name":"constant.numeric.swift"}}},{"match":"(\\*)\\s*(.*?)(?=[,)])","captures":{"1":{"name":"keyword.other.platform.all.swift"},"2":{"name":"invalid.illegal.character-not-allowed-here.swift"}}},{"name":"invalid.illegal.character-not-allowed-here.swift","match":"[^\\s,)]+"}],"beginCaptures":{"1":{"name":"support.function.availability-condition.swift"},"2":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},"closure-parameter":{"name":"variable.language.closure-parameter.swift","match":"\\$[0-9]+"},"compound-name":{"match":"(?x)\n\t\t\t\t\t\t((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq1\u003e)) \t\t# function name\n\t\t\t\t\t\t\\(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq2\u003e)) \t# argument label\n\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t\t\t\t\t# colon\n\t\t\t\t\t\t\t\t)+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\\)\n\t\t\t\t\t","captures":{"1":{"name":"entity.name.function.compound-name.swift"},"2":{"name":"punctuation.definition.entity.swift"},"3":{"name":"punctuation.definition.entity.swift"},"4":{"patterns":[{"name":"entity.name.function.compound-name.swift","match":"(?\u003cq\u003e`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e):","captures":{"1":{"name":"punctuation.definition.entity.swift"},"2":{"name":"punctuation.definition.entity.swift"}}}]}}},"expression-element-list":{"patterns":[{"include":"#comments"},{"begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"support.function.any-method.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}}},{"begin":"(?![,)\\]])(?=\\S)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}]}]},"function-call-expression":{"patterns":[{"name":"meta.function-call.swift","begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(\\()","end":"\\)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"support.function.any-method.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},{"name":"meta.function-call.swift","begin":"(?\u003c=[`\\])}\u003e\\p{L}_\\p{N}\\p{M}])\\s*(\\()","end":"\\)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}}]},"member-reference":{"patterns":[{"match":"(?\u003c=\\.)((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"1":{"name":"variable.other.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}}}]},"parenthesized-expression":{"begin":"\\(","end":"(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"0":{"name":"punctuation.section.tuple.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.section.tuple.end.swift"},"2":{"patterns":[{"name":"invalid.illegal.rethrows-only-allowed-on-function-declarations.swift","match":"\\brethrows\\b"},{"include":"#async-throws"}]}}},"subscript-expression":{"name":"meta.subscript-expression.swift","begin":"(?\u003c=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)","end":"\\]","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}}}},"keywords":{"patterns":[{"name":"keyword.control.branch.swift","match":"(?\u003c!\\.)\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\b"},{"name":"keyword.control.transfer.swift","match":"(?\u003c!\\.)\\b(?:continue|break|fallthrough|return)\\b"},{"name":"keyword.control.loop.swift","match":"(?\u003c!\\.)\\b(?:while|for|in)\\b"},{"match":"(?\u003c!\\.)\\b(repeat)\\b(\\s*)","captures":{"1":{"name":"keyword.control.loop.swift"},"2":{"name":"punctuation.whitespace.trailing.repeat.swift"}}},{"name":"keyword.control.defer.swift","match":"(?\u003c!\\.)\\bdefer\\b"},{"match":"(?\u003c!\\.)\\b(?:(await\\s+try)|(await)\\b)","captures":{"1":{"name":"invalid.illegal.try-must-precede-await.swift"},"2":{"name":"keyword.control.await.swift"}}},{"name":"keyword.control.exception.swift","match":"(?\u003c!\\.)\\b(?:catch|throws?|rethrows|try)\\b|\\btry[?!]\\B"},{"match":"(?\u003c!\\.)\\b(do)\\b(\\s*)","captures":{"1":{"name":"keyword.control.exception.swift"},"2":{"name":"punctuation.whitespace.trailing.do.swift"}}},{"name":"keyword.other.declaration-specifier.swift","match":"(?\u003c!\\.)\\b(?:associatedtype|let|operator|typealias|var)\\b"},{"name":"storage.type.$1.swift","match":"(?\u003c!\\.)\\b(class|enum|extension|precedencegroup|protocol|struct|actor)\\b"},{"name":"storage.modifier.swift","match":"(?\u003c!\\.)\\b(?:inout|static|final|lazy|mutating|nonmutating|optional|indirect|required|override|dynamic|convenience|infix|prefix|postfix)\\b"},{"name":"storage.type.function.swift","match":"\\binit[?!]|\\binit\\b|(?\u003c!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b"},{"name":"keyword.other.declaration-specifier.accessibility.swift","match":"(?\u003c!\\.)\\b(?:fileprivate|private|internal|public|open)\\b"},{"name":"keyword.other.capture-specifier.swift","match":"(?\u003c!\\.)\\bunowned\\((?:safe|unsafe)\\)|(?\u003c!\\.)\\b(?:weak|unowned)\\b"},{"match":"(?\u003c=\\.)(?:(dynamicType|self)|(Protocol|Type))\\b","captures":{"1":{"name":"keyword.operator.type.swift"},"2":{"name":"keyword.operator.type.metatype.swift"}}},{"name":"variable.language.swift","match":"(?\u003c!\\.)\\b(?:super|self|Self)\\b"},{"name":"support.variable.swift","match":"\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\b|\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\b"},{"name":"keyword.control.import.swift","match":"(?\u003c!\\.)\\bimport\\b"}]},"literals":{"patterns":[{"include":"#boolean"},{"include":"#numeric"},{"include":"#string"},{"name":"constant.language.nil.swift","match":"\\bnil\\b"},{"name":"support.function.object-literal.swift","match":"\\B#(colorLiteral|imageLiteral|fileLiteral)\\b"},{"name":"support.function.key-path.swift","match":"\\B#keyPath\\b"},{"begin":"\\B(#selector)(\\()(?:\\s*(getter|setter)\\s*(:))?","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"support.function.selector-reference.swift"},"2":{"name":"punctuation.definition.arguments.begin.swift"},"3":{"name":"support.variable.parameter.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}}],"repository":{"boolean":{"name":"constant.language.boolean.swift","match":"\\b(true|false)\\b"},"numeric":{"patterns":[{"name":"constant.numeric.float.decimal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*(?=\\.[0-9]|[eE])(?:\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\b(?!\\.[0-9])"},{"name":"constant.numeric.float.hexadecimal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.float.invalid-exponent.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\w*)\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.float.missing-exponent.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\.[0-9][\\w.]*"},{"name":"invalid.illegal.numeric.float.missing-leading-zero.swift","match":"(?\u003c=\\s|^)\\-?\\.[0-9][\\w.]*"},{"name":"invalid.illegal.numeric.leading-underscore.swift","match":"(\\B\\-|\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\w+)?[\\w.]+"},{"match":"(?\u003c=[\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9]+\\b"},{"name":"constant.numeric.integer.binary.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0b[01][01_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.octal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0o[0-7][0-7_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.decimal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.hexadecimal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.other.swift","match":"(\\B\\-|\\b)[0-9][\\w.]*"}]},"string":{"patterns":[{"name":"string.quoted.double.block.swift","begin":"\"\"\"","end":"\"\"\"(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.swift","match":"\\G.+(?=\"\"\")|\\G.+"},{"name":"constant.character.escape.newline.swift","match":"\\\\\\s*\\n"},{"include":"#string-guts"},{"name":"invalid.illegal.content-before-closing-delimiter.swift","match":"\\S((?!\\\\\\().)*(?=\"\"\")"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.block.raw.swift","begin":"#\"\"\"","end":"\"\"\"#(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.swift","match":"\\G.+(?=\"\"\")|\\G.+"},{"name":"constant.character.escape.newline.swift","match":"\\\\#\\s*\\n"},{"include":"#raw-string-guts"},{"name":"invalid.illegal.content-before-closing-delimiter.swift","match":"\\S((?!\\\\#\\().)*(?=\"\"\")"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.block.raw.swift","begin":"(##+)\"\"\"","end":"\"\"\"\\1(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.swift","match":"\\G.+(?=\"\"\")|\\G.+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.single-line.swift","begin":"\"","end":"\"(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.swift","match":"\\r|\\n"},{"include":"#string-guts"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.single-line.raw.swift","begin":"(##+)\"","end":"\"\\1(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.swift","match":"\\r|\\n"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.raw.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.raw.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.single-line.raw.swift","begin":"#\"","end":"\"#(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.swift","match":"\\r|\\n"},{"include":"#raw-string-guts"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.raw.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.raw.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}}],"repository":{"raw-string-guts":{"patterns":[{"name":"constant.character.escape.swift","match":"\\\\#[0\\\\tnr\"']"},{"name":"constant.character.escape.unicode.swift","match":"\\\\#u\\{[0-9a-fA-F]{1,8}\\}"},{"name":"meta.embedded.line.swift","contentName":"source.swift","begin":"\\\\#\\(","end":"(\\))","patterns":[{"include":"$self"},{"begin":"\\(","end":"\\)"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.swift"},"1":{"name":"source.swift"}}},{"name":"invalid.illegal.escape-not-recognized","match":"\\\\#."}]},"string-guts":{"patterns":[{"name":"constant.character.escape.swift","match":"\\\\[0\\\\tnr\"']"},{"name":"constant.character.escape.unicode.swift","match":"\\\\u\\{[0-9a-fA-F]{1,8}\\}"},{"name":"meta.embedded.line.swift","contentName":"source.swift","begin":"\\\\\\(","end":"(\\))","patterns":[{"include":"$self"},{"begin":"\\(","end":"\\)"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.swift"},"1":{"name":"source.swift"}}},{"name":"invalid.illegal.escape-not-recognized","match":"\\\\."}]}}}}},"operators":{"patterns":[{"name":"keyword.operator.type-casting.swift","match":"\\b(is\\b|as([!?]\\B|\\b))"},{"begin":"(?x)\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\g\u003coph\u003e\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t","end":"(?!\\G)","patterns":[{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.increment-or-decrement.swift","match":"\\G(\\+\\+|\\-\\-)$"},{"name":"keyword.operator.arithmetic.unary.swift","match":"\\G(\\+|\\-)$"},{"name":"keyword.operator.logical.not.swift","match":"\\G!$"},{"name":"keyword.operator.bitwise.not.swift","match":"\\G~$"},{"name":"keyword.operator.custom.prefix.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.increment-or-decrement.swift","match":"\\G(\\+\\+|\\-\\-)$"},{"name":"keyword.operator.increment-or-decrement.swift","match":"\\G!$"},{"name":"keyword.operator.custom.postfix.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.assignment.swift","match":"\\G=$"},{"name":"keyword.operator.assignment.compound.swift","match":"\\G(\\+|\\-|\\*|/|%|\u003c\u003c|\u003e\u003e|\u0026|\\^|\\||\u0026\u0026|\\|\\|)=$"},{"name":"keyword.operator.arithmetic.swift","match":"\\G(\\+|\\-|\\*|/)$"},{"name":"keyword.operator.arithmetic.overflow.swift","match":"\\G\u0026(\\+|\\-|\\*)$"},{"name":"keyword.operator.arithmetic.remainder.swift","match":"\\G%$"},{"name":"keyword.operator.comparison.swift","match":"\\G(==|!=|\u003e|\u003c|\u003e=|\u003c=|~=)$"},{"name":"keyword.operator.coalescing.swift","match":"\\G\\?\\?$"},{"name":"keyword.operator.logical.swift","match":"\\G(\u0026\u0026|\\|\\|)$"},{"name":"keyword.operator.bitwise.swift","match":"\\G(\u0026|\\||\\^|\u003c\u003c|\u003e\u003e)$"},{"name":"keyword.operator.bitwise.swift","match":"\\G(===|!==)$"},{"name":"keyword.operator.ternary.swift","match":"\\G\\?$"},{"name":"keyword.operator.custom.infix.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.custom.prefix.dot.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.custom.postfix.dot.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.range.swift","match":"\\G\\.\\.[.\u003c]$"},{"name":"keyword.operator.custom.infix.dot.swift","match":".+"}]}}}]},{"name":"keyword.operator.ternary.swift","match":":"}]},"root":{"patterns":[{"include":"#compiler-control"},{"include":"#declarations"},{"include":"#expressions"}]}}}
1
+ {"name":"Swift","scopeName":"source.swift","patterns":[{"include":"#root"}],"repository":{"async-throws":{"match":"\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b","captures":{"1":{"name":"invalid.illegal.await-must-precede-throws.swift"},"2":{"name":"keyword.control.exception.swift"},"3":{"name":"keyword.control.async.swift"}}},"attributes":{"patterns":[{"name":"meta.attribute.available.swift","begin":"((@)available)(\\()","end":"\\)","patterns":[{"match":"\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?","captures":{"1":{"name":"keyword.other.platform.os.swift"},"2":{"name":"constant.numeric.swift"}}},{"begin":"\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*","end":"(?!\\G)","patterns":[{"name":"constant.numeric.swift","match":"\\b[0-9]+(?:\\.[0-9]+)*\\b"}],"beginCaptures":{"1":{"name":"keyword.other.swift"},"2":{"name":"punctuation.separator.key-value.swift"}}},{"begin":"\\b(message|renamed)\\s*(:)\\s*(?=\")","end":"(?!\\G)","patterns":[{"include":"#literals"}],"beginCaptures":{"1":{"name":"keyword.other.swift"},"2":{"name":"punctuation.separator.key-value.swift"}}},{"match":"(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])","captures":{"1":{"name":"keyword.other.platform.all.swift"},"2":{"name":"keyword.other.swift"},"3":{"name":"invalid.illegal.character-not-allowed-here.swift"}}}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.swift"},"2":{"name":"punctuation.definition.attribute.swift"},"3":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},{"name":"meta.attribute.objc.swift","begin":"((@)objc)(\\()","end":"\\)","patterns":[{"name":"entity.name.function.swift","match":"\\w*(?::(?:\\w*:)*(\\w*))?","captures":{"1":{"name":"invalid.illegal.missing-colon-after-selector-piece.swift"}}}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.swift"},"2":{"name":"punctuation.definition.attribute.swift"},"3":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},{"name":"meta.attribute.swift","begin":"(@)(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)","end":"(?!\\G\\()","patterns":[{"name":"meta.arguments.attribute.swift","begin":"\\(","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}}],"beginCaptures":{"0":{"name":"storage.modifier.attribute.swift"},"1":{"name":"punctuation.definition.attribute.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}}}]},"builtin-functions":{"patterns":[{"name":"support.function.swift","match":"(?\u003c=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b"},{"name":"support.function.swift","match":"(?\u003c=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()"},{"name":"support.function.swift","match":"(?\u003c=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()"}]},"builtin-global-functions":{"patterns":[{"begin":"\\b(type)(\\()\\s*(of)(:)","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"support.function.dynamic-type.swift"},"2":{"name":"punctuation.definition.arguments.begin.swift"},"3":{"name":"support.variable.parameter.swift"},"4":{"name":"punctuation.separator.argument-label.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},{"name":"support.function.swift","match":"\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b"},{"name":"support.function.swift","match":"\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()"},{"name":"support.function.swift","match":"\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()"}]},"builtin-properties":{"patterns":[{"name":"support.variable.swift","match":"(?\u003c=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)"},{"name":"support.variable.swift","match":"(?\u003c=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b"},{"name":"support.variable.swift","match":"(?\u003c=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b"},{"name":"support.variable.swift","match":"(?\u003c=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b"}]},"builtin-types":{"patterns":[{"include":"#builtin-class-type"},{"include":"#builtin-enum-type"},{"include":"#builtin-protocol-type"},{"include":"#builtin-struct-type"},{"include":"#builtin-typealias"},{"name":"support.type.any.swift","match":"\\bAny\\b"}],"repository":{"builtin-class-type":{"name":"support.class.swift","match":"\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b"},"builtin-enum-type":{"patterns":[{"name":"support.constant.swift","match":"\\b(?:CommandLine|Process(?=\\.))\\b"},{"name":"support.constant.never.swift","match":"\\bNever\\b"},{"name":"support.type.swift","match":"\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b"},{"name":"support.type.swift","match":"\\b(?:MirrorDisposition|QuickLookObject)\\b"}]},"builtin-protocol-type":{"patterns":[{"name":"support.type.swift","match":"\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b"},{"name":"support.type.swift","match":"\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b"}]},"builtin-struct-type":{"patterns":[{"name":"support.type.swift","match":"\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b"},{"name":"support.type.swift","match":"\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b"}]},"builtin-typealias":{"patterns":[{"name":"support.type.swift","match":"\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b"},{"name":"support.type.swift","match":"\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b"}]}}},"code-block":{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.swift"}}},"comments":{"patterns":[{"name":"comment.line.number-sign.swift","match":"\\A^(#!).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.swift"}}},{"name":"comment.block.documentation.swift","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}}},{"name":"comment.block.documentation.playground.swift","begin":"/\\*:","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}}},{"name":"comment.block.swift","begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}}},{"name":"invalid.illegal.unexpected-end-of-block-comment.swift","match":"\\*/"},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.triple-slash.documentation.swift","begin":"///","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}}},{"name":"comment.line.double-slash.documentation.swift","begin":"//:","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}}},{"name":"comment.line.double-slash.swift","begin":"//","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.swift"}}}],"repository":{"nested":{"begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}]}}},"compiler-control":{"patterns":[{"contentName":"comment.block.preprocessor.swift","begin":"^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)","end":"(?=^\\s*(#(elseif|else|endif)\\b))","beginCaptures":{"0":{"name":"meta.preprocessor.conditional.swift"},"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.preprocessor.conditional.swift"},"3":{"name":"constant.language.boolean.swift"}}},{"name":"meta.preprocessor.conditional.swift","begin":"^\\s*(#)(if|elseif)\\s+","end":"(?=\\s*(?://|/\\*))|$","patterns":[{"name":"keyword.operator.logical.swift","match":"(\u0026\u0026|\\|\\|)"},{"name":"constant.language.boolean.swift","match":"\\b(true|false)\\b"},{"match":"\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))","captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"support.constant.platform.architecture.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}}},{"match":"\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))","captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"support.constant.platform.os.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}}},{"match":"\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))","captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"entity.name.type.module.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}}},{"begin":"\\b(targetEnvironment)\\s*(\\()","end":"(\\))|$","patterns":[{"name":"support.constant.platform.environment.swift","match":"\\b(simulator|UIKitForMac)\\b"}],"beginCaptures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"}}},{"begin":"\\b(swift|compiler)\\s*(\\()","end":"(\\))|$","patterns":[{"name":"keyword.operator.comparison.swift","match":"\u003e=|\u003c"},{"name":"constant.numeric.swift","match":"\\b[0-9]+(?:\\.[0-9]+)*\\b"}],"beginCaptures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"}}}],"captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.preprocessor.conditional.swift"}}},{"name":"meta.preprocessor.conditional.swift","match":"^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)","captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.preprocessor.conditional.swift"},"3":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.swift","match":"\\S+"}]}}},{"name":"meta.preprocessor.sourcelocation.swift","match":"^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)","captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.preprocessor.sourcelocation.swift"},"4":{"name":"punctuation.definition.parameters.begin.swift"},"5":{"patterns":[{"begin":"(file)\\s*(:)\\s*(?=\")","end":"(?!\\G)","patterns":[{"include":"#literals"}],"beginCaptures":{"1":{"name":"support.variable.parameter.swift"},"2":{"name":"punctuation.separator.key-value.swift"}}},{"match":"(line)\\s*(:)\\s*([0-9]+)","captures":{"1":{"name":"support.variable.parameter.swift"},"2":{"name":"punctuation.separator.key-value.swift"},"3":{"name":"constant.numeric.integer.swift"}}},{"name":"punctuation.separator.parameters.swift","match":","},{"name":"invalid.illegal.character-not-allowed-here.swift","match":"\\S+"}]},"6":{"name":"punctuation.definition.parameters.begin.swift"},"7":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.swift","match":"\\S+"}]}}}]},"declarations":{"patterns":[{"include":"#function"},{"include":"#function-initializer"},{"include":"#typed-variable-declaration"},{"include":"#import"},{"include":"#operator"},{"include":"#precedencegroup"},{"include":"#protocol"},{"include":"#type"},{"include":"#extension"},{"include":"#typealias"}],"repository":{"available-types":{"patterns":[{"include":"#comments"},{"include":"#builtin-types"},{"include":"#attributes"},{"name":"keyword.control.async.swift","match":"\\basync\\b"},{"name":"keyword.control.exception.swift","match":"\\b(?:throws|rethrows)\\b"},{"name":"keyword.operator.type.opaque.swift","match":"\\bsome\\b"},{"name":"keyword.operator.type.existential.swift","match":"\\bany\\b"},{"name":"storage.modifier.swift","match":"\\b(?:inout|isolated)\\b"},{"name":"variable.language.swift","match":"\\bSelf\\b"},{"match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","captures":{"1":{"name":"keyword.operator.type.function.swift"}}},{"match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\u0026)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","captures":{"1":{"name":"keyword.operator.type.composition.swift"}}},{"name":"keyword.operator.type.optional.swift","match":"[?!]"},{"name":"keyword.operator.function.variadic-parameter.swift","match":"\\.\\.\\."},{"name":"keyword.operator.type.composition.swift","match":"\\bprotocol\\b"},{"name":"keyword.operator.type.metatype.swift","match":"(?\u003c=\\.)(?:Protocol|Type)\\b"},{"include":"#tuple-type"},{"include":"#collection-type"},{"include":"#generic-argument-clause"}],"repository":{"collection-type":{"begin":"\\[","end":"\\]|(?=[\u003e){}])","patterns":[{"include":"#available-types"},{"begin":":","end":"(?=\\]|[\u003e){}])","patterns":[{"name":"invalid.illegal.extra-colon-in-dictionary-type.swift","match":":"},{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.swift"}}}],"beginCaptures":{"0":{"name":"punctuation.section.collection-type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.collection-type.end.swift"}}},"tuple-type":{"begin":"\\(","end":"\\)|(?=[\u003e\\]{}])","patterns":[{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.section.tuple-type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.tuple-type.end.swift"}}}}},"extension":{"name":"meta.definition.type.$1.swift","begin":"\\b(extension)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.swift","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.swift","patterns":[{"include":"#available-types"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"function":{"name":"meta.definition.function.swift","begin":"(?x)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(?:(nonisolated)\\s+)?\n\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t\t\t\t\t | (?:\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t(?=\\(|\u003c)\n\t\t\t\t\t","end":"(?\u003c=\\})|$(?# functions in protocol declarations or generated interfaces have no body)","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#async-throws"},{"include":"#generic-where-clause"},{"name":"meta.definition.function.body.swift","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"storage.type.function.swift"},"3":{"name":"entity.name.function.swift"},"4":{"name":"punctuation.definition.identifier.swift"},"5":{"name":"punctuation.definition.identifier.swift"}}},"function-initializer":{"name":"meta.definition.function.initializer.swift","begin":"(?\u003c!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})|$","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#async-throws"},{"include":"#generic-where-clause"},{"name":"meta.definition.function.body.swift","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.function.swift","patterns":[{"name":"invalid.illegal.character-not-allowed-here.swift","match":"(?\u003c=[?!])[?!]+"}]}}},"function-result":{"name":"meta.function-result.swift","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"(?!\\G)(?=\\{|\\bwhere\\b|;)|$","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.swift"}}},"generic-argument-clause":{"name":"meta.generic-argument-clause.swift","begin":"\u003c","end":"\u003e|(?=[)\\]{}])","patterns":[{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.separator.generic-argument-clause.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.separator.generic-argument-clause.end.swift"}}},"generic-parameter-clause":{"name":"meta.generic-parameter-clause.swift","begin":"\u003c","end":"\u003e|(?=[^\\w\\d:\u003c\u003e\\s,=\u0026`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)","patterns":[{"include":"#comments"},{"include":"#generic-where-clause"},{"match":"\\b((?!\\d)\\w[\\w\\d]*)\\b","captures":{"1":{"name":"variable.language.generic-parameter.swift"}}},{"name":"punctuation.separator.generic-parameters.swift","match":","},{"name":"meta.generic-parameter-constraint.swift","begin":"(:)\\s*","end":"(?=[,\u003e]|(?!\\G)\\bwhere\\b)","patterns":[{"name":"entity.other.inherited-class.swift","begin":"\\G","end":"(?=[,\u003e]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#type-identifier"}]}],"beginCaptures":{"1":{"name":"punctuation.separator.generic-parameter-constraint.swift"}}}],"beginCaptures":{"0":{"name":"punctuation.separator.generic-parameter-clause.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.separator.generic-parameter-clause.end.swift"}}},"generic-where-clause":{"name":"meta.generic-where-clause.swift","begin":"\\b(where)\\b\\s*","end":"(?!\\G)$|(?=[\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#comments"},{"include":"#requirement-list"}],"beginCaptures":{"1":{"name":"keyword.other.generic-constraint-introducer.swift"}},"repository":{"requirement-list":{"begin":"\\G|,\\s*","end":"(?=[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#comments"},{"include":"#constraint"},{"include":"#available-types"},{"name":"meta.generic-where-clause.same-type-requirement.swift","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(==)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.operator.generic-constraint.same-type.swift"}}},{"name":"meta.generic-where-clause.conformance-requirement.swift","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(:)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"contentName":"entity.other.inherited-class.swift","begin":"\\G\\s*","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#available-types"}]}],"beginCaptures":{"1":{"name":"keyword.operator.generic-constraint.conforms-to.swift"}}}]}}},"import":{"name":"meta.import.swift","begin":"(?\u003c!\\.)\\b(import)\\s+","end":"(;)|$\\n?|(?=//|/\\*)","patterns":[{"begin":"\\G(?!;|$|//|/\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\s+)?","end":"(?=;|$|//|/\\*)","patterns":[{"name":"entity.name.type.swift","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t\t\t\t\t\t\t\t","captures":{"1":{"name":"punctuation.definition.identifier.swift"},"2":{"name":"punctuation.definition.identifier.swift"}}},{"name":"entity.name.type.swift","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t\\$[0-9]+\n\t\t\t\t\t\t\t\t\t"},{"name":"entity.name.type.swift","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t(?=\\.|;|$|//|/\\*|\\s)\n\t\t\t\t\t\t\t\t\t","captures":{"1":{"patterns":[{"name":"invalid.illegal.dot-not-allowed-here.swift","match":"\\."}]}}},{"name":"punctuation.separator.import.swift","match":"\\."},{"name":"invalid.illegal.character-not-allowed-here.swift","begin":"(?!\\s*(;|$|//|/\\*))","end":"(?=\\s*(;|$|//|/\\*))"}],"beginCaptures":{"1":{"name":"storage.modifier.swift"}}}],"beginCaptures":{"1":{"name":"keyword.control.import.swift"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.swift"}}},"inheritance-clause":{"name":"meta.inheritance-clause.swift","begin":"(:)(?=\\s*\\{)|(:)\\s*","end":"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)","patterns":[{"begin":"\\bclass\\b","end":"(?=[={}]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#comments"},{"include":"#more-types"}],"beginCaptures":{"0":{"name":"storage.type.class.swift"}}},{"begin":"\\G","end":"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#comments"},{"include":"#inherited-type"},{"include":"#more-types"}]}],"beginCaptures":{"1":{"name":"invalid.illegal.empty-inheritance-clause.swift"},"2":{"name":"punctuation.separator.inheritance-clause.swift"}},"repository":{"inherited-type":{"name":"entity.other.inherited-class.swift","begin":"(?=[`\\p{L}_])","end":"(?!\\G)","patterns":[{"include":"#type-identifier"}]},"more-types":{"name":"meta.inheritance-list.more-types","begin":",\\s*","end":"(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#comments"},{"include":"#inherited-type"},{"include":"#more-types"}]}}},"operator":{"name":"meta.definition.operator.swift","begin":"(?x)\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\\b(prefix|infix|postfix)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(operator)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t | \\.\t\t\t\t\t\t\t\t\t# Invalid dot\n\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)*+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )++ )\t\t\t# Dot operators\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t","end":"(;)|$\\n?|(?=//|/\\*)","patterns":[{"include":"#swift2"},{"include":"#swift3"},{"name":"invalid.illegal.character-not-allowed-here.swift","match":"((?!$|;|//|/\\*)\\S)+"}],"beginCaptures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"storage.type.function.operator.swift"},"3":{"name":"entity.name.function.operator.swift"},"4":{"patterns":[{"name":"invalid.illegal.dot-not-allowed-here.swift","match":"\\."}]}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.swift"}},"repository":{"swift2":{"begin":"\\G(\\{)","end":"(\\})","patterns":[{"include":"#comments"},{"match":"\\b(associativity)\\s+(left|right)\\b","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"keyword.other.operator.associativity.swift"}}},{"match":"\\b(precedence)\\s+([0-9]+)\\b","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"constant.numeric.integer.swift"}}},{"match":"\\b(assignment)\\b","captures":{"1":{"name":"storage.modifier.swift"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.operator.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.operator.end.swift"}}},"swift3":{"match":"\\G(:)\\s*((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"2":{"name":"entity.other.inherited-class.swift","patterns":[{"include":"#types-precedencegroup"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}}}},"parameter-clause":{"name":"meta.parameter-clause.swift","begin":"(\\()","end":"(\\))(?:\\s*(async)\\b)?","patterns":[{"include":"#parameter-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"},"2":{"name":"keyword.control.async.swift"}}},"parameter-list":{"patterns":[{"match":"((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq1\u003e))\\s+((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq2\u003e))(?=\\s*:)","captures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"variable.parameter.function.swift"},"5":{"name":"punctuation.definition.identifier.swift"},"6":{"name":"punctuation.definition.identifier.swift"}}},{"match":"(((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)))(?=\\s*:)","captures":{"1":{"name":"variable.parameter.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},{"begin":":\\s*(?!\\s)","end":"(?=[,)])","patterns":[{"include":"#available-types"},{"name":"invalid.illegal.extra-colon-in-parameter-list.swift","match":":"},{"begin":"=","end":"(?=[,)])","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.swift"}}}]}]},"precedencegroup":{"name":"meta.definition.precedencegroup.swift","begin":"\\b(precedencegroup)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(?=\\{)","end":"(?!\\G)","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"match":"\\b(higherThan|lowerThan)\\s*:\\s*((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"entity.other.inherited-class.swift","patterns":[{"include":"#types-precedencegroup"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},{"match":"\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"keyword.other.operator.associativity.swift"}}},{"match":"\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?","captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"constant.language.boolean.swift"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.precedencegroup.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.precedencegroup.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.precedencegroup.swift"},"2":{"name":"entity.name.type.precedencegroup.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"protocol":{"name":"meta.definition.type.protocol.swift","begin":"\\b(protocol)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#inheritance-clause"},{"include":"#generic-where-clause"},{"name":"meta.definition.type.body.swift","begin":"\\{","end":"\\}","patterns":[{"include":"#protocol-method"},{"include":"#protocol-initializer"},{"include":"#associated-type"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"repository":{"associated-type":{"name":"meta.definition.associatedtype.swift","begin":"\\b(associatedtype)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\\G)$|(?=[;}]|$)","patterns":[{"include":"#inheritance-clause"},{"include":"#generic-where-clause"},{"include":"#typealias-assignment"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.swift"},"2":{"name":"variable.language.associatedtype.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"protocol-initializer":{"name":"meta.definition.function.initializer.swift","begin":"(?\u003c!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|\u003c)","end":"$|(?=;|//|/\\*|\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#async-throws"},{"include":"#generic-where-clause"},{"name":"invalid.illegal.function-body-not-allowed-in-protocol.swift","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.function.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.function.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.function.swift","patterns":[{"name":"invalid.illegal.character-not-allowed-here.swift","match":"(?\u003c=[?!])[?!]+"}]}}},"protocol-method":{"name":"meta.definition.function.swift","begin":"(?x)\n\t\t\t\t\t\t\t\t\\b\n\t\t\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t \t\t\t\t\t\t | (?:\n\t\t \t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t \t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t \t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t \t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t \t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t \t\t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t)*\n\t\t \t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t \t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t(?=\\(|\u003c)\n\t\t\t\t\t\t\t","end":"$|(?=;|//|/\\*|\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#async-throws"},{"include":"#generic-where-clause"},{"name":"invalid.illegal.function-body-not-allowed-in-protocol.swift","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.function.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.function.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}}}},"type":{"patterns":[{"name":"meta.definition.type.$1.swift","begin":"\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.swift","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},{"include":"#type-enum"}]},"type-enum":{"name":"meta.definition.type.$1.swift","begin":"\\b(enum)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.swift","begin":"\\{","end":"\\}","patterns":[{"include":"#enum-case-clause"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"repository":{"associated-values":{"begin":"\\G\\(","end":"\\)","patterns":[{"include":"#comments"},{"begin":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?:(_)|((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq1\u003e))\n\t\t\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t\t\t(((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq2\u003e))\n\t\t\t\t\t\t\t\t\t\t\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"invalid.illegal.distinct-labels-not-allowed.swift"},"5":{"name":"variable.parameter.function.swift"},"7":{"name":"punctuation.separator.argument-label.swift"}}},{"begin":"(((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq\u003e))\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"variable.parameter.function.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}}},{"begin":"(?![,)\\]])(?=\\S)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"},{"name":"invalid.illegal.extra-colon-in-parameter-list.swift","match":":"}]}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.swift"}}},"enum-case":{"begin":"(?x)((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?\u003c=\\))|(?![=(])","patterns":[{"include":"#comments"},{"include":"#associated-values"},{"include":"#raw-value-assignment"}],"beginCaptures":{"1":{"name":"constant.other.swift"}}},"enum-case-clause":{"begin":"\\b(case)\\b\\s*","end":"(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])","patterns":[{"include":"#comments"},{"include":"#enum-case"},{"include":"#more-cases"}],"beginCaptures":{"1":{"name":"storage.type.enum.case.swift"}}},"more-cases":{"name":"meta.enum-case.more-cases","begin":",\\s*","end":"(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])","patterns":[{"include":"#comments"},{"include":"#enum-case"},{"include":"#more-cases"}]},"raw-value-assignment":{"begin":"(=)\\s*","end":"(?!\\G)","patterns":[{"include":"#comments"},{"include":"#literals"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.swift"}}}}},"type-identifier":{"begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\u003c)","patterns":[{"begin":"(?=\u003c)","end":"(?!\\G)","patterns":[{"include":"#generic-argument-clause"}]}],"beginCaptures":{"1":{"name":"meta.type-name.swift","patterns":[{"include":"#builtin-types"}]},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}}},"typealias":{"name":"meta.definition.typealias.swift","begin":"\\b(typealias)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\\G)$|(?=;|//|/\\*|$)","patterns":[{"begin":"\\G(?=\u003c)","end":"(?!\\G)","patterns":[{"include":"#generic-parameter-clause"}]},{"include":"#typealias-assignment"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.swift"},"2":{"name":"entity.name.type.typealias.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}}},"typealias-assignment":{"begin":"(=)\\s*","end":"(?!\\G)$|(?=;|//|/\\*|$)","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.swift"}}},"typed-variable-declaration":{"begin":"(?x)\n\t\t\t\t\t\t\\b(?:(async)\\s+)?(let|var)\\b\\s+\n\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\\s*\n\t\t\t\t\t\t:\n\t\t\t\t\t","end":"(?=$|[={])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.control.async.swift"},"2":{"name":"keyword.other.declaration-specifier.swift"}}},"types-precedencegroup":{"patterns":[{"name":"support.type.swift","match":"\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b"}]}}},"expressions":{"patterns":[{"include":"#comments"},{"include":"#code-block"},{"include":"#attributes"},{"include":"#closure-parameter"},{"include":"#literals"},{"include":"#operators"},{"include":"#builtin-types"},{"include":"#builtin-functions"},{"include":"#builtin-global-functions"},{"include":"#builtin-properties"},{"include":"#compound-name"},{"include":"#keywords"},{"include":"#function-call-expression"},{"include":"#subscript-expression"},{"include":"#parenthesized-expression"},{"include":"#member-reference"},{"include":"#availability-condition"},{"name":"support.variable.discard-value.swift","match":"\\b_\\b"}],"repository":{"availability-condition":{"begin":"\\B(#(?:un)?available)(\\()","end":"\\)","patterns":[{"match":"\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))","captures":{"1":{"name":"keyword.other.platform.os.swift"},"2":{"name":"constant.numeric.swift"}}},{"match":"(\\*)\\s*(.*?)(?=[,)])","captures":{"1":{"name":"keyword.other.platform.all.swift"},"2":{"name":"invalid.illegal.character-not-allowed-here.swift"}}},{"name":"invalid.illegal.character-not-allowed-here.swift","match":"[^\\s,)]+"}],"beginCaptures":{"1":{"name":"support.function.availability-condition.swift"},"2":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},"closure-parameter":{"name":"variable.language.closure-parameter.swift","match":"\\$[0-9]+"},"compound-name":{"match":"(?x)\n\t\t\t\t\t\t((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq1\u003e)) \t\t# function name\n\t\t\t\t\t\t\\(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq2\u003e)) \t# argument label\n\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t\t\t\t\t# colon\n\t\t\t\t\t\t\t\t)+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\\)\n\t\t\t\t\t","captures":{"1":{"name":"entity.name.function.compound-name.swift"},"2":{"name":"punctuation.definition.entity.swift"},"3":{"name":"punctuation.definition.entity.swift"},"4":{"patterns":[{"name":"entity.name.function.compound-name.swift","match":"(?\u003cq\u003e`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e):","captures":{"1":{"name":"punctuation.definition.entity.swift"},"2":{"name":"punctuation.definition.entity.swift"}}}]}}},"expression-element-list":{"patterns":[{"include":"#comments"},{"begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"support.function.any-method.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}}},{"begin":"(?![,)\\]])(?=\\S)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}]}]},"function-call-expression":{"patterns":[{"name":"meta.function-call.swift","begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(\\()","end":"\\)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"support.function.any-method.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}},{"name":"meta.function-call.swift","begin":"(?\u003c=[`\\])}\u003e\\p{L}_\\p{N}\\p{M}])\\s*(\\()","end":"\\)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}}]},"member-reference":{"patterns":[{"match":"(?\u003c=\\.)((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"1":{"name":"variable.other.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}}}]},"parenthesized-expression":{"begin":"\\(","end":"(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"0":{"name":"punctuation.section.tuple.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.section.tuple.end.swift"},"2":{"patterns":[{"name":"invalid.illegal.rethrows-only-allowed-on-function-declarations.swift","match":"\\brethrows\\b"},{"include":"#async-throws"}]}}},"subscript-expression":{"name":"meta.subscript-expression.swift","begin":"(?\u003c=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)","end":"\\]","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}}}},"keywords":{"patterns":[{"name":"keyword.control.branch.swift","match":"(?\u003c!\\.)\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\b"},{"name":"keyword.control.transfer.swift","match":"(?\u003c!\\.)\\b(?:continue|break|fallthrough|return)\\b"},{"name":"keyword.control.loop.swift","match":"(?\u003c!\\.)\\b(?:while|for|in)\\b"},{"match":"(?\u003c!\\.)\\b(repeat)\\b(\\s*)","captures":{"1":{"name":"keyword.control.loop.swift"},"2":{"name":"punctuation.whitespace.trailing.repeat.swift"}}},{"name":"keyword.control.defer.swift","match":"(?\u003c!\\.)\\bdefer\\b"},{"match":"(?\u003c!\\.)\\b(?:(await\\s+try)|(await)\\b)","captures":{"1":{"name":"invalid.illegal.try-must-precede-await.swift"},"2":{"name":"keyword.control.await.swift"}}},{"name":"keyword.control.exception.swift","match":"(?\u003c!\\.)\\b(?:catch|throws?|rethrows|try)\\b|\\btry[?!]\\B"},{"match":"(?\u003c!\\.)\\b(do)\\b(\\s*)","captures":{"1":{"name":"keyword.control.exception.swift"},"2":{"name":"punctuation.whitespace.trailing.do.swift"}}},{"match":"(?\u003c!\\.)\\b(?:(?:(async)|(nonisolated))\\s+)?(let|var)\\b","captures":{"1":{"name":"keyword.control.async.swift"},"2":{"name":"storage.modifier.swift"},"3":{"name":"keyword.other.declaration-specifier.swift"}}},{"name":"keyword.other.declaration-specifier.swift","match":"(?\u003c!\\.)\\b(?:associatedtype|operator|typealias)\\b"},{"name":"storage.type.$1.swift","match":"(?\u003c!\\.)\\b(class|enum|extension|precedencegroup|protocol|struct|actor)\\b"},{"name":"storage.modifier.swift","match":"(?\u003c!\\.)\\b(?:inout|static|final|lazy|mutating|nonmutating|optional|indirect|required|override|dynamic|convenience|infix|prefix|postfix)\\b"},{"name":"storage.type.function.swift","match":"\\binit[?!]|\\binit\\b|(?\u003c!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b"},{"name":"keyword.other.declaration-specifier.accessibility.swift","match":"(?\u003c!\\.)\\b(?:fileprivate|private|internal|public|open)\\b"},{"name":"keyword.other.capture-specifier.swift","match":"(?\u003c!\\.)\\bunowned\\((?:safe|unsafe)\\)|(?\u003c!\\.)\\b(?:weak|unowned)\\b"},{"match":"(?\u003c=\\.)(?:(dynamicType|self)|(Protocol|Type))\\b","captures":{"1":{"name":"keyword.operator.type.swift"},"2":{"name":"keyword.operator.type.metatype.swift"}}},{"name":"variable.language.swift","match":"(?\u003c!\\.)\\b(?:super|self|Self)\\b"},{"name":"support.variable.swift","match":"\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\b|\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\b"},{"name":"keyword.control.import.swift","match":"(?\u003c!\\.)\\bimport\\b"}]},"literals":{"patterns":[{"include":"#boolean"},{"include":"#numeric"},{"include":"#string"},{"name":"constant.language.nil.swift","match":"\\bnil\\b"},{"name":"support.function.object-literal.swift","match":"\\B#(colorLiteral|imageLiteral|fileLiteral)\\b"},{"name":"support.function.key-path.swift","match":"\\B#keyPath\\b"},{"begin":"\\B(#selector)(\\()(?:\\s*(getter|setter)\\s*(:))?","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"support.function.selector-reference.swift"},"2":{"name":"punctuation.definition.arguments.begin.swift"},"3":{"name":"support.variable.parameter.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}}}],"repository":{"boolean":{"name":"constant.language.boolean.swift","match":"\\b(true|false)\\b"},"numeric":{"patterns":[{"name":"constant.numeric.float.decimal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*(?=\\.[0-9]|[eE])(?:\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\b(?!\\.[0-9])"},{"name":"constant.numeric.float.hexadecimal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.float.invalid-exponent.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\w*)\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.float.missing-exponent.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\.[0-9][\\w.]*"},{"name":"invalid.illegal.numeric.float.missing-leading-zero.swift","match":"(?\u003c=\\s|^)\\-?\\.[0-9][\\w.]*"},{"name":"invalid.illegal.numeric.leading-underscore.swift","match":"(\\B\\-|\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\w+)?[\\w.]+"},{"match":"(?\u003c=[\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9]+\\b"},{"name":"constant.numeric.integer.binary.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0b[01][01_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.octal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0o[0-7][0-7_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.decimal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.hexadecimal.swift","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.other.swift","match":"(\\B\\-|\\b)[0-9][\\w.]*"}]},"string":{"patterns":[{"name":"string.quoted.double.block.swift","begin":"\"\"\"","end":"\"\"\"(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.swift","match":"\\G.+(?=\"\"\")|\\G.+"},{"name":"constant.character.escape.newline.swift","match":"\\\\\\s*\\n"},{"include":"#string-guts"},{"name":"invalid.illegal.content-before-closing-delimiter.swift","match":"\\S((?!\\\\\\().)*(?=\"\"\")"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.block.raw.swift","begin":"#\"\"\"","end":"\"\"\"#(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.swift","match":"\\G.+(?=\"\"\")|\\G.+"},{"name":"constant.character.escape.newline.swift","match":"\\\\#\\s*\\n"},{"include":"#raw-string-guts"},{"name":"invalid.illegal.content-before-closing-delimiter.swift","match":"\\S((?!\\\\#\\().)*(?=\"\"\")"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.block.raw.swift","begin":"(##+)\"\"\"","end":"\"\"\"\\1(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.swift","match":"\\G.+(?=\"\"\")|\\G.+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.single-line.swift","begin":"\"","end":"\"(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.swift","match":"\\r|\\n"},{"include":"#string-guts"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.single-line.raw.swift","begin":"(##+)\"","end":"\"\\1(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.swift","match":"\\r|\\n"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.raw.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.raw.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}},{"name":"string.quoted.double.single-line.raw.swift","begin":"#\"","end":"\"#(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.swift","match":"\\r|\\n"},{"include":"#raw-string-guts"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.raw.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.raw.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}}}],"repository":{"raw-string-guts":{"patterns":[{"name":"constant.character.escape.swift","match":"\\\\#[0\\\\tnr\"']"},{"name":"constant.character.escape.unicode.swift","match":"\\\\#u\\{[0-9a-fA-F]{1,8}\\}"},{"name":"meta.embedded.line.swift","contentName":"source.swift","begin":"\\\\#\\(","end":"(\\))","patterns":[{"include":"$self"},{"begin":"\\(","end":"\\)"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.swift"},"1":{"name":"source.swift"}}},{"name":"invalid.illegal.escape-not-recognized","match":"\\\\#."}]},"string-guts":{"patterns":[{"name":"constant.character.escape.swift","match":"\\\\[0\\\\tnr\"']"},{"name":"constant.character.escape.unicode.swift","match":"\\\\u\\{[0-9a-fA-F]{1,8}\\}"},{"name":"meta.embedded.line.swift","contentName":"source.swift","begin":"\\\\\\(","end":"(\\))","patterns":[{"include":"$self"},{"begin":"\\(","end":"\\)"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.swift"},"1":{"name":"source.swift"}}},{"name":"invalid.illegal.escape-not-recognized","match":"\\\\."}]}}}}},"operators":{"patterns":[{"name":"keyword.operator.type-casting.swift","match":"\\b(is\\b|as([!?]\\B|\\b))"},{"begin":"(?x)\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\g\u003coph\u003e\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t","end":"(?!\\G)","patterns":[{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.increment-or-decrement.swift","match":"\\G(\\+\\+|\\-\\-)$"},{"name":"keyword.operator.arithmetic.unary.swift","match":"\\G(\\+|\\-)$"},{"name":"keyword.operator.logical.not.swift","match":"\\G!$"},{"name":"keyword.operator.bitwise.not.swift","match":"\\G~$"},{"name":"keyword.operator.custom.prefix.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.increment-or-decrement.swift","match":"\\G(\\+\\+|\\-\\-)$"},{"name":"keyword.operator.increment-or-decrement.swift","match":"\\G!$"},{"name":"keyword.operator.custom.postfix.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.assignment.swift","match":"\\G=$"},{"name":"keyword.operator.assignment.compound.swift","match":"\\G(\\+|\\-|\\*|/|%|\u003c\u003c|\u003e\u003e|\u0026|\\^|\\||\u0026\u0026|\\|\\|)=$"},{"name":"keyword.operator.arithmetic.swift","match":"\\G(\\+|\\-|\\*|/)$"},{"name":"keyword.operator.arithmetic.overflow.swift","match":"\\G\u0026(\\+|\\-|\\*)$"},{"name":"keyword.operator.arithmetic.remainder.swift","match":"\\G%$"},{"name":"keyword.operator.comparison.swift","match":"\\G(==|!=|\u003e|\u003c|\u003e=|\u003c=|~=)$"},{"name":"keyword.operator.coalescing.swift","match":"\\G\\?\\?$"},{"name":"keyword.operator.logical.swift","match":"\\G(\u0026\u0026|\\|\\|)$"},{"name":"keyword.operator.bitwise.swift","match":"\\G(\u0026|\\||\\^|\u003c\u003c|\u003e\u003e)$"},{"name":"keyword.operator.bitwise.swift","match":"\\G(===|!==)$"},{"name":"keyword.operator.ternary.swift","match":"\\G\\?$"},{"name":"keyword.operator.custom.infix.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.custom.prefix.dot.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.custom.postfix.dot.swift","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.range.swift","match":"\\G\\.\\.[.\u003c]$"},{"name":"keyword.operator.custom.infix.dot.swift","match":".+"}]}}}]},{"name":"keyword.operator.ternary.swift","match":":"}]},"root":{"patterns":[{"include":"#compiler-control"},{"include":"#declarations"},{"include":"#expressions"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"TalonScript","scopeName":"source.talon","patterns":[{"include":"#body-header"},{"include":"#header"},{"include":"#body-noheader"},{"include":"#comment"},{"include":"#settings"}],"repository":{"action":{"name":"variable.parameter.talon","begin":"([a-zA-Z0-9._]+)(\\()","end":"(\\))","patterns":[{"include":"#action"},{"include":"#qstring-long"},{"include":"#qstring"},{"include":"#argsep"},{"include":"#number"},{"include":"#operator"},{"include":"#varname"}],"beginCaptures":{"1":{"name":"entity.name.function.talon","patterns":[{"name":"punctuation.separator.talon","match":"\\."}]},"2":{"name":"punctuation.definition.parameters.begin.talon"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.talon"}}},"action-action":{"name":"entity.name.function.talon","match":"action(\\()(.*)(\\))","captures":{"1":{"name":"punctuation.definition.parameters.begin.talon"},"2":{"name":"variable.parameter.talon"},"3":{"name":"punctuation.definition.parameters.end.talon"}}},"action-key":{"name":"entity.name.function.talon","match":"key(\\()(.*)(\\))","captures":{"1":{"name":"punctuation.definition.parameters.begin.talon"},"2":{"name":"variable.parameter.talon","patterns":[{"include":"#key-prefixes"},{"include":"#key-mods"},{"include":"#keystring"}]},"3":{"name":"punctuation.definition.parameters.key.talon"}}},"argsep":{"name":"punctuation.separator.talon","match":","},"assignment":{"match":"(\\S*)(\\s?=\\s?)(.*)","captures":{"1":{"name":"variable.other.talon"},"2":{"name":"keyword.operator.talon"},"3":{"name":"variable.other.talon","patterns":[{"include":"#comment"},{"include":"#expression"}]}}},"body-header":{"begin":"^-$","end":"(?=not)possible","patterns":[{"include":"#body-noheader"}]},"body-noheader":{"patterns":[{"include":"#comment"},{"include":"#rule-definition"}]},"capture":{"name":"variable.parameter.talon","match":"(\\\u003c[a-zA-Z0-9._]+\\\u003e)"},"comment":{"name":"comment.line.number-sign.talon","match":"(\\s*#.*)$"},"context":{"match":"(.*): (.*)","captures":{"1":{"name":"entity.name.tag.talon","patterns":[{"name":"keyword.operator.talon","match":"(and |or )"}]},"2":{"name":"entity.name.type.talon","patterns":[{"include":"#comment"},{"include":"#regexp"}]}}},"expression":{"patterns":[{"include":"#qstring-long"},{"include":"#action-key"},{"include":"#action"},{"include":"#operator"},{"include":"#number"},{"include":"#qstring"},{"include":"#varname"}]},"fstring":{"name":"constant.character.format.placeholder.talon","match":"({.+?})"},"header":{"begin":"(?=^app:|title:|os:|tag:)","end":"(?=^-$)","patterns":[{"include":"#comment"},{"include":"#context"}]},"key-mods":{"name":"keyword.operator.talon","match":"(:)(up|down|\\d+)","captures":{"1":{"name":"keyword.operator.talon"},"2":{"name":"keyword.control.talon"}}},"key-prefixes":{"match":"(ctrl|shift|cmd|alt|win|super)(-)","captures":{"1":{"name":"keyword.control.talon"},"2":{"name":"keyword.operator.talon"}}},"keystring":{"name":"string.quoted.double.talon","begin":"(\"|')","end":"(\\1)|$","patterns":[{"include":"#string-body"},{"include":"#key-mods"},{"include":"#key-prefixes"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.talon"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.talon"}}},"list":{"name":"string.interpolated.talon","match":"({[a-zA-Z0-9._]+?})"},"number":{"name":"constant.numeric.talon","match":"(?\u003c=\\b)\\d+(\\.\\d+)?"},"operator":{"name":"keyword.operator.talon","match":"\\s(\\+|-|\\*|/|or)\\s"},"qstring":{"name":"string.quoted.double.talon","begin":"(\"|')","end":"(\\1)|$","patterns":[{"include":"#string-body"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.talon"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.talon"}}},"qstring-long":{"name":"string.quoted.double.talon","begin":"(\"\"\"|''')","end":"(\\1)","patterns":[{"include":"#string-body"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.talon"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.talon"}}},"regexp":{"name":"string.regexp.talon","begin":"(/)","end":"(/)","patterns":[{"name":"support.other.match.any.regexp","match":"\\."},{"name":"support.other.match.end.regexp","match":"\\$"},{"name":"support.other.match.begin.regexp","match":"\\^"},{"name":"constant.character.escape.talon","match":"\\\\\\.|\\\\\\*|\\\\\\^|\\\\\\$|\\\\\\+|\\\\\\?"},{"name":"constant.other.set.regexp","match":"\\[(\\\\\\]|[^\\]])*\\]"},{"name":"keyword.operator.quantifier.regexp","match":"\\*|\\+|\\?"}]},"rule-definition":{"begin":"^([^\\s].+?):","end":"(?=^[^\\s#])","patterns":[{"include":"#statement"}],"beginCaptures":{"1":{"name":"entity.name.tag.talon","patterns":[{"include":"#rule-specials"},{"name":"string.regexp.talon","match":"^\\^"},{"name":"string.regexp.talon","match":"\\$$"},{"include":"#action-key"},{"include":"#action-action"},{"include":"#capture"},{"include":"#list"}]}}},"rule-specials":{"match":"(settings|tag)(\\()(\\))","captures":{"1":{"name":"entity.name.function.talon"},"2":{"name":"punctuation.definition.parameters.begin.talon"},"3":{"name":"punctuation.definition.parameters.end.talon"}}},"statement":{"patterns":[{"include":"#comment"},{"include":"#qstring-long"},{"include":"#action-key"},{"include":"#action"},{"include":"#qstring"},{"include":"#assignment"}]},"string-body":{"patterns":[{"name":"string.quoted.double.talon","match":"{{|}}"},{"name":"constant.character.escape.python","match":"\\\\\\\\|\\\\n|\\\\t|\\\\r|\\\\\"|\\\\'"},{"include":"#fstring"}]},"varname":{"name":"variable.parameter.talon","match":"([a-zA-Z0-9._])(_(list|\\d+))?","captures":{"2":{"name":"constant.numeric.talon","patterns":[{"name":"keyword.operator.talon","match":"_"}]}}}}}