@enjoys/context-engine 1.4.2 → 1.5.1

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 (1747) hide show
  1. package/data/codeActions/azcli.json +47 -26
  2. package/data/codeActions/bicep.json +47 -26
  3. package/data/codeActions/cameligo.json +47 -26
  4. package/data/codeActions/clojure.json +47 -26
  5. package/data/codeActions/coffee.json +40 -26
  6. package/data/codeActions/crontab.json +21 -0
  7. package/data/codeActions/css.json +119 -111
  8. package/data/codeActions/cypher.json +47 -26
  9. package/data/codeActions/dart.json +190 -31
  10. package/data/codeActions/doctest.json +47 -26
  11. package/data/codeActions/dotenv.json +23 -1
  12. package/data/codeActions/ecl.json +47 -26
  13. package/data/codeActions/elixir.json +47 -26
  14. package/data/codeActions/flow9.json +47 -26
  15. package/data/codeActions/freemarker2.json +47 -26
  16. package/data/codeActions/html.json +21 -0
  17. package/data/codeActions/ini.json +23 -1
  18. package/data/codeActions/json.json +23 -1
  19. package/data/codeActions/julia.json +47 -26
  20. package/data/codeActions/less.json +40 -26
  21. package/data/codeActions/lexon.json +47 -26
  22. package/data/codeActions/liquid.json +47 -26
  23. package/data/codeActions/m3.json +47 -26
  24. package/data/codeActions/markdown.json +21 -0
  25. package/data/codeActions/mdx.json +47 -26
  26. package/data/codeActions/mips.json +47 -26
  27. package/data/codeActions/msdax.json +47 -26
  28. package/data/codeActions/mysql.json +47 -26
  29. package/data/codeActions/nestjs.json +124 -124
  30. package/data/codeActions/objective-c.json +47 -26
  31. package/data/codeActions/pascal.json +47 -26
  32. package/data/codeActions/pascaligo.json +47 -26
  33. package/data/codeActions/pgsql.json +47 -26
  34. package/data/codeActions/pla.json +47 -26
  35. package/data/codeActions/postiats.json +47 -26
  36. package/data/codeActions/powerquery.json +47 -26
  37. package/data/codeActions/qsharp.json +47 -26
  38. package/data/codeActions/r.json +69 -71
  39. package/data/codeActions/razor.json +47 -26
  40. package/data/codeActions/redis-cli.json +21 -0
  41. package/data/codeActions/redis.json +47 -26
  42. package/data/codeActions/redshift.json +47 -26
  43. package/data/codeActions/restructuredtext.json +47 -26
  44. package/data/codeActions/sb.json +48 -26
  45. package/data/codeActions/scala.json +154 -26
  46. package/data/codeActions/scheme.json +48 -26
  47. package/data/codeActions/scss.json +40 -26
  48. package/data/codeActions/shadcn.json +112 -112
  49. package/data/codeActions/shell.json +2 -2
  50. package/data/codeActions/sol.json +47 -26
  51. package/data/codeActions/sparql.json +47 -26
  52. package/data/codeActions/st.json +47 -26
  53. package/data/codeActions/systemd.json +21 -0
  54. package/data/codeActions/systemverilog.json +47 -26
  55. package/data/codeActions/tailwindcss.json +83 -76
  56. package/data/codeActions/tcl.json +47 -26
  57. package/data/codeActions/toml.json +23 -1
  58. package/data/codeActions/twig.json +47 -26
  59. package/data/codeActions/vb.json +47 -26
  60. package/data/codeActions/wgsl.json +47 -26
  61. package/data/codeActions/xml.json +21 -0
  62. package/data/codeActions/yaml.json +23 -1
  63. package/data/codeLens/abap.json +40 -7
  64. package/data/codeLens/angular.json +141 -22
  65. package/data/codeLens/apex.json +40 -7
  66. package/data/codeLens/awk.json +28 -1
  67. package/data/codeLens/azcli.json +30 -2
  68. package/data/codeLens/bicep.json +40 -17
  69. package/data/codeLens/c.json +27 -1
  70. package/data/codeLens/caddy.json +28 -1
  71. package/data/codeLens/cameligo.json +40 -17
  72. package/data/codeLens/clojure.json +40 -17
  73. package/data/codeLens/coffee.json +40 -17
  74. package/data/codeLens/cpp.json +14 -0
  75. package/data/codeLens/crontab.json +28 -1
  76. package/data/codeLens/csharp.json +7 -0
  77. package/data/codeLens/cypher.json +40 -26
  78. package/data/codeLens/docker-compose.json +40 -26
  79. package/data/codeLens/dockerfile.json +40 -26
  80. package/data/codeLens/doctest.json +30 -2
  81. package/data/codeLens/dotenv.json +40 -26
  82. package/data/codeLens/ecl.json +40 -17
  83. package/data/codeLens/elixir.json +40 -17
  84. package/data/codeLens/flow9.json +40 -17
  85. package/data/codeLens/freemarker2.json +40 -17
  86. package/data/codeLens/go.json +14 -0
  87. package/data/codeLens/graphql.json +7 -0
  88. package/data/codeLens/hcl.json +27 -1
  89. package/data/codeLens/html.json +27 -1
  90. package/data/codeLens/ini.json +40 -26
  91. package/data/codeLens/java.json +7 -0
  92. package/data/codeLens/json.json +40 -26
  93. package/data/codeLens/julia.json +40 -17
  94. package/data/codeLens/less.json +40 -17
  95. package/data/codeLens/lexon.json +40 -17
  96. package/data/codeLens/liquid.json +40 -17
  97. package/data/codeLens/lua.json +27 -1
  98. package/data/codeLens/m3.json +40 -17
  99. package/data/codeLens/makefile.json +21 -0
  100. package/data/codeLens/markdown.json +40 -26
  101. package/data/codeLens/mdx.json +40 -17
  102. package/data/codeLens/mips.json +40 -17
  103. package/data/codeLens/msdax.json +40 -17
  104. package/data/codeLens/mysql.json +40 -17
  105. package/data/codeLens/nginx.json +27 -1
  106. package/data/codeLens/objective-c.json +40 -17
  107. package/data/codeLens/pascal.json +40 -17
  108. package/data/codeLens/pascaligo.json +40 -17
  109. package/data/codeLens/perl.json +21 -0
  110. package/data/codeLens/pgsql.json +40 -17
  111. package/data/codeLens/pla.json +30 -2
  112. package/data/codeLens/postiats.json +40 -17
  113. package/data/codeLens/powerquery.json +40 -17
  114. package/data/codeLens/powershell.json +14 -0
  115. package/data/codeLens/protobuf.json +14 -0
  116. package/data/codeLens/python.json +14 -0
  117. package/data/codeLens/qsharp.json +40 -17
  118. package/data/codeLens/r.json +40 -33
  119. package/data/codeLens/razor.json +40 -17
  120. package/data/codeLens/redis-cli.json +40 -26
  121. package/data/codeLens/redis.json +40 -26
  122. package/data/codeLens/redshift.json +40 -17
  123. package/data/codeLens/restructuredtext.json +40 -17
  124. package/data/codeLens/ruby.json +14 -0
  125. package/data/codeLens/sb.json +40 -17
  126. package/data/codeLens/scheme.json +40 -17
  127. package/data/codeLens/scss.json +40 -17
  128. package/data/codeLens/shadcn.json +117 -89
  129. package/data/codeLens/shell.json +4 -2
  130. package/data/codeLens/sol.json +40 -17
  131. package/data/codeLens/sparql.json +40 -17
  132. package/data/codeLens/sql.json +7 -0
  133. package/data/codeLens/ssh_config.json +40 -26
  134. package/data/codeLens/st.json +40 -17
  135. package/data/codeLens/systemd.json +40 -26
  136. package/data/codeLens/systemverilog.json +40 -17
  137. package/data/codeLens/tcl.json +40 -17
  138. package/data/codeLens/toml.json +40 -26
  139. package/data/codeLens/twig.json +40 -17
  140. package/data/codeLens/vb.json +40 -17
  141. package/data/codeLens/wgsl.json +40 -17
  142. package/data/codeLens/xml.json +27 -1
  143. package/data/codeLens/yaml.json +40 -26
  144. package/data/color/abap.json +40 -20
  145. package/data/color/angular.json +67 -21
  146. package/data/color/apex.json +40 -20
  147. package/data/color/azcli.json +40 -20
  148. package/data/color/bicep.json +40 -20
  149. package/data/color/c.json +40 -30
  150. package/data/color/caddy.json +44 -24
  151. package/data/color/cameligo.json +39 -19
  152. package/data/color/clojure.json +39 -19
  153. package/data/color/coffee.json +39 -19
  154. package/data/color/cpp.json +40 -30
  155. package/data/color/crontab.json +44 -24
  156. package/data/color/css.json +140 -124
  157. package/data/color/cypher.json +39 -19
  158. package/data/color/docker-compose.json +44 -24
  159. package/data/color/dockerfile.json +44 -24
  160. package/data/color/doctest.json +40 -20
  161. package/data/color/dotenv.json +44 -24
  162. package/data/color/ecl.json +40 -20
  163. package/data/color/flow9.json +39 -19
  164. package/data/color/go.json +40 -30
  165. package/data/color/graphql.json +44 -24
  166. package/data/color/hcl.json +44 -24
  167. package/data/color/ini.json +44 -24
  168. package/data/color/json.json +44 -24
  169. package/data/color/less.json +39 -19
  170. package/data/color/lexon.json +40 -20
  171. package/data/color/lua.json +40 -30
  172. package/data/color/m3.json +39 -19
  173. package/data/color/makefile.json +44 -24
  174. package/data/color/mips.json +40 -20
  175. package/data/color/msdax.json +39 -19
  176. package/data/color/mysql.json +39 -19
  177. package/data/color/nginx.json +44 -24
  178. package/data/color/objective-c.json +40 -30
  179. package/data/color/pascal.json +39 -19
  180. package/data/color/pascaligo.json +39 -19
  181. package/data/color/perl.json +40 -30
  182. package/data/color/pgsql.json +39 -19
  183. package/data/color/pla.json +40 -20
  184. package/data/color/postiats.json +39 -19
  185. package/data/color/powerquery.json +40 -20
  186. package/data/color/protobuf.json +44 -24
  187. package/data/color/qsharp.json +40 -20
  188. package/data/color/redis-cli.json +40 -20
  189. package/data/color/redis.json +40 -20
  190. package/data/color/redshift.json +39 -19
  191. package/data/color/restructuredtext.json +40 -20
  192. package/data/color/rust.json +40 -30
  193. package/data/color/sb.json +40 -20
  194. package/data/color/scala.json +44 -13
  195. package/data/color/scheme.json +39 -19
  196. package/data/color/scss.json +39 -19
  197. package/data/color/shadcn.json +80 -66
  198. package/data/color/sol.json +40 -20
  199. package/data/color/sparql.json +39 -19
  200. package/data/color/sql.json +39 -19
  201. package/data/color/ssh_config.json +44 -24
  202. package/data/color/st.json +40 -20
  203. package/data/color/systemd.json +44 -24
  204. package/data/color/systemverilog.json +40 -20
  205. package/data/color/tailwindcss.json +87 -53
  206. package/data/color/toml.json +44 -24
  207. package/data/color/wgsl.json +40 -20
  208. package/data/color/yaml.json +44 -24
  209. package/data/commands/abap.json +201 -41
  210. package/data/commands/angular.json +24 -2
  211. package/data/commands/apex.json +211 -15
  212. package/data/commands/awk.json +160 -26
  213. package/data/commands/azcli.json +164 -59
  214. package/data/commands/bicep.json +161 -47
  215. package/data/commands/c.json +153 -35
  216. package/data/commands/caddy.json +390 -194
  217. package/data/commands/cameligo.json +157 -47
  218. package/data/commands/clojure.json +164 -41
  219. package/data/commands/coffee.json +160 -41
  220. package/data/commands/cpp.json +153 -35
  221. package/data/commands/crontab.json +156 -30
  222. package/data/commands/csharp.json +165 -47
  223. package/data/commands/css.json +160 -41
  224. package/data/commands/cypher.json +158 -31
  225. package/data/commands/dart.json +288 -216
  226. package/data/commands/docker-compose.json +451 -384
  227. package/data/commands/dockerfile.json +269 -90
  228. package/data/commands/doctest.json +158 -28
  229. package/data/commands/dotenv.json +165 -29
  230. package/data/commands/ecl.json +178 -31
  231. package/data/commands/elixir.json +169 -71
  232. package/data/commands/flow9.json +161 -29
  233. package/data/commands/freemarker2.json +163 -29
  234. package/data/commands/go.json +437 -161
  235. package/data/commands/graphql.json +177 -30
  236. package/data/commands/hcl.json +167 -53
  237. package/data/commands/html.json +179 -30
  238. package/data/commands/ini.json +174 -30
  239. package/data/commands/java.json +153 -31
  240. package/data/commands/javascript.json +167 -34
  241. package/data/commands/json.json +161 -41
  242. package/data/commands/julia.json +161 -41
  243. package/data/commands/kotlin.json +174 -45
  244. package/data/commands/less.json +166 -31
  245. package/data/commands/lexon.json +166 -28
  246. package/data/commands/linux.json +10256 -3812
  247. package/data/commands/liquid.json +181 -31
  248. package/data/commands/lua.json +190 -66
  249. package/data/commands/m3.json +156 -30
  250. package/data/commands/makefile.json +165 -41
  251. package/data/commands/manifest.json +1 -0
  252. package/data/commands/markdown.json +183 -30
  253. package/data/commands/mdx.json +170 -29
  254. package/data/commands/mips.json +155 -31
  255. package/data/commands/msdax.json +175 -28
  256. package/data/commands/mysql.json +225 -81
  257. package/data/commands/nestjs.json +24 -2
  258. package/data/commands/nextjs.json +72 -2
  259. package/data/commands/nginx.json +265 -146
  260. package/data/commands/objective-c.json +162 -31
  261. package/data/commands/pascal.json +162 -32
  262. package/data/commands/pascaligo.json +171 -31
  263. package/data/commands/perl.json +167 -35
  264. package/data/commands/pgsql.json +161 -41
  265. package/data/commands/php.json +187 -157
  266. package/data/commands/pla.json +171 -28
  267. package/data/commands/postiats.json +161 -31
  268. package/data/commands/powerquery.json +173 -28
  269. package/data/commands/powershell.json +159 -33
  270. package/data/commands/protobuf.json +171 -32
  271. package/data/commands/python.json +150 -30
  272. package/data/commands/qsharp.json +170 -31
  273. package/data/commands/r.json +241 -100
  274. package/data/commands/razor.json +170 -31
  275. package/data/commands/react.json +48 -2
  276. package/data/commands/redis-cli.json +257 -148
  277. package/data/commands/redis.json +161 -47
  278. package/data/commands/redshift.json +162 -32
  279. package/data/commands/restructuredtext.json +172 -34
  280. package/data/commands/ruby.json +165 -108
  281. package/data/commands/rust.json +378 -35
  282. package/data/commands/sb.json +162 -28
  283. package/data/commands/scala.json +429 -171
  284. package/data/commands/scheme.json +161 -30
  285. package/data/commands/scss.json +164 -32
  286. package/data/commands/shadcn.json +20 -2
  287. package/data/commands/shell.json +239 -239
  288. package/data/commands/sol.json +164 -32
  289. package/data/commands/sparql.json +181 -30
  290. package/data/commands/sql.json +213 -48
  291. package/data/commands/ssh_config.json +168 -36
  292. package/data/commands/st.json +175 -28
  293. package/data/commands/swift.json +198 -67
  294. package/data/commands/systemd.json +163 -53
  295. package/data/commands/systemverilog.json +165 -31
  296. package/data/commands/tailwindcss.json +101 -2
  297. package/data/commands/tcl.json +158 -28
  298. package/data/commands/toml.json +178 -30
  299. package/data/commands/twig.json +169 -29
  300. package/data/commands/typescript.json +164 -41
  301. package/data/commands/vb.json +163 -32
  302. package/data/commands/wgsl.json +169 -29
  303. package/data/commands/xml.json +161 -41
  304. package/data/commands/yaml.json +170 -34
  305. package/data/completion/redis-cli.json +3465 -3405
  306. package/data/declaration/abap.json +66 -11
  307. package/data/declaration/angular.json +271 -46
  308. package/data/declaration/apex.json +60 -10
  309. package/data/declaration/awk.json +30 -0
  310. package/data/declaration/azcli.json +72 -42
  311. package/data/declaration/bicep.json +66 -36
  312. package/data/declaration/c.json +30 -0
  313. package/data/declaration/caddy.json +30 -0
  314. package/data/declaration/cameligo.json +54 -24
  315. package/data/declaration/clojure.json +66 -36
  316. package/data/declaration/coffee.json +54 -24
  317. package/data/declaration/cpp.json +30 -0
  318. package/data/declaration/crontab.json +66 -36
  319. package/data/declaration/csharp.json +30 -0
  320. package/data/declaration/css.json +91 -59
  321. package/data/declaration/cypher.json +66 -36
  322. package/data/declaration/dart.json +150 -25
  323. package/data/declaration/docker-compose.json +72 -42
  324. package/data/declaration/dockerfile.json +30 -0
  325. package/data/declaration/doctest.json +66 -36
  326. package/data/declaration/dotenv.json +72 -42
  327. package/data/declaration/ecl.json +54 -24
  328. package/data/declaration/elixir.json +66 -36
  329. package/data/declaration/flow9.json +72 -42
  330. package/data/declaration/freemarker2.json +54 -24
  331. package/data/declaration/go.json +30 -0
  332. package/data/declaration/graphql.json +30 -0
  333. package/data/declaration/hcl.json +30 -0
  334. package/data/declaration/html.json +90 -60
  335. package/data/declaration/ini.json +66 -36
  336. package/data/declaration/java.json +30 -0
  337. package/data/declaration/javascript.json +30 -0
  338. package/data/declaration/json.json +60 -30
  339. package/data/declaration/julia.json +66 -36
  340. package/data/declaration/kotlin.json +84 -14
  341. package/data/declaration/less.json +54 -24
  342. package/data/declaration/lexon.json +72 -42
  343. package/data/declaration/liquid.json +54 -24
  344. package/data/declaration/lua.json +30 -0
  345. package/data/declaration/m3.json +60 -30
  346. package/data/declaration/makefile.json +30 -0
  347. package/data/declaration/markdown.json +72 -42
  348. package/data/declaration/mdx.json +54 -24
  349. package/data/declaration/mips.json +72 -42
  350. package/data/declaration/msdax.json +72 -42
  351. package/data/declaration/mysql.json +60 -30
  352. package/data/declaration/nestjs.json +302 -47
  353. package/data/declaration/nextjs.json +304 -274
  354. package/data/declaration/nginx.json +30 -0
  355. package/data/declaration/objective-c.json +66 -36
  356. package/data/declaration/pascal.json +66 -36
  357. package/data/declaration/pascaligo.json +54 -24
  358. package/data/declaration/perl.json +30 -0
  359. package/data/declaration/pgsql.json +66 -36
  360. package/data/declaration/php.json +30 -0
  361. package/data/declaration/pla.json +78 -48
  362. package/data/declaration/postiats.json +60 -30
  363. package/data/declaration/powerquery.json +78 -48
  364. package/data/declaration/powershell.json +30 -0
  365. package/data/declaration/protobuf.json +30 -0
  366. package/data/declaration/python.json +30 -0
  367. package/data/declaration/qsharp.json +60 -30
  368. package/data/declaration/r.json +655 -625
  369. package/data/declaration/razor.json +54 -24
  370. package/data/declaration/react.json +229 -199
  371. package/data/declaration/redis-cli.json +247 -217
  372. package/data/declaration/redis.json +66 -36
  373. package/data/declaration/redshift.json +78 -48
  374. package/data/declaration/restructuredtext.json +84 -54
  375. package/data/declaration/ruby.json +30 -0
  376. package/data/declaration/rust.json +30 -0
  377. package/data/declaration/sb.json +72 -42
  378. package/data/declaration/scala.json +138 -23
  379. package/data/declaration/scheme.json +54 -24
  380. package/data/declaration/scss.json +66 -36
  381. package/data/declaration/shadcn.json +241 -211
  382. package/data/declaration/shell.json +30 -0
  383. package/data/declaration/sol.json +66 -36
  384. package/data/declaration/sparql.json +78 -48
  385. package/data/declaration/sql.json +30 -0
  386. package/data/declaration/ssh_config.json +78 -48
  387. package/data/declaration/st.json +60 -30
  388. package/data/declaration/swift.json +108 -18
  389. package/data/declaration/systemd.json +84 -54
  390. package/data/declaration/systemverilog.json +66 -36
  391. package/data/declaration/tailwindcss.json +169 -137
  392. package/data/declaration/tcl.json +54 -24
  393. package/data/declaration/toml.json +30 -0
  394. package/data/declaration/twig.json +54 -24
  395. package/data/declaration/typescript.json +30 -0
  396. package/data/declaration/vb.json +66 -36
  397. package/data/declaration/wgsl.json +60 -30
  398. package/data/declaration/xml.json +30 -0
  399. package/data/declaration/yaml.json +30 -0
  400. package/data/definition/apex.json +41 -1
  401. package/data/definition/azcli.json +45 -0
  402. package/data/definition/bicep.json +45 -0
  403. package/data/definition/cameligo.json +45 -0
  404. package/data/definition/clojure.json +45 -0
  405. package/data/definition/coffee.json +31 -1
  406. package/data/definition/crontab.json +132 -107
  407. package/data/definition/csharp.json +616 -144
  408. package/data/definition/cypher.json +45 -0
  409. package/data/definition/dart.json +36 -1
  410. package/data/definition/doctest.json +45 -0
  411. package/data/definition/dotenv.json +116 -71
  412. package/data/definition/ecl.json +45 -0
  413. package/data/definition/elixir.json +41 -1
  414. package/data/definition/graphql.json +134 -119
  415. package/data/definition/ini.json +122 -77
  416. package/data/definition/java.json +31 -1
  417. package/data/definition/javascript.json +941 -265
  418. package/data/definition/json.json +123 -83
  419. package/data/definition/julia.json +35 -0
  420. package/data/definition/kotlin.json +41 -1
  421. package/data/definition/less.json +45 -0
  422. package/data/definition/lexon.json +45 -0
  423. package/data/definition/m3.json +45 -0
  424. package/data/definition/makefile.json +133 -113
  425. package/data/definition/markdown.json +132 -107
  426. package/data/definition/mdx.json +45 -0
  427. package/data/definition/objective-c.json +45 -0
  428. package/data/definition/pascal.json +30 -0
  429. package/data/definition/pascaligo.json +45 -0
  430. package/data/definition/perl.json +131 -101
  431. package/data/definition/pgsql.json +15 -0
  432. package/data/definition/pla.json +45 -0
  433. package/data/definition/postiats.json +40 -0
  434. package/data/definition/powerquery.json +30 -0
  435. package/data/definition/powershell.json +134 -119
  436. package/data/definition/protobuf.json +134 -119
  437. package/data/definition/qsharp.json +35 -0
  438. package/data/definition/razor.json +30 -0
  439. package/data/definition/redshift.json +35 -0
  440. package/data/definition/restructuredtext.json +45 -0
  441. package/data/definition/ruby.json +36 -1
  442. package/data/definition/rust.json +41 -1
  443. package/data/definition/sb.json +41 -1
  444. package/data/definition/scheme.json +25 -0
  445. package/data/definition/scss.json +35 -0
  446. package/data/definition/sol.json +45 -0
  447. package/data/definition/sparql.json +45 -0
  448. package/data/definition/ssh_config.json +129 -89
  449. package/data/definition/systemverilog.json +40 -0
  450. package/data/definition/tcl.json +45 -0
  451. package/data/definition/twig.json +133 -113
  452. package/data/definition/vb.json +133 -113
  453. package/data/definition/wgsl.json +133 -113
  454. package/data/definition/xml.json +128 -83
  455. package/data/documentHighlight/css.json +227 -125
  456. package/data/documentHighlight/nextjs.json +270 -212
  457. package/data/documentHighlight/r.json +207 -45
  458. package/data/documentHighlight/scala.json +380 -79
  459. package/data/documentHighlight/tailwindcss.json +252 -160
  460. package/data/documentRangeFormatting/abap.json +62 -35
  461. package/data/documentRangeFormatting/angular.json +81 -45
  462. package/data/documentRangeFormatting/apex.json +75 -41
  463. package/data/documentRangeFormatting/awk.json +62 -35
  464. package/data/documentRangeFormatting/azcli.json +61 -29
  465. package/data/documentRangeFormatting/bicep.json +67 -35
  466. package/data/documentRangeFormatting/c.json +75 -41
  467. package/data/documentRangeFormatting/caddy.json +59 -29
  468. package/data/documentRangeFormatting/cameligo.json +65 -35
  469. package/data/documentRangeFormatting/clojure.json +67 -35
  470. package/data/documentRangeFormatting/coffee.json +67 -35
  471. package/data/documentRangeFormatting/cpp.json +83 -47
  472. package/data/documentRangeFormatting/crontab.json +61 -29
  473. package/data/documentRangeFormatting/csharp.json +81 -47
  474. package/data/documentRangeFormatting/css.json +133 -101
  475. package/data/documentRangeFormatting/cypher.json +67 -35
  476. package/data/documentRangeFormatting/dart.json +75 -41
  477. package/data/documentRangeFormatting/docker-compose.json +67 -35
  478. package/data/documentRangeFormatting/dockerfile.json +69 -35
  479. package/data/documentRangeFormatting/doctest.json +59 -29
  480. package/data/documentRangeFormatting/dotenv.json +63 -29
  481. package/data/documentRangeFormatting/ecl.json +67 -35
  482. package/data/documentRangeFormatting/elixir.json +73 -41
  483. package/data/documentRangeFormatting/flow9.json +60 -35
  484. package/data/documentRangeFormatting/freemarker2.json +65 -35
  485. package/data/documentRangeFormatting/go.json +75 -41
  486. package/data/documentRangeFormatting/graphql.json +65 -35
  487. package/data/documentRangeFormatting/hcl.json +73 -41
  488. package/data/documentRangeFormatting/html.json +75 -41
  489. package/data/documentRangeFormatting/ini.json +61 -29
  490. package/data/documentRangeFormatting/java.json +83 -47
  491. package/data/documentRangeFormatting/javascript.json +83 -47
  492. package/data/documentRangeFormatting/json.json +67 -35
  493. package/data/documentRangeFormatting/julia.json +70 -41
  494. package/data/documentRangeFormatting/kotlin.json +83 -47
  495. package/data/documentRangeFormatting/less.json +67 -35
  496. package/data/documentRangeFormatting/lexon.json +59 -29
  497. package/data/documentRangeFormatting/liquid.json +65 -35
  498. package/data/documentRangeFormatting/lua.json +62 -35
  499. package/data/documentRangeFormatting/m3.json +67 -35
  500. package/data/documentRangeFormatting/makefile.json +69 -35
  501. package/data/documentRangeFormatting/markdown.json +67 -35
  502. package/data/documentRangeFormatting/mdx.json +67 -35
  503. package/data/documentRangeFormatting/mips.json +67 -35
  504. package/data/documentRangeFormatting/msdax.json +62 -35
  505. package/data/documentRangeFormatting/mysql.json +75 -41
  506. package/data/documentRangeFormatting/nestjs.json +26 -1
  507. package/data/documentRangeFormatting/nextjs.json +26 -1
  508. package/data/documentRangeFormatting/nginx.json +67 -35
  509. package/data/documentRangeFormatting/objective-c.json +75 -41
  510. package/data/documentRangeFormatting/pascal.json +67 -35
  511. package/data/documentRangeFormatting/pascaligo.json +67 -35
  512. package/data/documentRangeFormatting/perl.json +75 -41
  513. package/data/documentRangeFormatting/pgsql.json +90 -47
  514. package/data/documentRangeFormatting/php.json +96 -53
  515. package/data/documentRangeFormatting/pla.json +71 -35
  516. package/data/documentRangeFormatting/postiats.json +79 -41
  517. package/data/documentRangeFormatting/powerquery.json +87 -47
  518. package/data/documentRangeFormatting/powershell.json +95 -53
  519. package/data/documentRangeFormatting/protobuf.json +97 -53
  520. package/data/documentRangeFormatting/python.json +95 -53
  521. package/data/documentRangeFormatting/qsharp.json +87 -47
  522. package/data/documentRangeFormatting/r.json +87 -47
  523. package/data/documentRangeFormatting/razor.json +85 -47
  524. package/data/documentRangeFormatting/react.json +26 -1
  525. package/data/documentRangeFormatting/redis-cli.json +71 -35
  526. package/data/documentRangeFormatting/redis.json +71 -35
  527. package/data/documentRangeFormatting/redshift.json +90 -47
  528. package/data/documentRangeFormatting/restructuredtext.json +80 -41
  529. package/data/documentRangeFormatting/ruby.json +96 -53
  530. package/data/documentRangeFormatting/rust.json +103 -59
  531. package/data/documentRangeFormatting/sb.json +81 -41
  532. package/data/documentRangeFormatting/scala.json +103 -59
  533. package/data/documentRangeFormatting/scheme.json +87 -47
  534. package/data/documentRangeFormatting/scss.json +96 -53
  535. package/data/documentRangeFormatting/shadcn.json +81 -45
  536. package/data/documentRangeFormatting/shell.json +27 -1
  537. package/data/documentRangeFormatting/sol.json +95 -53
  538. package/data/documentRangeFormatting/sparql.json +89 -47
  539. package/data/documentRangeFormatting/sql.json +98 -53
  540. package/data/documentRangeFormatting/ssh_config.json +72 -35
  541. package/data/documentRangeFormatting/st.json +87 -47
  542. package/data/documentRangeFormatting/swift.json +104 -59
  543. package/data/documentRangeFormatting/systemd.json +72 -35
  544. package/data/documentRangeFormatting/systemverilog.json +106 -59
  545. package/data/documentRangeFormatting/tailwindcss.json +87 -55
  546. package/data/documentRangeFormatting/tcl.json +87 -47
  547. package/data/documentRangeFormatting/toml.json +79 -41
  548. package/data/documentRangeFormatting/twig.json +99 -53
  549. package/data/documentRangeFormatting/typescript.json +104 -59
  550. package/data/documentRangeFormatting/vb.json +109 -59
  551. package/data/documentRangeFormatting/wgsl.json +85 -47
  552. package/data/documentRangeFormatting/xml.json +89 -47
  553. package/data/documentRangeFormatting/yaml.json +89 -47
  554. package/data/documentSymbol/abap.json +22 -1
  555. package/data/documentSymbol/apex.json +36 -1
  556. package/data/documentSymbol/awk.json +50 -1
  557. package/data/documentSymbol/azcli.json +75 -12
  558. package/data/documentSymbol/bicep.json +36 -1
  559. package/data/documentSymbol/c.json +50 -1
  560. package/data/documentSymbol/caddy.json +57 -1
  561. package/data/documentSymbol/cameligo.json +75 -26
  562. package/data/documentSymbol/clojure.json +29 -1
  563. package/data/documentSymbol/coffee.json +75 -26
  564. package/data/documentSymbol/cpp.json +35 -0
  565. package/data/documentSymbol/crontab.json +63 -0
  566. package/data/documentSymbol/csharp.json +28 -0
  567. package/data/documentSymbol/css.json +14 -14
  568. package/data/documentSymbol/cypher.json +75 -47
  569. package/data/documentSymbol/dockerfile.json +50 -1
  570. package/data/documentSymbol/doctest.json +75 -12
  571. package/data/documentSymbol/dotenv.json +63 -0
  572. package/data/documentSymbol/ecl.json +75 -26
  573. package/data/documentSymbol/elixir.json +36 -1
  574. package/data/documentSymbol/flow9.json +75 -19
  575. package/data/documentSymbol/freemarker2.json +75 -26
  576. package/data/documentSymbol/go.json +43 -1
  577. package/data/documentSymbol/graphql.json +30 -2
  578. package/data/documentSymbol/hcl.json +43 -1
  579. package/data/documentSymbol/html.json +29 -1
  580. package/data/documentSymbol/ini.json +56 -0
  581. package/data/documentSymbol/java.json +36 -1
  582. package/data/documentSymbol/javascript.json +36 -1
  583. package/data/documentSymbol/json.json +63 -0
  584. package/data/documentSymbol/julia.json +29 -1
  585. package/data/documentSymbol/less.json +50 -1
  586. package/data/documentSymbol/lexon.json +75 -19
  587. package/data/documentSymbol/liquid.json +75 -26
  588. package/data/documentSymbol/lua.json +36 -1
  589. package/data/documentSymbol/m3.json +75 -33
  590. package/data/documentSymbol/makefile.json +43 -1
  591. package/data/documentSymbol/markdown.json +22 -1
  592. package/data/documentSymbol/mdx.json +75 -26
  593. package/data/documentSymbol/mips.json +75 -19
  594. package/data/documentSymbol/msdax.json +75 -19
  595. package/data/documentSymbol/mysql.json +43 -1
  596. package/data/documentSymbol/nginx.json +50 -1
  597. package/data/documentSymbol/objective-c.json +75 -40
  598. package/data/documentSymbol/pascal.json +29 -1
  599. package/data/documentSymbol/pascaligo.json +75 -26
  600. package/data/documentSymbol/perl.json +50 -1
  601. package/data/documentSymbol/pgsql.json +36 -1
  602. package/data/documentSymbol/php.json +29 -1
  603. package/data/documentSymbol/pla.json +75 -12
  604. package/data/documentSymbol/postiats.json +75 -33
  605. package/data/documentSymbol/powerquery.json +75 -19
  606. package/data/documentSymbol/powershell.json +43 -1
  607. package/data/documentSymbol/protobuf.json +43 -1
  608. package/data/documentSymbol/python.json +50 -1
  609. package/data/documentSymbol/qsharp.json +75 -33
  610. package/data/documentSymbol/r.json +8 -1
  611. package/data/documentSymbol/razor.json +75 -26
  612. package/data/documentSymbol/redis-cli.json +75 -26
  613. package/data/documentSymbol/redis.json +75 -26
  614. package/data/documentSymbol/redshift.json +15 -1
  615. package/data/documentSymbol/restructuredtext.json +75 -19
  616. package/data/documentSymbol/ruby.json +43 -1
  617. package/data/documentSymbol/rust.json +8 -1
  618. package/data/documentSymbol/sb.json +75 -19
  619. package/data/documentSymbol/scheme.json +50 -1
  620. package/data/documentSymbol/scss.json +36 -1
  621. package/data/documentSymbol/sol.json +75 -68
  622. package/data/documentSymbol/sparql.json +75 -19
  623. package/data/documentSymbol/sql.json +36 -1
  624. package/data/documentSymbol/ssh_config.json +56 -0
  625. package/data/documentSymbol/st.json +75 -33
  626. package/data/documentSymbol/systemd.json +56 -0
  627. package/data/documentSymbol/systemverilog.json +75 -47
  628. package/data/documentSymbol/tcl.json +75 -26
  629. package/data/documentSymbol/toml.json +49 -0
  630. package/data/documentSymbol/twig.json +75 -26
  631. package/data/documentSymbol/typescript.json +15 -1
  632. package/data/documentSymbol/vb.json +22 -1
  633. package/data/documentSymbol/wgsl.json +75 -33
  634. package/data/documentSymbol/xml.json +56 -0
  635. package/data/documentSymbol/yaml.json +50 -1
  636. package/data/foldingRange/abap.json +106 -76
  637. package/data/foldingRange/angular.json +24 -0
  638. package/data/foldingRange/apex.json +94 -70
  639. package/data/foldingRange/awk.json +88 -64
  640. package/data/foldingRange/azcli.json +58 -34
  641. package/data/foldingRange/bicep.json +94 -70
  642. package/data/foldingRange/c.json +82 -58
  643. package/data/foldingRange/caddy.json +64 -40
  644. package/data/foldingRange/cameligo.json +82 -58
  645. package/data/foldingRange/clojure.json +100 -76
  646. package/data/foldingRange/coffee.json +105 -76
  647. package/data/foldingRange/cpp.json +100 -76
  648. package/data/foldingRange/crontab.json +52 -28
  649. package/data/foldingRange/csharp.json +100 -76
  650. package/data/foldingRange/css.json +90 -66
  651. package/data/foldingRange/cypher.json +76 -52
  652. package/data/foldingRange/dart.json +106 -82
  653. package/data/foldingRange/docker-compose.json +87 -58
  654. package/data/foldingRange/dockerfile.json +76 -52
  655. package/data/foldingRange/doctest.json +82 -58
  656. package/data/foldingRange/dotenv.json +52 -28
  657. package/data/foldingRange/ecl.json +112 -82
  658. package/data/foldingRange/elixir.json +147 -118
  659. package/data/foldingRange/flow9.json +40 -16
  660. package/data/foldingRange/freemarker2.json +64 -34
  661. package/data/foldingRange/go.json +70 -46
  662. package/data/foldingRange/graphql.json +64 -40
  663. package/data/foldingRange/hcl.json +76 -52
  664. package/data/foldingRange/html.json +64 -34
  665. package/data/foldingRange/ini.json +46 -22
  666. package/data/foldingRange/java.json +76 -52
  667. package/data/foldingRange/javascript.json +70 -46
  668. package/data/foldingRange/json.json +46 -22
  669. package/data/foldingRange/julia.json +76 -52
  670. package/data/foldingRange/kotlin.json +76 -52
  671. package/data/foldingRange/less.json +58 -34
  672. package/data/foldingRange/lexon.json +46 -22
  673. package/data/foldingRange/liquid.json +64 -34
  674. package/data/foldingRange/lua.json +82 -52
  675. package/data/foldingRange/m3.json +64 -34
  676. package/data/foldingRange/makefile.json +57 -28
  677. package/data/foldingRange/markdown.json +58 -34
  678. package/data/foldingRange/mdx.json +64 -34
  679. package/data/foldingRange/mips.json +58 -34
  680. package/data/foldingRange/msdax.json +52 -28
  681. package/data/foldingRange/mysql.json +58 -34
  682. package/data/foldingRange/nestjs.json +24 -0
  683. package/data/foldingRange/nextjs.json +24 -0
  684. package/data/foldingRange/nginx.json +70 -46
  685. package/data/foldingRange/objective-c.json +70 -46
  686. package/data/foldingRange/pascal.json +76 -46
  687. package/data/foldingRange/pascaligo.json +52 -28
  688. package/data/foldingRange/perl.json +76 -52
  689. package/data/foldingRange/pgsql.json +64 -40
  690. package/data/foldingRange/php.json +70 -46
  691. package/data/foldingRange/pla.json +52 -28
  692. package/data/foldingRange/postiats.json +58 -28
  693. package/data/foldingRange/powerquery.json +52 -28
  694. package/data/foldingRange/powershell.json +76 -52
  695. package/data/foldingRange/protobuf.json +64 -40
  696. package/data/foldingRange/python.json +93 -64
  697. package/data/foldingRange/qsharp.json +52 -28
  698. package/data/foldingRange/r.json +70 -46
  699. package/data/foldingRange/razor.json +70 -40
  700. package/data/foldingRange/react.json +24 -0
  701. package/data/foldingRange/redis-cli.json +46 -22
  702. package/data/foldingRange/redis.json +46 -22
  703. package/data/foldingRange/redshift.json +52 -28
  704. package/data/foldingRange/restructuredtext.json +51 -22
  705. package/data/foldingRange/ruby.json +87 -52
  706. package/data/foldingRange/rust.json +88 -64
  707. package/data/foldingRange/sb.json +64 -34
  708. package/data/foldingRange/scala.json +76 -52
  709. package/data/foldingRange/scheme.json +64 -40
  710. package/data/foldingRange/scss.json +64 -40
  711. package/data/foldingRange/shadcn.json +24 -0
  712. package/data/foldingRange/shell.json +24 -0
  713. package/data/foldingRange/sol.json +70 -46
  714. package/data/foldingRange/sparql.json +58 -34
  715. package/data/foldingRange/sql.json +58 -34
  716. package/data/foldingRange/ssh_config.json +46 -22
  717. package/data/foldingRange/st.json +70 -40
  718. package/data/foldingRange/swift.json +82 -58
  719. package/data/foldingRange/systemd.json +70 -46
  720. package/data/foldingRange/systemverilog.json +64 -40
  721. package/data/foldingRange/tailwindcss.json +78 -60
  722. package/data/foldingRange/tcl.json +76 -46
  723. package/data/foldingRange/toml.json +46 -22
  724. package/data/foldingRange/twig.json +64 -34
  725. package/data/foldingRange/typescript.json +88 -64
  726. package/data/foldingRange/vb.json +82 -52
  727. package/data/foldingRange/wgsl.json +70 -46
  728. package/data/foldingRange/xml.json +58 -28
  729. package/data/foldingRange/yaml.json +51 -22
  730. package/data/formatting/abap.json +31 -2
  731. package/data/formatting/apex.json +31 -2
  732. package/data/formatting/awk.json +21 -1
  733. package/data/formatting/azcli.json +32 -3
  734. package/data/formatting/bicep.json +31 -2
  735. package/data/formatting/c.json +21 -1
  736. package/data/formatting/caddy.json +26 -1
  737. package/data/formatting/cameligo.json +31 -2
  738. package/data/formatting/clojure.json +31 -2
  739. package/data/formatting/coffee.json +31 -2
  740. package/data/formatting/cpp.json +21 -1
  741. package/data/formatting/crontab.json +31 -2
  742. package/data/formatting/csharp.json +21 -1
  743. package/data/formatting/cypher.json +31 -2
  744. package/data/formatting/dart.json +6 -2
  745. package/data/formatting/docker-compose.json +26 -2
  746. package/data/formatting/dockerfile.json +30 -2
  747. package/data/formatting/doctest.json +31 -2
  748. package/data/formatting/dotenv.json +32 -3
  749. package/data/formatting/ecl.json +31 -2
  750. package/data/formatting/elixir.json +6 -2
  751. package/data/formatting/flow9.json +31 -2
  752. package/data/formatting/freemarker2.json +31 -2
  753. package/data/formatting/go.json +21 -1
  754. package/data/formatting/graphql.json +26 -1
  755. package/data/formatting/ini.json +30 -2
  756. package/data/formatting/java.json +21 -1
  757. package/data/formatting/javascript.json +21 -1
  758. package/data/formatting/json.json +25 -0
  759. package/data/formatting/julia.json +31 -2
  760. package/data/formatting/kotlin.json +16 -2
  761. package/data/formatting/lexon.json +31 -2
  762. package/data/formatting/liquid.json +31 -2
  763. package/data/formatting/lua.json +21 -1
  764. package/data/formatting/m3.json +31 -2
  765. package/data/formatting/makefile.json +21 -1
  766. package/data/formatting/markdown.json +6 -2
  767. package/data/formatting/mdx.json +31 -2
  768. package/data/formatting/mips.json +31 -3
  769. package/data/formatting/msdax.json +31 -2
  770. package/data/formatting/mysql.json +6 -2
  771. package/data/formatting/nginx.json +21 -1
  772. package/data/formatting/objective-c.json +31 -2
  773. package/data/formatting/pascal.json +31 -2
  774. package/data/formatting/pascaligo.json +31 -2
  775. package/data/formatting/perl.json +21 -1
  776. package/data/formatting/pgsql.json +6 -2
  777. package/data/formatting/php.json +21 -1
  778. package/data/formatting/pla.json +32 -3
  779. package/data/formatting/postiats.json +31 -2
  780. package/data/formatting/powerquery.json +31 -2
  781. package/data/formatting/powershell.json +21 -1
  782. package/data/formatting/protobuf.json +26 -1
  783. package/data/formatting/python.json +21 -1
  784. package/data/formatting/qsharp.json +31 -2
  785. package/data/formatting/r.json +16 -1
  786. package/data/formatting/razor.json +31 -2
  787. package/data/formatting/redis-cli.json +32 -3
  788. package/data/formatting/redis.json +32 -3
  789. package/data/formatting/redshift.json +6 -2
  790. package/data/formatting/restructuredtext.json +30 -2
  791. package/data/formatting/ruby.json +21 -1
  792. package/data/formatting/rust.json +21 -1
  793. package/data/formatting/sb.json +32 -3
  794. package/data/formatting/scheme.json +31 -2
  795. package/data/formatting/sol.json +31 -2
  796. package/data/formatting/sparql.json +31 -2
  797. package/data/formatting/sql.json +21 -1
  798. package/data/formatting/ssh_config.json +26 -1
  799. package/data/formatting/st.json +31 -2
  800. package/data/formatting/systemd.json +31 -2
  801. package/data/formatting/systemverilog.json +32 -3
  802. package/data/formatting/tcl.json +31 -2
  803. package/data/formatting/toml.json +30 -2
  804. package/data/formatting/twig.json +32 -3
  805. package/data/formatting/typescript.json +21 -1
  806. package/data/formatting/vb.json +31 -2
  807. package/data/formatting/wgsl.json +32 -3
  808. package/data/formatting/yaml.json +26 -1
  809. package/data/hover/abap.json +152 -14
  810. package/data/hover/azcli.json +180 -75
  811. package/data/hover/bicep.json +180 -75
  812. package/data/hover/caddy.json +530 -458
  813. package/data/hover/cameligo.json +173 -75
  814. package/data/hover/clojure.json +180 -75
  815. package/data/hover/coffee.json +180 -75
  816. package/data/hover/cypher.json +173 -75
  817. package/data/hover/dockerfile.json +355 -283
  818. package/data/hover/doctest.json +180 -75
  819. package/data/hover/ecl.json +152 -75
  820. package/data/hover/elixir.json +180 -75
  821. package/data/hover/flow9.json +180 -75
  822. package/data/hover/freemarker2.json +180 -75
  823. package/data/hover/hcl.json +173 -75
  824. package/data/hover/ini.json +159 -68
  825. package/data/hover/json.json +194 -89
  826. package/data/hover/julia.json +173 -75
  827. package/data/hover/less.json +180 -75
  828. package/data/hover/liquid.json +180 -75
  829. package/data/hover/lua.json +1391 -971
  830. package/data/hover/m3.json +180 -75
  831. package/data/hover/makefile.json +131 -68
  832. package/data/hover/mips.json +180 -75
  833. package/data/hover/msdax.json +180 -75
  834. package/data/hover/mysql.json +173 -75
  835. package/data/hover/nginx.json +957 -891
  836. package/data/hover/objective-c.json +180 -75
  837. package/data/hover/pascal.json +159 -75
  838. package/data/hover/pascaligo.json +166 -75
  839. package/data/hover/pgsql.json +173 -75
  840. package/data/hover/postiats.json +173 -75
  841. package/data/hover/powerquery.json +180 -75
  842. package/data/hover/qsharp.json +173 -75
  843. package/data/hover/razor.json +180 -75
  844. package/data/hover/redis-cli.json +2168 -1088
  845. package/data/hover/redshift.json +166 -75
  846. package/data/hover/restructuredtext.json +180 -75
  847. package/data/hover/sb.json +173 -75
  848. package/data/hover/scheme.json +173 -75
  849. package/data/hover/scss.json +180 -75
  850. package/data/hover/sol.json +159 -75
  851. package/data/hover/sparql.json +173 -75
  852. package/data/hover/sql.json +1405 -1273
  853. package/data/hover/st.json +159 -75
  854. package/data/hover/systemd.json +187 -89
  855. package/data/hover/systemverilog.json +180 -75
  856. package/data/hover/tcl.json +180 -75
  857. package/data/hover/twig.json +180 -75
  858. package/data/hover/typescript.json +215 -120
  859. package/data/hover/vb.json +180 -75
  860. package/data/hover/wgsl.json +173 -75
  861. package/data/implementation/abap.json +29 -0
  862. package/data/implementation/angular.json +148 -22
  863. package/data/implementation/apex.json +29 -0
  864. package/data/implementation/awk.json +29 -0
  865. package/data/implementation/azcli.json +55 -26
  866. package/data/implementation/bicep.json +29 -0
  867. package/data/implementation/c.json +29 -0
  868. package/data/implementation/caddy.json +29 -0
  869. package/data/implementation/cameligo.json +35 -0
  870. package/data/implementation/clojure.json +35 -0
  871. package/data/implementation/coffee.json +29 -0
  872. package/data/implementation/cpp.json +29 -0
  873. package/data/implementation/crontab.json +55 -26
  874. package/data/implementation/csharp.json +29 -0
  875. package/data/implementation/css.json +106 -65
  876. package/data/implementation/cypher.json +29 -0
  877. package/data/implementation/dart.json +79 -14
  878. package/data/implementation/docker-compose.json +29 -0
  879. package/data/implementation/dockerfile.json +29 -0
  880. package/data/implementation/doctest.json +55 -26
  881. package/data/implementation/dotenv.json +55 -26
  882. package/data/implementation/ecl.json +29 -0
  883. package/data/implementation/elixir.json +35 -0
  884. package/data/implementation/flow9.json +29 -0
  885. package/data/implementation/freemarker2.json +29 -0
  886. package/data/implementation/go.json +29 -0
  887. package/data/implementation/graphql.json +29 -0
  888. package/data/implementation/hcl.json +29 -0
  889. package/data/implementation/html.json +67 -38
  890. package/data/implementation/ini.json +55 -26
  891. package/data/implementation/java.json +29 -0
  892. package/data/implementation/javascript.json +29 -0
  893. package/data/implementation/json.json +55 -26
  894. package/data/implementation/julia.json +35 -0
  895. package/data/implementation/kotlin.json +74 -13
  896. package/data/implementation/less.json +29 -0
  897. package/data/implementation/lexon.json +29 -0
  898. package/data/implementation/liquid.json +29 -0
  899. package/data/implementation/lua.json +29 -0
  900. package/data/implementation/m3.json +29 -0
  901. package/data/implementation/makefile.json +29 -0
  902. package/data/implementation/markdown.json +55 -26
  903. package/data/implementation/mdx.json +53 -24
  904. package/data/implementation/mips.json +29 -0
  905. package/data/implementation/msdax.json +29 -0
  906. package/data/implementation/mysql.json +53 -24
  907. package/data/implementation/nestjs.json +146 -24
  908. package/data/implementation/nextjs.json +166 -137
  909. package/data/implementation/nginx.json +29 -0
  910. package/data/implementation/objective-c.json +29 -0
  911. package/data/implementation/pascal.json +29 -0
  912. package/data/implementation/pascaligo.json +35 -0
  913. package/data/implementation/perl.json +29 -0
  914. package/data/implementation/pgsql.json +53 -24
  915. package/data/implementation/php.json +29 -0
  916. package/data/implementation/pla.json +29 -0
  917. package/data/implementation/postiats.json +29 -0
  918. package/data/implementation/powerquery.json +29 -0
  919. package/data/implementation/powershell.json +29 -0
  920. package/data/implementation/protobuf.json +29 -0
  921. package/data/implementation/python.json +29 -0
  922. package/data/implementation/qsharp.json +29 -0
  923. package/data/implementation/r.json +35 -0
  924. package/data/implementation/razor.json +29 -0
  925. package/data/implementation/react.json +154 -125
  926. package/data/implementation/redis-cli.json +55 -26
  927. package/data/implementation/redis.json +55 -26
  928. package/data/implementation/redshift.json +29 -0
  929. package/data/implementation/restructuredtext.json +29 -0
  930. package/data/implementation/ruby.json +29 -0
  931. package/data/implementation/rust.json +29 -0
  932. package/data/implementation/sb.json +29 -0
  933. package/data/implementation/scala.json +93 -16
  934. package/data/implementation/scheme.json +59 -24
  935. package/data/implementation/scss.json +29 -0
  936. package/data/implementation/shadcn.json +130 -89
  937. package/data/implementation/shell.json +29 -0
  938. package/data/implementation/sol.json +29 -0
  939. package/data/implementation/sparql.json +29 -0
  940. package/data/implementation/sql.json +29 -0
  941. package/data/implementation/ssh_config.json +55 -26
  942. package/data/implementation/st.json +29 -0
  943. package/data/implementation/swift.json +78 -14
  944. package/data/implementation/systemd.json +61 -32
  945. package/data/implementation/systemverilog.json +29 -0
  946. package/data/implementation/tailwindcss.json +100 -59
  947. package/data/implementation/tcl.json +29 -0
  948. package/data/implementation/toml.json +55 -26
  949. package/data/implementation/twig.json +29 -0
  950. package/data/implementation/typescript.json +29 -0
  951. package/data/implementation/vb.json +53 -24
  952. package/data/implementation/wgsl.json +53 -24
  953. package/data/implementation/xml.json +61 -32
  954. package/data/implementation/yaml.json +61 -32
  955. package/data/inlayHints/abap.json +81 -39
  956. package/data/inlayHints/angular.json +164 -24
  957. package/data/inlayHints/apex.json +85 -43
  958. package/data/inlayHints/awk.json +42 -0
  959. package/data/inlayHints/azcli.json +69 -27
  960. package/data/inlayHints/bicep.json +89 -47
  961. package/data/inlayHints/c.json +42 -0
  962. package/data/inlayHints/caddy.json +42 -0
  963. package/data/inlayHints/cameligo.json +73 -31
  964. package/data/inlayHints/clojure.json +93 -51
  965. package/data/inlayHints/coffee.json +81 -39
  966. package/data/inlayHints/cpp.json +42 -0
  967. package/data/inlayHints/crontab.json +69 -27
  968. package/data/inlayHints/csharp.json +42 -0
  969. package/data/inlayHints/css.json +129 -87
  970. package/data/inlayHints/cypher.json +73 -31
  971. package/data/inlayHints/dart.json +165 -29
  972. package/data/inlayHints/docker-compose.json +85 -43
  973. package/data/inlayHints/dockerfile.json +42 -0
  974. package/data/inlayHints/doctest.json +73 -31
  975. package/data/inlayHints/dotenv.json +77 -35
  976. package/data/inlayHints/ecl.json +69 -27
  977. package/data/inlayHints/elixir.json +97 -55
  978. package/data/inlayHints/flow9.json +69 -27
  979. package/data/inlayHints/freemarker2.json +69 -27
  980. package/data/inlayHints/go.json +42 -0
  981. package/data/inlayHints/graphql.json +85 -43
  982. package/data/inlayHints/hcl.json +42 -0
  983. package/data/inlayHints/html.json +69 -27
  984. package/data/inlayHints/ini.json +69 -27
  985. package/data/inlayHints/java.json +42 -0
  986. package/data/inlayHints/javascript.json +42 -0
  987. package/data/inlayHints/json.json +81 -39
  988. package/data/inlayHints/julia.json +93 -51
  989. package/data/inlayHints/kotlin.json +129 -23
  990. package/data/inlayHints/less.json +81 -39
  991. package/data/inlayHints/lexon.json +69 -27
  992. package/data/inlayHints/liquid.json +73 -31
  993. package/data/inlayHints/lua.json +42 -0
  994. package/data/inlayHints/m3.json +73 -31
  995. package/data/inlayHints/makefile.json +42 -0
  996. package/data/inlayHints/markdown.json +69 -27
  997. package/data/inlayHints/mdx.json +73 -31
  998. package/data/inlayHints/mips.json +73 -31
  999. package/data/inlayHints/msdax.json +73 -31
  1000. package/data/inlayHints/mysql.json +77 -35
  1001. package/data/inlayHints/nestjs.json +153 -24
  1002. package/data/inlayHints/nextjs.json +185 -143
  1003. package/data/inlayHints/nginx.json +42 -0
  1004. package/data/inlayHints/objective-c.json +89 -47
  1005. package/data/inlayHints/pascal.json +81 -39
  1006. package/data/inlayHints/pascaligo.json +69 -27
  1007. package/data/inlayHints/perl.json +42 -0
  1008. package/data/inlayHints/pgsql.json +81 -39
  1009. package/data/inlayHints/php.json +42 -0
  1010. package/data/inlayHints/pla.json +69 -27
  1011. package/data/inlayHints/postiats.json +69 -27
  1012. package/data/inlayHints/powerquery.json +81 -39
  1013. package/data/inlayHints/powershell.json +42 -0
  1014. package/data/inlayHints/protobuf.json +69 -27
  1015. package/data/inlayHints/python.json +42 -0
  1016. package/data/inlayHints/qsharp.json +81 -39
  1017. package/data/inlayHints/r.json +137 -95
  1018. package/data/inlayHints/razor.json +81 -39
  1019. package/data/inlayHints/react.json +236 -177
  1020. package/data/inlayHints/redis-cli.json +42 -0
  1021. package/data/inlayHints/redis.json +69 -27
  1022. package/data/inlayHints/redshift.json +73 -31
  1023. package/data/inlayHints/restructuredtext.json +69 -27
  1024. package/data/inlayHints/ruby.json +42 -0
  1025. package/data/inlayHints/rust.json +42 -0
  1026. package/data/inlayHints/sb.json +69 -27
  1027. package/data/inlayHints/scala.json +233 -42
  1028. package/data/inlayHints/scheme.json +93 -51
  1029. package/data/inlayHints/scss.json +93 -51
  1030. package/data/inlayHints/shadcn.json +151 -109
  1031. package/data/inlayHints/shell.json +42 -0
  1032. package/data/inlayHints/sol.json +85 -43
  1033. package/data/inlayHints/sparql.json +73 -31
  1034. package/data/inlayHints/sql.json +42 -0
  1035. package/data/inlayHints/ssh_config.json +73 -31
  1036. package/data/inlayHints/st.json +81 -39
  1037. package/data/inlayHints/swift.json +197 -37
  1038. package/data/inlayHints/systemd.json +81 -39
  1039. package/data/inlayHints/systemverilog.json +77 -35
  1040. package/data/inlayHints/tailwindcss.json +153 -111
  1041. package/data/inlayHints/tcl.json +73 -31
  1042. package/data/inlayHints/toml.json +81 -39
  1043. package/data/inlayHints/twig.json +81 -39
  1044. package/data/inlayHints/typescript.json +42 -0
  1045. package/data/inlayHints/vb.json +85 -43
  1046. package/data/inlayHints/wgsl.json +81 -39
  1047. package/data/inlayHints/xml.json +69 -27
  1048. package/data/inlayHints/yaml.json +77 -35
  1049. package/data/inlineCompletions/abap.json +85 -35
  1050. package/data/inlineCompletions/apex.json +85 -35
  1051. package/data/inlineCompletions/awk.json +65 -0
  1052. package/data/inlineCompletions/azcli.json +85 -35
  1053. package/data/inlineCompletions/bicep.json +85 -35
  1054. package/data/inlineCompletions/c.json +26 -1
  1055. package/data/inlineCompletions/caddy.json +50 -0
  1056. package/data/inlineCompletions/cameligo.json +84 -29
  1057. package/data/inlineCompletions/clojure.json +85 -35
  1058. package/data/inlineCompletions/coffee.json +85 -35
  1059. package/data/inlineCompletions/cpp.json +16 -1
  1060. package/data/inlineCompletions/crontab.json +50 -0
  1061. package/data/inlineCompletions/cypher.json +84 -29
  1062. package/data/inlineCompletions/docker-compose.json +94 -89
  1063. package/data/inlineCompletions/dockerfile.json +50 -0
  1064. package/data/inlineCompletions/doctest.json +83 -23
  1065. package/data/inlineCompletions/dotenv.json +55 -0
  1066. package/data/inlineCompletions/ecl.json +84 -29
  1067. package/data/inlineCompletions/elixir.json +51 -1
  1068. package/data/inlineCompletions/flow9.json +84 -29
  1069. package/data/inlineCompletions/freemarker2.json +84 -29
  1070. package/data/inlineCompletions/go.json +6 -1
  1071. package/data/inlineCompletions/graphql.json +65 -0
  1072. package/data/inlineCompletions/hcl.json +65 -0
  1073. package/data/inlineCompletions/html.json +51 -1
  1074. package/data/inlineCompletions/ini.json +60 -0
  1075. package/data/inlineCompletions/java.json +11 -1
  1076. package/data/inlineCompletions/json.json +60 -0
  1077. package/data/inlineCompletions/julia.json +85 -35
  1078. package/data/inlineCompletions/kotlin.json +6 -1
  1079. package/data/inlineCompletions/less.json +16 -1
  1080. package/data/inlineCompletions/lexon.json +83 -23
  1081. package/data/inlineCompletions/liquid.json +84 -29
  1082. package/data/inlineCompletions/lua.json +36 -1
  1083. package/data/inlineCompletions/m3.json +84 -29
  1084. package/data/inlineCompletions/makefile.json +55 -0
  1085. package/data/inlineCompletions/markdown.json +50 -0
  1086. package/data/inlineCompletions/mdx.json +84 -29
  1087. package/data/inlineCompletions/mips.json +85 -35
  1088. package/data/inlineCompletions/msdax.json +83 -23
  1089. package/data/inlineCompletions/mysql.json +51 -1
  1090. package/data/inlineCompletions/nginx.json +65 -0
  1091. package/data/inlineCompletions/objective-c.json +85 -35
  1092. package/data/inlineCompletions/pascal.json +85 -35
  1093. package/data/inlineCompletions/pascaligo.json +84 -29
  1094. package/data/inlineCompletions/perl.json +65 -0
  1095. package/data/inlineCompletions/pgsql.json +51 -1
  1096. package/data/inlineCompletions/php.json +31 -1
  1097. package/data/inlineCompletions/pla.json +84 -29
  1098. package/data/inlineCompletions/postiats.json +84 -29
  1099. package/data/inlineCompletions/powerquery.json +84 -29
  1100. package/data/inlineCompletions/powershell.json +65 -0
  1101. package/data/inlineCompletions/protobuf.json +65 -0
  1102. package/data/inlineCompletions/qsharp.json +85 -35
  1103. package/data/inlineCompletions/r.json +86 -41
  1104. package/data/inlineCompletions/razor.json +85 -35
  1105. package/data/inlineCompletions/redis-cli.json +50 -0
  1106. package/data/inlineCompletions/redis.json +84 -29
  1107. package/data/inlineCompletions/redshift.json +84 -29
  1108. package/data/inlineCompletions/restructuredtext.json +85 -35
  1109. package/data/inlineCompletions/ruby.json +26 -1
  1110. package/data/inlineCompletions/rust.json +11 -1
  1111. package/data/inlineCompletions/sb.json +85 -35
  1112. package/data/inlineCompletions/scheme.json +85 -35
  1113. package/data/inlineCompletions/scss.json +51 -1
  1114. package/data/inlineCompletions/sol.json +85 -35
  1115. package/data/inlineCompletions/sparql.json +85 -35
  1116. package/data/inlineCompletions/sql.json +31 -1
  1117. package/data/inlineCompletions/ssh_config.json +50 -0
  1118. package/data/inlineCompletions/st.json +85 -35
  1119. package/data/inlineCompletions/systemd.json +55 -0
  1120. package/data/inlineCompletions/systemverilog.json +85 -35
  1121. package/data/inlineCompletions/tcl.json +85 -35
  1122. package/data/inlineCompletions/toml.json +55 -0
  1123. package/data/inlineCompletions/twig.json +85 -35
  1124. package/data/inlineCompletions/vb.json +85 -35
  1125. package/data/inlineCompletions/wgsl.json +85 -35
  1126. package/data/inlineCompletions/xml.json +50 -0
  1127. package/data/inlineCompletions/yaml.json +50 -0
  1128. package/data/linkedEditingRange/abap.json +23 -13
  1129. package/data/linkedEditingRange/angular.json +30 -23
  1130. package/data/linkedEditingRange/apex.json +23 -13
  1131. package/data/linkedEditingRange/awk.json +23 -13
  1132. package/data/linkedEditingRange/azcli.json +18 -2
  1133. package/data/linkedEditingRange/bicep.json +23 -13
  1134. package/data/linkedEditingRange/c.json +24 -19
  1135. package/data/linkedEditingRange/caddy.json +23 -13
  1136. package/data/linkedEditingRange/cameligo.json +23 -13
  1137. package/data/linkedEditingRange/clojure.json +24 -19
  1138. package/data/linkedEditingRange/coffee.json +23 -13
  1139. package/data/linkedEditingRange/cpp.json +24 -19
  1140. package/data/linkedEditingRange/crontab.json +18 -2
  1141. package/data/linkedEditingRange/csharp.json +24 -19
  1142. package/data/linkedEditingRange/cypher.json +24 -19
  1143. package/data/linkedEditingRange/dart.json +23 -13
  1144. package/data/linkedEditingRange/docker-compose.json +18 -2
  1145. package/data/linkedEditingRange/dockerfile.json +23 -13
  1146. package/data/linkedEditingRange/doctest.json +18 -2
  1147. package/data/linkedEditingRange/dotenv.json +11 -1
  1148. package/data/linkedEditingRange/ecl.json +23 -13
  1149. package/data/linkedEditingRange/elixir.json +24 -19
  1150. package/data/linkedEditingRange/flow9.json +23 -13
  1151. package/data/linkedEditingRange/go.json +23 -13
  1152. package/data/linkedEditingRange/graphql.json +23 -13
  1153. package/data/linkedEditingRange/hcl.json +23 -13
  1154. package/data/linkedEditingRange/html.json +23 -13
  1155. package/data/linkedEditingRange/ini.json +11 -1
  1156. package/data/linkedEditingRange/java.json +23 -13
  1157. package/data/linkedEditingRange/javascript.json +24 -19
  1158. package/data/linkedEditingRange/json.json +11 -1
  1159. package/data/linkedEditingRange/julia.json +23 -13
  1160. package/data/linkedEditingRange/kotlin.json +23 -13
  1161. package/data/linkedEditingRange/less.json +24 -19
  1162. package/data/linkedEditingRange/lexon.json +18 -2
  1163. package/data/linkedEditingRange/liquid.json +24 -19
  1164. package/data/linkedEditingRange/lua.json +23 -13
  1165. package/data/linkedEditingRange/m3.json +23 -13
  1166. package/data/linkedEditingRange/makefile.json +23 -13
  1167. package/data/linkedEditingRange/markdown.json +23 -13
  1168. package/data/linkedEditingRange/mdx.json +24 -19
  1169. package/data/linkedEditingRange/mips.json +18 -2
  1170. package/data/linkedEditingRange/msdax.json +18 -2
  1171. package/data/linkedEditingRange/mysql.json +23 -13
  1172. package/data/linkedEditingRange/nestjs.json +5 -0
  1173. package/data/linkedEditingRange/nginx.json +23 -13
  1174. package/data/linkedEditingRange/objective-c.json +24 -19
  1175. package/data/linkedEditingRange/pascal.json +23 -13
  1176. package/data/linkedEditingRange/pascaligo.json +23 -13
  1177. package/data/linkedEditingRange/perl.json +23 -13
  1178. package/data/linkedEditingRange/pgsql.json +24 -19
  1179. package/data/linkedEditingRange/php.json +24 -19
  1180. package/data/linkedEditingRange/pla.json +18 -2
  1181. package/data/linkedEditingRange/postiats.json +23 -13
  1182. package/data/linkedEditingRange/powerquery.json +23 -13
  1183. package/data/linkedEditingRange/powershell.json +24 -19
  1184. package/data/linkedEditingRange/protobuf.json +23 -13
  1185. package/data/linkedEditingRange/python.json +23 -13
  1186. package/data/linkedEditingRange/qsharp.json +23 -13
  1187. package/data/linkedEditingRange/r.json +23 -13
  1188. package/data/linkedEditingRange/razor.json +24 -19
  1189. package/data/linkedEditingRange/redis-cli.json +18 -2
  1190. package/data/linkedEditingRange/redis.json +18 -2
  1191. package/data/linkedEditingRange/redshift.json +23 -13
  1192. package/data/linkedEditingRange/restructuredtext.json +23 -13
  1193. package/data/linkedEditingRange/ruby.json +23 -13
  1194. package/data/linkedEditingRange/rust.json +23 -13
  1195. package/data/linkedEditingRange/sb.json +23 -13
  1196. package/data/linkedEditingRange/scala.json +24 -19
  1197. package/data/linkedEditingRange/scheme.json +24 -19
  1198. package/data/linkedEditingRange/scss.json +24 -19
  1199. package/data/linkedEditingRange/shadcn.json +30 -23
  1200. package/data/linkedEditingRange/sol.json +23 -13
  1201. package/data/linkedEditingRange/sparql.json +23 -13
  1202. package/data/linkedEditingRange/sql.json +23 -13
  1203. package/data/linkedEditingRange/ssh_config.json +18 -2
  1204. package/data/linkedEditingRange/st.json +23 -13
  1205. package/data/linkedEditingRange/swift.json +23 -13
  1206. package/data/linkedEditingRange/systemd.json +18 -2
  1207. package/data/linkedEditingRange/systemverilog.json +23 -13
  1208. package/data/linkedEditingRange/tcl.json +23 -13
  1209. package/data/linkedEditingRange/toml.json +11 -1
  1210. package/data/linkedEditingRange/twig.json +24 -19
  1211. package/data/linkedEditingRange/typescript.json +24 -19
  1212. package/data/linkedEditingRange/vb.json +24 -19
  1213. package/data/linkedEditingRange/wgsl.json +18 -2
  1214. package/data/linkedEditingRange/xml.json +11 -1
  1215. package/data/linkedEditingRange/yaml.json +11 -1
  1216. package/data/links/abap.json +45 -0
  1217. package/data/links/angular.json +117 -95
  1218. package/data/links/apex.json +55 -0
  1219. package/data/links/awk.json +60 -0
  1220. package/data/links/azcli.json +60 -0
  1221. package/data/links/bicep.json +46 -0
  1222. package/data/links/c.json +66 -0
  1223. package/data/links/caddy.json +66 -0
  1224. package/data/links/cameligo.json +60 -0
  1225. package/data/links/clojure.json +46 -0
  1226. package/data/links/coffee.json +51 -0
  1227. package/data/links/cpp.json +66 -0
  1228. package/data/links/crontab.json +65 -0
  1229. package/data/links/csharp.json +66 -0
  1230. package/data/links/css.json +82 -55
  1231. package/data/links/cypher.json +61 -0
  1232. package/data/links/dart.json +84 -16
  1233. package/data/links/docker-compose.json +83 -47
  1234. package/data/links/dockerfile.json +66 -0
  1235. package/data/links/doctest.json +60 -0
  1236. package/data/links/dotenv.json +66 -0
  1237. package/data/links/ecl.json +55 -0
  1238. package/data/links/elixir.json +46 -0
  1239. package/data/links/flow9.json +65 -0
  1240. package/data/links/freemarker2.json +47 -0
  1241. package/data/links/go.json +66 -0
  1242. package/data/links/graphql.json +61 -0
  1243. package/data/links/hcl.json +66 -0
  1244. package/data/links/html.json +67 -0
  1245. package/data/links/ini.json +66 -0
  1246. package/data/links/java.json +66 -0
  1247. package/data/links/javascript.json +67 -0
  1248. package/data/links/json.json +56 -0
  1249. package/data/links/julia.json +56 -0
  1250. package/data/links/kotlin.json +83 -10
  1251. package/data/links/less.json +47 -0
  1252. package/data/links/lexon.json +70 -0
  1253. package/data/links/liquid.json +42 -0
  1254. package/data/links/lua.json +66 -0
  1255. package/data/links/m3.json +60 -0
  1256. package/data/links/makefile.json +66 -0
  1257. package/data/links/markdown.json +65 -0
  1258. package/data/links/mdx.json +52 -0
  1259. package/data/links/mips.json +65 -0
  1260. package/data/links/msdax.json +71 -0
  1261. package/data/links/mysql.json +56 -0
  1262. package/data/links/nestjs.json +157 -130
  1263. package/data/links/nextjs.json +118 -91
  1264. package/data/links/nginx.json +66 -0
  1265. package/data/links/objective-c.json +51 -0
  1266. package/data/links/pascal.json +50 -0
  1267. package/data/links/pascaligo.json +60 -0
  1268. package/data/links/perl.json +66 -0
  1269. package/data/links/pgsql.json +51 -0
  1270. package/data/links/php.json +66 -0
  1271. package/data/links/pla.json +70 -0
  1272. package/data/links/postiats.json +55 -0
  1273. package/data/links/powerquery.json +60 -0
  1274. package/data/links/powershell.json +65 -0
  1275. package/data/links/protobuf.json +66 -0
  1276. package/data/links/python.json +66 -0
  1277. package/data/links/qsharp.json +60 -0
  1278. package/data/links/r.json +81 -20
  1279. package/data/links/razor.json +42 -0
  1280. package/data/links/react.json +102 -75
  1281. package/data/links/redis-cli.json +71 -0
  1282. package/data/links/redis.json +71 -0
  1283. package/data/links/redshift.json +56 -0
  1284. package/data/links/restructuredtext.json +35 -0
  1285. package/data/links/ruby.json +66 -0
  1286. package/data/links/rust.json +66 -0
  1287. package/data/links/sb.json +70 -0
  1288. package/data/links/scala.json +83 -17
  1289. package/data/links/scheme.json +46 -0
  1290. package/data/links/scss.json +27 -0
  1291. package/data/links/shadcn.json +120 -98
  1292. package/data/links/shell.json +5 -0
  1293. package/data/links/sol.json +50 -0
  1294. package/data/links/sparql.json +61 -0
  1295. package/data/links/sql.json +61 -0
  1296. package/data/links/ssh_config.json +66 -0
  1297. package/data/links/st.json +60 -0
  1298. package/data/links/swift.json +83 -13
  1299. package/data/links/systemd.json +61 -0
  1300. package/data/links/systemverilog.json +60 -0
  1301. package/data/links/tailwindcss.json +92 -65
  1302. package/data/links/tcl.json +56 -0
  1303. package/data/links/toml.json +56 -0
  1304. package/data/links/twig.json +22 -0
  1305. package/data/links/typescript.json +67 -0
  1306. package/data/links/vb.json +56 -0
  1307. package/data/links/wgsl.json +70 -0
  1308. package/data/links/xml.json +66 -0
  1309. package/data/links/yaml.json +46 -0
  1310. package/data/manifest.json +8 -7
  1311. package/data/onTypeFormatting/abap.json +80 -42
  1312. package/data/onTypeFormatting/angular.json +34 -1
  1313. package/data/onTypeFormatting/apex.json +107 -69
  1314. package/data/onTypeFormatting/awk.json +95 -58
  1315. package/data/onTypeFormatting/azcli.json +63 -26
  1316. package/data/onTypeFormatting/bicep.json +90 -52
  1317. package/data/onTypeFormatting/c.json +117 -79
  1318. package/data/onTypeFormatting/caddy.json +80 -42
  1319. package/data/onTypeFormatting/cameligo.json +94 -57
  1320. package/data/onTypeFormatting/clojure.json +84 -47
  1321. package/data/onTypeFormatting/coffee.json +83 -46
  1322. package/data/onTypeFormatting/cpp.json +122 -84
  1323. package/data/onTypeFormatting/crontab.json +58 -21
  1324. package/data/onTypeFormatting/csharp.json +117 -79
  1325. package/data/onTypeFormatting/css.json +128 -82
  1326. package/data/onTypeFormatting/cypher.json +78 -41
  1327. package/data/onTypeFormatting/dart.json +117 -79
  1328. package/data/onTypeFormatting/docker-compose.json +80 -42
  1329. package/data/onTypeFormatting/dockerfile.json +80 -42
  1330. package/data/onTypeFormatting/doctest.json +68 -31
  1331. package/data/onTypeFormatting/dotenv.json +70 -32
  1332. package/data/onTypeFormatting/ecl.json +84 -47
  1333. package/data/onTypeFormatting/elixir.json +78 -41
  1334. package/data/onTypeFormatting/flow9.json +95 -58
  1335. package/data/onTypeFormatting/freemarker2.json +90 -52
  1336. package/data/onTypeFormatting/go.json +112 -74
  1337. package/data/onTypeFormatting/graphql.json +89 -52
  1338. package/data/onTypeFormatting/hcl.json +85 -47
  1339. package/data/onTypeFormatting/html.json +90 -52
  1340. package/data/onTypeFormatting/ini.json +75 -37
  1341. package/data/onTypeFormatting/java.json +117 -79
  1342. package/data/onTypeFormatting/javascript.json +122 -84
  1343. package/data/onTypeFormatting/json.json +84 -47
  1344. package/data/onTypeFormatting/julia.json +73 -36
  1345. package/data/onTypeFormatting/kotlin.json +112 -74
  1346. package/data/onTypeFormatting/less.json +95 -58
  1347. package/data/onTypeFormatting/lexon.json +75 -37
  1348. package/data/onTypeFormatting/liquid.json +95 -57
  1349. package/data/onTypeFormatting/lua.json +83 -46
  1350. package/data/onTypeFormatting/m3.json +89 -52
  1351. package/data/onTypeFormatting/makefile.json +78 -41
  1352. package/data/onTypeFormatting/markdown.json +73 -36
  1353. package/data/onTypeFormatting/mdx.json +78 -41
  1354. package/data/onTypeFormatting/mips.json +68 -31
  1355. package/data/onTypeFormatting/msdax.json +73 -36
  1356. package/data/onTypeFormatting/mysql.json +83 -46
  1357. package/data/onTypeFormatting/nestjs.json +29 -1
  1358. package/data/onTypeFormatting/nextjs.json +29 -1
  1359. package/data/onTypeFormatting/nginx.json +85 -47
  1360. package/data/onTypeFormatting/objective-c.json +117 -79
  1361. package/data/onTypeFormatting/pascal.json +89 -52
  1362. package/data/onTypeFormatting/pascaligo.json +89 -52
  1363. package/data/onTypeFormatting/perl.json +95 -58
  1364. package/data/onTypeFormatting/pgsql.json +83 -46
  1365. package/data/onTypeFormatting/php.json +117 -79
  1366. package/data/onTypeFormatting/pla.json +79 -42
  1367. package/data/onTypeFormatting/postiats.json +84 -47
  1368. package/data/onTypeFormatting/powerquery.json +83 -46
  1369. package/data/onTypeFormatting/powershell.json +95 -58
  1370. package/data/onTypeFormatting/protobuf.json +100 -63
  1371. package/data/onTypeFormatting/python.json +90 -52
  1372. package/data/onTypeFormatting/qsharp.json +112 -74
  1373. package/data/onTypeFormatting/r.json +100 -63
  1374. package/data/onTypeFormatting/razor.json +95 -57
  1375. package/data/onTypeFormatting/react.json +34 -1
  1376. package/data/onTypeFormatting/redis-cli.json +58 -21
  1377. package/data/onTypeFormatting/redis.json +58 -21
  1378. package/data/onTypeFormatting/redshift.json +83 -46
  1379. package/data/onTypeFormatting/restructuredtext.json +78 -41
  1380. package/data/onTypeFormatting/ruby.json +78 -41
  1381. package/data/onTypeFormatting/rust.json +112 -74
  1382. package/data/onTypeFormatting/sb.json +68 -31
  1383. package/data/onTypeFormatting/scala.json +112 -74
  1384. package/data/onTypeFormatting/scheme.json +84 -47
  1385. package/data/onTypeFormatting/scss.json +100 -63
  1386. package/data/onTypeFormatting/shadcn.json +34 -1
  1387. package/data/onTypeFormatting/shell.json +34 -1
  1388. package/data/onTypeFormatting/sol.json +107 -69
  1389. package/data/onTypeFormatting/sparql.json +73 -36
  1390. package/data/onTypeFormatting/sql.json +83 -46
  1391. package/data/onTypeFormatting/ssh_config.json +75 -37
  1392. package/data/onTypeFormatting/st.json +89 -52
  1393. package/data/onTypeFormatting/swift.json +112 -74
  1394. package/data/onTypeFormatting/systemd.json +75 -37
  1395. package/data/onTypeFormatting/systemverilog.json +84 -47
  1396. package/data/onTypeFormatting/tailwindcss.json +109 -63
  1397. package/data/onTypeFormatting/tcl.json +89 -52
  1398. package/data/onTypeFormatting/toml.json +75 -37
  1399. package/data/onTypeFormatting/twig.json +95 -57
  1400. package/data/onTypeFormatting/typescript.json +127 -89
  1401. package/data/onTypeFormatting/vb.json +78 -41
  1402. package/data/onTypeFormatting/wgsl.json +112 -74
  1403. package/data/onTypeFormatting/xml.json +90 -52
  1404. package/data/onTypeFormatting/yaml.json +78 -41
  1405. package/data/references/abap.json +72 -9
  1406. package/data/references/apex.json +67 -8
  1407. package/data/references/azcli.json +96 -50
  1408. package/data/references/bicep.json +112 -86
  1409. package/data/references/cameligo.json +103 -67
  1410. package/data/references/clojure.json +113 -87
  1411. package/data/references/coffee.json +105 -69
  1412. package/data/references/crontab.json +92 -41
  1413. package/data/references/css.json +92 -65
  1414. package/data/references/cypher.json +124 -93
  1415. package/data/references/dart.json +117 -15
  1416. package/data/references/docker-compose.json +98 -42
  1417. package/data/references/dockerfile.json +112 -86
  1418. package/data/references/doctest.json +95 -49
  1419. package/data/references/dotenv.json +91 -40
  1420. package/data/references/ecl.json +112 -71
  1421. package/data/references/elixir.json +121 -100
  1422. package/data/references/flow9.json +95 -49
  1423. package/data/references/freemarker2.json +104 -63
  1424. package/data/references/graphql.json +113 -82
  1425. package/data/references/html.json +106 -70
  1426. package/data/references/ini.json +91 -40
  1427. package/data/references/json.json +90 -39
  1428. package/data/references/julia.json +114 -88
  1429. package/data/references/kotlin.json +101 -12
  1430. package/data/references/less.json +107 -71
  1431. package/data/references/lexon.json +113 -67
  1432. package/data/references/liquid.json +103 -62
  1433. package/data/references/m3.json +108 -67
  1434. package/data/references/markdown.json +101 -60
  1435. package/data/references/mdx.json +100 -59
  1436. package/data/references/mips.json +94 -48
  1437. package/data/references/msdax.json +98 -57
  1438. package/data/references/mysql.json +126 -95
  1439. package/data/references/nginx.json +112 -81
  1440. package/data/references/objective-c.json +116 -85
  1441. package/data/references/pascal.json +110 -74
  1442. package/data/references/pascaligo.json +100 -59
  1443. package/data/references/pgsql.json +133 -102
  1444. package/data/references/pla.json +94 -43
  1445. package/data/references/postiats.json +105 -64
  1446. package/data/references/powerquery.json +109 -68
  1447. package/data/references/protobuf.json +110 -84
  1448. package/data/references/qsharp.json +120 -84
  1449. package/data/references/razor.json +110 -69
  1450. package/data/references/redis.json +101 -70
  1451. package/data/references/redshift.json +122 -86
  1452. package/data/references/restructuredtext.json +110 -74
  1453. package/data/references/sb.json +121 -80
  1454. package/data/references/scala.json +124 -15
  1455. package/data/references/scheme.json +130 -99
  1456. package/data/references/scss.json +113 -82
  1457. package/data/references/sol.json +124 -98
  1458. package/data/references/sparql.json +123 -92
  1459. package/data/references/ssh_config.json +106 -65
  1460. package/data/references/st.json +107 -71
  1461. package/data/references/swift.json +111 -14
  1462. package/data/references/systemd.json +117 -76
  1463. package/data/references/systemverilog.json +132 -111
  1464. package/data/references/tcl.json +132 -101
  1465. package/data/references/toml.json +94 -48
  1466. package/data/references/twig.json +108 -77
  1467. package/data/references/vb.json +132 -106
  1468. package/data/references/wgsl.json +120 -84
  1469. package/data/references/xml.json +107 -71
  1470. package/data/references/yaml.json +98 -57
  1471. package/data/rename/abap.json +78 -28
  1472. package/data/rename/apex.json +83 -29
  1473. package/data/rename/awk.json +68 -31
  1474. package/data/rename/azcli.json +70 -32
  1475. package/data/rename/bicep.json +67 -31
  1476. package/data/rename/c.json +78 -29
  1477. package/data/rename/caddy.json +71 -32
  1478. package/data/rename/cameligo.json +73 -36
  1479. package/data/rename/clojure.json +81 -33
  1480. package/data/rename/coffee.json +83 -33
  1481. package/data/rename/cpp.json +126 -36
  1482. package/data/rename/crontab.json +53 -30
  1483. package/data/rename/csharp.json +111 -33
  1484. package/data/rename/cypher.json +91 -38
  1485. package/data/rename/dart.json +101 -31
  1486. package/data/rename/docker-compose.json +72 -33
  1487. package/data/rename/dockerfile.json +69 -40
  1488. package/data/rename/doctest.json +74 -32
  1489. package/data/rename/dotenv.json +40 -28
  1490. package/data/rename/ecl.json +87 -34
  1491. package/data/rename/elixir.json +91 -39
  1492. package/data/rename/flow9.json +66 -31
  1493. package/data/rename/freemarker2.json +87 -43
  1494. package/data/rename/go.json +88 -38
  1495. package/data/rename/graphql.json +73 -41
  1496. package/data/rename/hcl.json +80 -42
  1497. package/data/rename/html.json +81 -37
  1498. package/data/rename/ini.json +47 -28
  1499. package/data/rename/java.json +103 -41
  1500. package/data/rename/javascript.json +111 -42
  1501. package/data/rename/json.json +37 -23
  1502. package/data/rename/julia.json +87 -38
  1503. package/data/rename/kotlin.json +118 -43
  1504. package/data/rename/less.json +63 -39
  1505. package/data/rename/lexon.json +67 -31
  1506. package/data/rename/liquid.json +83 -38
  1507. package/data/rename/lua.json +66 -35
  1508. package/data/rename/m3.json +108 -41
  1509. package/data/rename/makefile.json +75 -38
  1510. package/data/rename/markdown.json +43 -31
  1511. package/data/rename/mdx.json +73 -36
  1512. package/data/rename/mips.json +111 -41
  1513. package/data/rename/msdax.json +101 -46
  1514. package/data/rename/mysql.json +107 -26
  1515. package/data/rename/nginx.json +70 -26
  1516. package/data/rename/objective-c.json +93 -21
  1517. package/data/rename/pascal.json +83 -21
  1518. package/data/rename/pascaligo.json +70 -21
  1519. package/data/rename/perl.json +96 -26
  1520. package/data/rename/pgsql.json +118 -26
  1521. package/data/rename/php.json +113 -26
  1522. package/data/rename/pla.json +52 -21
  1523. package/data/rename/postiats.json +96 -21
  1524. package/data/rename/powerquery.json +77 -26
  1525. package/data/rename/powershell.json +79 -26
  1526. package/data/rename/protobuf.json +73 -21
  1527. package/data/rename/python.json +69 -21
  1528. package/data/rename/qsharp.json +81 -21
  1529. package/data/rename/r.json +66 -21
  1530. package/data/rename/razor.json +72 -26
  1531. package/data/rename/react.json +15 -3
  1532. package/data/rename/redis-cli.json +86 -21
  1533. package/data/rename/redis.json +84 -21
  1534. package/data/rename/redshift.json +104 -26
  1535. package/data/rename/restructuredtext.json +72 -31
  1536. package/data/rename/ruby.json +98 -31
  1537. package/data/rename/rust.json +85 -21
  1538. package/data/rename/sb.json +71 -21
  1539. package/data/rename/scala.json +88 -26
  1540. package/data/rename/scheme.json +70 -21
  1541. package/data/rename/scss.json +76 -31
  1542. package/data/rename/shell.json +15 -3
  1543. package/data/rename/sol.json +99 -21
  1544. package/data/rename/sparql.json +98 -26
  1545. package/data/rename/sql.json +124 -31
  1546. package/data/rename/ssh_config.json +69 -26
  1547. package/data/rename/st.json +65 -21
  1548. package/data/rename/swift.json +99 -26
  1549. package/data/rename/systemd.json +83 -26
  1550. package/data/rename/systemverilog.json +140 -21
  1551. package/data/rename/tailwindcss.json +76 -58
  1552. package/data/rename/tcl.json +141 -31
  1553. package/data/rename/toml.json +43 -26
  1554. package/data/rename/twig.json +84 -26
  1555. package/data/rename/typescript.json +110 -21
  1556. package/data/rename/vb.json +186 -21
  1557. package/data/rename/wgsl.json +100 -21
  1558. package/data/rename/xml.json +60 -26
  1559. package/data/rename/yaml.json +65 -31
  1560. package/data/selectionRange/abap.json +53 -2
  1561. package/data/selectionRange/angular.json +52 -1
  1562. package/data/selectionRange/apex.json +48 -2
  1563. package/data/selectionRange/awk.json +50 -3
  1564. package/data/selectionRange/azcli.json +47 -2
  1565. package/data/selectionRange/bicep.json +49 -2
  1566. package/data/selectionRange/c.json +53 -2
  1567. package/data/selectionRange/caddy.json +47 -2
  1568. package/data/selectionRange/cameligo.json +50 -3
  1569. package/data/selectionRange/clojure.json +50 -3
  1570. package/data/selectionRange/coffee.json +48 -2
  1571. package/data/selectionRange/cpp.json +53 -2
  1572. package/data/selectionRange/crontab.json +57 -3
  1573. package/data/selectionRange/csharp.json +53 -2
  1574. package/data/selectionRange/css.json +8 -2
  1575. package/data/selectionRange/cypher.json +53 -2
  1576. package/data/selectionRange/dart.json +53 -2
  1577. package/data/selectionRange/docker-compose.json +49 -4
  1578. package/data/selectionRange/dockerfile.json +53 -2
  1579. package/data/selectionRange/doctest.json +53 -2
  1580. package/data/selectionRange/dotenv.json +57 -3
  1581. package/data/selectionRange/ecl.json +48 -2
  1582. package/data/selectionRange/elixir.json +53 -2
  1583. package/data/selectionRange/flow9.json +50 -3
  1584. package/data/selectionRange/freemarker2.json +53 -2
  1585. package/data/selectionRange/go.json +48 -2
  1586. package/data/selectionRange/graphql.json +53 -2
  1587. package/data/selectionRange/hcl.json +50 -3
  1588. package/data/selectionRange/html.json +53 -2
  1589. package/data/selectionRange/ini.json +51 -2
  1590. package/data/selectionRange/java.json +53 -2
  1591. package/data/selectionRange/javascript.json +53 -2
  1592. package/data/selectionRange/json.json +80 -25
  1593. package/data/selectionRange/julia.json +53 -2
  1594. package/data/selectionRange/kotlin.json +53 -2
  1595. package/data/selectionRange/less.json +53 -2
  1596. package/data/selectionRange/lexon.json +43 -3
  1597. package/data/selectionRange/liquid.json +48 -2
  1598. package/data/selectionRange/lua.json +53 -2
  1599. package/data/selectionRange/m3.json +50 -3
  1600. package/data/selectionRange/makefile.json +47 -2
  1601. package/data/selectionRange/markdown.json +53 -2
  1602. package/data/selectionRange/mdx.json +53 -2
  1603. package/data/selectionRange/mips.json +43 -3
  1604. package/data/selectionRange/msdax.json +39 -3
  1605. package/data/selectionRange/mysql.json +51 -2
  1606. package/data/selectionRange/nestjs.json +70 -2
  1607. package/data/selectionRange/nextjs.json +70 -2
  1608. package/data/selectionRange/nginx.json +47 -2
  1609. package/data/selectionRange/objective-c.json +53 -2
  1610. package/data/selectionRange/pascal.json +38 -2
  1611. package/data/selectionRange/pascaligo.json +50 -3
  1612. package/data/selectionRange/perl.json +53 -2
  1613. package/data/selectionRange/pgsql.json +51 -2
  1614. package/data/selectionRange/php.json +53 -2
  1615. package/data/selectionRange/pla.json +50 -3
  1616. package/data/selectionRange/postiats.json +50 -3
  1617. package/data/selectionRange/powerquery.json +50 -3
  1618. package/data/selectionRange/powershell.json +53 -2
  1619. package/data/selectionRange/protobuf.json +53 -2
  1620. package/data/selectionRange/python.json +53 -2
  1621. package/data/selectionRange/qsharp.json +50 -3
  1622. package/data/selectionRange/r.json +53 -2
  1623. package/data/selectionRange/razor.json +53 -2
  1624. package/data/selectionRange/react.json +52 -1
  1625. package/data/selectionRange/redis-cli.json +51 -2
  1626. package/data/selectionRange/redis.json +51 -2
  1627. package/data/selectionRange/redshift.json +42 -2
  1628. package/data/selectionRange/restructuredtext.json +53 -2
  1629. package/data/selectionRange/ruby.json +53 -2
  1630. package/data/selectionRange/rust.json +53 -2
  1631. package/data/selectionRange/sb.json +43 -3
  1632. package/data/selectionRange/scala.json +53 -2
  1633. package/data/selectionRange/scheme.json +39 -3
  1634. package/data/selectionRange/scss.json +53 -2
  1635. package/data/selectionRange/shadcn.json +52 -1
  1636. package/data/selectionRange/shell.json +53 -2
  1637. package/data/selectionRange/sol.json +53 -2
  1638. package/data/selectionRange/sparql.json +53 -2
  1639. package/data/selectionRange/sql.json +51 -2
  1640. package/data/selectionRange/ssh_config.json +49 -4
  1641. package/data/selectionRange/st.json +38 -2
  1642. package/data/selectionRange/swift.json +53 -2
  1643. package/data/selectionRange/systemd.json +43 -3
  1644. package/data/selectionRange/systemverilog.json +50 -3
  1645. package/data/selectionRange/tailwindcss.json +39 -2
  1646. package/data/selectionRange/tcl.json +50 -3
  1647. package/data/selectionRange/toml.json +49 -4
  1648. package/data/selectionRange/twig.json +48 -2
  1649. package/data/selectionRange/typescript.json +53 -2
  1650. package/data/selectionRange/vb.json +39 -3
  1651. package/data/selectionRange/wgsl.json +50 -3
  1652. package/data/selectionRange/xml.json +53 -4
  1653. package/data/selectionRange/yaml.json +47 -2
  1654. package/data/typeDefinition/abap.json +57 -18
  1655. package/data/typeDefinition/angular.json +362 -362
  1656. package/data/typeDefinition/apex.json +65 -20
  1657. package/data/typeDefinition/awk.json +35 -35
  1658. package/data/typeDefinition/azcli.json +35 -35
  1659. package/data/typeDefinition/bicep.json +25 -25
  1660. package/data/typeDefinition/c.json +89 -89
  1661. package/data/typeDefinition/caddy.json +35 -35
  1662. package/data/typeDefinition/cameligo.json +65 -65
  1663. package/data/typeDefinition/clojure.json +89 -89
  1664. package/data/typeDefinition/coffee.json +75 -75
  1665. package/data/typeDefinition/cpp.json +101 -101
  1666. package/data/typeDefinition/crontab.json +35 -35
  1667. package/data/typeDefinition/csharp.json +117 -117
  1668. package/data/typeDefinition/css.json +85 -53
  1669. package/data/typeDefinition/cypher.json +61 -61
  1670. package/data/typeDefinition/dart.json +215 -35
  1671. package/data/typeDefinition/docker-compose.json +40 -40
  1672. package/data/typeDefinition/dockerfile.json +40 -40
  1673. package/data/typeDefinition/doctest.json +41 -41
  1674. package/data/typeDefinition/dotenv.json +30 -30
  1675. package/data/typeDefinition/ecl.json +49 -49
  1676. package/data/typeDefinition/elixir.json +65 -65
  1677. package/data/typeDefinition/flow9.json +37 -37
  1678. package/data/typeDefinition/freemarker2.json +37 -37
  1679. package/data/typeDefinition/go.json +101 -101
  1680. package/data/typeDefinition/graphql.json +45 -45
  1681. package/data/typeDefinition/hcl.json +55 -55
  1682. package/data/typeDefinition/html.json +40 -40
  1683. package/data/typeDefinition/ini.json +30 -30
  1684. package/data/typeDefinition/java.json +99 -99
  1685. package/data/typeDefinition/javascript.json +113 -113
  1686. package/data/typeDefinition/json.json +35 -35
  1687. package/data/typeDefinition/julia.json +65 -65
  1688. package/data/typeDefinition/kotlin.json +201 -33
  1689. package/data/typeDefinition/less.json +45 -45
  1690. package/data/typeDefinition/lexon.json +25 -25
  1691. package/data/typeDefinition/liquid.json +35 -35
  1692. package/data/typeDefinition/lua.json +59 -59
  1693. package/data/typeDefinition/m3.json +49 -49
  1694. package/data/typeDefinition/makefile.json +35 -35
  1695. package/data/typeDefinition/markdown.json +50 -50
  1696. package/data/typeDefinition/mdx.json +35 -35
  1697. package/data/typeDefinition/mips.json +45 -45
  1698. package/data/typeDefinition/msdax.json +41 -41
  1699. package/data/typeDefinition/mysql.json +65 -65
  1700. package/data/typeDefinition/nestjs.json +334 -334
  1701. package/data/typeDefinition/nextjs.json +285 -285
  1702. package/data/typeDefinition/nginx.json +40 -40
  1703. package/data/typeDefinition/objective-c.json +65 -65
  1704. package/data/typeDefinition/pascal.json +65 -65
  1705. package/data/typeDefinition/pascaligo.json +65 -65
  1706. package/data/typeDefinition/perl.json +52 -52
  1707. package/data/typeDefinition/pgsql.json +65 -65
  1708. package/data/typeDefinition/php.json +77 -77
  1709. package/data/typeDefinition/pla.json +45 -45
  1710. package/data/typeDefinition/postiats.json +41 -41
  1711. package/data/typeDefinition/powerquery.json +65 -65
  1712. package/data/typeDefinition/powershell.json +70 -70
  1713. package/data/typeDefinition/protobuf.json +75 -75
  1714. package/data/typeDefinition/python.json +95 -95
  1715. package/data/typeDefinition/qsharp.json +49 -49
  1716. package/data/typeDefinition/r.json +125 -125
  1717. package/data/typeDefinition/razor.json +45 -45
  1718. package/data/typeDefinition/react.json +236 -236
  1719. package/data/typeDefinition/redis-cli.json +35 -35
  1720. package/data/typeDefinition/redis.json +41 -41
  1721. package/data/typeDefinition/redshift.json +65 -65
  1722. package/data/typeDefinition/restructuredtext.json +35 -35
  1723. package/data/typeDefinition/ruby.json +89 -89
  1724. package/data/typeDefinition/rust.json +143 -143
  1725. package/data/typeDefinition/sb.json +25 -25
  1726. package/data/typeDefinition/scala.json +334 -52
  1727. package/data/typeDefinition/scheme.json +71 -71
  1728. package/data/typeDefinition/scss.json +45 -45
  1729. package/data/typeDefinition/shadcn.json +292 -292
  1730. package/data/typeDefinition/sol.json +65 -65
  1731. package/data/typeDefinition/sparql.json +49 -49
  1732. package/data/typeDefinition/sql.json +80 -80
  1733. package/data/typeDefinition/ssh_config.json +35 -35
  1734. package/data/typeDefinition/st.json +65 -65
  1735. package/data/typeDefinition/swift.json +362 -56
  1736. package/data/typeDefinition/systemd.json +40 -40
  1737. package/data/typeDefinition/systemverilog.json +65 -65
  1738. package/data/typeDefinition/tailwindcss.json +79 -47
  1739. package/data/typeDefinition/tcl.json +53 -53
  1740. package/data/typeDefinition/toml.json +45 -45
  1741. package/data/typeDefinition/twig.json +35 -35
  1742. package/data/typeDefinition/typescript.json +120 -120
  1743. package/data/typeDefinition/vb.json +65 -65
  1744. package/data/typeDefinition/wgsl.json +65 -65
  1745. package/data/typeDefinition/xml.json +45 -45
  1746. package/data/typeDefinition/yaml.json +55 -55
  1747. package/package.json +1 -1
@@ -1,971 +1,1391 @@
1
- {
2
- "language": "lua",
3
- "hovers": {
4
- "print": {
5
- "contents": [
6
- {
7
- "value": "```lua\nprint(···)\n```\nReceives any number of arguments and prints their values to stdout, using `tostring` to convert each argument. A tab character separates each value, and a newline is written after the last value."
8
- }
9
- ]
10
- },
11
- "type": {
12
- "contents": [
13
- {
14
- "value": "```lua\ntype(v) -> string\n```\nReturns the type of its only argument, coded as a string: `\"nil\"`, `\"number\"`, `\"string\"`, `\"boolean\"`, `\"table\"`, `\"function\"`, `\"thread\"`, or `\"userdata\"`."
15
- }
16
- ]
17
- },
18
- "tostring": {
19
- "contents": [
20
- {
21
- "value": "```lua\ntostring(v) -> string\n```\nConverts any value to a string. If the metatable of `v` has a `__tostring` metamethod, calls it with `v` as the argument."
22
- }
23
- ]
24
- },
25
- "tonumber": {
26
- "contents": [
27
- {
28
- "value": "```lua\ntonumber(e [, base]) -> number | nil\n```\nConverts its argument to a number. An optional `base` (2–36) interprets the string in that base. Returns `nil` if conversion fails."
29
- }
30
- ]
31
- },
32
- "pairs": {
33
- "contents": [
34
- {
35
- "value": "```lua\npairs(t) -> function, table, nil\n```\nReturns the `next` function, the table `t`, and `nil`, enabling `for k, v in pairs(t) do ... end` to iterate over all key–value pairs."
36
- }
37
- ]
38
- },
39
- "ipairs": {
40
- "contents": [
41
- {
42
- "value": "```lua\nipairs(t) -> function, table, 0\n```\nReturns an iterator for integer keys `1, 2, …` until a `nil` value is found. Suitable for arrays/sequences."
43
- }
44
- ]
45
- },
46
- "next": {
47
- "contents": [
48
- {
49
- "value": "```lua\nnext(table [, index]) -> key, value | nil\n```\nReturns the next index and value of the table. With `nil` as the second argument, returns the first pair. Returns `nil` when exhausted."
50
- }
51
- ]
52
- },
53
- "select": {
54
- "contents": [
55
- {
56
- "value": "```lua\nselect(index, ···) -> ...\n```\nIf `index` is a number, returns all arguments after argument number `index`. If `index` is `\"#\"`, returns the total number of extra arguments."
57
- }
58
- ]
59
- },
60
- "rawget": {
61
- "contents": [
62
- {
63
- "value": "```lua\nrawget(table, index) -> any\n```\nGets the real value of `table[index]` without invoking the `__index` metamethod."
64
- }
65
- ]
66
- },
67
- "rawset": {
68
- "contents": [
69
- {
70
- "value": "```lua\nrawset(table, index, value) -> table\n```\nSets `table[index] = value` without invoking the `__newindex` metamethod."
71
- }
72
- ]
73
- },
74
- "rawequal": {
75
- "contents": [
76
- {
77
- "value": "```lua\nrawequal(v1, v2) -> boolean\n```\nChecks equality without invoking the `__eq` metamethod."
78
- }
79
- ]
80
- },
81
- "rawlen": {
82
- "contents": [
83
- {
84
- "value": "```lua\nrawlen(v) -> integer\n```\nReturns the length of a table or string without invoking `__len`. Available in Lua 5.2+."
85
- }
86
- ]
87
- },
88
- "setmetatable": {
89
- "contents": [
90
- {
91
- "value": "```lua\nsetmetatable(table, metatable) -> table\n```\nSets the metatable for the given table. If `metatable` is `nil`, removes it. Raises an error if the original metatable has `__metatable`."
92
- }
93
- ]
94
- },
95
- "getmetatable": {
96
- "contents": [
97
- {
98
- "value": "```lua\ngetmetatable(object) -> table | nil | any\n```\nReturns the metatable of the object. If the metatable has `__metatable`, returns that value instead."
99
- }
100
- ]
101
- },
102
- "require": {
103
- "contents": [
104
- {
105
- "value": "```lua\nrequire(modname) -> any\n```\nLoads the given module. Checks `package.loaded` first, then searches using `package.searchers`. Caches the result in `package.loaded`."
106
- }
107
- ]
108
- },
109
- "dofile": {
110
- "contents": [
111
- {
112
- "value": "```lua\ndofile([filename]) -> ...\n```\nOpens the named file and executes its contents as a Lua chunk. Returns any values returned by the chunk."
113
- }
114
- ]
115
- },
116
- "loadfile": {
117
- "contents": [
118
- {
119
- "value": "```lua\nloadfile([filename [, mode [, env]]]) -> function | nil, string\n```\nLoads a file as a Lua chunk without executing. Returns the compiled function or `nil` plus an error message."
120
- }
121
- ]
122
- },
123
- "load": {
124
- "contents": [
125
- {
126
- "value": "```lua\nload(chunk [, chunkname [, mode [, env]]]) -> function | nil, string\n```\nLoads a chunk from a string or function. Returns the compiled function or `nil` plus an error message."
127
- }
128
- ]
129
- },
130
- "pcall": {
131
- "contents": [
132
- {
133
- "value": "```lua\npcall(f [, arg1, ···]) -> boolean, ...\n```\nCalls function `f` in *protected mode*. Returns `true` plus results on success, `false` plus the error object on failure."
134
- }
135
- ]
136
- },
137
- "xpcall": {
138
- "contents": [
139
- {
140
- "value": "```lua\nxpcall(f, msgh [, arg1, ···]) -> boolean, ...\n```\nLike `pcall` but sets `msgh` as the error message handler. Extra arguments to `f` supported in Lua 5.2+."
141
- }
142
- ]
143
- },
144
- "error": {
145
- "contents": [
146
- {
147
- "value": "```lua\nerror(message [, level])\n```\nRaises an error. `level` controls position info: 1 (default) = where `error` was called, 2 = caller of that function, 0 = no position."
148
- }
149
- ]
150
- },
151
- "assert": {
152
- "contents": [
153
- {
154
- "value": "```lua\nassert(v [, message]) -> v, message\n```\nRaises an error if `v` is false or nil; otherwise returns all arguments. Default message is `\"assertion failed!\"`."
155
- }
156
- ]
157
- },
158
- "collectgarbage": {
159
- "contents": [
160
- {
161
- "value": "```lua\ncollectgarbage([opt [, arg]]) -> varies\n```\nGeneric interface to the garbage collector. Options: `\"collect\"`, `\"stop\"`, `\"restart\"`, `\"count\"`, `\"step\"`, `\"isrunning\"`, `\"incremental\"` (5.4), `\"generational\"` (5.4)."
162
- }
163
- ]
164
- },
165
- "unpack": {
166
- "contents": [
167
- {
168
- "value": "```lua\nunpack(list [, i [, j]]) -> ...\n```\nReturns elements from `list`. In Lua 5.2+ use `table.unpack`. Default `i` is 1, `j` is `#list`."
169
- }
170
- ]
171
- },
172
- "warn": {
173
- "contents": [
174
- {
175
- "value": "```lua\nwarn(msg1 [, msg2, ···])\n```\nEmits a warning. If the first segment starts with `\"@\"`, it controls the warning system (`\"@on\"`, `\"@off\"`). Lua 5.4+."
176
- }
177
- ]
178
- },
179
- "string": {
180
- "contents": [
181
- {
182
- "value": "```lua\nstring library\n```\nProvides generic string manipulation functions. Strings are indexed from 1, immutable, and can contain embedded zeros. Pattern matching uses its own syntax (not regex)."
183
- }
184
- ]
185
- },
186
- "table": {
187
- "contents": [
188
- {
189
- "value": "```lua\ntable library\n```\nProvides generic functions for table/array manipulation: insert, remove, sort, concat, move, pack, unpack."
190
- }
191
- ]
192
- },
193
- "math": {
194
- "contents": [
195
- {
196
- "value": "```lua\nmath library\n```\nProvides standard mathematical functions and constants: trigonometric, exponential, logarithmic, floor, ceil, random, pi, huge, etc."
197
- }
198
- ]
199
- },
200
- "io": {
201
- "contents": [
202
- {
203
- "value": "```lua\nio library\n```\nProvides file I/O. Two styles: implicit (io.read/write on default files) and explicit (file handles from io.open)."
204
- }
205
- ]
206
- },
207
- "os": {
208
- "contents": [
209
- {
210
- "value": "```lua\nos library\n```\nProvides OS-level functions: clock, time, date, execute, getenv, remove, rename, exit, tmpname."
211
- }
212
- ]
213
- },
214
- "coroutine": {
215
- "contents": [
216
- {
217
- "value": "```lua\ncoroutine library\n```\nProvides cooperative multithreading via coroutines: create, resume, yield, wrap, status, close."
218
- }
219
- ]
220
- },
221
- "debug": {
222
- "contents": [
223
- {
224
- "value": "```lua\ndebug library\n```\nProvides a debug interface: getinfo, traceback, sethook, getlocal/setlocal, getupvalue/setupvalue. Use with care in production."
225
- }
226
- ]
227
- },
228
- "package": {
229
- "contents": [
230
- {
231
- "value": "```lua\npackage library\n```\nProvides module loading facilities: path, cpath, loaded, preload, searchers, searchpath, config."
232
- }
233
- ]
234
- },
235
- "utf8": {
236
- "contents": [
237
- {
238
- "value": "```lua\nutf8 library\n```\nProvides basic UTF-8 support: char, codepoint, codes, len, offset, charpattern. Available in Lua 5.3+."
239
- }
240
- ]
241
- },
242
- "string.format": {
243
- "contents": [
244
- {
245
- "value": "```lua\nstring.format(formatstring, ···) -> string\n```\nReturns a formatted string following the format description, similar to C `sprintf`. Supports `%d`, `%i`, `%u`, `%f`, `%e`, `%g`, `%x`, `%X`, `%o`, `%s`, `%q`, `%c`, `%%`."
246
- }
247
- ]
248
- },
249
- "string.find": {
250
- "contents": [
251
- {
252
- "value": "```lua\nstring.find(s, pattern [, init [, plain]]) -> number, number, ... | nil\n```\nFinds the first match of `pattern` in `s`. Returns start/end indices and captures. If `plain` is true, does a plain substring search."
253
- }
254
- ]
255
- },
256
- "string.match": {
257
- "contents": [
258
- {
259
- "value": "```lua\nstring.match(s, pattern [, init]) -> string | ... | nil\n```\nReturns captures from the first match of `pattern` in `s`, or the whole match if no captures."
260
- }
261
- ]
262
- },
263
- "string.gmatch": {
264
- "contents": [
265
- {
266
- "value": "```lua\nstring.gmatch(s, pattern [, init]) -> iterator function\n```\nReturns an iterator producing successive capture groups from `pattern` over `s`. Lua 5.4 added optional `init`."
267
- }
268
- ]
269
- },
270
- "string.gsub": {
271
- "contents": [
272
- {
273
- "value": "```lua\nstring.gsub(s, pattern, repl [, n]) -> string, number\n```\nReturns a copy of `s` with all (or first `n`) occurrences of `pattern` replaced. `repl` can be string, table, or function."
274
- }
275
- ]
276
- },
277
- "string.sub": {
278
- "contents": [
279
- {
280
- "value": "```lua\nstring.sub(s, i [, j]) -> string\n```\nReturns the substring from `i` to `j` (inclusive). Negative indices count from end. Default `j` is `-1`."
281
- }
282
- ]
283
- },
284
- "string.rep": {
285
- "contents": [
286
- {
287
- "value": "```lua\nstring.rep(s, n [, sep]) -> string\n```\nReturns `n` copies of `s` separated by `sep` (default empty). `sep` parameter available since Lua 5.2."
288
- }
289
- ]
290
- },
291
- "string.reverse": {
292
- "contents": [
293
- {
294
- "value": "```lua\nstring.reverse(s) -> string\n```\nReturns the string `s` reversed."
295
- }
296
- ]
297
- },
298
- "string.upper": {
299
- "contents": [
300
- {
301
- "value": "```lua\nstring.upper(s) -> string\n```\nReturns a copy with all lowercase letters changed to uppercase (locale-dependent)."
302
- }
303
- ]
304
- },
305
- "string.lower": {
306
- "contents": [
307
- {
308
- "value": "```lua\nstring.lower(s) -> string\n```\nReturns a copy with all uppercase letters changed to lowercase (locale-dependent)."
309
- }
310
- ]
311
- },
312
- "string.len": {
313
- "contents": [
314
- {
315
- "value": "```lua\nstring.len(s) -> integer\n```\nReturns the length of `s`. Embedded zeros are counted: `\"a\\0b\"` has length 3."
316
- }
317
- ]
318
- },
319
- "string.byte": {
320
- "contents": [
321
- {
322
- "value": "```lua\nstring.byte(s [, i [, j]]) -> integer, ...\n```\nReturns the internal numeric codes of characters `s[i]` through `s[j]`. Defaults: `i=1`, `j=i`."
323
- }
324
- ]
325
- },
326
- "string.char": {
327
- "contents": [
328
- {
329
- "value": "```lua\nstring.char(···) -> string\n```\nReturns a string where each character has the numeric code of the corresponding argument."
330
- }
331
- ]
332
- },
333
- "string.dump": {
334
- "contents": [
335
- {
336
- "value": "```lua\nstring.dump(function [, strip]) -> string\n```\nReturns a binary representation of the function. If `strip` is true (5.3+), excludes debug information."
337
- }
338
- ]
339
- },
340
- "string.pack": {
341
- "contents": [
342
- {
343
- "value": "```lua\nstring.pack(fmt, v1, v2, ···) -> string\n```\nPacks values into a binary string according to format `fmt`. Lua 5.3+."
344
- }
345
- ]
346
- },
347
- "string.unpack": {
348
- "contents": [
349
- {
350
- "value": "```lua\nstring.unpack(fmt, s [, pos]) -> ..., integer\n```\nUnpacks values from binary string `s` according to `fmt`. Returns values plus the position after the last read byte. Lua 5.3+."
351
- }
352
- ]
353
- },
354
- "table.insert": {
355
- "contents": [
356
- {
357
- "value": "```lua\ntable.insert(list, [pos,] value)\n```\nInserts `value` at position `pos` (default `#list+1`), shifting subsequent elements up."
358
- }
359
- ]
360
- },
361
- "table.remove": {
362
- "contents": [
363
- {
364
- "value": "```lua\ntable.remove(list [, pos]) -> any\n```\nRemoves and returns the element at `pos` (default `#list`), shifting subsequent elements down."
365
- }
366
- ]
367
- },
368
- "table.sort": {
369
- "contents": [
370
- {
371
- "value": "```lua\ntable.sort(list [, comp])\n```\nSorts elements in-place. If `comp` is given, it receives two elements and returns `true` when the first should come before the second."
372
- }
373
- ]
374
- },
375
- "table.concat": {
376
- "contents": [
377
- {
378
- "value": "```lua\ntable.concat(list [, sep [, i [, j]]]) -> string\n```\nConcatenates list[i]..sep..list[j]. Default `sep` is `\"\"`, `i` is `1`, `j` is `#list`."
379
- }
380
- ]
381
- },
382
- "table.move": {
383
- "contents": [
384
- {
385
- "value": "```lua\ntable.move(a1, f, e, t [, a2]) -> a2\n```\nCopies elements `a1[f]..a1[e]` to `a2[t]..`. Default `a2` is `a1`. Lua 5.3+."
386
- }
387
- ]
388
- },
389
- "table.pack": {
390
- "contents": [
391
- {
392
- "value": "```lua\ntable.pack(···) -> table\n```\nReturns a new table with all arguments stored in keys 1, 2, … and field `n` = total count. Lua 5.2+."
393
- }
394
- ]
395
- },
396
- "table.unpack": {
397
- "contents": [
398
- {
399
- "value": "```lua\ntable.unpack(list [, i [, j]]) -> ...\n```\nReturns `list[i], …, list[j]`. Default `i=1`, `j=#list`. In Lua 5.1 this is the global `unpack`."
400
- }
401
- ]
402
- },
403
- "math.abs": {
404
- "contents": [
405
- {
406
- "value": "```lua\nmath.abs(x) -> number\n```\nReturns the absolute value of `x`. (integer/float)"
407
- }
408
- ]
409
- },
410
- "math.ceil": {
411
- "contents": [
412
- {
413
- "value": "```lua\nmath.ceil(x) -> integer\n```\nReturns the smallest integral value ≥ `x`. In Lua 5.3+ returns an integer."
414
- }
415
- ]
416
- },
417
- "math.floor": {
418
- "contents": [
419
- {
420
- "value": "```lua\nmath.floor(x) -> integer\n```\nReturns the largest integral value ≤ `x`. In Lua 5.3+ returns an integer."
421
- }
422
- ]
423
- },
424
- "math.sqrt": {
425
- "contents": [
426
- {
427
- "value": "```lua\nmath.sqrt(x) -> number\n```\nReturns the square root of `x`. Equivalent to `x^0.5`."
428
- }
429
- ]
430
- },
431
- "math.sin": {
432
- "contents": [
433
- {
434
- "value": "```lua\nmath.sin(x) -> number\n```\nReturns the sine of `x` (in radians)."
435
- }
436
- ]
437
- },
438
- "math.cos": {
439
- "contents": [
440
- {
441
- "value": "```lua\nmath.cos(x) -> number\n```\nReturns the cosine of `x` (in radians)."
442
- }
443
- ]
444
- },
445
- "math.tan": {
446
- "contents": [
447
- {
448
- "value": "```lua\nmath.tan(x) -> number\n```\nReturns the tangent of `x` (in radians)."
449
- }
450
- ]
451
- },
452
- "math.random": {
453
- "contents": [
454
- {
455
- "value": "```lua\nmath.random([m [, n]]) -> number\n```\nWithout arguments: pseudo-random float in [0,1). With `m`: integer in [1,m]. With `m,n`: integer in [m,n]. Lua 5.4 uses xoshiro256**."
456
- }
457
- ]
458
- },
459
- "math.max": {
460
- "contents": [
461
- {
462
- "value": "```lua\nmath.max(x, ···) -> number\n```\nReturns the maximum value among its arguments."
463
- }
464
- ]
465
- },
466
- "math.min": {
467
- "contents": [
468
- {
469
- "value": "```lua\nmath.min(x, ···) -> number\n```\nReturns the minimum value among its arguments."
470
- }
471
- ]
472
- },
473
- "math.log": {
474
- "contents": [
475
- {
476
- "value": "```lua\nmath.log(x [, base]) -> number\n```\nReturns the logarithm of `x` in the given `base` (default `e`). `base` parameter available in Lua 5.2+."
477
- }
478
- ]
479
- },
480
- "math.exp": {
481
- "contents": [
482
- {
483
- "value": "```lua\nmath.exp(x) -> number\n```\nReturns `e^x`."
484
- }
485
- ]
486
- },
487
- "math.pi": {
488
- "contents": [
489
- {
490
- "value": "```lua\nmath.pi\n```\nThe value of π (3.14159265358979323846…)."
491
- }
492
- ]
493
- },
494
- "math.huge": {
495
- "contents": [
496
- {
497
- "value": "```lua\nmath.huge\n```\nThe float value `HUGE_VAL` (positive infinity)."
498
- }
499
- ]
500
- },
501
- "io.open": {
502
- "contents": [
503
- {
504
- "value": "```lua\nio.open(filename [, mode]) -> file | nil, string\n```\nOpens a file in the specified mode. Modes: `'r'` (read), `'w'` (write), `'a'` (append), `'r+'`, `'w+'`, `'a+'`. Append `'b'` for binary."
505
- }
506
- ]
507
- },
508
- "io.read": {
509
- "contents": [
510
- {
511
- "value": "```lua\nio.read(···) -> string | number | nil\n```\nReads from the default input. Formats: `'*a'`/`'a'` (whole file), `'*l'`/`'l'` (line, default), `'*n'`/`'n'` (number), `'*L'`/`'L'` (line with newline)."
512
- }
513
- ]
514
- },
515
- "io.write": {
516
- "contents": [
517
- {
518
- "value": "```lua\nio.write(···) -> file | nil, string\n```\nWrites each argument to the default output file."
519
- }
520
- ]
521
- },
522
- "io.lines": {
523
- "contents": [
524
- {
525
- "value": "```lua\nio.lines([filename, ···]) -> iterator\n```\nReturns an iterator that reads lines from the given file (or default input). Closes file when done."
526
- }
527
- ]
528
- },
529
- "io.close": {
530
- "contents": [
531
- {
532
- "value": "```lua\nio.close([file])\n```\nCloses the given file handle (or the default output file)."
533
- }
534
- ]
535
- },
536
- "os.clock": {
537
- "contents": [
538
- {
539
- "value": "```lua\nos.clock() -> number\n```\nReturns an approximation of the CPU time used by the program, in seconds."
540
- }
541
- ]
542
- },
543
- "os.time": {
544
- "contents": [
545
- {
546
- "value": "```lua\nos.time([table]) -> integer\n```\nReturns the current time as a number (usually epoch seconds), or the time represented by the date table."
547
- }
548
- ]
549
- },
550
- "os.date": {
551
- "contents": [
552
- {
553
- "value": "```lua\nos.date([format [, time]]) -> string | table\n```\nFormats a date/time. Use `\"*t\"` to get a table with year, month, day, hour, min, sec, wday, yday, isdst."
554
- }
555
- ]
556
- },
557
- "os.execute": {
558
- "contents": [
559
- {
560
- "value": "```lua\nos.execute([command]) -> boolean | nil, string, integer\n```\nPasses `command` to the OS shell. In Lua 5.2+, returns `true`/`nil`, exit type, and exit code."
561
- }
562
- ]
563
- },
564
- "os.getenv": {
565
- "contents": [
566
- {
567
- "value": "```lua\nos.getenv(varname) -> string | nil\n```\nReturns the value of the environment variable `varname`, or `nil` if not set."
568
- }
569
- ]
570
- },
571
- "os.exit": {
572
- "contents": [
573
- {
574
- "value": "```lua\nos.exit([code [, close]])\n```\nTerminates the program. `code` defaults to `true` (success). If `close` is true, closes the Lua state first (5.2+)."
575
- }
576
- ]
577
- },
578
- "coroutine.create": {
579
- "contents": [
580
- {
581
- "value": "```lua\ncoroutine.create(f) -> thread\n```\nCreates a new coroutine with body `f` (a function). Returns a thread value."
582
- }
583
- ]
584
- },
585
- "coroutine.resume": {
586
- "contents": [
587
- {
588
- "value": "```lua\ncoroutine.resume(co [, val1, ···]) -> boolean, ...\n```\nStarts or continues coroutine `co`. Returns `true` plus yielded/returned values, or `false` plus the error."
589
- }
590
- ]
591
- },
592
- "coroutine.yield": {
593
- "contents": [
594
- {
595
- "value": "```lua\ncoroutine.yield(···)\n```\nSuspends the running coroutine. Arguments become the extra results of `resume`."
596
- }
597
- ]
598
- },
599
- "coroutine.wrap": {
600
- "contents": [
601
- {
602
- "value": "```lua\ncoroutine.wrap(f) -> function\n```\nCreates a coroutine and returns a function that resumes it. Unlike `resume`, raises errors directly."
603
- }
604
- ]
605
- },
606
- "coroutine.status": {
607
- "contents": [
608
- {
609
- "value": "```lua\ncoroutine.status(co) -> string\n```\nReturns the status: `\"running\"`, `\"suspended\"`, `\"normal\"`, or `\"dead\"`."
610
- }
611
- ]
612
- },
613
- "and": {
614
- "contents": [
615
- {
616
- "value": "```lua\na and b\n```\n**Logical AND.** Returns `a` if it is false or nil; otherwise returns `b`. Short-circuit: `b` is not evaluated if `a` is falsy."
617
- }
618
- ]
619
- },
620
- "or": {
621
- "contents": [
622
- {
623
- "value": "```lua\na or b\n```\n**Logical OR.** Returns `a` if it is truthy; otherwise returns `b`. Short-circuit: `b` is not evaluated if `a` is truthy.\n\nCommon idiom: `x = x or default`."
624
- }
625
- ]
626
- },
627
- "not": {
628
- "contents": [
629
- {
630
- "value": "```lua\nnot a\n```\n**Logical NOT.** Returns `true` if `a` is false or nil; otherwise returns `false`."
631
- }
632
- ]
633
- },
634
- "local": {
635
- "contents": [
636
- {
637
- "value": "```lua\nlocal name = value\nlocal function name() ... end\n```\nDeclares a local variable or function, scoped to the enclosing block. Always prefer `local` over global."
638
- }
639
- ]
640
- },
641
- "nil": {
642
- "contents": [
643
- {
644
- "value": "```lua\nnil\n```\nThe type `nil` has one value: `nil`. Represents the absence of a useful value. Together with `false`, it is the only falsy value."
645
- }
646
- ]
647
- },
648
- "true": {
649
- "contents": [
650
- {
651
- "value": "```lua\ntrue\n```\nBoolean true value."
652
- }
653
- ]
654
- },
655
- "false": {
656
- "contents": [
657
- {
658
- "value": "```lua\nfalse\n```\nBoolean false value. Together with `nil`, the only falsy value in Lua."
659
- }
660
- ]
661
- },
662
- "return": {
663
- "contents": [
664
- {
665
- "value": "```lua\nreturn expr1, expr2, ...\n```\nReturns values from a function. Must be the last statement in its block. Multiple return values are a core Lua feature."
666
- }
667
- ]
668
- },
669
- "break": {
670
- "contents": [
671
- {
672
- "value": "```lua\nbreak\n```\nTerminates the execution of the innermost `while`, `repeat`, or `for` loop."
673
- }
674
- ]
675
- },
676
- "goto": {
677
- "contents": [
678
- {
679
- "value": "```lua\ngoto label\n::label::\n```\nJumps to the specified label. Available in Lua 5.2+. Cannot jump into a block or out of a function."
680
- }
681
- ]
682
- },
683
- "for": {
684
- "contents": [
685
- {
686
- "value": "```lua\nfor i = start, stop [, step] do ... end\nfor k, v in iterator do ... end\n```\nNumeric `for` iterates with a counter. Generic `for` iterates using an iterator function (e.g., `pairs`, `ipairs`)."
687
- }
688
- ]
689
- },
690
- "while": {
691
- "contents": [
692
- {
693
- "value": "```lua\nwhile condition do\n ...\nend\n```\nRepeats the block while `condition` is truthy. Condition is tested before each iteration."
694
- }
695
- ]
696
- },
697
- "repeat": {
698
- "contents": [
699
- {
700
- "value": "```lua\nrepeat\n ...\nuntil condition\n```\nRepeats the block until `condition` is true. Executes at least once. Variables declared inside are visible in the `until` expression."
701
- }
702
- ]
703
- },
704
- "if": {
705
- "contents": [
706
- {
707
- "value": "```lua\nif cond then\n ...\nelseif cond2 then\n ...\nelse\n ...\nend\n```\nConditional execution. Only `nil` and `false` are considered false; everything else (including `0` and `\"\"`) is true."
708
- }
709
- ]
710
- },
711
- "function": {
712
- "contents": [
713
- {
714
- "value": "```lua\nfunction name(params) ... end\nlocal function name(params) ... end\nlocal f = function(params) ... end\n```\nDeclares a function. Functions are first-class values in Lua. Methods use colon syntax: `function obj:method() ... end`."
715
- }
716
- ]
717
- },
718
- "do": {
719
- "contents": [
720
- {
721
- "value": "```lua\ndo\n -- new scope\nend\n```\nCreates a new block scope. Variables declared with `local` inside are not visible outside."
722
- }
723
- ]
724
- },
725
- "end": {
726
- "contents": [
727
- {
728
- "value": "```lua\nend\n```\nCloses a block started by `function`, `if`, `for`, `while`, `repeat`, or `do`."
729
- }
730
- ]
731
- },
732
- "then": {
733
- "contents": [
734
- {
735
- "value": "```lua\nif condition then ...\n```\nRequired after the condition in an `if` or `elseif` clause."
736
- }
737
- ]
738
- },
739
- "else": {
740
- "contents": [
741
- {
742
- "value": "```lua\nif cond then ... else ... end\n```\nAlternative branch when the `if` condition is false."
743
- }
744
- ]
745
- },
746
- "elseif": {
747
- "contents": [
748
- {
749
- "value": "```lua\nif cond1 then ...\nelseif cond2 then ...\nend\n```\nAdditional conditional branch. Avoids nesting multiple `if` statements."
750
- }
751
- ]
752
- },
753
- "until": {
754
- "contents": [
755
- {
756
- "value": "```lua\nrepeat ... until condition\n```\nEnds a `repeat` loop. The condition is tested after each iteration."
757
- }
758
- ]
759
- },
760
- "in": {
761
- "contents": [
762
- {
763
- "value": "```lua\nfor k, v in pairs(t) do ... end\n```\nUsed in generic `for` loops to separate the iteration variables from the iterator expression."
764
- }
765
- ]
766
- },
767
- "_G": {
768
- "contents": [
769
- {
770
- "value": "```lua\n_G\n```\nA global variable (not a keyword) that holds a reference to the global environment table. In Lua 5.1, the environment of the running function. In Lua 5.2+, just a regular global holding the global table."
771
- }
772
- ]
773
- },
774
- "_ENV": {
775
- "contents": [
776
- {
777
- "value": "```lua\n_ENV\n```\nThe environment table for the current chunk (Lua 5.2+). All free names (globals) are syntactic sugar for `_ENV.name`. Changing `_ENV` changes what global variables the chunk sees."
778
- }
779
- ]
780
- },
781
- "_VERSION": {
782
- "contents": [
783
- {
784
- "value": "```lua\n_VERSION\n```\nA global string containing the running Lua version, e.g. `\"Lua 5.4\"`."
785
- }
786
- ]
787
- },
788
- "self": {
789
- "contents": [
790
- {
791
- "value": "```lua\nself\n```\nImplicit first parameter in methods defined with colon syntax (`function obj:method() ... end`). Refers to the receiver object."
792
- }
793
- ]
794
- },
795
- "..": {
796
- "contents": [
797
- {
798
- "value": "```lua\na .. b\n```\n**String concatenation operator.** Joins two strings (or numbers converted to strings). Creates a new string.\n\nFor concatenating many strings, prefer `table.concat` for performance."
799
- }
800
- ]
801
- },
802
- "#": {
803
- "contents": [
804
- {
805
- "value": "```lua\n#t\n#s\n```\n**Length operator.** For strings, returns the byte count. For tables, returns a border (an index where `t[n] ~= nil` and `t[n+1] == nil`). For sequences, this is the last index."
806
- }
807
- ]
808
- },
809
- "//": {
810
- "contents": [
811
- {
812
- "value": "```lua\na // b\n```\n**Floor division** (Lua 5.3+). Returns `math.floor(a/b)`. Works with both integers and floats. Integer operands yield an integer result."
813
- }
814
- ]
815
- },
816
- "~": {
817
- "contents": [
818
- {
819
- "value": "```lua\na ~ b -- bitwise XOR\n~a -- bitwise NOT\n```\n**Bitwise XOR / NOT** (Lua 5.3+). Binary `~` is XOR, unary `~` is NOT. Note: `~=` is the *inequality* operator, not bitwise."
820
- }
821
- ]
822
- },
823
- "&": {
824
- "contents": [
825
- {
826
- "value": "```lua\na & b\n```\n**Bitwise AND** (Lua 5.3+). Performs a bitwise AND on integer operands."
827
- }
828
- ]
829
- },
830
- "|": {
831
- "contents": [
832
- {
833
- "value": "```lua\na | b\n```\n**Bitwise OR** (Lua 5.3+). Performs a bitwise OR on integer operands."
834
- }
835
- ]
836
- },
837
- "<<": {
838
- "contents": [
839
- {
840
- "value": "```lua\na << n\n```\n**Left shift** (Lua 5.3+). Shifts `a` left by `n` bits, filling with zeros."
841
- }
842
- ]
843
- },
844
- ">>": {
845
- "contents": [
846
- {
847
- "value": "```lua\na >> n\n```\n**Right shift** (Lua 5.3+). Shifts `a` right by `n` bits, filling with zeros (logical shift)."
848
- }
849
- ]
850
- },
851
- "__index": {
852
- "contents": [
853
- {
854
- "value": "```lua\n__index = table_or_function\n```\n**Metamethod** invoked when accessing a key not present in the table. If `__index` is a table, the lookup continues there (prototype chain). If a function, called as `__index(table, key)`.\n\nThis is the foundation of Lua's OOP system."
855
- }
856
- ]
857
- },
858
- "__newindex": {
859
- "contents": [
860
- {
861
- "value": "```lua\n__newindex = function(table, key, value)\n```\n**Metamethod** invoked when assigning to a key not present in the table. Can be used to create read-only tables, logging proxies, or custom assignment behavior."
862
- }
863
- ]
864
- },
865
- "__tostring": {
866
- "contents": [
867
- {
868
- "value": "```lua\n__tostring = function(self) -> string\n```\n**Metamethod** called by `tostring()`. Should return a human-readable string representation of the object."
869
- }
870
- ]
871
- },
872
- "__call": {
873
- "contents": [
874
- {
875
- "value": "```lua\n__call = function(self, ...)\n```\n**Metamethod** invoked when a table is called as a function: `obj(args)`. Commonly used for constructor shorthand or callable objects."
876
- }
877
- ]
878
- },
879
- "__gc": {
880
- "contents": [
881
- {
882
- "value": "```lua\n__gc = function(self)\n```\n**Metamethod (finalizer)** called when the object is garbage collected. Available for tables in Lua 5.2+ and for userdata in all versions."
883
- }
884
- ]
885
- },
886
- "debug.getinfo": "```lua\ndebug.getinfo([thread,] f [, what])\n```\n\n**debug.getinfo** — Returns a table with information about a function.\n\n`f` can be a function or stack level (1 = calling function). `what` selects fields:\n- `'n'` — name, namewhat\n- `'S'` — source, short_src, what, linedefined, lastlinedefined\n- `'l'` — currentline\n- `'u'` — nups, nparams, isvararg\n- `'t'` — istailcall\n- `'L'` — activelines table\n\n```lua\nlocal info = debug.getinfo(1, 'Sln')\nprint(info.source, info.currentline, info.name)\n```",
887
- "debug.traceback": "```lua\ndebug.traceback([thread,] [message [, level]])\n```\n\n**debug.traceback** — Returns a string with a traceback of the call stack.\n\nUseful in error handlers (xpcall).\n\n```lua\nlocal ok, err = xpcall(riskyFunc, debug.traceback)\nif not ok then print(err) end\n```",
888
- "debug.sethook": "```lua\ndebug.sethook([thread,] hook, mask [, count])\n```\n\n**debug.sethook** — Sets a hook function. `mask` characters:\n- `'c'` — call hook\n- `'r'` — return hook\n- `'l'` — line hook\n\n`count` fires hook every N instructions.\n\n```lua\ndebug.sethook(function(event, line)\n print(event, line)\nend, 'l') -- fires on every line\n\ndebug.sethook() -- remove hook\n```",
889
- "debug.gethook": "```lua\ndebug.gethook([thread])\n```\n\n**debug.gethook** — Returns the current hook function, mask string, and count.\n\n```lua\nlocal hook, mask, count = debug.gethook()\nprint(mask) -- e.g. 'l'\n```",
890
- "debug.getlocal": "```lua\ndebug.getlocal([thread,] f, local)\n```\n\n**debug.getlocal** — Returns name and value of local variable.\n\n`f` is stack level, `local` is variable index (1-based).\n\n```lua\nlocal x, y = 10, 20\nprint(debug.getlocal(1, 1)) -- 'x', 10\nprint(debug.getlocal(1, 2)) -- 'y', 20\n```",
891
- "debug.setlocal": "```lua\ndebug.setlocal([thread,] level, local, value)\n```\n\n**debug.setlocal** — Sets the value of a local variable at the given stack level.\n\nReturns the variable name, or nil if index is out of range.\n\n```lua\nlocal x = 10\ndebug.setlocal(1, 1, 42)\nprint(x) -- 42\n```",
892
- "debug.getupvalue": "```lua\ndebug.getupvalue(f, up)\n```\n\n**debug.getupvalue** — Returns name and value of upvalue `up` of function `f`.\n\n```lua\nlocal x = 10\nlocal f = function() return x end\nprint(debug.getupvalue(f, 1)) -- 'x', 10\n```",
893
- "debug.setupvalue": "```lua\ndebug.setupvalue(f, up, value)\n```\n\n**debug.setupvalue** — Sets the value of upvalue `up` of function `f`.\n\n```lua\nlocal x = 10\nlocal f = function() return x end\ndebug.setupvalue(f, 1, 42)\nprint(f()) -- 42\n```",
894
- "debug.getmetatable": "```lua\ndebug.getmetatable(value)\n```\n\n**debug.getmetatable** — Returns the metatable of the given value, bypassing `__metatable` metamethod.\n\nUnlike `getmetatable()`, this always returns the real metatable.\n\n```lua\nlocal mt = {__metatable = 'hidden'}\nlocal t = setmetatable({}, mt)\nprint(getmetatable(t)) -- 'hidden'\nprint(debug.getmetatable(t)) -- the actual mt table\n```",
895
- "debug.setmetatable": "```lua\ndebug.setmetatable(value, table)\n```\n\n**debug.setmetatable** — Sets the metatable on any value (not just tables).\n\nCan set metatables on strings, numbers, etc.\n\n```lua\ndebug.setmetatable(0, {__tostring = function(n) return 'num:'..n end})\nprint(tostring(42)) -- num:42\n```",
896
- "debug.getuservalue": "```lua\ndebug.getuservalue(u, n)\n```\n\n**debug.getuservalue** — Returns the n-th user value associated with userdata `u`.\n\nIn Lua 5.4, userdata can have multiple user values. Returns value and boolean.\n\n```lua\nlocal val, exists = debug.getuservalue(ud, 1)\n```",
897
- "debug.setuservalue": "```lua\ndebug.setuservalue(u, value, n)\n```\n\n**debug.setuservalue** — Sets the n-th user value of userdata `u` to `value`.\n\n```lua\ndebug.setuservalue(ud, mytable, 1)\n```",
898
- "debug.getregistry": "```lua\ndebug.getregistry()\n```\n\n**debug.getregistry** — Returns the Lua registry table, used internally to store references.\n\n```lua\nlocal reg = debug.getregistry()\nfor k, v in pairs(reg) do print(k, v) end\n```",
899
- "debug.upvalueid": "```lua\ndebug.upvalueid(f, n)\n```\n\n**debug.upvalueid** — Returns a unique identifier (light userdata) for upvalue `n` of function `f`. (5.2+)\n\nUseful to check if two closures share the same upvalue.\n\n```lua\nlocal x = 1\nlocal f = function() return x end\nlocal g = function() return x end\nprint(debug.upvalueid(f,1) == debug.upvalueid(g,1)) -- true\n```",
900
- "debug.upvaluejoin": "```lua\ndebug.upvaluejoin(f1, n1, f2, n2)\n```\n\n**debug.upvaluejoin** — Makes upvalue `n1` of `f1` refer to the same variable as upvalue `n2` of `f2`. (5.2+)\n\n```lua\nlocal a, b = 1, 2\nlocal f = function() return a end\nlocal g = function() return b end\ndebug.upvaluejoin(f, 1, g, 1)\nprint(f()) -- 2 (now shares b)\n```",
901
- "package.path": "```lua\npackage.path\n```\n\n**package.path** — The search path used by `require` to find Lua modules.\n\nUses `?` as placeholder for module name. Paths separated by `;`.\n\n```lua\nprint(package.path)\n-- ./?.lua;/usr/local/share/lua/5.4/?.lua;...\n\n-- Add custom path\npackage.path = './libs/?.lua;' .. package.path\n```\n\n**Tip:** Set via `LUA_PATH` environment variable.",
902
- "package.cpath": "```lua\npackage.cpath\n```\n\n**package.cpath** — The search path for C modules (shared libraries).\n\n```lua\nprint(package.cpath)\n-- ./?.so;/usr/local/lib/lua/5.4/?.so;...\n\npackage.cpath = './libs/?.so;' .. package.cpath\n```\n\n**Tip:** Set via `LUA_CPATH` environment variable.",
903
- "package.loaded": "```lua\npackage.loaded\n```\n\n**package.loaded** — Table controlling which modules are loaded. `require` checks here first.\n\n```lua\n-- Check if loaded\nif package.loaded['socket'] then print('yes') end\n\n-- Force re-require\npackage.loaded['mymod'] = nil\nlocal mod = require('mymod') -- reloads\n```",
904
- "package.preload": "```lua\npackage.preload\n```\n\n**package.preload** — Table of module loaders. Checked before file search.\n\n```lua\npackage.preload['mylib'] = function(modname)\n return {\n greet = function() print('Hello from ' .. modname) end\n }\nend\n\nlocal mylib = require('mylib')\nmylib.greet()\n```",
905
- "package.searchers": "```lua\npackage.searchers\n```\n\n**package.searchers** — Ordered table of searcher functions used by `require`.\n\nDefault searchers:\n1. `package.preload` table\n2. Lua file searcher (uses `package.path`)\n3. C library searcher (uses `package.cpath`)\n4. All-in-one C loader\n\n```lua\n-- Add custom searcher at position 2\ntable.insert(package.searchers, 2, function(name)\n -- return loader function or error string\nend)\n```",
906
- "package.searchpath": "```lua\npackage.searchpath(name, path [, sep [, rep]])\n```\n\n**package.searchpath** — Searches for a file in the given path.\n\nReplaces `.` in `name` with `sep` (default `.`), then `?` in `path` with result.\n\n```lua\nlocal file, err = package.searchpath('socket.core', package.cpath)\nprint(file) -- /usr/local/lib/lua/5.4/socket/core.so\n\nif not file then print(err) end -- lists all tried paths\n```",
907
- "package.config": "```lua\npackage.config\n```\n\n**package.config** — A string with compile-time configuration:\n- Line 1: directory separator (`/` or `\\`)\n- Line 2: path separator (`;`)\n- Line 3: substitution marker (`?`)\n- Line 4: Windows \"dir\" marker\n- Line 5: ignore mark for searchers\n\n```lua\nlocal sep = package.config:sub(1,1)\nprint(sep) -- '/' on Unix, '\\\\' on Windows\n```",
908
- "utf8.char": "```lua\nutf8.char(···)\n```\n\n**utf8.char** — Returns a UTF-8 string from one or more codepoints.\n\nSimilar to `string.char` but for Unicode.\n\n```lua\nprint(utf8.char(72, 233, 108, 108, 244)) -- Héllô\nprint(utf8.char(0x1F600)) -- 😀\n```",
909
- "utf8.codepoint": "```lua\nutf8.codepoint(s [, i [, j]])\n```\n\n**utf8.codepoint** — Returns codepoints of all characters in `s[i..j]`.\n\nDefault: `i=1, j=i`.\n\n```lua\nlocal s = 'café'\nprint(utf8.codepoint(s, 4)) -- 233 (é)\nprint(utf8.codepoint(s, 1, -1)) -- 99 97 102 233\n```",
910
- "utf8.codes": "```lua\nutf8.codes(s)\n```\n\n**utf8.codes** — Iterator for UTF-8 codepoints.\n\nReturns position (byte) and codepoint for each character.\n\n```lua\nfor pos, code in utf8.codes('héllo') do\n print(pos, code, utf8.char(code))\nend\n-- 1 104 h\n-- 2 233 é\n-- 4 108 l\n-- 5 108 l\n-- 6 111 o\n```",
911
- "utf8.len": "```lua\nutf8.len(s [, i [, j]])\n```\n\n**utf8.len** — Returns the number of UTF-8 characters in `s[i..j]`.\n\nReturns nil + position if invalid UTF-8 found.\n\n```lua\nlocal s = 'café'\nprint(#s) -- 5 (bytes)\nprint(utf8.len(s)) -- 4 (characters)\n\nlocal n, err = utf8.len('\\xFF')\nif not n then print('invalid at byte', err) end\n```",
912
- "utf8.offset": "```lua\nutf8.offset(s, n [, i])\n```\n\n**utf8.offset** — Returns byte position of the n-th character.\n\n- Positive `n`: count forward from position `i` (default 1)\n- Negative `n`: count backward\n- `n=0`: start of character at byte `i`\n\n```lua\nlocal s = 'héllo'\nprint(utf8.offset(s, 3)) -- 4 (3rd char 'l' starts at byte 4)\nprint(string.sub(s, utf8.offset(s, 2))) -- éllo\n```",
913
- "utf8.charpattern": "```lua\nutf8.charpattern\n```\n\n**utf8.charpattern** — Pattern (string) matching exactly one UTF-8 character.\n\nValue: `[\\0-\\x7F\\xC2-\\xFD][\\x80-\\xBF]*`\n\n```lua\n-- Iterate over UTF-8 characters\nfor c in string.gmatch('héllo', utf8.charpattern) do\n print(c)\nend\n-- h é l l o\n\n-- Count characters\nlocal count = select(2, string.gsub('café', utf8.charpattern, ''))\n```",
914
- "math.asin": "```lua\nmath.asin(x)\n```\n\n**math.asin** — Returns the arc sine of `x` (in radians). Result in [-π/2, π/2].\n\n```lua\nprint(math.asin(1)) -- 1.5707... (π/2)\nprint(math.asin(0)) -- 0.0\n```",
915
- "math.acos": "```lua\nmath.acos(x)\n```\n\n**math.acos** — Returns the arc cosine of `x` (in radians). Result in [0, π].\n\n```lua\nprint(math.acos(1)) -- 0.0\nprint(math.acos(0)) -- 1.5707... (π/2)\n```",
916
- "math.atan": "```lua\nmath.atan(y [, x])\n```\n\n**math.atan** — Returns the arc tangent of `y/x` (in radians). Uses signs to determine quadrant.\n\nIn Lua 5.3+, replaces both `math.atan` and `math.atan2`.\n\n```lua\nprint(math.atan(1)) -- 0.7853... (π/4)\nprint(math.atan(1, 0)) -- 1.5707... (π/2)\n```",
917
- "math.fmod": "```lua\nmath.fmod(x, y)\n```\n\n**math.fmod** — Returns the remainder of `x/y` that rounds towards zero.\n\nDiffers from `%` operator for negative numbers.\n\n```lua\nprint(math.fmod(7, 3)) -- 1.0\nprint(math.fmod(-7, 3)) -- -1.0 (% would give 2)\n```",
918
- "math.randomseed": "```lua\nmath.randomseed([x [, y]])\n```\n\n**math.randomseed** — Sets the seed for the pseudo-random generator.\n\nIn Lua 5.4, calling with no args uses a system-dependent seed.\n\n```lua\nmath.randomseed(os.time()) -- Lua 5.1-5.3\nmath.randomseed() -- Lua 5.4 (auto-seed)\nprint(math.random(1, 100))\n```",
919
- "math.tointeger": "```lua\nmath.tointeger(x)\n```\n\n**math.tointeger** — Converts float `x` to integer if it has an exact integer value. Returns nil otherwise. (5.3+)\n\n```lua\nprint(math.tointeger(5.0)) -- 5\nprint(math.tointeger(5.5)) -- nil\nprint(math.tointeger(2^53)) -- 9007199254740992\n```",
920
- "math.type": "```lua\nmath.type(x)\n```\n\n**math.type** — Returns `\"integer\"`, `\"float\"`, or false if not a number. (5.3+)\n\n```lua\nprint(math.type(1)) -- 'integer'\nprint(math.type(1.0)) -- 'float'\nprint(math.type('x')) -- false\n```",
921
- "math.maxinteger": "```lua\nmath.maxinteger\n```\n\n**math.maxinteger** — Maximum value for an integer. (5.3+)\n\n```lua\nprint(math.maxinteger) -- 9223372036854775807 (2^63 - 1)\n```",
922
- "math.mininteger": "```lua\nmath.mininteger\n```\n\n**math.mininteger** — Minimum value for an integer. (5.3+)\n\n```lua\nprint(math.mininteger) -- -9223372036854775808 (-2^63)\n```",
923
- "io.input": "```lua\nio.input([file])\n```\n\n**io.input** — Sets `file` as the default input, or returns current default input.\n\n```lua\nio.input('data.txt')\nlocal line = io.read('l')\nio.input():close()\nio.input(io.stdin) -- restore\n```",
924
- "io.output": "```lua\nio.output([file])\n```\n\n**io.output** — Sets `file` as the default output, or returns current default output.\n\n```lua\nio.output('out.txt')\nio.write('hello\\n')\nio.output():close()\nio.output(io.stdout) -- restore\n```",
925
- "io.flush": "```lua\nio.flush()\n```\n\n**io.flush** — Flushes the default output file buffer.\n\n```lua\nio.write('progress: 50%')\nio.flush() -- ensure it's written immediately\n```",
926
- "io.tmpfile": "```lua\nio.tmpfile()\n```\n\n**io.tmpfile** — Returns a handle for a temporary file (opened in update mode). Automatically removed on program exit.\n\n```lua\nlocal tmp = io.tmpfile()\ntmp:write('temp data')\ntmp:seek('set')\nprint(tmp:read('*a')) -- temp data\ntmp:close()\n```",
927
- "io.type": "```lua\nio.type(obj)\n```\n\n**io.type** — Returns `\"file\"` for open handles, `\"closed file\"` for closed handles, or nil otherwise.\n\n```lua\nlocal f = io.open('test.txt', 'r')\nprint(io.type(f)) -- 'file'\nf:close()\nprint(io.type(f)) -- 'closed file'\nprint(io.type(42)) -- nil\n```",
928
- "io.popen": "```lua\nio.popen(prog [, mode])\n```\n\n**io.popen** — Starts `prog` in a separated process and returns a file handle.\n\n`mode`: `'r'` (read stdout, default) or `'w'` (write to stdin).\n\n```lua\nlocal f = io.popen('ls -la', 'r')\nlocal output = f:read('*a')\nf:close()\nprint(output)\n```\n\n**Warning:** Not available on all platforms. Check return of `io.popen`.",
929
- "io.stdin": "```lua\nio.stdin\n```\n\n**io.stdin** — Standard input file handle.\n\n```lua\nio.write('Enter name: ')\nlocal name = io.stdin:read('l')\n```",
930
- "io.stdout": "```lua\nio.stdout\n```\n\n**io.stdout** — Standard output file handle.\n\n```lua\nio.stdout:write('hello\\n')\nio.stdout:flush()\n```",
931
- "io.stderr": "```lua\nio.stderr\n```\n\n**io.stderr** — Standard error file handle.\n\n```lua\nio.stderr:write('Error: something went wrong\\n')\n```",
932
- "os.difftime": "```lua\nos.difftime(t2, t1)\n```\n\n**os.difftime** — Returns the difference in seconds between times `t2` and `t1`.\n\n```lua\nlocal start = os.time()\n-- ... work ...\nlocal elapsed = os.difftime(os.time(), start)\nprint(elapsed .. ' seconds')\n```",
933
- "os.remove": "```lua\nos.remove(filename)\n```\n\n**os.remove** — Deletes the file or empty directory.\n\nReturns true on success, or nil + error message.\n\n```lua\nlocal ok, err = os.remove('temp.txt')\nif not ok then print('Failed:', err) end\n```",
934
- "os.rename": "```lua\nos.rename(oldname, newname)\n```\n\n**os.rename** — Renames/moves a file or directory.\n\n```lua\nlocal ok, err = os.rename('old.txt', 'new.txt')\nif not ok then print('Failed:', err) end\n```",
935
- "os.tmpname": "```lua\nos.tmpname()\n```\n\n**os.tmpname** — Returns a string with a temporary file name.\n\n**Warning:** The file is not created; use `io.open` to create it. On some systems this may be insecure.\n\n```lua\nlocal tmp = os.tmpname()\nlocal f = io.open(tmp, 'w')\nf:write('data')\nf:close()\nos.remove(tmp)\n```",
936
- "os.setlocale": "```lua\nos.setlocale(locale [, category])\n```\n\n**os.setlocale** — Sets the program locale. Pass nil to query current.\n\nCategories: `'all'`, `'collate'`, `'ctype'`, `'monetary'`, `'numeric'`, `'time'`.\n\n```lua\nos.setlocale('C') -- standard locale\nos.setlocale('') -- system default\nprint(os.setlocale(nil)) -- query current\n```",
937
- "coroutine.isyieldable": "```lua\ncoroutine.isyieldable()\n```\n\n**coroutine.isyieldable** — Returns true if the running coroutine can yield.\n\nFalse for the main thread and C functions.\n\n```lua\nprint(coroutine.isyieldable()) -- false (main thread)\n\nlocal co = coroutine.create(function()\n print(coroutine.isyieldable()) -- true\nend)\ncoroutine.resume(co)\n```",
938
- "coroutine.running": "```lua\ncoroutine.running()\n```\n\n**coroutine.running** — Returns the running coroutine and a boolean (true if main thread).\n\n```lua\nlocal co, is_main = coroutine.running()\nprint(is_main) -- true in main thread\n\nlocal co2 = coroutine.create(function()\n local me, main = coroutine.running()\n print(main) -- false\nend)\ncoroutine.resume(co2)\n```",
939
- "coroutine.close": "```lua\ncoroutine.close(co)\n```\n\n**coroutine.close** — Closes coroutine `co`, running any pending to-be-closed variables. (5.4+)\n\nCan only close suspended or dead coroutines.\n\n```lua\nlocal co = coroutine.create(function()\n local f <close> = io.open('temp.txt', 'w')\n coroutine.yield()\n f:write('done')\nend)\ncoroutine.resume(co)\ncoroutine.close(co) -- f gets closed via __close\n```",
940
- "__add": "```lua\n__add(a, b)\n```\n\n**__add** — Addition metamethod. Called for `a + b` when `a` or `b` has this metamethod.\n\n```lua\nlocal Vec = {}\nVec.__index = Vec\nVec.__add = function(a, b)\n return setmetatable({x=a.x+b.x, y=a.y+b.y}, Vec)\nend\n\nlocal v = setmetatable({x=1,y=2}, Vec) + setmetatable({x=3,y=4}, Vec)\nprint(v.x, v.y) -- 4 6\n```",
941
- "__sub": "```lua\n__sub(a, b)\n```\n\n**__sub** — Subtraction metamethod. Called for `a - b`.\n\n```lua\nmt.__sub = function(a, b)\n return setmetatable({x=a.x-b.x, y=a.y-b.y}, mt)\nend\n```",
942
- "__mul": "```lua\n__mul(a, b)\n```\n\n**__mul** — Multiplication metamethod. Called for `a * b`.\n\nOne operand can be a scalar.\n\n```lua\nmt.__mul = function(a, b)\n if type(a) == 'number' then return setmetatable({x=a*b.x, y=a*b.y}, mt) end\n if type(b) == 'number' then return setmetatable({x=a.x*b, y=a.y*b}, mt) end\n return a.x*b.x + a.y*b.y -- dot product\nend\n```",
943
- "__div": "```lua\n__div(a, b)\n```\n\n**__div** — Division metamethod. Called for `a / b`.\n\n```lua\nmt.__div = function(a, b)\n if type(b) == 'number' then\n return setmetatable({x=a.x/b, y=a.y/b}, mt)\n end\nend\n```",
944
- "__mod": "```lua\n__mod(a, b)\n```\n\n**__mod** — Modulo metamethod. Called for `a % b`.\n\n```lua\nmt.__mod = function(a, b)\n return setmetatable({x=a.x%b, y=a.y%b}, mt)\nend\n```",
945
- "__pow": "```lua\n__pow(a, b)\n```\n\n**__pow** — Exponentiation metamethod. Called for `a ^ b`.\n\n```lua\nmt.__pow = function(a, n)\n return setmetatable({x=a.x^n, y=a.y^n}, mt)\nend\n```",
946
- "__unm": "```lua\n__unm(a)\n```\n\n**__unm** — Unary minus metamethod. Called for `-a`.\n\n```lua\nmt.__unm = function(a)\n return setmetatable({x=-a.x, y=-a.y}, mt)\nend\n\nlocal v = setmetatable({x=1,y=2}, mt)\nlocal neg = -v -- {x=-1, y=-2}\n```",
947
- "__eq": "```lua\n__eq(a, b)\n```\n\n**__eq** — Equality metamethod. Called for `a == b` when both share the same metamethod.\n\n```lua\nmt.__eq = function(a, b)\n return a.x == b.x and a.y == b.y\nend\n```\n\n**Note:** Only called when both operands have the same `__eq` metamethod.",
948
- "__lt": "```lua\n__lt(a, b)\n```\n\n**__lt** — Less-than metamethod. Called for `a < b`.\n\n```lua\nmt.__lt = function(a, b)\n return (a.x^2 + a.y^2) < (b.x^2 + b.y^2)\nend\n```",
949
- "__le": "```lua\n__le(a, b)\n```\n\n**__le** — Less-than-or-equal metamethod. Called for `a <= b`.\n\nIn Lua 5.4, if absent, Lua tries `not (b < a)`.\n\n```lua\nmt.__le = function(a, b)\n return (a.x^2 + a.y^2) <= (b.x^2 + b.y^2)\nend\n```",
950
- "__concat": "```lua\n__concat(a, b)\n```\n\n**__concat** — Concatenation metamethod. Called for `a .. b`.\n\n```lua\nmt.__concat = function(a, b)\n if type(a) == 'string' then return a .. tostring(b) end\n if type(b) == 'string' then return tostring(a) .. b end\n return tostring(a) .. tostring(b)\nend\n```",
951
- "__len": "```lua\n__len(a)\n```\n\n**__len** — Length metamethod. Called for `#a`.\n\n```lua\nmt.__len = function(a)\n return math.sqrt(a.x^2 + a.y^2) -- vector magnitude\nend\n\nlocal v = setmetatable({x=3, y=4}, mt)\nprint(#v) -- 5.0\n```",
952
- "__close": "```lua\n__close(obj, err)\n```\n\n**__close** — To-be-closed metamethod (Lua 5.4). Called when a `<close>` variable goes out of scope.\n\n`err` is the error object if exiting due to an error, or nil.\n\n```lua\nlocal mt = {__close = function(self, err)\n print('closing', err)\n self.handle:close()\nend}\n\nlocal obj <close> = setmetatable({handle=io.open('f.txt')}, mt)\n-- handle closed automatically when obj goes out of scope\n```",
953
- "__metatable": "```lua\n__metatable = value\n```\n\n**__metatable** — Protects the metatable. When set, `getmetatable()` returns this value instead of the real metatable, and `setmetatable()` raises an error.\n\n```lua\nlocal mt = {__metatable = 'read-only'}\nlocal t = setmetatable({}, mt)\nprint(getmetatable(t)) -- 'read-only'\nsetmetatable(t, {}) -- error: cannot change protected metatable\n```\n\n**Tip:** Use `debug.getmetatable()` to bypass this protection.",
954
- "__mode": "```lua\n__mode = 'k' | 'v' | 'kv'\n```\n\n**__mode** — Weak table mode. Keys/values with this metamethod won't prevent garbage collection.\n\n- `'k'` — weak keys\n- `'v'` — weak values \n- `'kv'` — both weak\n\n```lua\nlocal cache = setmetatable({}, {__mode = 'v'})\ncache[1] = {data = 'will be collected'}\ncollectgarbage()\nprint(cache[1]) -- nil (collected)\n```",
955
- "string.packsize": "```lua\nstring.packsize(fmt)\n```\n\n**string.packsize** — Returns the size of a string resulting from `string.pack` with the given format. (5.3+)\n\nOnly works with fixed-size formats (not `s` or `z`).\n\n```lua\nprint(string.packsize('i4')) -- 4\nprint(string.packsize('i4i4')) -- 8\nprint(string.packsize('Bd')) -- 9 (1 byte + 8 double)\n```",
956
- "loadstring": {
957
- "contents": [
958
- {
959
- "value": "```lua\nloadstring(string [, chunkname]) -> function | nil, string\n```\nLoads a string as a Lua chunk and returns it as a function. Returns `nil` plus an error message on failure. **Deprecated in Lua 5.2+** use `load()` instead, which accepts both strings and functions.\n\n```lua\nlocal fn = loadstring(\"return 2 + 2\")\nprint(fn()) -- 4\n```"
960
- }
961
- ]
962
- },
963
- "module": {
964
- "contents": [
965
- {
966
- "value": "```lua\nmodule(name [, ...])\n```\nCreates a module environment table and registers it in `package.loaded`. **Deprecated in Lua 5.2+** — use the return-a-table pattern instead:\n\n```lua\n-- Deprecated (Lua 5.1):\nmodule(\"mymodule\", package.seeall)\n\n-- Modern pattern:\nlocal M = {}\nfunction M.hello() print(\"hello\") end\nreturn M\n```"
967
- }
968
- ]
969
- }
970
- }
971
- }
1
+ {
2
+ "language": "lua",
3
+ "hovers": {
4
+ "print": {
5
+ "contents": [
6
+ {
7
+ "value": "```lua\nprint(···)\n```\nReceives any number of arguments and prints their values to stdout, using `tostring` to convert each argument. A tab character separates each value, and a newline is written after the last value."
8
+ }
9
+ ]
10
+ },
11
+ "type": {
12
+ "contents": [
13
+ {
14
+ "value": "```lua\ntype(v) -> string\n```\nReturns the type of its only argument, coded as a string: `\"nil\"`, `\"number\"`, `\"string\"`, `\"boolean\"`, `\"table\"`, `\"function\"`, `\"thread\"`, or `\"userdata\"`."
15
+ }
16
+ ]
17
+ },
18
+ "tostring": {
19
+ "contents": [
20
+ {
21
+ "value": "```lua\ntostring(v) -> string\n```\nConverts any value to a string. If the metatable of `v` has a `__tostring` metamethod, calls it with `v` as the argument."
22
+ }
23
+ ]
24
+ },
25
+ "tonumber": {
26
+ "contents": [
27
+ {
28
+ "value": "```lua\ntonumber(e [, base]) -> number | nil\n```\nConverts its argument to a number. An optional `base` (2–36) interprets the string in that base. Returns `nil` if conversion fails."
29
+ }
30
+ ]
31
+ },
32
+ "pairs": {
33
+ "contents": [
34
+ {
35
+ "value": "```lua\npairs(t) -> function, table, nil\n```\nReturns the `next` function, the table `t`, and `nil`, enabling `for k, v in pairs(t) do ... end` to iterate over all key–value pairs."
36
+ }
37
+ ]
38
+ },
39
+ "ipairs": {
40
+ "contents": [
41
+ {
42
+ "value": "```lua\nipairs(t) -> function, table, 0\n```\nReturns an iterator for integer keys `1, 2, …` until a `nil` value is found. Suitable for arrays/sequences."
43
+ }
44
+ ]
45
+ },
46
+ "next": {
47
+ "contents": [
48
+ {
49
+ "value": "```lua\nnext(table [, index]) -> key, value | nil\n```\nReturns the next index and value of the table. With `nil` as the second argument, returns the first pair. Returns `nil` when exhausted."
50
+ }
51
+ ]
52
+ },
53
+ "select": {
54
+ "contents": [
55
+ {
56
+ "value": "```lua\nselect(index, ···) -> ...\n```\nIf `index` is a number, returns all arguments after argument number `index`. If `index` is `\"#\"`, returns the total number of extra arguments."
57
+ }
58
+ ]
59
+ },
60
+ "rawget": {
61
+ "contents": [
62
+ {
63
+ "value": "```lua\nrawget(table, index) -> any\n```\nGets the real value of `table[index]` without invoking the `__index` metamethod."
64
+ }
65
+ ]
66
+ },
67
+ "rawset": {
68
+ "contents": [
69
+ {
70
+ "value": "```lua\nrawset(table, index, value) -> table\n```\nSets `table[index] = value` without invoking the `__newindex` metamethod."
71
+ }
72
+ ]
73
+ },
74
+ "rawequal": {
75
+ "contents": [
76
+ {
77
+ "value": "```lua\nrawequal(v1, v2) -> boolean\n```\nChecks equality without invoking the `__eq` metamethod."
78
+ }
79
+ ]
80
+ },
81
+ "rawlen": {
82
+ "contents": [
83
+ {
84
+ "value": "```lua\nrawlen(v) -> integer\n```\nReturns the length of a table or string without invoking `__len`. Available in Lua 5.2+."
85
+ }
86
+ ]
87
+ },
88
+ "setmetatable": {
89
+ "contents": [
90
+ {
91
+ "value": "```lua\nsetmetatable(table, metatable) -> table\n```\nSets the metatable for the given table. If `metatable` is `nil`, removes it. Raises an error if the original metatable has `__metatable`."
92
+ }
93
+ ]
94
+ },
95
+ "getmetatable": {
96
+ "contents": [
97
+ {
98
+ "value": "```lua\ngetmetatable(object) -> table | nil | any\n```\nReturns the metatable of the object. If the metatable has `__metatable`, returns that value instead."
99
+ }
100
+ ]
101
+ },
102
+ "require": {
103
+ "contents": [
104
+ {
105
+ "value": "```lua\nrequire(modname) -> any\n```\nLoads the given module. Checks `package.loaded` first, then searches using `package.searchers`. Caches the result in `package.loaded`."
106
+ }
107
+ ]
108
+ },
109
+ "dofile": {
110
+ "contents": [
111
+ {
112
+ "value": "```lua\ndofile([filename]) -> ...\n```\nOpens the named file and executes its contents as a Lua chunk. Returns any values returned by the chunk."
113
+ }
114
+ ]
115
+ },
116
+ "loadfile": {
117
+ "contents": [
118
+ {
119
+ "value": "```lua\nloadfile([filename [, mode [, env]]]) -> function | nil, string\n```\nLoads a file as a Lua chunk without executing. Returns the compiled function or `nil` plus an error message."
120
+ }
121
+ ]
122
+ },
123
+ "load": {
124
+ "contents": [
125
+ {
126
+ "value": "```lua\nload(chunk [, chunkname [, mode [, env]]]) -> function | nil, string\n```\nLoads a chunk from a string or function. Returns the compiled function or `nil` plus an error message."
127
+ }
128
+ ]
129
+ },
130
+ "pcall": {
131
+ "contents": [
132
+ {
133
+ "value": "```lua\npcall(f [, arg1, ···]) -> boolean, ...\n```\nCalls function `f` in *protected mode*. Returns `true` plus results on success, `false` plus the error object on failure."
134
+ }
135
+ ]
136
+ },
137
+ "xpcall": {
138
+ "contents": [
139
+ {
140
+ "value": "```lua\nxpcall(f, msgh [, arg1, ···]) -> boolean, ...\n```\nLike `pcall` but sets `msgh` as the error message handler. Extra arguments to `f` supported in Lua 5.2+."
141
+ }
142
+ ]
143
+ },
144
+ "error": {
145
+ "contents": [
146
+ {
147
+ "value": "```lua\nerror(message [, level])\n```\nRaises an error. `level` controls position info: 1 (default) = where `error` was called, 2 = caller of that function, 0 = no position."
148
+ }
149
+ ]
150
+ },
151
+ "assert": {
152
+ "contents": [
153
+ {
154
+ "value": "```lua\nassert(v [, message]) -> v, message\n```\nRaises an error if `v` is false or nil; otherwise returns all arguments. Default message is `\"assertion failed!\"`."
155
+ }
156
+ ]
157
+ },
158
+ "collectgarbage": {
159
+ "contents": [
160
+ {
161
+ "value": "```lua\ncollectgarbage([opt [, arg]]) -> varies\n```\nGeneric interface to the garbage collector. Options: `\"collect\"`, `\"stop\"`, `\"restart\"`, `\"count\"`, `\"step\"`, `\"isrunning\"`, `\"incremental\"` (5.4), `\"generational\"` (5.4)."
162
+ }
163
+ ]
164
+ },
165
+ "unpack": {
166
+ "contents": [
167
+ {
168
+ "value": "```lua\nunpack(list [, i [, j]]) -> ...\n```\nReturns elements from `list`. In Lua 5.2+ use `table.unpack`. Default `i` is 1, `j` is `#list`."
169
+ }
170
+ ]
171
+ },
172
+ "warn": {
173
+ "contents": [
174
+ {
175
+ "value": "```lua\nwarn(msg1 [, msg2, ···])\n```\nEmits a warning. If the first segment starts with `\"@\"`, it controls the warning system (`\"@on\"`, `\"@off\"`). Lua 5.4+."
176
+ }
177
+ ]
178
+ },
179
+ "string": {
180
+ "contents": [
181
+ {
182
+ "value": "```lua\nstring library\n```\nProvides generic string manipulation functions. Strings are indexed from 1, immutable, and can contain embedded zeros. Pattern matching uses its own syntax (not regex)."
183
+ }
184
+ ]
185
+ },
186
+ "table": {
187
+ "contents": [
188
+ {
189
+ "value": "```lua\ntable library\n```\nProvides generic functions for table/array manipulation: insert, remove, sort, concat, move, pack, unpack."
190
+ }
191
+ ]
192
+ },
193
+ "math": {
194
+ "contents": [
195
+ {
196
+ "value": "```lua\nmath library\n```\nProvides standard mathematical functions and constants: trigonometric, exponential, logarithmic, floor, ceil, random, pi, huge, etc."
197
+ }
198
+ ]
199
+ },
200
+ "io": {
201
+ "contents": [
202
+ {
203
+ "value": "```lua\nio library\n```\nProvides file I/O. Two styles: implicit (io.read/write on default files) and explicit (file handles from io.open)."
204
+ }
205
+ ]
206
+ },
207
+ "os": {
208
+ "contents": [
209
+ {
210
+ "value": "```lua\nos library\n```\nProvides OS-level functions: clock, time, date, execute, getenv, remove, rename, exit, tmpname."
211
+ }
212
+ ]
213
+ },
214
+ "coroutine": {
215
+ "contents": [
216
+ {
217
+ "value": "```lua\ncoroutine library\n```\nProvides cooperative multithreading via coroutines: create, resume, yield, wrap, status, close."
218
+ }
219
+ ]
220
+ },
221
+ "debug": {
222
+ "contents": [
223
+ {
224
+ "value": "```lua\ndebug library\n```\nProvides a debug interface: getinfo, traceback, sethook, getlocal/setlocal, getupvalue/setupvalue. Use with care in production."
225
+ }
226
+ ]
227
+ },
228
+ "package": {
229
+ "contents": [
230
+ {
231
+ "value": "```lua\npackage library\n```\nProvides module loading facilities: path, cpath, loaded, preload, searchers, searchpath, config."
232
+ }
233
+ ]
234
+ },
235
+ "utf8": {
236
+ "contents": [
237
+ {
238
+ "value": "```lua\nutf8 library\n```\nProvides basic UTF-8 support: char, codepoint, codes, len, offset, charpattern. Available in Lua 5.3+."
239
+ }
240
+ ]
241
+ },
242
+ "string.format": {
243
+ "contents": [
244
+ {
245
+ "value": "```lua\nstring.format(formatstring, ···) -> string\n```\nReturns a formatted string following the format description, similar to C `sprintf`. Supports `%d`, `%i`, `%u`, `%f`, `%e`, `%g`, `%x`, `%X`, `%o`, `%s`, `%q`, `%c`, `%%`."
246
+ }
247
+ ]
248
+ },
249
+ "string.find": {
250
+ "contents": [
251
+ {
252
+ "value": "```lua\nstring.find(s, pattern [, init [, plain]]) -> number, number, ... | nil\n```\nFinds the first match of `pattern` in `s`. Returns start/end indices and captures. If `plain` is true, does a plain substring search."
253
+ }
254
+ ]
255
+ },
256
+ "string.match": {
257
+ "contents": [
258
+ {
259
+ "value": "```lua\nstring.match(s, pattern [, init]) -> string | ... | nil\n```\nReturns captures from the first match of `pattern` in `s`, or the whole match if no captures."
260
+ }
261
+ ]
262
+ },
263
+ "string.gmatch": {
264
+ "contents": [
265
+ {
266
+ "value": "```lua\nstring.gmatch(s, pattern [, init]) -> iterator function\n```\nReturns an iterator producing successive capture groups from `pattern` over `s`. Lua 5.4 added optional `init`."
267
+ }
268
+ ]
269
+ },
270
+ "string.gsub": {
271
+ "contents": [
272
+ {
273
+ "value": "```lua\nstring.gsub(s, pattern, repl [, n]) -> string, number\n```\nReturns a copy of `s` with all (or first `n`) occurrences of `pattern` replaced. `repl` can be string, table, or function."
274
+ }
275
+ ]
276
+ },
277
+ "string.sub": {
278
+ "contents": [
279
+ {
280
+ "value": "```lua\nstring.sub(s, i [, j]) -> string\n```\nReturns the substring from `i` to `j` (inclusive). Negative indices count from end. Default `j` is `-1`."
281
+ }
282
+ ]
283
+ },
284
+ "string.rep": {
285
+ "contents": [
286
+ {
287
+ "value": "```lua\nstring.rep(s, n [, sep]) -> string\n```\nReturns `n` copies of `s` separated by `sep` (default empty). `sep` parameter available since Lua 5.2."
288
+ }
289
+ ]
290
+ },
291
+ "string.reverse": {
292
+ "contents": [
293
+ {
294
+ "value": "```lua\nstring.reverse(s) -> string\n```\nReturns the string `s` reversed."
295
+ }
296
+ ]
297
+ },
298
+ "string.upper": {
299
+ "contents": [
300
+ {
301
+ "value": "```lua\nstring.upper(s) -> string\n```\nReturns a copy with all lowercase letters changed to uppercase (locale-dependent)."
302
+ }
303
+ ]
304
+ },
305
+ "string.lower": {
306
+ "contents": [
307
+ {
308
+ "value": "```lua\nstring.lower(s) -> string\n```\nReturns a copy with all uppercase letters changed to lowercase (locale-dependent)."
309
+ }
310
+ ]
311
+ },
312
+ "string.len": {
313
+ "contents": [
314
+ {
315
+ "value": "```lua\nstring.len(s) -> integer\n```\nReturns the length of `s`. Embedded zeros are counted: `\"a\\0b\"` has length 3."
316
+ }
317
+ ]
318
+ },
319
+ "string.byte": {
320
+ "contents": [
321
+ {
322
+ "value": "```lua\nstring.byte(s [, i [, j]]) -> integer, ...\n```\nReturns the internal numeric codes of characters `s[i]` through `s[j]`. Defaults: `i=1`, `j=i`."
323
+ }
324
+ ]
325
+ },
326
+ "string.char": {
327
+ "contents": [
328
+ {
329
+ "value": "```lua\nstring.char(···) -> string\n```\nReturns a string where each character has the numeric code of the corresponding argument."
330
+ }
331
+ ]
332
+ },
333
+ "string.dump": {
334
+ "contents": [
335
+ {
336
+ "value": "```lua\nstring.dump(function [, strip]) -> string\n```\nReturns a binary representation of the function. If `strip` is true (5.3+), excludes debug information."
337
+ }
338
+ ]
339
+ },
340
+ "string.pack": {
341
+ "contents": [
342
+ {
343
+ "value": "```lua\nstring.pack(fmt, v1, v2, ···) -> string\n```\nPacks values into a binary string according to format `fmt`. Lua 5.3+."
344
+ }
345
+ ]
346
+ },
347
+ "string.unpack": {
348
+ "contents": [
349
+ {
350
+ "value": "```lua\nstring.unpack(fmt, s [, pos]) -> ..., integer\n```\nUnpacks values from binary string `s` according to `fmt`. Returns values plus the position after the last read byte. Lua 5.3+."
351
+ }
352
+ ]
353
+ },
354
+ "table.insert": {
355
+ "contents": [
356
+ {
357
+ "value": "```lua\ntable.insert(list, [pos,] value)\n```\nInserts `value` at position `pos` (default `#list+1`), shifting subsequent elements up."
358
+ }
359
+ ]
360
+ },
361
+ "table.remove": {
362
+ "contents": [
363
+ {
364
+ "value": "```lua\ntable.remove(list [, pos]) -> any\n```\nRemoves and returns the element at `pos` (default `#list`), shifting subsequent elements down."
365
+ }
366
+ ]
367
+ },
368
+ "table.sort": {
369
+ "contents": [
370
+ {
371
+ "value": "```lua\ntable.sort(list [, comp])\n```\nSorts elements in-place. If `comp` is given, it receives two elements and returns `true` when the first should come before the second."
372
+ }
373
+ ]
374
+ },
375
+ "table.concat": {
376
+ "contents": [
377
+ {
378
+ "value": "```lua\ntable.concat(list [, sep [, i [, j]]]) -> string\n```\nConcatenates list[i]..sep..list[j]. Default `sep` is `\"\"`, `i` is `1`, `j` is `#list`."
379
+ }
380
+ ]
381
+ },
382
+ "table.move": {
383
+ "contents": [
384
+ {
385
+ "value": "```lua\ntable.move(a1, f, e, t [, a2]) -> a2\n```\nCopies elements `a1[f]..a1[e]` to `a2[t]..`. Default `a2` is `a1`. Lua 5.3+."
386
+ }
387
+ ]
388
+ },
389
+ "table.pack": {
390
+ "contents": [
391
+ {
392
+ "value": "```lua\ntable.pack(···) -> table\n```\nReturns a new table with all arguments stored in keys 1, 2, … and field `n` = total count. Lua 5.2+."
393
+ }
394
+ ]
395
+ },
396
+ "table.unpack": {
397
+ "contents": [
398
+ {
399
+ "value": "```lua\ntable.unpack(list [, i [, j]]) -> ...\n```\nReturns `list[i], …, list[j]`. Default `i=1`, `j=#list`. In Lua 5.1 this is the global `unpack`."
400
+ }
401
+ ]
402
+ },
403
+ "math.abs": {
404
+ "contents": [
405
+ {
406
+ "value": "```lua\nmath.abs(x) -> number\n```\nReturns the absolute value of `x`. (integer/float)"
407
+ }
408
+ ]
409
+ },
410
+ "math.ceil": {
411
+ "contents": [
412
+ {
413
+ "value": "```lua\nmath.ceil(x) -> integer\n```\nReturns the smallest integral value ≥ `x`. In Lua 5.3+ returns an integer."
414
+ }
415
+ ]
416
+ },
417
+ "math.floor": {
418
+ "contents": [
419
+ {
420
+ "value": "```lua\nmath.floor(x) -> integer\n```\nReturns the largest integral value ≤ `x`. In Lua 5.3+ returns an integer."
421
+ }
422
+ ]
423
+ },
424
+ "math.sqrt": {
425
+ "contents": [
426
+ {
427
+ "value": "```lua\nmath.sqrt(x) -> number\n```\nReturns the square root of `x`. Equivalent to `x^0.5`."
428
+ }
429
+ ]
430
+ },
431
+ "math.sin": {
432
+ "contents": [
433
+ {
434
+ "value": "```lua\nmath.sin(x) -> number\n```\nReturns the sine of `x` (in radians)."
435
+ }
436
+ ]
437
+ },
438
+ "math.cos": {
439
+ "contents": [
440
+ {
441
+ "value": "```lua\nmath.cos(x) -> number\n```\nReturns the cosine of `x` (in radians)."
442
+ }
443
+ ]
444
+ },
445
+ "math.tan": {
446
+ "contents": [
447
+ {
448
+ "value": "```lua\nmath.tan(x) -> number\n```\nReturns the tangent of `x` (in radians)."
449
+ }
450
+ ]
451
+ },
452
+ "math.random": {
453
+ "contents": [
454
+ {
455
+ "value": "```lua\nmath.random([m [, n]]) -> number\n```\nWithout arguments: pseudo-random float in [0,1). With `m`: integer in [1,m]. With `m,n`: integer in [m,n]. Lua 5.4 uses xoshiro256**."
456
+ }
457
+ ]
458
+ },
459
+ "math.max": {
460
+ "contents": [
461
+ {
462
+ "value": "```lua\nmath.max(x, ···) -> number\n```\nReturns the maximum value among its arguments."
463
+ }
464
+ ]
465
+ },
466
+ "math.min": {
467
+ "contents": [
468
+ {
469
+ "value": "```lua\nmath.min(x, ···) -> number\n```\nReturns the minimum value among its arguments."
470
+ }
471
+ ]
472
+ },
473
+ "math.log": {
474
+ "contents": [
475
+ {
476
+ "value": "```lua\nmath.log(x [, base]) -> number\n```\nReturns the logarithm of `x` in the given `base` (default `e`). `base` parameter available in Lua 5.2+."
477
+ }
478
+ ]
479
+ },
480
+ "math.exp": {
481
+ "contents": [
482
+ {
483
+ "value": "```lua\nmath.exp(x) -> number\n```\nReturns `e^x`."
484
+ }
485
+ ]
486
+ },
487
+ "math.pi": {
488
+ "contents": [
489
+ {
490
+ "value": "```lua\nmath.pi\n```\nThe value of π (3.14159265358979323846…)."
491
+ }
492
+ ]
493
+ },
494
+ "math.huge": {
495
+ "contents": [
496
+ {
497
+ "value": "```lua\nmath.huge\n```\nThe float value `HUGE_VAL` (positive infinity)."
498
+ }
499
+ ]
500
+ },
501
+ "io.open": {
502
+ "contents": [
503
+ {
504
+ "value": "```lua\nio.open(filename [, mode]) -> file | nil, string\n```\nOpens a file in the specified mode. Modes: `'r'` (read), `'w'` (write), `'a'` (append), `'r+'`, `'w+'`, `'a+'`. Append `'b'` for binary."
505
+ }
506
+ ]
507
+ },
508
+ "io.read": {
509
+ "contents": [
510
+ {
511
+ "value": "```lua\nio.read(···) -> string | number | nil\n```\nReads from the default input. Formats: `'*a'`/`'a'` (whole file), `'*l'`/`'l'` (line, default), `'*n'`/`'n'` (number), `'*L'`/`'L'` (line with newline)."
512
+ }
513
+ ]
514
+ },
515
+ "io.write": {
516
+ "contents": [
517
+ {
518
+ "value": "```lua\nio.write(···) -> file | nil, string\n```\nWrites each argument to the default output file."
519
+ }
520
+ ]
521
+ },
522
+ "io.lines": {
523
+ "contents": [
524
+ {
525
+ "value": "```lua\nio.lines([filename, ···]) -> iterator\n```\nReturns an iterator that reads lines from the given file (or default input). Closes file when done."
526
+ }
527
+ ]
528
+ },
529
+ "io.close": {
530
+ "contents": [
531
+ {
532
+ "value": "```lua\nio.close([file])\n```\nCloses the given file handle (or the default output file)."
533
+ }
534
+ ]
535
+ },
536
+ "os.clock": {
537
+ "contents": [
538
+ {
539
+ "value": "```lua\nos.clock() -> number\n```\nReturns an approximation of the CPU time used by the program, in seconds."
540
+ }
541
+ ]
542
+ },
543
+ "os.time": {
544
+ "contents": [
545
+ {
546
+ "value": "```lua\nos.time([table]) -> integer\n```\nReturns the current time as a number (usually epoch seconds), or the time represented by the date table."
547
+ }
548
+ ]
549
+ },
550
+ "os.date": {
551
+ "contents": [
552
+ {
553
+ "value": "```lua\nos.date([format [, time]]) -> string | table\n```\nFormats a date/time. Use `\"*t\"` to get a table with year, month, day, hour, min, sec, wday, yday, isdst."
554
+ }
555
+ ]
556
+ },
557
+ "os.execute": {
558
+ "contents": [
559
+ {
560
+ "value": "```lua\nos.execute([command]) -> boolean | nil, string, integer\n```\nPasses `command` to the OS shell. In Lua 5.2+, returns `true`/`nil`, exit type, and exit code."
561
+ }
562
+ ]
563
+ },
564
+ "os.getenv": {
565
+ "contents": [
566
+ {
567
+ "value": "```lua\nos.getenv(varname) -> string | nil\n```\nReturns the value of the environment variable `varname`, or `nil` if not set."
568
+ }
569
+ ]
570
+ },
571
+ "os.exit": {
572
+ "contents": [
573
+ {
574
+ "value": "```lua\nos.exit([code [, close]])\n```\nTerminates the program. `code` defaults to `true` (success). If `close` is true, closes the Lua state first (5.2+)."
575
+ }
576
+ ]
577
+ },
578
+ "coroutine.create": {
579
+ "contents": [
580
+ {
581
+ "value": "```lua\ncoroutine.create(f) -> thread\n```\nCreates a new coroutine with body `f` (a function). Returns a thread value."
582
+ }
583
+ ]
584
+ },
585
+ "coroutine.resume": {
586
+ "contents": [
587
+ {
588
+ "value": "```lua\ncoroutine.resume(co [, val1, ···]) -> boolean, ...\n```\nStarts or continues coroutine `co`. Returns `true` plus yielded/returned values, or `false` plus the error."
589
+ }
590
+ ]
591
+ },
592
+ "coroutine.yield": {
593
+ "contents": [
594
+ {
595
+ "value": "```lua\ncoroutine.yield(···)\n```\nSuspends the running coroutine. Arguments become the extra results of `resume`."
596
+ }
597
+ ]
598
+ },
599
+ "coroutine.wrap": {
600
+ "contents": [
601
+ {
602
+ "value": "```lua\ncoroutine.wrap(f) -> function\n```\nCreates a coroutine and returns a function that resumes it. Unlike `resume`, raises errors directly."
603
+ }
604
+ ]
605
+ },
606
+ "coroutine.status": {
607
+ "contents": [
608
+ {
609
+ "value": "```lua\ncoroutine.status(co) -> string\n```\nReturns the status: `\"running\"`, `\"suspended\"`, `\"normal\"`, or `\"dead\"`."
610
+ }
611
+ ]
612
+ },
613
+ "and": {
614
+ "contents": [
615
+ {
616
+ "value": "```lua\na and b\n```\n**Logical AND.** Returns `a` if it is false or nil; otherwise returns `b`. Short-circuit: `b` is not evaluated if `a` is falsy."
617
+ }
618
+ ]
619
+ },
620
+ "or": {
621
+ "contents": [
622
+ {
623
+ "value": "```lua\na or b\n```\n**Logical OR.** Returns `a` if it is truthy; otherwise returns `b`. Short-circuit: `b` is not evaluated if `a` is truthy.\n\nCommon idiom: `x = x or default`."
624
+ }
625
+ ]
626
+ },
627
+ "not": {
628
+ "contents": [
629
+ {
630
+ "value": "```lua\nnot a\n```\n**Logical NOT.** Returns `true` if `a` is false or nil; otherwise returns `false`."
631
+ }
632
+ ]
633
+ },
634
+ "local": {
635
+ "contents": [
636
+ {
637
+ "value": "```lua\nlocal name = value\nlocal function name() ... end\n```\nDeclares a local variable or function, scoped to the enclosing block. Always prefer `local` over global."
638
+ }
639
+ ]
640
+ },
641
+ "nil": {
642
+ "contents": [
643
+ {
644
+ "value": "```lua\nnil\n```\nThe type `nil` has one value: `nil`. Represents the absence of a useful value. Together with `false`, it is the only falsy value."
645
+ }
646
+ ]
647
+ },
648
+ "true": {
649
+ "contents": [
650
+ {
651
+ "value": "```lua\ntrue\n```\nBoolean true value."
652
+ }
653
+ ]
654
+ },
655
+ "false": {
656
+ "contents": [
657
+ {
658
+ "value": "```lua\nfalse\n```\nBoolean false value. Together with `nil`, the only falsy value in Lua."
659
+ }
660
+ ]
661
+ },
662
+ "return": {
663
+ "contents": [
664
+ {
665
+ "value": "```lua\nreturn expr1, expr2, ...\n```\nReturns values from a function. Must be the last statement in its block. Multiple return values are a core Lua feature."
666
+ }
667
+ ]
668
+ },
669
+ "break": {
670
+ "contents": [
671
+ {
672
+ "value": "```lua\nbreak\n```\nTerminates the execution of the innermost `while`, `repeat`, or `for` loop."
673
+ }
674
+ ]
675
+ },
676
+ "goto": {
677
+ "contents": [
678
+ {
679
+ "value": "```lua\ngoto label\n::label::\n```\nJumps to the specified label. Available in Lua 5.2+. Cannot jump into a block or out of a function."
680
+ }
681
+ ]
682
+ },
683
+ "for": {
684
+ "contents": [
685
+ {
686
+ "value": "```lua\nfor i = start, stop [, step] do ... end\nfor k, v in iterator do ... end\n```\nNumeric `for` iterates with a counter. Generic `for` iterates using an iterator function (e.g., `pairs`, `ipairs`)."
687
+ }
688
+ ]
689
+ },
690
+ "while": {
691
+ "contents": [
692
+ {
693
+ "value": "```lua\nwhile condition do\n ...\nend\n```\nRepeats the block while `condition` is truthy. Condition is tested before each iteration."
694
+ }
695
+ ]
696
+ },
697
+ "repeat": {
698
+ "contents": [
699
+ {
700
+ "value": "```lua\nrepeat\n ...\nuntil condition\n```\nRepeats the block until `condition` is true. Executes at least once. Variables declared inside are visible in the `until` expression."
701
+ }
702
+ ]
703
+ },
704
+ "if": {
705
+ "contents": [
706
+ {
707
+ "value": "```lua\nif cond then\n ...\nelseif cond2 then\n ...\nelse\n ...\nend\n```\nConditional execution. Only `nil` and `false` are considered false; everything else (including `0` and `\"\"`) is true."
708
+ }
709
+ ]
710
+ },
711
+ "function": {
712
+ "contents": [
713
+ {
714
+ "value": "```lua\nfunction name(params) ... end\nlocal function name(params) ... end\nlocal f = function(params) ... end\n```\nDeclares a function. Functions are first-class values in Lua. Methods use colon syntax: `function obj:method() ... end`."
715
+ }
716
+ ]
717
+ },
718
+ "do": {
719
+ "contents": [
720
+ {
721
+ "value": "```lua\ndo\n -- new scope\nend\n```\nCreates a new block scope. Variables declared with `local` inside are not visible outside."
722
+ }
723
+ ]
724
+ },
725
+ "end": {
726
+ "contents": [
727
+ {
728
+ "value": "```lua\nend\n```\nCloses a block started by `function`, `if`, `for`, `while`, `repeat`, or `do`."
729
+ }
730
+ ]
731
+ },
732
+ "then": {
733
+ "contents": [
734
+ {
735
+ "value": "```lua\nif condition then ...\n```\nRequired after the condition in an `if` or `elseif` clause."
736
+ }
737
+ ]
738
+ },
739
+ "else": {
740
+ "contents": [
741
+ {
742
+ "value": "```lua\nif cond then ... else ... end\n```\nAlternative branch when the `if` condition is false."
743
+ }
744
+ ]
745
+ },
746
+ "elseif": {
747
+ "contents": [
748
+ {
749
+ "value": "```lua\nif cond1 then ...\nelseif cond2 then ...\nend\n```\nAdditional conditional branch. Avoids nesting multiple `if` statements."
750
+ }
751
+ ]
752
+ },
753
+ "until": {
754
+ "contents": [
755
+ {
756
+ "value": "```lua\nrepeat ... until condition\n```\nEnds a `repeat` loop. The condition is tested after each iteration."
757
+ }
758
+ ]
759
+ },
760
+ "in": {
761
+ "contents": [
762
+ {
763
+ "value": "```lua\nfor k, v in pairs(t) do ... end\n```\nUsed in generic `for` loops to separate the iteration variables from the iterator expression."
764
+ }
765
+ ]
766
+ },
767
+ "_G": {
768
+ "contents": [
769
+ {
770
+ "value": "```lua\n_G\n```\nA global variable (not a keyword) that holds a reference to the global environment table. In Lua 5.1, the environment of the running function. In Lua 5.2+, just a regular global holding the global table."
771
+ }
772
+ ]
773
+ },
774
+ "_ENV": {
775
+ "contents": [
776
+ {
777
+ "value": "```lua\n_ENV\n```\nThe environment table for the current chunk (Lua 5.2+). All free names (globals) are syntactic sugar for `_ENV.name`. Changing `_ENV` changes what global variables the chunk sees."
778
+ }
779
+ ]
780
+ },
781
+ "_VERSION": {
782
+ "contents": [
783
+ {
784
+ "value": "```lua\n_VERSION\n```\nA global string containing the running Lua version, e.g. `\"Lua 5.4\"`."
785
+ }
786
+ ]
787
+ },
788
+ "self": {
789
+ "contents": [
790
+ {
791
+ "value": "```lua\nself\n```\nImplicit first parameter in methods defined with colon syntax (`function obj:method() ... end`). Refers to the receiver object."
792
+ }
793
+ ]
794
+ },
795
+ "..": {
796
+ "contents": [
797
+ {
798
+ "value": "```lua\na .. b\n```\n**String concatenation operator.** Joins two strings (or numbers converted to strings). Creates a new string.\n\nFor concatenating many strings, prefer `table.concat` for performance."
799
+ }
800
+ ]
801
+ },
802
+ "#": {
803
+ "contents": [
804
+ {
805
+ "value": "```lua\n#t\n#s\n```\n**Length operator.** For strings, returns the byte count. For tables, returns a border (an index where `t[n] ~= nil` and `t[n+1] == nil`). For sequences, this is the last index."
806
+ }
807
+ ]
808
+ },
809
+ "//": {
810
+ "contents": [
811
+ {
812
+ "value": "```lua\na // b\n```\n**Floor division** (Lua 5.3+). Returns `math.floor(a/b)`. Works with both integers and floats. Integer operands yield an integer result."
813
+ }
814
+ ]
815
+ },
816
+ "~": {
817
+ "contents": [
818
+ {
819
+ "value": "```lua\na ~ b -- bitwise XOR\n~a -- bitwise NOT\n```\n**Bitwise XOR / NOT** (Lua 5.3+). Binary `~` is XOR, unary `~` is NOT. Note: `~=` is the *inequality* operator, not bitwise."
820
+ }
821
+ ]
822
+ },
823
+ "&": {
824
+ "contents": [
825
+ {
826
+ "value": "```lua\na & b\n```\n**Bitwise AND** (Lua 5.3+). Performs a bitwise AND on integer operands."
827
+ }
828
+ ]
829
+ },
830
+ "|": {
831
+ "contents": [
832
+ {
833
+ "value": "```lua\na | b\n```\n**Bitwise OR** (Lua 5.3+). Performs a bitwise OR on integer operands."
834
+ }
835
+ ]
836
+ },
837
+ "<<": {
838
+ "contents": [
839
+ {
840
+ "value": "```lua\na << n\n```\n**Left shift** (Lua 5.3+). Shifts `a` left by `n` bits, filling with zeros."
841
+ }
842
+ ]
843
+ },
844
+ ">>": {
845
+ "contents": [
846
+ {
847
+ "value": "```lua\na >> n\n```\n**Right shift** (Lua 5.3+). Shifts `a` right by `n` bits, filling with zeros (logical shift)."
848
+ }
849
+ ]
850
+ },
851
+ "__index": {
852
+ "contents": [
853
+ {
854
+ "value": "```lua\n__index = table_or_function\n```\n**Metamethod** invoked when accessing a key not present in the table. If `__index` is a table, the lookup continues there (prototype chain). If a function, called as `__index(table, key)`.\n\nThis is the foundation of Lua's OOP system."
855
+ }
856
+ ]
857
+ },
858
+ "__newindex": {
859
+ "contents": [
860
+ {
861
+ "value": "```lua\n__newindex = function(table, key, value)\n```\n**Metamethod** invoked when assigning to a key not present in the table. Can be used to create read-only tables, logging proxies, or custom assignment behavior."
862
+ }
863
+ ]
864
+ },
865
+ "__tostring": {
866
+ "contents": [
867
+ {
868
+ "value": "```lua\n__tostring = function(self) -> string\n```\n**Metamethod** called by `tostring()`. Should return a human-readable string representation of the object."
869
+ }
870
+ ]
871
+ },
872
+ "__call": {
873
+ "contents": [
874
+ {
875
+ "value": "```lua\n__call = function(self, ...)\n```\n**Metamethod** invoked when a table is called as a function: `obj(args)`. Commonly used for constructor shorthand or callable objects."
876
+ }
877
+ ]
878
+ },
879
+ "__gc": {
880
+ "contents": [
881
+ {
882
+ "value": "```lua\n__gc = function(self)\n```\n**Metamethod (finalizer)** called when the object is garbage collected. Available for tables in Lua 5.2+ and for userdata in all versions."
883
+ }
884
+ ]
885
+ },
886
+ "debug.getinfo": {
887
+ "contents": [
888
+ {
889
+ "value": "```lua\ndebug.getinfo([thread,] f [, what])\n```\n\n**debug.getinfo** — Returns a table with information about a function.\n\n`f` can be a function or stack level (1 = calling function). `what` selects fields:\n- `'n'` — name, namewhat\n- `'S'` — source, short_src, what, linedefined, lastlinedefined\n- `'l'` — currentline\n- `'u'` — nups, nparams, isvararg\n- `'t'` — istailcall\n- `'L'` — activelines table\n\n```lua\nlocal info = debug.getinfo(1, 'Sln')\nprint(info.source, info.currentline, info.name)\n```"
890
+ }
891
+ ]
892
+ },
893
+ "debug.traceback": {
894
+ "contents": [
895
+ {
896
+ "value": "```lua\ndebug.traceback([thread,] [message [, level]])\n```\n\n**debug.traceback** — Returns a string with a traceback of the call stack.\n\nUseful in error handlers (xpcall).\n\n```lua\nlocal ok, err = xpcall(riskyFunc, debug.traceback)\nif not ok then print(err) end\n```"
897
+ }
898
+ ]
899
+ },
900
+ "debug.sethook": {
901
+ "contents": [
902
+ {
903
+ "value": "```lua\ndebug.sethook([thread,] hook, mask [, count])\n```\n\n**debug.sethook** — Sets a hook function. `mask` characters:\n- `'c'` call hook\n- `'r'` return hook\n- `'l'` line hook\n\n`count` fires hook every N instructions.\n\n```lua\ndebug.sethook(function(event, line)\n print(event, line)\nend, 'l') -- fires on every line\n\ndebug.sethook() -- remove hook\n```"
904
+ }
905
+ ]
906
+ },
907
+ "debug.gethook": {
908
+ "contents": [
909
+ {
910
+ "value": "```lua\ndebug.gethook([thread])\n```\n\n**debug.gethook** — Returns the current hook function, mask string, and count.\n\n```lua\nlocal hook, mask, count = debug.gethook()\nprint(mask) -- e.g. 'l'\n```"
911
+ }
912
+ ]
913
+ },
914
+ "debug.getlocal": {
915
+ "contents": [
916
+ {
917
+ "value": "```lua\ndebug.getlocal([thread,] f, local)\n```\n\n**debug.getlocal** — Returns name and value of local variable.\n\n`f` is stack level, `local` is variable index (1-based).\n\n```lua\nlocal x, y = 10, 20\nprint(debug.getlocal(1, 1)) -- 'x', 10\nprint(debug.getlocal(1, 2)) -- 'y', 20\n```"
918
+ }
919
+ ]
920
+ },
921
+ "debug.setlocal": {
922
+ "contents": [
923
+ {
924
+ "value": "```lua\ndebug.setlocal([thread,] level, local, value)\n```\n\n**debug.setlocal** — Sets the value of a local variable at the given stack level.\n\nReturns the variable name, or nil if index is out of range.\n\n```lua\nlocal x = 10\ndebug.setlocal(1, 1, 42)\nprint(x) -- 42\n```"
925
+ }
926
+ ]
927
+ },
928
+ "debug.getupvalue": {
929
+ "contents": [
930
+ {
931
+ "value": "```lua\ndebug.getupvalue(f, up)\n```\n\n**debug.getupvalue** — Returns name and value of upvalue `up` of function `f`.\n\n```lua\nlocal x = 10\nlocal f = function() return x end\nprint(debug.getupvalue(f, 1)) -- 'x', 10\n```"
932
+ }
933
+ ]
934
+ },
935
+ "debug.setupvalue": {
936
+ "contents": [
937
+ {
938
+ "value": "```lua\ndebug.setupvalue(f, up, value)\n```\n\n**debug.setupvalue** — Sets the value of upvalue `up` of function `f`.\n\n```lua\nlocal x = 10\nlocal f = function() return x end\ndebug.setupvalue(f, 1, 42)\nprint(f()) -- 42\n```"
939
+ }
940
+ ]
941
+ },
942
+ "debug.getmetatable": {
943
+ "contents": [
944
+ {
945
+ "value": "```lua\ndebug.getmetatable(value)\n```\n\n**debug.getmetatable** — Returns the metatable of the given value, bypassing `__metatable` metamethod.\n\nUnlike `getmetatable()`, this always returns the real metatable.\n\n```lua\nlocal mt = {__metatable = 'hidden'}\nlocal t = setmetatable({}, mt)\nprint(getmetatable(t)) -- 'hidden'\nprint(debug.getmetatable(t)) -- the actual mt table\n```"
946
+ }
947
+ ]
948
+ },
949
+ "debug.setmetatable": {
950
+ "contents": [
951
+ {
952
+ "value": "```lua\ndebug.setmetatable(value, table)\n```\n\n**debug.setmetatable** — Sets the metatable on any value (not just tables).\n\nCan set metatables on strings, numbers, etc.\n\n```lua\ndebug.setmetatable(0, {__tostring = function(n) return 'num:'..n end})\nprint(tostring(42)) -- num:42\n```"
953
+ }
954
+ ]
955
+ },
956
+ "debug.getuservalue": {
957
+ "contents": [
958
+ {
959
+ "value": "```lua\ndebug.getuservalue(u, n)\n```\n\n**debug.getuservalue** Returns the n-th user value associated with userdata `u`.\n\nIn Lua 5.4, userdata can have multiple user values. Returns value and boolean.\n\n```lua\nlocal val, exists = debug.getuservalue(ud, 1)\n```"
960
+ }
961
+ ]
962
+ },
963
+ "debug.setuservalue": {
964
+ "contents": [
965
+ {
966
+ "value": "```lua\ndebug.setuservalue(u, value, n)\n```\n\n**debug.setuservalue** Sets the n-th user value of userdata `u` to `value`.\n\n```lua\ndebug.setuservalue(ud, mytable, 1)\n```"
967
+ }
968
+ ]
969
+ },
970
+ "debug.getregistry": {
971
+ "contents": [
972
+ {
973
+ "value": "```lua\ndebug.getregistry()\n```\n\n**debug.getregistry** — Returns the Lua registry table, used internally to store references.\n\n```lua\nlocal reg = debug.getregistry()\nfor k, v in pairs(reg) do print(k, v) end\n```"
974
+ }
975
+ ]
976
+ },
977
+ "debug.upvalueid": {
978
+ "contents": [
979
+ {
980
+ "value": "```lua\ndebug.upvalueid(f, n)\n```\n\n**debug.upvalueid** — Returns a unique identifier (light userdata) for upvalue `n` of function `f`. (5.2+)\n\nUseful to check if two closures share the same upvalue.\n\n```lua\nlocal x = 1\nlocal f = function() return x end\nlocal g = function() return x end\nprint(debug.upvalueid(f,1) == debug.upvalueid(g,1)) -- true\n```"
981
+ }
982
+ ]
983
+ },
984
+ "debug.upvaluejoin": {
985
+ "contents": [
986
+ {
987
+ "value": "```lua\ndebug.upvaluejoin(f1, n1, f2, n2)\n```\n\n**debug.upvaluejoin** — Makes upvalue `n1` of `f1` refer to the same variable as upvalue `n2` of `f2`. (5.2+)\n\n```lua\nlocal a, b = 1, 2\nlocal f = function() return a end\nlocal g = function() return b end\ndebug.upvaluejoin(f, 1, g, 1)\nprint(f()) -- 2 (now shares b)\n```"
988
+ }
989
+ ]
990
+ },
991
+ "package.path": {
992
+ "contents": [
993
+ {
994
+ "value": "```lua\npackage.path\n```\n\n**package.path** — The search path used by `require` to find Lua modules.\n\nUses `?` as placeholder for module name. Paths separated by `;`.\n\n```lua\nprint(package.path)\n-- ./?.lua;/usr/local/share/lua/5.4/?.lua;...\n\n-- Add custom path\npackage.path = './libs/?.lua;' .. package.path\n```\n\n**Tip:** Set via `LUA_PATH` environment variable."
995
+ }
996
+ ]
997
+ },
998
+ "package.cpath": {
999
+ "contents": [
1000
+ {
1001
+ "value": "```lua\npackage.cpath\n```\n\n**package.cpath** — The search path for C modules (shared libraries).\n\n```lua\nprint(package.cpath)\n-- ./?.so;/usr/local/lib/lua/5.4/?.so;...\n\npackage.cpath = './libs/?.so;' .. package.cpath\n```\n\n**Tip:** Set via `LUA_CPATH` environment variable."
1002
+ }
1003
+ ]
1004
+ },
1005
+ "package.loaded": {
1006
+ "contents": [
1007
+ {
1008
+ "value": "```lua\npackage.loaded\n```\n\n**package.loaded** — Table controlling which modules are loaded. `require` checks here first.\n\n```lua\n-- Check if loaded\nif package.loaded['socket'] then print('yes') end\n\n-- Force re-require\npackage.loaded['mymod'] = nil\nlocal mod = require('mymod') -- reloads\n```"
1009
+ }
1010
+ ]
1011
+ },
1012
+ "package.preload": {
1013
+ "contents": [
1014
+ {
1015
+ "value": "```lua\npackage.preload\n```\n\n**package.preload** — Table of module loaders. Checked before file search.\n\n```lua\npackage.preload['mylib'] = function(modname)\n return {\n greet = function() print('Hello from ' .. modname) end\n }\nend\n\nlocal mylib = require('mylib')\nmylib.greet()\n```"
1016
+ }
1017
+ ]
1018
+ },
1019
+ "package.searchers": {
1020
+ "contents": [
1021
+ {
1022
+ "value": "```lua\npackage.searchers\n```\n\n**package.searchers** — Ordered table of searcher functions used by `require`.\n\nDefault searchers:\n1. `package.preload` table\n2. Lua file searcher (uses `package.path`)\n3. C library searcher (uses `package.cpath`)\n4. All-in-one C loader\n\n```lua\n-- Add custom searcher at position 2\ntable.insert(package.searchers, 2, function(name)\n -- return loader function or error string\nend)\n```"
1023
+ }
1024
+ ]
1025
+ },
1026
+ "package.searchpath": {
1027
+ "contents": [
1028
+ {
1029
+ "value": "```lua\npackage.searchpath(name, path [, sep [, rep]])\n```\n\n**package.searchpath** — Searches for a file in the given path.\n\nReplaces `.` in `name` with `sep` (default `.`), then `?` in `path` with result.\n\n```lua\nlocal file, err = package.searchpath('socket.core', package.cpath)\nprint(file) -- /usr/local/lib/lua/5.4/socket/core.so\n\nif not file then print(err) end -- lists all tried paths\n```"
1030
+ }
1031
+ ]
1032
+ },
1033
+ "package.config": {
1034
+ "contents": [
1035
+ {
1036
+ "value": "```lua\npackage.config\n```\n\n**package.config** — A string with compile-time configuration:\n- Line 1: directory separator (`/` or `\\`)\n- Line 2: path separator (`;`)\n- Line 3: substitution marker (`?`)\n- Line 4: Windows \"dir\" marker\n- Line 5: ignore mark for searchers\n\n```lua\nlocal sep = package.config:sub(1,1)\nprint(sep) -- '/' on Unix, '\\\\' on Windows\n```"
1037
+ }
1038
+ ]
1039
+ },
1040
+ "utf8.char": {
1041
+ "contents": [
1042
+ {
1043
+ "value": "```lua\nutf8.char(···)\n```\n\n**utf8.char** — Returns a UTF-8 string from one or more codepoints.\n\nSimilar to `string.char` but for Unicode.\n\n```lua\nprint(utf8.char(72, 233, 108, 108, 244)) -- Héllô\nprint(utf8.char(0x1F600)) -- 😀\n```"
1044
+ }
1045
+ ]
1046
+ },
1047
+ "utf8.codepoint": {
1048
+ "contents": [
1049
+ {
1050
+ "value": "```lua\nutf8.codepoint(s [, i [, j]])\n```\n\n**utf8.codepoint** — Returns codepoints of all characters in `s[i..j]`.\n\nDefault: `i=1, j=i`.\n\n```lua\nlocal s = 'café'\nprint(utf8.codepoint(s, 4)) -- 233 (é)\nprint(utf8.codepoint(s, 1, -1)) -- 99 97 102 233\n```"
1051
+ }
1052
+ ]
1053
+ },
1054
+ "utf8.codes": {
1055
+ "contents": [
1056
+ {
1057
+ "value": "```lua\nutf8.codes(s)\n```\n\n**utf8.codes** — Iterator for UTF-8 codepoints.\n\nReturns position (byte) and codepoint for each character.\n\n```lua\nfor pos, code in utf8.codes('héllo') do\n print(pos, code, utf8.char(code))\nend\n-- 1 104 h\n-- 2 233 é\n-- 4 108 l\n-- 5 108 l\n-- 6 111 o\n```"
1058
+ }
1059
+ ]
1060
+ },
1061
+ "utf8.len": {
1062
+ "contents": [
1063
+ {
1064
+ "value": "```lua\nutf8.len(s [, i [, j]])\n```\n\n**utf8.len** — Returns the number of UTF-8 characters in `s[i..j]`.\n\nReturns nil + position if invalid UTF-8 found.\n\n```lua\nlocal s = 'café'\nprint(#s) -- 5 (bytes)\nprint(utf8.len(s)) -- 4 (characters)\n\nlocal n, err = utf8.len('\\xFF')\nif not n then print('invalid at byte', err) end\n```"
1065
+ }
1066
+ ]
1067
+ },
1068
+ "utf8.offset": {
1069
+ "contents": [
1070
+ {
1071
+ "value": "```lua\nutf8.offset(s, n [, i])\n```\n\n**utf8.offset** — Returns byte position of the n-th character.\n\n- Positive `n`: count forward from position `i` (default 1)\n- Negative `n`: count backward\n- `n=0`: start of character at byte `i`\n\n```lua\nlocal s = 'héllo'\nprint(utf8.offset(s, 3)) -- 4 (3rd char 'l' starts at byte 4)\nprint(string.sub(s, utf8.offset(s, 2))) -- éllo\n```"
1072
+ }
1073
+ ]
1074
+ },
1075
+ "utf8.charpattern": {
1076
+ "contents": [
1077
+ {
1078
+ "value": "```lua\nutf8.charpattern\n```\n\n**utf8.charpattern** — Pattern (string) matching exactly one UTF-8 character.\n\nValue: `[\\0-\\x7F\\xC2-\\xFD][\\x80-\\xBF]*`\n\n```lua\n-- Iterate over UTF-8 characters\nfor c in string.gmatch('héllo', utf8.charpattern) do\n print(c)\nend\n-- h é l l o\n\n-- Count characters\nlocal count = select(2, string.gsub('café', utf8.charpattern, ''))\n```"
1079
+ }
1080
+ ]
1081
+ },
1082
+ "math.asin": {
1083
+ "contents": [
1084
+ {
1085
+ "value": "```lua\nmath.asin(x)\n```\n\n**math.asin** — Returns the arc sine of `x` (in radians). Result in [-π/2, π/2].\n\n```lua\nprint(math.asin(1)) -- 1.5707... (π/2)\nprint(math.asin(0)) -- 0.0\n```"
1086
+ }
1087
+ ]
1088
+ },
1089
+ "math.acos": {
1090
+ "contents": [
1091
+ {
1092
+ "value": "```lua\nmath.acos(x)\n```\n\n**math.acos** — Returns the arc cosine of `x` (in radians). Result in [0, π].\n\n```lua\nprint(math.acos(1)) -- 0.0\nprint(math.acos(0)) -- 1.5707... (π/2)\n```"
1093
+ }
1094
+ ]
1095
+ },
1096
+ "math.atan": {
1097
+ "contents": [
1098
+ {
1099
+ "value": "```lua\nmath.atan(y [, x])\n```\n\n**math.atan** — Returns the arc tangent of `y/x` (in radians). Uses signs to determine quadrant.\n\nIn Lua 5.3+, replaces both `math.atan` and `math.atan2`.\n\n```lua\nprint(math.atan(1)) -- 0.7853... (π/4)\nprint(math.atan(1, 0)) -- 1.5707... (π/2)\n```"
1100
+ }
1101
+ ]
1102
+ },
1103
+ "math.fmod": {
1104
+ "contents": [
1105
+ {
1106
+ "value": "```lua\nmath.fmod(x, y)\n```\n\n**math.fmod** — Returns the remainder of `x/y` that rounds towards zero.\n\nDiffers from `%` operator for negative numbers.\n\n```lua\nprint(math.fmod(7, 3)) -- 1.0\nprint(math.fmod(-7, 3)) -- -1.0 (% would give 2)\n```"
1107
+ }
1108
+ ]
1109
+ },
1110
+ "math.randomseed": {
1111
+ "contents": [
1112
+ {
1113
+ "value": "```lua\nmath.randomseed([x [, y]])\n```\n\n**math.randomseed** — Sets the seed for the pseudo-random generator.\n\nIn Lua 5.4, calling with no args uses a system-dependent seed.\n\n```lua\nmath.randomseed(os.time()) -- Lua 5.1-5.3\nmath.randomseed() -- Lua 5.4 (auto-seed)\nprint(math.random(1, 100))\n```"
1114
+ }
1115
+ ]
1116
+ },
1117
+ "math.tointeger": {
1118
+ "contents": [
1119
+ {
1120
+ "value": "```lua\nmath.tointeger(x)\n```\n\n**math.tointeger** — Converts float `x` to integer if it has an exact integer value. Returns nil otherwise. (5.3+)\n\n```lua\nprint(math.tointeger(5.0)) -- 5\nprint(math.tointeger(5.5)) -- nil\nprint(math.tointeger(2^53)) -- 9007199254740992\n```"
1121
+ }
1122
+ ]
1123
+ },
1124
+ "math.type": {
1125
+ "contents": [
1126
+ {
1127
+ "value": "```lua\nmath.type(x)\n```\n\n**math.type** — Returns `\"integer\"`, `\"float\"`, or false if not a number. (5.3+)\n\n```lua\nprint(math.type(1)) -- 'integer'\nprint(math.type(1.0)) -- 'float'\nprint(math.type('x')) -- false\n```"
1128
+ }
1129
+ ]
1130
+ },
1131
+ "math.maxinteger": {
1132
+ "contents": [
1133
+ {
1134
+ "value": "```lua\nmath.maxinteger\n```\n\n**math.maxinteger** — Maximum value for an integer. (5.3+)\n\n```lua\nprint(math.maxinteger) -- 9223372036854775807 (2^63 - 1)\n```"
1135
+ }
1136
+ ]
1137
+ },
1138
+ "math.mininteger": {
1139
+ "contents": [
1140
+ {
1141
+ "value": "```lua\nmath.mininteger\n```\n\n**math.mininteger** — Minimum value for an integer. (5.3+)\n\n```lua\nprint(math.mininteger) -- -9223372036854775808 (-2^63)\n```"
1142
+ }
1143
+ ]
1144
+ },
1145
+ "io.input": {
1146
+ "contents": [
1147
+ {
1148
+ "value": "```lua\nio.input([file])\n```\n\n**io.input** — Sets `file` as the default input, or returns current default input.\n\n```lua\nio.input('data.txt')\nlocal line = io.read('l')\nio.input():close()\nio.input(io.stdin) -- restore\n```"
1149
+ }
1150
+ ]
1151
+ },
1152
+ "io.output": {
1153
+ "contents": [
1154
+ {
1155
+ "value": "```lua\nio.output([file])\n```\n\n**io.output** — Sets `file` as the default output, or returns current default output.\n\n```lua\nio.output('out.txt')\nio.write('hello\\n')\nio.output():close()\nio.output(io.stdout) -- restore\n```"
1156
+ }
1157
+ ]
1158
+ },
1159
+ "io.flush": {
1160
+ "contents": [
1161
+ {
1162
+ "value": "```lua\nio.flush()\n```\n\n**io.flush** — Flushes the default output file buffer.\n\n```lua\nio.write('progress: 50%')\nio.flush() -- ensure it's written immediately\n```"
1163
+ }
1164
+ ]
1165
+ },
1166
+ "io.tmpfile": {
1167
+ "contents": [
1168
+ {
1169
+ "value": "```lua\nio.tmpfile()\n```\n\n**io.tmpfile** — Returns a handle for a temporary file (opened in update mode). Automatically removed on program exit.\n\n```lua\nlocal tmp = io.tmpfile()\ntmp:write('temp data')\ntmp:seek('set')\nprint(tmp:read('*a')) -- temp data\ntmp:close()\n```"
1170
+ }
1171
+ ]
1172
+ },
1173
+ "io.type": {
1174
+ "contents": [
1175
+ {
1176
+ "value": "```lua\nio.type(obj)\n```\n\n**io.type** — Returns `\"file\"` for open handles, `\"closed file\"` for closed handles, or nil otherwise.\n\n```lua\nlocal f = io.open('test.txt', 'r')\nprint(io.type(f)) -- 'file'\nf:close()\nprint(io.type(f)) -- 'closed file'\nprint(io.type(42)) -- nil\n```"
1177
+ }
1178
+ ]
1179
+ },
1180
+ "io.popen": {
1181
+ "contents": [
1182
+ {
1183
+ "value": "```lua\nio.popen(prog [, mode])\n```\n\n**io.popen** — Starts `prog` in a separated process and returns a file handle.\n\n`mode`: `'r'` (read stdout, default) or `'w'` (write to stdin).\n\n```lua\nlocal f = io.popen('ls -la', 'r')\nlocal output = f:read('*a')\nf:close()\nprint(output)\n```\n\n**Warning:** Not available on all platforms. Check return of `io.popen`."
1184
+ }
1185
+ ]
1186
+ },
1187
+ "io.stdin": {
1188
+ "contents": [
1189
+ {
1190
+ "value": "```lua\nio.stdin\n```\n\n**io.stdin** — Standard input file handle.\n\n```lua\nio.write('Enter name: ')\nlocal name = io.stdin:read('l')\n```"
1191
+ }
1192
+ ]
1193
+ },
1194
+ "io.stdout": {
1195
+ "contents": [
1196
+ {
1197
+ "value": "```lua\nio.stdout\n```\n\n**io.stdout** — Standard output file handle.\n\n```lua\nio.stdout:write('hello\\n')\nio.stdout:flush()\n```"
1198
+ }
1199
+ ]
1200
+ },
1201
+ "io.stderr": {
1202
+ "contents": [
1203
+ {
1204
+ "value": "```lua\nio.stderr\n```\n\n**io.stderr** — Standard error file handle.\n\n```lua\nio.stderr:write('Error: something went wrong\\n')\n```"
1205
+ }
1206
+ ]
1207
+ },
1208
+ "os.difftime": {
1209
+ "contents": [
1210
+ {
1211
+ "value": "```lua\nos.difftime(t2, t1)\n```\n\n**os.difftime** — Returns the difference in seconds between times `t2` and `t1`.\n\n```lua\nlocal start = os.time()\n-- ... work ...\nlocal elapsed = os.difftime(os.time(), start)\nprint(elapsed .. ' seconds')\n```"
1212
+ }
1213
+ ]
1214
+ },
1215
+ "os.remove": {
1216
+ "contents": [
1217
+ {
1218
+ "value": "```lua\nos.remove(filename)\n```\n\n**os.remove** — Deletes the file or empty directory.\n\nReturns true on success, or nil + error message.\n\n```lua\nlocal ok, err = os.remove('temp.txt')\nif not ok then print('Failed:', err) end\n```"
1219
+ }
1220
+ ]
1221
+ },
1222
+ "os.rename": {
1223
+ "contents": [
1224
+ {
1225
+ "value": "```lua\nos.rename(oldname, newname)\n```\n\n**os.rename** — Renames/moves a file or directory.\n\n```lua\nlocal ok, err = os.rename('old.txt', 'new.txt')\nif not ok then print('Failed:', err) end\n```"
1226
+ }
1227
+ ]
1228
+ },
1229
+ "os.tmpname": {
1230
+ "contents": [
1231
+ {
1232
+ "value": "```lua\nos.tmpname()\n```\n\n**os.tmpname** — Returns a string with a temporary file name.\n\n**Warning:** The file is not created; use `io.open` to create it. On some systems this may be insecure.\n\n```lua\nlocal tmp = os.tmpname()\nlocal f = io.open(tmp, 'w')\nf:write('data')\nf:close()\nos.remove(tmp)\n```"
1233
+ }
1234
+ ]
1235
+ },
1236
+ "os.setlocale": {
1237
+ "contents": [
1238
+ {
1239
+ "value": "```lua\nos.setlocale(locale [, category])\n```\n\n**os.setlocale** — Sets the program locale. Pass nil to query current.\n\nCategories: `'all'`, `'collate'`, `'ctype'`, `'monetary'`, `'numeric'`, `'time'`.\n\n```lua\nos.setlocale('C') -- standard locale\nos.setlocale('') -- system default\nprint(os.setlocale(nil)) -- query current\n```"
1240
+ }
1241
+ ]
1242
+ },
1243
+ "coroutine.isyieldable": {
1244
+ "contents": [
1245
+ {
1246
+ "value": "```lua\ncoroutine.isyieldable()\n```\n\n**coroutine.isyieldable** — Returns true if the running coroutine can yield.\n\nFalse for the main thread and C functions.\n\n```lua\nprint(coroutine.isyieldable()) -- false (main thread)\n\nlocal co = coroutine.create(function()\n print(coroutine.isyieldable()) -- true\nend)\ncoroutine.resume(co)\n```"
1247
+ }
1248
+ ]
1249
+ },
1250
+ "coroutine.running": {
1251
+ "contents": [
1252
+ {
1253
+ "value": "```lua\ncoroutine.running()\n```\n\n**coroutine.running** — Returns the running coroutine and a boolean (true if main thread).\n\n```lua\nlocal co, is_main = coroutine.running()\nprint(is_main) -- true in main thread\n\nlocal co2 = coroutine.create(function()\n local me, main = coroutine.running()\n print(main) -- false\nend)\ncoroutine.resume(co2)\n```"
1254
+ }
1255
+ ]
1256
+ },
1257
+ "coroutine.close": {
1258
+ "contents": [
1259
+ {
1260
+ "value": "```lua\ncoroutine.close(co)\n```\n\n**coroutine.close** — Closes coroutine `co`, running any pending to-be-closed variables. (5.4+)\n\nCan only close suspended or dead coroutines.\n\n```lua\nlocal co = coroutine.create(function()\n local f <close> = io.open('temp.txt', 'w')\n coroutine.yield()\n f:write('done')\nend)\ncoroutine.resume(co)\ncoroutine.close(co) -- f gets closed via __close\n```"
1261
+ }
1262
+ ]
1263
+ },
1264
+ "__add": {
1265
+ "contents": [
1266
+ {
1267
+ "value": "```lua\n__add(a, b)\n```\n\n**__add** — Addition metamethod. Called for `a + b` when `a` or `b` has this metamethod.\n\n```lua\nlocal Vec = {}\nVec.__index = Vec\nVec.__add = function(a, b)\n return setmetatable({x=a.x+b.x, y=a.y+b.y}, Vec)\nend\n\nlocal v = setmetatable({x=1,y=2}, Vec) + setmetatable({x=3,y=4}, Vec)\nprint(v.x, v.y) -- 4 6\n```"
1268
+ }
1269
+ ]
1270
+ },
1271
+ "__sub": {
1272
+ "contents": [
1273
+ {
1274
+ "value": "```lua\n__sub(a, b)\n```\n\n**__sub** — Subtraction metamethod. Called for `a - b`.\n\n```lua\nmt.__sub = function(a, b)\n return setmetatable({x=a.x-b.x, y=a.y-b.y}, mt)\nend\n```"
1275
+ }
1276
+ ]
1277
+ },
1278
+ "__mul": {
1279
+ "contents": [
1280
+ {
1281
+ "value": "```lua\n__mul(a, b)\n```\n\n**__mul** — Multiplication metamethod. Called for `a * b`.\n\nOne operand can be a scalar.\n\n```lua\nmt.__mul = function(a, b)\n if type(a) == 'number' then return setmetatable({x=a*b.x, y=a*b.y}, mt) end\n if type(b) == 'number' then return setmetatable({x=a.x*b, y=a.y*b}, mt) end\n return a.x*b.x + a.y*b.y -- dot product\nend\n```"
1282
+ }
1283
+ ]
1284
+ },
1285
+ "__div": {
1286
+ "contents": [
1287
+ {
1288
+ "value": "```lua\n__div(a, b)\n```\n\n**__div** — Division metamethod. Called for `a / b`.\n\n```lua\nmt.__div = function(a, b)\n if type(b) == 'number' then\n return setmetatable({x=a.x/b, y=a.y/b}, mt)\n end\nend\n```"
1289
+ }
1290
+ ]
1291
+ },
1292
+ "__mod": {
1293
+ "contents": [
1294
+ {
1295
+ "value": "```lua\n__mod(a, b)\n```\n\n**__mod** — Modulo metamethod. Called for `a % b`.\n\n```lua\nmt.__mod = function(a, b)\n return setmetatable({x=a.x%b, y=a.y%b}, mt)\nend\n```"
1296
+ }
1297
+ ]
1298
+ },
1299
+ "__pow": {
1300
+ "contents": [
1301
+ {
1302
+ "value": "```lua\n__pow(a, b)\n```\n\n**__pow** — Exponentiation metamethod. Called for `a ^ b`.\n\n```lua\nmt.__pow = function(a, n)\n return setmetatable({x=a.x^n, y=a.y^n}, mt)\nend\n```"
1303
+ }
1304
+ ]
1305
+ },
1306
+ "__unm": {
1307
+ "contents": [
1308
+ {
1309
+ "value": "```lua\n__unm(a)\n```\n\n**__unm** — Unary minus metamethod. Called for `-a`.\n\n```lua\nmt.__unm = function(a)\n return setmetatable({x=-a.x, y=-a.y}, mt)\nend\n\nlocal v = setmetatable({x=1,y=2}, mt)\nlocal neg = -v -- {x=-1, y=-2}\n```"
1310
+ }
1311
+ ]
1312
+ },
1313
+ "__eq": {
1314
+ "contents": [
1315
+ {
1316
+ "value": "```lua\n__eq(a, b)\n```\n\n**__eq** — Equality metamethod. Called for `a == b` when both share the same metamethod.\n\n```lua\nmt.__eq = function(a, b)\n return a.x == b.x and a.y == b.y\nend\n```\n\n**Note:** Only called when both operands have the same `__eq` metamethod."
1317
+ }
1318
+ ]
1319
+ },
1320
+ "__lt": {
1321
+ "contents": [
1322
+ {
1323
+ "value": "```lua\n__lt(a, b)\n```\n\n**__lt** — Less-than metamethod. Called for `a < b`.\n\n```lua\nmt.__lt = function(a, b)\n return (a.x^2 + a.y^2) < (b.x^2 + b.y^2)\nend\n```"
1324
+ }
1325
+ ]
1326
+ },
1327
+ "__le": {
1328
+ "contents": [
1329
+ {
1330
+ "value": "```lua\n__le(a, b)\n```\n\n**__le** — Less-than-or-equal metamethod. Called for `a <= b`.\n\nIn Lua 5.4, if absent, Lua tries `not (b < a)`.\n\n```lua\nmt.__le = function(a, b)\n return (a.x^2 + a.y^2) <= (b.x^2 + b.y^2)\nend\n```"
1331
+ }
1332
+ ]
1333
+ },
1334
+ "__concat": {
1335
+ "contents": [
1336
+ {
1337
+ "value": "```lua\n__concat(a, b)\n```\n\n**__concat** — Concatenation metamethod. Called for `a .. b`.\n\n```lua\nmt.__concat = function(a, b)\n if type(a) == 'string' then return a .. tostring(b) end\n if type(b) == 'string' then return tostring(a) .. b end\n return tostring(a) .. tostring(b)\nend\n```"
1338
+ }
1339
+ ]
1340
+ },
1341
+ "__len": {
1342
+ "contents": [
1343
+ {
1344
+ "value": "```lua\n__len(a)\n```\n\n**__len** — Length metamethod. Called for `#a`.\n\n```lua\nmt.__len = function(a)\n return math.sqrt(a.x^2 + a.y^2) -- vector magnitude\nend\n\nlocal v = setmetatable({x=3, y=4}, mt)\nprint(#v) -- 5.0\n```"
1345
+ }
1346
+ ]
1347
+ },
1348
+ "__close": {
1349
+ "contents": [
1350
+ {
1351
+ "value": "```lua\n__close(obj, err)\n```\n\n**__close** — To-be-closed metamethod (Lua 5.4). Called when a `<close>` variable goes out of scope.\n\n`err` is the error object if exiting due to an error, or nil.\n\n```lua\nlocal mt = {__close = function(self, err)\n print('closing', err)\n self.handle:close()\nend}\n\nlocal obj <close> = setmetatable({handle=io.open('f.txt')}, mt)\n-- handle closed automatically when obj goes out of scope\n```"
1352
+ }
1353
+ ]
1354
+ },
1355
+ "__metatable": {
1356
+ "contents": [
1357
+ {
1358
+ "value": "```lua\n__metatable = value\n```\n\n**__metatable** — Protects the metatable. When set, `getmetatable()` returns this value instead of the real metatable, and `setmetatable()` raises an error.\n\n```lua\nlocal mt = {__metatable = 'read-only'}\nlocal t = setmetatable({}, mt)\nprint(getmetatable(t)) -- 'read-only'\nsetmetatable(t, {}) -- error: cannot change protected metatable\n```\n\n**Tip:** Use `debug.getmetatable()` to bypass this protection."
1359
+ }
1360
+ ]
1361
+ },
1362
+ "__mode": {
1363
+ "contents": [
1364
+ {
1365
+ "value": "```lua\n__mode = 'k' | 'v' | 'kv'\n```\n\n**__mode** — Weak table mode. Keys/values with this metamethod won't prevent garbage collection.\n\n- `'k'` — weak keys\n- `'v'` — weak values \n- `'kv'` — both weak\n\n```lua\nlocal cache = setmetatable({}, {__mode = 'v'})\ncache[1] = {data = 'will be collected'}\ncollectgarbage()\nprint(cache[1]) -- nil (collected)\n```"
1366
+ }
1367
+ ]
1368
+ },
1369
+ "string.packsize": {
1370
+ "contents": [
1371
+ {
1372
+ "value": "```lua\nstring.packsize(fmt)\n```\n\n**string.packsize** — Returns the size of a string resulting from `string.pack` with the given format. (5.3+)\n\nOnly works with fixed-size formats (not `s` or `z`).\n\n```lua\nprint(string.packsize('i4')) -- 4\nprint(string.packsize('i4i4')) -- 8\nprint(string.packsize('Bd')) -- 9 (1 byte + 8 double)\n```"
1373
+ }
1374
+ ]
1375
+ },
1376
+ "loadstring": {
1377
+ "contents": [
1378
+ {
1379
+ "value": "```lua\nloadstring(string [, chunkname]) -> function | nil, string\n```\nLoads a string as a Lua chunk and returns it as a function. Returns `nil` plus an error message on failure. **Deprecated in Lua 5.2+** — use `load()` instead, which accepts both strings and functions.\n\n```lua\nlocal fn = loadstring(\"return 2 + 2\")\nprint(fn()) -- 4\n```"
1380
+ }
1381
+ ]
1382
+ },
1383
+ "module": {
1384
+ "contents": [
1385
+ {
1386
+ "value": "```lua\nmodule(name [, ...])\n```\nCreates a module environment table and registers it in `package.loaded`. **Deprecated in Lua 5.2+** — use the return-a-table pattern instead:\n\n```lua\n-- Deprecated (Lua 5.1):\nmodule(\"mymodule\", package.seeall)\n\n-- Modern pattern:\nlocal M = {}\nfunction M.hello() print(\"hello\") end\nreturn M\n```"
1387
+ }
1388
+ ]
1389
+ }
1390
+ }
1391
+ }