tree-sitter-wasm 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -0
  3. package/index.d.ts +120 -0
  4. package/index.js +48 -0
  5. package/manifest.json +677 -0
  6. package/out/ada/folds.scm +15 -0
  7. package/out/ada/highlights.scm +196 -0
  8. package/out/ada/injections.scm +2 -0
  9. package/out/ada/locals.scm +33 -0
  10. package/out/ada/textobjects.scm +23 -0
  11. package/out/ada/tree-sitter-ada.wasm +0 -0
  12. package/out/angular/folds.scm +1 -0
  13. package/out/angular/highlights.scm +178 -0
  14. package/out/angular/indents.scm +16 -0
  15. package/out/angular/injections.scm +1 -0
  16. package/out/angular/locals.scm +1 -0
  17. package/out/angular/tree-sitter-angular.wasm +0 -0
  18. package/out/arduino/folds.scm +1 -0
  19. package/out/arduino/highlights.scm +48 -0
  20. package/out/arduino/indents.scm +1 -0
  21. package/out/arduino/injections.scm +1 -0
  22. package/out/arduino/locals.scm +1 -0
  23. package/out/arduino/tags.scm +5 -0
  24. package/out/arduino/tree-sitter-arduino.wasm +0 -0
  25. package/out/asm/highlights.scm +66 -0
  26. package/out/asm/injections.scm +5 -0
  27. package/out/asm/tree-sitter-asm.wasm +0 -0
  28. package/out/astro/folds.scm +1 -0
  29. package/out/astro/highlights.scm +12 -0
  30. package/out/astro/indents.scm +1 -0
  31. package/out/astro/injections.scm +27 -0
  32. package/out/astro/locals.scm +1 -0
  33. package/out/astro/tree-sitter-astro.wasm +0 -0
  34. package/out/awk/highlights.scm +122 -0
  35. package/out/awk/injections.scm +17 -0
  36. package/out/awk/tree-sitter-awk.wasm +0 -0
  37. package/out/bash/folds.scm +9 -0
  38. package/out/bash/highlights.scm +56 -0
  39. package/out/bash/indents.scm +32 -0
  40. package/out/bash/injections.scm +90 -0
  41. package/out/bash/locals.scm +14 -0
  42. package/out/bash/tree-sitter-bash.wasm +0 -0
  43. package/out/bibtex/folds.scm +1 -0
  44. package/out/bibtex/highlights.scm +47 -0
  45. package/out/bibtex/indents.scm +8 -0
  46. package/out/bibtex/injections.scm +2 -0
  47. package/out/bibtex/locals.scm +0 -0
  48. package/out/bibtex/tags.scm +0 -0
  49. package/out/bibtex/tree-sitter-bibtex.wasm +0 -0
  50. package/out/c/folds.scm +23 -0
  51. package/out/c/highlights.scm +81 -0
  52. package/out/c/indents.scm +99 -0
  53. package/out/c/injections.scm +128 -0
  54. package/out/c/locals.scm +67 -0
  55. package/out/c/tags.scm +9 -0
  56. package/out/c/tree-sitter-c.wasm +0 -0
  57. package/out/c_sharp/folds.scm +17 -0
  58. package/out/c_sharp/highlights.scm +213 -0
  59. package/out/c_sharp/injections.scm +2 -0
  60. package/out/c_sharp/locals.scm +42 -0
  61. package/out/c_sharp/tags.scm +23 -0
  62. package/out/c_sharp/tree-sitter-c_sharp.wasm +0 -0
  63. package/out/cairo/folds.scm +26 -0
  64. package/out/cairo/highlights.scm +372 -0
  65. package/out/cairo/indents.scm +134 -0
  66. package/out/cairo/injections.scm +3 -0
  67. package/out/cairo/locals.scm +28 -0
  68. package/out/cairo/textobjects.scm +79 -0
  69. package/out/cairo/tree-sitter-cairo.wasm +0 -0
  70. package/out/clojure/folds.scm +2 -0
  71. package/out/clojure/highlights.scm +29 -0
  72. package/out/clojure/injections.scm +2 -0
  73. package/out/clojure/locals.scm +1 -0
  74. package/out/clojure/tree-sitter-clojure.wasm +0 -0
  75. package/out/cmake/folds.scm +8 -0
  76. package/out/cmake/highlights.scm +221 -0
  77. package/out/cmake/indents.scm +26 -0
  78. package/out/cmake/injections.scm +5 -0
  79. package/out/cmake/tree-sitter-cmake.wasm +0 -0
  80. package/out/comment/highlights.scm +49 -0
  81. package/out/comment/tree-sitter-comment.wasm +0 -0
  82. package/out/commonlisp/folds.scm +2 -0
  83. package/out/commonlisp/highlights.scm +314 -0
  84. package/out/commonlisp/injections.scm +5 -0
  85. package/out/commonlisp/locals.scm +109 -0
  86. package/out/commonlisp/tags.scm +122 -0
  87. package/out/commonlisp/tree-sitter-commonlisp.wasm +0 -0
  88. package/out/cpp/folds.scm +14 -0
  89. package/out/cpp/highlights.scm +70 -0
  90. package/out/cpp/indents.scm +8 -0
  91. package/out/cpp/injections.scm +3 -0
  92. package/out/cpp/locals.scm +78 -0
  93. package/out/cpp/tags.scm +15 -0
  94. package/out/cpp/tree-sitter-cpp.wasm +0 -0
  95. package/out/css/folds.scm +10 -0
  96. package/out/css/highlights.scm +76 -0
  97. package/out/css/indents.scm +11 -0
  98. package/out/css/injections.scm +2 -0
  99. package/out/css/tree-sitter-css.wasm +0 -0
  100. package/out/csv/highlights.scm +5 -0
  101. package/out/csv/tree-sitter-csv.wasm +0 -0
  102. package/out/cuda/folds.scm +1 -0
  103. package/out/cuda/highlights.scm +17 -0
  104. package/out/cuda/indents.scm +1 -0
  105. package/out/cuda/injections.scm +1 -0
  106. package/out/cuda/locals.scm +1 -0
  107. package/out/cuda/tree-sitter-cuda.wasm +0 -0
  108. package/out/d/folds.scm +4 -0
  109. package/out/d/helix-highlights.scm +241 -0
  110. package/out/d/helix-indents.scm +17 -0
  111. package/out/d/helix-injections.scm +2 -0
  112. package/out/d/helix-textobjects.scm +9 -0
  113. package/out/d/highlights.scm +259 -0
  114. package/out/d/indents.scm +17 -0
  115. package/out/d/injections.scm +2 -0
  116. package/out/d/locals.scm +79 -0
  117. package/out/d/nova-folds.scm +6 -0
  118. package/out/d/nova-highlights.scm +283 -0
  119. package/out/d/nova-symbols.scm +23 -0
  120. package/out/d/tags.scm +28 -0
  121. package/out/d/textobjects.scm +9 -0
  122. package/out/d/tree-sitter-d.wasm +0 -0
  123. package/out/dart/folds.scm +8 -0
  124. package/out/dart/highlights.scm +224 -0
  125. package/out/dart/indents.scm +49 -0
  126. package/out/dart/injections.scm +2 -0
  127. package/out/dart/locals.scm +32 -0
  128. package/out/dart/tree-sitter-dart.wasm +0 -0
  129. package/out/desktop/folds.scm +1 -0
  130. package/out/desktop/highlights.scm +91 -0
  131. package/out/desktop/injections.scm +8 -0
  132. package/out/desktop/tree-sitter-desktop.wasm +0 -0
  133. package/out/devicetree/folds.scm +1 -0
  134. package/out/devicetree/highlights.scm +78 -0
  135. package/out/devicetree/indents.scm +12 -0
  136. package/out/devicetree/injections.scm +2 -0
  137. package/out/devicetree/locals.scm +4 -0
  138. package/out/devicetree/tree-sitter-devicetree.wasm +0 -0
  139. package/out/diff/folds.scm +5 -0
  140. package/out/diff/highlights.scm +49 -0
  141. package/out/diff/injections.scm +2 -0
  142. package/out/diff/tree-sitter-diff.wasm +0 -0
  143. package/out/dockerfile/highlights.scm +58 -0
  144. package/out/dockerfile/injections.scm +12 -0
  145. package/out/dockerfile/tree-sitter-dockerfile.wasm +0 -0
  146. package/out/dtd/folds.scm +4 -0
  147. package/out/dtd/highlights.scm +148 -0
  148. package/out/dtd/injections.scm +2 -0
  149. package/out/dtd/locals.scm +11 -0
  150. package/out/dtd/tree-sitter-dtd.wasm +0 -0
  151. package/out/editorconfig/folds.scm +1 -0
  152. package/out/editorconfig/highlights.scm +35 -0
  153. package/out/editorconfig/injections.scm +2 -0
  154. package/out/editorconfig/tree-sitter-editorconfig.wasm +0 -0
  155. package/out/elisp/highlights.scm +72 -0
  156. package/out/elisp/tags.scm +5 -0
  157. package/out/elisp/tree-sitter-elisp.wasm +0 -0
  158. package/out/elixir/folds.scm +10 -0
  159. package/out/elixir/highlights.scm +223 -0
  160. package/out/elixir/indents.scm +25 -0
  161. package/out/elixir/injections.scm +55 -0
  162. package/out/elixir/locals.scm +200 -0
  163. package/out/elixir/tags.scm +54 -0
  164. package/out/elixir/tree-sitter-elixir.wasm +0 -0
  165. package/out/elm/folds.scm +14 -0
  166. package/out/elm/highlights.scm +76 -0
  167. package/out/elm/injections.scm +4 -0
  168. package/out/elm/locals.scm +15 -0
  169. package/out/elm/tags.scm +19 -0
  170. package/out/elm/tree-sitter-elm.wasm +0 -0
  171. package/out/embedded_template/highlights.scm +12 -0
  172. package/out/embedded_template/injections-ejs.scm +7 -0
  173. package/out/embedded_template/injections-erb.scm +7 -0
  174. package/out/embedded_template/injections-etlua.scm +7 -0
  175. package/out/embedded_template/injections.scm +7 -0
  176. package/out/embedded_template/tree-sitter-embedded_template.wasm +0 -0
  177. package/out/erlang/folds.scm +9 -0
  178. package/out/erlang/highlights.scm +230 -0
  179. package/out/erlang/injections.scm +2 -0
  180. package/out/erlang/tree-sitter-erlang.wasm +0 -0
  181. package/out/fish/folds.scm +8 -0
  182. package/out/fish/highlights.scm +61 -0
  183. package/out/fish/indents.scm +18 -0
  184. package/out/fish/injections.scm +2 -0
  185. package/out/fish/locals.scm +19 -0
  186. package/out/fish/tree-sitter-fish.wasm +0 -0
  187. package/out/gdscript/folds.scm +26 -0
  188. package/out/gdscript/highlights.scm +635 -0
  189. package/out/gdscript/indents.scm +78 -0
  190. package/out/gdscript/injections.scm +2 -0
  191. package/out/gdscript/locals.scm +121 -0
  192. package/out/gdscript/tree-sitter-gdscript.wasm +0 -0
  193. package/out/gdshader/highlights.scm +256 -0
  194. package/out/gdshader/injections.scm +2 -0
  195. package/out/gdshader/locals.scm +24 -0
  196. package/out/gdshader/tags.scm +13 -0
  197. package/out/gdshader/tree-sitter-gdshader.wasm +0 -0
  198. package/out/git_config/folds.scm +2 -0
  199. package/out/git_config/highlights.scm +28 -0
  200. package/out/git_config/injections.scm +69 -0
  201. package/out/git_config/tree-sitter-git_config.wasm +0 -0
  202. package/out/git_rebase/highlights.scm +36 -0
  203. package/out/git_rebase/injections.scm +8 -0
  204. package/out/git_rebase/tree-sitter-git_rebase.wasm +0 -0
  205. package/out/gitattributes/highlights.scm +52 -0
  206. package/out/gitattributes/injections.scm +2 -0
  207. package/out/gitattributes/locals.scm +8 -0
  208. package/out/gitattributes/tree-sitter-gitattributes.wasm +0 -0
  209. package/out/gitignore/highlights.scm +36 -0
  210. package/out/gitignore/injections.scm +2 -0
  211. package/out/gitignore/tree-sitter-gitignore.wasm +0 -0
  212. package/out/gleam/folds.scm +7 -0
  213. package/out/gleam/highlights.scm +137 -0
  214. package/out/gleam/indents.scm +28 -0
  215. package/out/gleam/injections.scm +3 -0
  216. package/out/gleam/locals.scm +17 -0
  217. package/out/gleam/tags.scm +41 -0
  218. package/out/gleam/tree-sitter-gleam.wasm +0 -0
  219. package/out/glsl/folds.scm +1 -0
  220. package/out/glsl/highlights.scm +115 -0
  221. package/out/glsl/indents.scm +1 -0
  222. package/out/glsl/injections.scm +1 -0
  223. package/out/glsl/locals.scm +1 -0
  224. package/out/glsl/tree-sitter-glsl.wasm +0 -0
  225. package/out/go/folds.scm +19 -0
  226. package/out/go/highlights.scm +123 -0
  227. package/out/go/indents.scm +48 -0
  228. package/out/go/injections.scm +42 -0
  229. package/out/go/locals.scm +88 -0
  230. package/out/go/tags.scm +42 -0
  231. package/out/go/tree-sitter-go.wasm +0 -0
  232. package/out/godot_resource/folds.scm +1 -0
  233. package/out/godot_resource/highlights.scm +49 -0
  234. package/out/godot_resource/injections.scm +2 -0
  235. package/out/godot_resource/locals.scm +1 -0
  236. package/out/godot_resource/tree-sitter-godot_resource.wasm +0 -0
  237. package/out/graphql/highlights.scm +163 -0
  238. package/out/graphql/indents.scm +11 -0
  239. package/out/graphql/injections.scm +2 -0
  240. package/out/graphql/tree-sitter-graphql.wasm +0 -0
  241. package/out/groovy/folds.scm +6 -0
  242. package/out/groovy/highlights.scm +148 -0
  243. package/out/groovy/indents.scm +23 -0
  244. package/out/groovy/injections.scm +5 -0
  245. package/out/groovy/locals.scm +6 -0
  246. package/out/groovy/tree-sitter-groovy.wasm +0 -0
  247. package/out/haskell/folds.scm +6 -0
  248. package/out/haskell/highlights.scm +443 -0
  249. package/out/haskell/injections.scm +76 -0
  250. package/out/haskell/locals.scm +4 -0
  251. package/out/haskell/tree-sitter-haskell.wasm +0 -0
  252. package/out/hcl/folds.scm +6 -0
  253. package/out/hcl/highlights.scm +118 -0
  254. package/out/hcl/indents.scm +16 -0
  255. package/out/hcl/injections.scm +6 -0
  256. package/out/hcl/tree-sitter-hcl.wasm +0 -0
  257. package/out/html/folds.scm +5 -0
  258. package/out/html/highlights.scm +13 -0
  259. package/out/html/indents.scm +1 -0
  260. package/out/html/injections.scm +7 -0
  261. package/out/html/locals.scm +1 -0
  262. package/out/html/tree-sitter-html.wasm +0 -0
  263. package/out/ini/folds.scm +1 -0
  264. package/out/ini/highlights.scm +16 -0
  265. package/out/ini/injections.scm +3 -0
  266. package/out/ini/tree-sitter-ini.wasm +0 -0
  267. package/out/java/folds.scm +8 -0
  268. package/out/java/highlights.scm +149 -0
  269. package/out/java/indents.scm +40 -0
  270. package/out/java/injections.scm +31 -0
  271. package/out/java/locals.scm +100 -0
  272. package/out/java/tags.scm +20 -0
  273. package/out/java/tree-sitter-java.wasm +0 -0
  274. package/out/javascript/folds.scm +1 -0
  275. package/out/javascript/highlights-jsx.scm +8 -0
  276. package/out/javascript/highlights-params.scm +12 -0
  277. package/out/javascript/highlights.scm +204 -0
  278. package/out/javascript/indents.scm +1 -0
  279. package/out/javascript/injections.scm +31 -0
  280. package/out/javascript/locals.scm +23 -0
  281. package/out/javascript/tags.scm +99 -0
  282. package/out/javascript/tree-sitter-javascript.wasm +0 -0
  283. package/out/jq/highlights.scm +158 -0
  284. package/out/jq/injections.scm +23 -0
  285. package/out/jq/locals.scm +10 -0
  286. package/out/jq/tree-sitter-jq.wasm +0 -0
  287. package/out/json/folds.scm +5 -0
  288. package/out/json/highlights.scm +16 -0
  289. package/out/json/indents.scm +11 -0
  290. package/out/json/injections.scm +2 -0
  291. package/out/json/locals.scm +4 -0
  292. package/out/json/tree-sitter-json.wasm +0 -0
  293. package/out/julia/folds.scm +14 -0
  294. package/out/julia/highlights.scm +375 -0
  295. package/out/julia/indents.scm +52 -0
  296. package/out/julia/injections.scm +42 -0
  297. package/out/julia/locals.scm +71 -0
  298. package/out/julia/tree-sitter-julia.wasm +0 -0
  299. package/out/just/folds.scm +6 -0
  300. package/out/just/highlights.scm +139 -0
  301. package/out/just/indents.scm +14 -0
  302. package/out/just/injections.scm +44 -0
  303. package/out/just/locals.scm +35 -0
  304. package/out/just/tree-sitter-just.wasm +0 -0
  305. package/out/kdl/folds.scm +8 -0
  306. package/out/kdl/highlights.scm +58 -0
  307. package/out/kdl/indents.scm +7 -0
  308. package/out/kdl/injections.scm +4 -0
  309. package/out/kdl/locals.scm +10 -0
  310. package/out/kdl/tree-sitter-kdl.wasm +0 -0
  311. package/out/kotlin/folds.scm +13 -0
  312. package/out/kotlin/highlights.scm +380 -0
  313. package/out/kotlin/injections.scm +52 -0
  314. package/out/kotlin/locals.scm +78 -0
  315. package/out/kotlin/tree-sitter-kotlin.wasm +0 -0
  316. package/out/liquid/highlights.scm +119 -0
  317. package/out/liquid/injections.scm +22 -0
  318. package/out/liquid/tree-sitter-liquid.wasm +0 -0
  319. package/out/lua/folds.scm +12 -0
  320. package/out/lua/highlights.scm +201 -0
  321. package/out/lua/indents.scm +47 -0
  322. package/out/lua/injections.scm +12 -0
  323. package/out/lua/locals.scm +32 -0
  324. package/out/lua/tags.scm +36 -0
  325. package/out/lua/tree-sitter-lua.wasm +0 -0
  326. package/out/make/folds.scm +6 -0
  327. package/out/make/highlights.scm +172 -0
  328. package/out/make/injections.scm +5 -0
  329. package/out/make/tree-sitter-make.wasm +0 -0
  330. package/out/markdown/folds.scm +12 -0
  331. package/out/markdown/highlights.scm +52 -0
  332. package/out/markdown/indents.scm +1 -0
  333. package/out/markdown/injections.scm +12 -0
  334. package/out/markdown/tree-sitter-markdown.wasm +0 -0
  335. package/out/markdown_inline/highlights.scm +37 -0
  336. package/out/markdown_inline/injections.scm +2 -0
  337. package/out/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
  338. package/out/matlab/folds.scm +13 -0
  339. package/out/matlab/highlights.scm +218 -0
  340. package/out/matlab/indents.scm +40 -0
  341. package/out/matlab/injections.scm +2 -0
  342. package/out/matlab/locals.scm +33 -0
  343. package/out/matlab/tree-sitter-matlab.wasm +0 -0
  344. package/out/nginx/folds.scm +1 -0
  345. package/out/nginx/highlights.scm +59 -0
  346. package/out/nginx/injections.scm +2 -0
  347. package/out/nginx/tree-sitter-nginx.wasm +0 -0
  348. package/out/nim/folds.scm +41 -0
  349. package/out/nim/highlights.scm +186 -0
  350. package/out/nim/injections.scm +79 -0
  351. package/out/nim/locals.scm +328 -0
  352. package/out/nim/tree-sitter-nim.wasm +0 -0
  353. package/out/nix/folds.scm +11 -0
  354. package/out/nix/highlights.scm +99 -0
  355. package/out/nix/indents.scm +75 -0
  356. package/out/nix/injections.scm +39 -0
  357. package/out/nix/locals.scm +33 -0
  358. package/out/nix/tags.scm +16 -0
  359. package/out/nix/tree-sitter-nix.wasm +0 -0
  360. package/out/objc/folds.scm +20 -0
  361. package/out/objc/highlights.scm +216 -0
  362. package/out/objc/indents.scm +1 -0
  363. package/out/objc/injections.scm +10 -0
  364. package/out/objc/locals.scm +1 -0
  365. package/out/objc/tree-sitter-objc.wasm +0 -0
  366. package/out/ocaml/folds.scm +30 -0
  367. package/out/ocaml/highlights.scm +148 -0
  368. package/out/ocaml/indents.scm +77 -0
  369. package/out/ocaml/injections.scm +2 -0
  370. package/out/ocaml/locals.scm +24 -0
  371. package/out/ocaml/tags.scm +170 -0
  372. package/out/ocaml/tree-sitter-ocaml.wasm +0 -0
  373. package/out/ocaml_interface/folds.scm +1 -0
  374. package/out/ocaml_interface/highlights.scm +148 -0
  375. package/out/ocaml_interface/indents.scm +1 -0
  376. package/out/ocaml_interface/injections.scm +1 -0
  377. package/out/ocaml_interface/locals.scm +24 -0
  378. package/out/ocaml_interface/tags.scm +170 -0
  379. package/out/ocaml_interface/tree-sitter-ocaml_interface.wasm +0 -0
  380. package/out/ocaml_type/highlights.scm +148 -0
  381. package/out/ocaml_type/locals.scm +24 -0
  382. package/out/ocaml_type/tags.scm +170 -0
  383. package/out/ocaml_type/tree-sitter-ocaml_type.wasm +0 -0
  384. package/out/perl/folds.scm +27 -0
  385. package/out/perl/highlights.scm +162 -0
  386. package/out/perl/injections.scm +14 -0
  387. package/out/perl/matchup.scm +30 -0
  388. package/out/perl/tree-sitter-perl.wasm +0 -0
  389. package/out/php/folds.scm +1 -0
  390. package/out/php/highlights.scm +203 -0
  391. package/out/php/indents.scm +1 -0
  392. package/out/php/injections-text.scm +3 -0
  393. package/out/php/injections.scm +10 -0
  394. package/out/php/locals.scm +1 -0
  395. package/out/php/tags.scm +40 -0
  396. package/out/php/tree-sitter-php.wasm +0 -0
  397. package/out/php_only/folds.scm +19 -0
  398. package/out/php_only/highlights.scm +203 -0
  399. package/out/php_only/indents.scm +68 -0
  400. package/out/php_only/injections-text.scm +3 -0
  401. package/out/php_only/injections.scm +10 -0
  402. package/out/php_only/locals.scm +84 -0
  403. package/out/php_only/tags.scm +40 -0
  404. package/out/php_only/tree-sitter-php_only.wasm +0 -0
  405. package/out/powershell/folds.scm +13 -0
  406. package/out/powershell/highlights.scm +128 -0
  407. package/out/powershell/indents.scm +41 -0
  408. package/out/powershell/injections.scm +27 -0
  409. package/out/powershell/locals.scm +85 -0
  410. package/out/powershell/tree-sitter-powershell.wasm +0 -0
  411. package/out/prisma/folds.scm +7 -0
  412. package/out/prisma/highlights.scm +39 -0
  413. package/out/prisma/injections.scm +5 -0
  414. package/out/prisma/tree-sitter-prisma.wasm +0 -0
  415. package/out/proto/folds.scm +9 -0
  416. package/out/proto/highlights.scm +151 -0
  417. package/out/proto/indents.scm +11 -0
  418. package/out/proto/injections.scm +2 -0
  419. package/out/proto/tree-sitter-proto.wasm +0 -0
  420. package/out/psv/highlights.scm +5 -0
  421. package/out/psv/tree-sitter-psv.wasm +0 -0
  422. package/out/python/folds.scm +28 -0
  423. package/out/python/highlights.scm +137 -0
  424. package/out/python/indents.scm +213 -0
  425. package/out/python/injections.scm +30 -0
  426. package/out/python/locals.scm +124 -0
  427. package/out/python/tags.scm +14 -0
  428. package/out/python/tree-sitter-python.wasm +0 -0
  429. package/out/qmljs/folds.scm +8 -0
  430. package/out/qmljs/highlights.scm +61 -0
  431. package/out/qmljs/injections.scm +1 -0
  432. package/out/qmljs/locals.scm +6 -0
  433. package/out/qmljs/tree-sitter-qmljs.wasm +0 -0
  434. package/out/query/folds.scm +6 -0
  435. package/out/query/highlights.scm +102 -0
  436. package/out/query/indents.scm +25 -0
  437. package/out/query/injections.scm +28 -0
  438. package/out/query/locals.scm +21 -0
  439. package/out/query/tree-sitter-query.wasm +0 -0
  440. package/out/r/highlights.scm +112 -0
  441. package/out/r/indents.scm +33 -0
  442. package/out/r/injections.scm +2 -0
  443. package/out/r/locals.scm +18 -0
  444. package/out/r/tags.scm +21 -0
  445. package/out/r/tree-sitter-r.wasm +0 -0
  446. package/out/racket/folds.scm +2 -0
  447. package/out/racket/highlights.scm +108 -0
  448. package/out/racket/injections.scm +5 -0
  449. package/out/racket/locals.scm +34 -0
  450. package/out/racket/tags.scm +12 -0
  451. package/out/racket/tree-sitter-racket.wasm +0 -0
  452. package/out/regex/highlights.scm +63 -0
  453. package/out/regex/tree-sitter-regex.wasm +0 -0
  454. package/out/requirements/highlights.scm +45 -0
  455. package/out/requirements/injections.scm +2 -0
  456. package/out/requirements/tree-sitter-requirements.wasm +0 -0
  457. package/out/ruby/folds.scm +12 -0
  458. package/out/ruby/highlights.scm +154 -0
  459. package/out/ruby/indents.scm +43 -0
  460. package/out/ruby/injections.scm +34 -0
  461. package/out/ruby/locals.scm +27 -0
  462. package/out/ruby/tags.scm +64 -0
  463. package/out/ruby/tree-sitter-ruby.wasm +0 -0
  464. package/out/rust/folds.scm +25 -0
  465. package/out/rust/highlights.scm +161 -0
  466. package/out/rust/indents.scm +133 -0
  467. package/out/rust/injections.scm +9 -0
  468. package/out/rust/locals.scm +98 -0
  469. package/out/rust/tags.scm +60 -0
  470. package/out/rust/tree-sitter-rust.wasm +0 -0
  471. package/out/scala/folds.scm +16 -0
  472. package/out/scala/highlights.scm +260 -0
  473. package/out/scala/indents.scm +30 -0
  474. package/out/scala/injections.scm +5 -0
  475. package/out/scala/locals.scm +30 -0
  476. package/out/scala/tags.scm +66 -0
  477. package/out/scala/tree-sitter-scala.wasm +0 -0
  478. package/out/scheme/folds.scm +2 -0
  479. package/out/scheme/highlights.scm +84 -0
  480. package/out/scheme/injections.scm +2 -0
  481. package/out/scheme/tree-sitter-scheme.wasm +0 -0
  482. package/out/scss/folds.scm +1 -0
  483. package/out/scss/highlights.scm +69 -0
  484. package/out/scss/indents.scm +7 -0
  485. package/out/scss/injections.scm +2 -0
  486. package/out/scss/tree-sitter-scss.wasm +0 -0
  487. package/out/solidity/folds.scm +20 -0
  488. package/out/solidity/highlights-nvim.scm +309 -0
  489. package/out/solidity/highlights.scm +217 -0
  490. package/out/solidity/injections.scm +14 -0
  491. package/out/solidity/locals.scm +9 -0
  492. package/out/solidity/tags.scm +43 -0
  493. package/out/solidity/tree-sitter-solidity.wasm +0 -0
  494. package/out/sql/folds.scm +1 -0
  495. package/out/sql/highlights.scm +445 -0
  496. package/out/sql/indents.scm +27 -0
  497. package/out/sql/injections.scm +5 -0
  498. package/out/sql/tree-sitter-sql.wasm +0 -0
  499. package/out/ssh_config/folds.scm +4 -0
  500. package/out/ssh_config/highlights.scm +81 -0
  501. package/out/ssh_config/indents.scm +12 -0
  502. package/out/ssh_config/injections.scm +15 -0
  503. package/out/ssh_config/locals.scm +7 -0
  504. package/out/ssh_config/tree-sitter-ssh_config.wasm +0 -0
  505. package/out/swift/folds.scm +35 -0
  506. package/out/swift/highlights.scm +336 -0
  507. package/out/swift/indents.scm +123 -0
  508. package/out/swift/injections.scm +10 -0
  509. package/out/swift/locals.scm +23 -0
  510. package/out/swift/outline.scm +66 -0
  511. package/out/swift/tags.scm +51 -0
  512. package/out/swift/textobjects.scm +19 -0
  513. package/out/swift/tree-sitter-swift.wasm +0 -0
  514. package/out/templ/folds.scm +15 -0
  515. package/out/templ/highlights.scm +60 -0
  516. package/out/templ/injections.scm +13 -0
  517. package/out/templ/tree-sitter-templ.wasm +0 -0
  518. package/out/terraform/folds.scm +1 -0
  519. package/out/terraform/highlights.scm +41 -0
  520. package/out/terraform/indents.scm +1 -0
  521. package/out/terraform/injections.scm +1 -0
  522. package/out/terraform/tree-sitter-terraform.wasm +0 -0
  523. package/out/toml/folds.scm +5 -0
  524. package/out/toml/highlights.scm +53 -0
  525. package/out/toml/indents.scm +11 -0
  526. package/out/toml/injections.scm +2 -0
  527. package/out/toml/locals.scm +4 -0
  528. package/out/toml/tree-sitter-toml.wasm +0 -0
  529. package/out/tsv/highlights.scm +4 -0
  530. package/out/tsv/tree-sitter-tsv.wasm +0 -0
  531. package/out/tsx/folds.scm +1 -0
  532. package/out/tsx/highlights.scm +35 -0
  533. package/out/tsx/indents.scm +1 -0
  534. package/out/tsx/injections.scm +1 -0
  535. package/out/tsx/locals.scm +2 -0
  536. package/out/tsx/tags.scm +23 -0
  537. package/out/tsx/tree-sitter-tsx.wasm +0 -0
  538. package/out/typescript/folds.scm +8 -0
  539. package/out/typescript/highlights.scm +35 -0
  540. package/out/typescript/indents.scm +7 -0
  541. package/out/typescript/injections.scm +28 -0
  542. package/out/typescript/locals.scm +2 -0
  543. package/out/typescript/tags.scm +23 -0
  544. package/out/typescript/tree-sitter-typescript.wasm +0 -0
  545. package/out/vim/folds.scm +4 -0
  546. package/out/vim/highlights.scm +362 -0
  547. package/out/vim/injections.scm +44 -0
  548. package/out/vim/locals.scm +19 -0
  549. package/out/vim/tree-sitter-vim.wasm +0 -0
  550. package/out/vimdoc/highlights.scm +74 -0
  551. package/out/vimdoc/injections.scm +4 -0
  552. package/out/vimdoc/tree-sitter-vimdoc.wasm +0 -0
  553. package/out/vue/folds.scm +6 -0
  554. package/out/vue/highlights.scm +54 -0
  555. package/out/vue/indents.scm +7 -0
  556. package/out/vue/injections.scm +78 -0
  557. package/out/vue/tree-sitter-vue.wasm +0 -0
  558. package/out/xml/folds.scm +5 -0
  559. package/out/xml/highlights.scm +198 -0
  560. package/out/xml/indents.scm +16 -0
  561. package/out/xml/injections.scm +32 -0
  562. package/out/xml/locals.scm +35 -0
  563. package/out/xml/tree-sitter-xml.wasm +0 -0
  564. package/out/yaml/folds.scm +4 -0
  565. package/out/yaml/highlights.scm +79 -0
  566. package/out/yaml/indents.scm +7 -0
  567. package/out/yaml/injections.scm +81 -0
  568. package/out/yaml/locals.scm +9 -0
  569. package/out/yaml/tree-sitter-yaml.wasm +0 -0
  570. package/out/zig/folds.scm +23 -0
  571. package/out/zig/highlights.scm +291 -0
  572. package/out/zig/indents.scm +22 -0
  573. package/out/zig/injections.scm +10 -0
  574. package/out/zig/locals.scm +96 -0
  575. package/out/zig/tree-sitter-zig.wasm +0 -0
  576. package/package.json +152 -0
@@ -0,0 +1,64 @@
1
+ ; Method definitions
2
+
3
+ (
4
+ (comment)* @doc
5
+ .
6
+ [
7
+ (method
8
+ name: (_) @name) @definition.method
9
+ (singleton_method
10
+ name: (_) @name) @definition.method
11
+ ]
12
+ (#strip! @doc "^#\\s*")
13
+ (#select-adjacent! @doc @definition.method)
14
+ )
15
+
16
+ (alias
17
+ name: (_) @name) @definition.method
18
+
19
+ (setter
20
+ (identifier) @ignore)
21
+
22
+ ; Class definitions
23
+
24
+ (
25
+ (comment)* @doc
26
+ .
27
+ [
28
+ (class
29
+ name: [
30
+ (constant) @name
31
+ (scope_resolution
32
+ name: (_) @name)
33
+ ]) @definition.class
34
+ (singleton_class
35
+ value: [
36
+ (constant) @name
37
+ (scope_resolution
38
+ name: (_) @name)
39
+ ]) @definition.class
40
+ ]
41
+ (#strip! @doc "^#\\s*")
42
+ (#select-adjacent! @doc @definition.class)
43
+ )
44
+
45
+ ; Module definitions
46
+
47
+ (
48
+ (module
49
+ name: [
50
+ (constant) @name
51
+ (scope_resolution
52
+ name: (_) @name)
53
+ ]) @definition.module
54
+ )
55
+
56
+ ; Calls
57
+
58
+ (call method: (identifier) @name) @reference.call
59
+
60
+ (
61
+ [(identifier) (constant)] @name @reference.call
62
+ (#is-not? local)
63
+ (#not-match? @name "^(lambda|load|require|require_relative|__FILE__|__LINE__)$")
64
+ )
Binary file
@@ -0,0 +1,25 @@
1
+ [
2
+ (mod_item)
3
+ (foreign_mod_item)
4
+ (function_item)
5
+ (struct_item)
6
+ (trait_item)
7
+ (enum_item)
8
+ (impl_item)
9
+ (type_item)
10
+ (union_item)
11
+ (const_item)
12
+ (let_declaration)
13
+ (loop_expression)
14
+ (for_expression)
15
+ (while_expression)
16
+ (if_expression)
17
+ (match_expression)
18
+ (call_expression)
19
+ (array_expression)
20
+ (macro_definition)
21
+ (macro_invocation)
22
+ (attribute_item)
23
+ (block)
24
+ (use_declaration)+
25
+ ] @fold
@@ -0,0 +1,161 @@
1
+ ; Identifiers
2
+
3
+ (type_identifier) @type
4
+ (primitive_type) @type.builtin
5
+ (field_identifier) @property
6
+
7
+ ; Identifier conventions
8
+
9
+ ; Assume all-caps names are constants
10
+ ((identifier) @constant
11
+ (#match? @constant "^[A-Z][A-Z\\d_]+$'"))
12
+
13
+ ; Assume uppercase names are enum constructors
14
+ ((identifier) @constructor
15
+ (#match? @constructor "^[A-Z]"))
16
+
17
+ ; Assume that uppercase names in paths are types
18
+ ((scoped_identifier
19
+ path: (identifier) @type)
20
+ (#match? @type "^[A-Z]"))
21
+ ((scoped_identifier
22
+ path: (scoped_identifier
23
+ name: (identifier) @type))
24
+ (#match? @type "^[A-Z]"))
25
+ ((scoped_type_identifier
26
+ path: (identifier) @type)
27
+ (#match? @type "^[A-Z]"))
28
+ ((scoped_type_identifier
29
+ path: (scoped_identifier
30
+ name: (identifier) @type))
31
+ (#match? @type "^[A-Z]"))
32
+
33
+ ; Assume all qualified names in struct patterns are enum constructors. (They're
34
+ ; either that, or struct names; highlighting both as constructors seems to be
35
+ ; the less glaring choice of error, visually.)
36
+ (struct_pattern
37
+ type: (scoped_type_identifier
38
+ name: (type_identifier) @constructor))
39
+
40
+ ; Function calls
41
+
42
+ (call_expression
43
+ function: (identifier) @function)
44
+ (call_expression
45
+ function: (field_expression
46
+ field: (field_identifier) @function.method))
47
+ (call_expression
48
+ function: (scoped_identifier
49
+ "::"
50
+ name: (identifier) @function))
51
+
52
+ (generic_function
53
+ function: (identifier) @function)
54
+ (generic_function
55
+ function: (scoped_identifier
56
+ name: (identifier) @function))
57
+ (generic_function
58
+ function: (field_expression
59
+ field: (field_identifier) @function.method))
60
+
61
+ (macro_invocation
62
+ macro: (identifier) @function.macro
63
+ "!" @function.macro)
64
+
65
+ ; Function definitions
66
+
67
+ (function_item (identifier) @function)
68
+ (function_signature_item (identifier) @function)
69
+
70
+ (line_comment) @comment
71
+ (block_comment) @comment
72
+
73
+ (line_comment (doc_comment)) @comment.documentation
74
+ (block_comment (doc_comment)) @comment.documentation
75
+
76
+ "(" @punctuation.bracket
77
+ ")" @punctuation.bracket
78
+ "[" @punctuation.bracket
79
+ "]" @punctuation.bracket
80
+ "{" @punctuation.bracket
81
+ "}" @punctuation.bracket
82
+
83
+ (type_arguments
84
+ "<" @punctuation.bracket
85
+ ">" @punctuation.bracket)
86
+ (type_parameters
87
+ "<" @punctuation.bracket
88
+ ">" @punctuation.bracket)
89
+
90
+ "::" @punctuation.delimiter
91
+ ":" @punctuation.delimiter
92
+ "." @punctuation.delimiter
93
+ "," @punctuation.delimiter
94
+ ";" @punctuation.delimiter
95
+
96
+ (parameter (identifier) @variable.parameter)
97
+
98
+ (lifetime (identifier) @label)
99
+
100
+ "as" @keyword
101
+ "async" @keyword
102
+ "await" @keyword
103
+ "break" @keyword
104
+ "const" @keyword
105
+ "continue" @keyword
106
+ "default" @keyword
107
+ "dyn" @keyword
108
+ "else" @keyword
109
+ "enum" @keyword
110
+ "extern" @keyword
111
+ "fn" @keyword
112
+ "for" @keyword
113
+ "gen" @keyword
114
+ "if" @keyword
115
+ "impl" @keyword
116
+ "in" @keyword
117
+ "let" @keyword
118
+ "loop" @keyword
119
+ "macro_rules!" @keyword
120
+ "match" @keyword
121
+ "mod" @keyword
122
+ "move" @keyword
123
+ "pub" @keyword
124
+ "raw" @keyword
125
+ "ref" @keyword
126
+ "return" @keyword
127
+ "static" @keyword
128
+ "struct" @keyword
129
+ "trait" @keyword
130
+ "type" @keyword
131
+ "union" @keyword
132
+ "unsafe" @keyword
133
+ "use" @keyword
134
+ "where" @keyword
135
+ "while" @keyword
136
+ "yield" @keyword
137
+ (crate) @keyword
138
+ (mutable_specifier) @keyword
139
+ (use_list (self) @keyword)
140
+ (scoped_use_list (self) @keyword)
141
+ (scoped_identifier (self) @keyword)
142
+ (super) @keyword
143
+
144
+ (self) @variable.builtin
145
+
146
+ (char_literal) @string
147
+ (string_literal) @string
148
+ (raw_string_literal) @string
149
+
150
+ (boolean_literal) @constant.builtin
151
+ (integer_literal) @constant.builtin
152
+ (float_literal) @constant.builtin
153
+
154
+ (escape_sequence) @escape
155
+
156
+ (attribute_item) @attribute
157
+ (inner_attribute_item) @attribute
158
+
159
+ "*" @operator
160
+ "&" @operator
161
+ "'" @operator
@@ -0,0 +1,133 @@
1
+ [
2
+ (mod_item)
3
+ (struct_item)
4
+ (enum_item)
5
+ (impl_item)
6
+ (struct_expression)
7
+ (struct_pattern)
8
+ (tuple_struct_pattern)
9
+ (tuple_expression)
10
+ (tuple_type)
11
+ (tuple_pattern)
12
+ (match_block)
13
+ (call_expression)
14
+ (assignment_expression)
15
+ (arguments)
16
+ (block)
17
+ (where_clause)
18
+ (use_list)
19
+ (array_expression)
20
+ (ordered_field_declaration_list)
21
+ (field_declaration_list)
22
+ (enum_variant_list)
23
+ (parameters)
24
+ (token_tree)
25
+ (token_repetition)
26
+ (macro_definition)
27
+ ] @indent.begin
28
+
29
+ (trait_item
30
+ body: (_) @indent.begin)
31
+
32
+ (string_literal
33
+ (escape_sequence)) @indent.begin
34
+
35
+ ; Typing in "(" inside macro definitions breaks the tree entirely
36
+ ; Making macro_definition becoming errors
37
+ ; Offset this by adding back one indent for start of macro rules
38
+ (ERROR
39
+ .
40
+ "macro_rules!"
41
+ [
42
+ "("
43
+ "{"
44
+ "["
45
+ ] @indent.begin
46
+ (#set! indent.immediate)
47
+ (#set! indent.start_at_same_line))
48
+
49
+ (macro_definition
50
+ [
51
+ ")"
52
+ "}"
53
+ "]"
54
+ ] @indent.end)
55
+
56
+ (trait_item
57
+ body: (_) @indent.begin)
58
+
59
+ (string_literal
60
+ (escape_sequence)) @indent.begin
61
+
62
+ (block
63
+ "}" @indent.end)
64
+
65
+ (enum_item
66
+ body: (enum_variant_list
67
+ "}" @indent.end))
68
+
69
+ (impl_item
70
+ body: (declaration_list
71
+ "}" @indent.end))
72
+
73
+ (match_expression
74
+ body: (match_block
75
+ "}" @indent.end))
76
+
77
+ (mod_item
78
+ body: (declaration_list
79
+ "}" @indent.end))
80
+
81
+ (struct_item
82
+ body: (field_declaration_list
83
+ "}" @indent.end))
84
+
85
+ (struct_expression
86
+ body: (field_initializer_list
87
+ "}" @indent.end))
88
+
89
+ (struct_pattern
90
+ "}" @indent.end)
91
+
92
+ (tuple_struct_pattern
93
+ ")" @indent.end)
94
+
95
+ ; Typing in "(" inside macro definitions breaks the tree entirely
96
+ ; Making macro_definition becoming errors
97
+ ; Offset this by adding back one indent for start of macro rules
98
+ (ERROR
99
+ .
100
+ "macro_rules!"
101
+ "(" @indent.begin
102
+ (#set! indent.immediate)
103
+ (#set! indent.start_at_same_line))
104
+
105
+ (tuple_type
106
+ ")" @indent.end)
107
+
108
+ (tuple_pattern
109
+ ")" @indent.end)
110
+
111
+ (trait_item
112
+ body: (declaration_list
113
+ "}" @indent.end))
114
+
115
+ (impl_item
116
+ (where_clause) @indent.dedent)
117
+
118
+ [
119
+ "where"
120
+ ")"
121
+ "]"
122
+ "}"
123
+ ] @indent.branch
124
+
125
+ (impl_item
126
+ (declaration_list) @indent.branch)
127
+
128
+ [
129
+ (line_comment)
130
+ (string_literal)
131
+ ] @indent.ignore
132
+
133
+ (raw_string_literal) @indent.auto
@@ -0,0 +1,9 @@
1
+ ((macro_invocation
2
+ (token_tree) @injection.content)
3
+ (#set! injection.language "rust")
4
+ (#set! injection.include-children))
5
+
6
+ ((macro_rule
7
+ (token_tree) @injection.content)
8
+ (#set! injection.language "rust")
9
+ (#set! injection.include-children))
@@ -0,0 +1,98 @@
1
+ ; Imports
2
+ (extern_crate_declaration
3
+ name: (identifier) @local.definition.import)
4
+
5
+ (use_declaration
6
+ argument: (scoped_identifier
7
+ name: (identifier) @local.definition.import))
8
+
9
+ (use_as_clause
10
+ alias: (identifier) @local.definition.import)
11
+
12
+ (use_list
13
+ (identifier) @local.definition.import) ; use std::process::{Child, Command, Stdio};
14
+
15
+ ; Functions
16
+ (function_item
17
+ name: (identifier) @local.definition.function)
18
+
19
+ (function_item
20
+ name: (identifier) @local.definition.method
21
+ parameters: (parameters
22
+ (self_parameter)))
23
+
24
+ ; Variables
25
+ (parameter
26
+ pattern: (identifier) @local.definition.var)
27
+
28
+ (let_declaration
29
+ pattern: (identifier) @local.definition.var)
30
+
31
+ (const_item
32
+ name: (identifier) @local.definition.var)
33
+
34
+ (tuple_pattern
35
+ (identifier) @local.definition.var)
36
+
37
+ (let_condition
38
+ pattern: (_
39
+ (identifier) @local.definition.var))
40
+
41
+ (tuple_struct_pattern
42
+ (identifier) @local.definition.var)
43
+
44
+ (closure_parameters
45
+ (identifier) @local.definition.var)
46
+
47
+ (self_parameter
48
+ (self) @local.definition.var)
49
+
50
+ (for_expression
51
+ pattern: (identifier) @local.definition.var)
52
+
53
+ ; Types
54
+ (struct_item
55
+ name: (type_identifier) @local.definition.type)
56
+
57
+ (enum_item
58
+ name: (type_identifier) @local.definition.type)
59
+
60
+ ; Fields
61
+ (field_declaration
62
+ name: (field_identifier) @local.definition.field)
63
+
64
+ (enum_variant
65
+ name: (identifier) @local.definition.field)
66
+
67
+ ; References
68
+ (identifier) @local.reference
69
+
70
+ ((type_identifier) @local.reference
71
+ (#set! reference.kind "type"))
72
+
73
+ ((field_identifier) @local.reference
74
+ (#set! reference.kind "field"))
75
+
76
+ ; Macros
77
+ (macro_definition
78
+ name: (identifier) @local.definition.macro)
79
+
80
+ ; Module
81
+ (mod_item
82
+ name: (identifier) @local.definition.namespace)
83
+
84
+ ; Scopes
85
+ [
86
+ (block)
87
+ (function_item)
88
+ (closure_expression)
89
+ (while_expression)
90
+ (for_expression)
91
+ (loop_expression)
92
+ (if_expression)
93
+ (match_expression)
94
+ (match_arm)
95
+ (struct_item)
96
+ (enum_item)
97
+ (impl_item)
98
+ ] @local.scope
@@ -0,0 +1,60 @@
1
+ ; ADT definitions
2
+
3
+ (struct_item
4
+ name: (type_identifier) @name) @definition.class
5
+
6
+ (enum_item
7
+ name: (type_identifier) @name) @definition.class
8
+
9
+ (union_item
10
+ name: (type_identifier) @name) @definition.class
11
+
12
+ ; type aliases
13
+
14
+ (type_item
15
+ name: (type_identifier) @name) @definition.class
16
+
17
+ ; method definitions
18
+
19
+ (declaration_list
20
+ (function_item
21
+ name: (identifier) @name) @definition.method)
22
+
23
+ ; function definitions
24
+
25
+ (function_item
26
+ name: (identifier) @name) @definition.function
27
+
28
+ ; trait definitions
29
+ (trait_item
30
+ name: (type_identifier) @name) @definition.interface
31
+
32
+ ; module definitions
33
+ (mod_item
34
+ name: (identifier) @name) @definition.module
35
+
36
+ ; macro definitions
37
+
38
+ (macro_definition
39
+ name: (identifier) @name) @definition.macro
40
+
41
+ ; references
42
+
43
+ (call_expression
44
+ function: (identifier) @name) @reference.call
45
+
46
+ (call_expression
47
+ function: (field_expression
48
+ field: (field_identifier) @name)) @reference.call
49
+
50
+ (macro_invocation
51
+ macro: (identifier) @name) @reference.call
52
+
53
+ ; implementations
54
+
55
+ (impl_item
56
+ trait: (type_identifier) @name) @reference.implementation
57
+
58
+ (impl_item
59
+ type: (type_identifier) @name
60
+ !trait) @reference.implementation
Binary file
@@ -0,0 +1,16 @@
1
+ (call_expression
2
+ (block) @fold)
3
+
4
+ [
5
+ (class_definition)
6
+ (trait_definition)
7
+ (object_definition)
8
+ (function_definition)
9
+ (val_definition)
10
+ (import_declaration)
11
+ (while_expression)
12
+ (do_while_expression)
13
+ (for_expression)
14
+ (try_expression)
15
+ (match_expression)
16
+ ] @fold