code-languages 1.40.11 → 1.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +136 -39
  2. package/dist/{api-Cvg4BdaR.d.cts → api-D10hZgSz.d.cts} +78 -6
  3. package/dist/{api-BlQoDQtF.d.ts → api-DfKZeygA.d.ts} +78 -6
  4. package/dist/api.cjs +3214 -1208
  5. package/dist/api.d.cts +3 -3
  6. package/dist/api.d.ts +3 -3
  7. package/dist/api.js +3214 -1209
  8. package/dist/detect-slugs.cjs +165 -40
  9. package/dist/detect-slugs.d.cts +2 -1
  10. package/dist/detect-slugs.d.ts +2 -1
  11. package/dist/detect-slugs.js +165 -41
  12. package/dist/detect.cjs +1719 -88
  13. package/dist/detect.d.cts +14 -2
  14. package/dist/detect.d.ts +14 -2
  15. package/dist/detect.js +1718 -89
  16. package/dist/i18n.d.cts +1 -1
  17. package/dist/i18n.d.ts +1 -1
  18. package/dist/index.cjs +3354 -1243
  19. package/dist/index.d.cts +47 -13277
  20. package/dist/index.d.ts +47 -13277
  21. package/dist/index.js +3310 -1203
  22. package/dist/languages/actionscript.cjs +2 -1
  23. package/dist/languages/actionscript.d.cts +1 -0
  24. package/dist/languages/actionscript.d.ts +1 -0
  25. package/dist/languages/actionscript.js +2 -1
  26. package/dist/languages/algol.cjs +2 -1
  27. package/dist/languages/algol.d.cts +1 -0
  28. package/dist/languages/algol.d.ts +1 -0
  29. package/dist/languages/algol.js +2 -1
  30. package/dist/languages/alloy.cjs +52 -0
  31. package/dist/languages/alloy.d.cts +49 -0
  32. package/dist/languages/alloy.d.ts +49 -0
  33. package/dist/languages/alloy.js +50 -0
  34. package/dist/languages/angelscript.cjs +1 -1
  35. package/dist/languages/angelscript.js +1 -1
  36. package/dist/languages/ante.cjs +1 -0
  37. package/dist/languages/ante.d.cts +1 -0
  38. package/dist/languages/ante.d.ts +1 -0
  39. package/dist/languages/ante.js +1 -0
  40. package/dist/languages/assembly.cjs +1 -0
  41. package/dist/languages/assembly.d.cts +1 -0
  42. package/dist/languages/assembly.d.ts +1 -0
  43. package/dist/languages/assembly.js +1 -0
  44. package/dist/languages/assemblyscript.cjs +3 -0
  45. package/dist/languages/assemblyscript.d.cts +3 -0
  46. package/dist/languages/assemblyscript.d.ts +3 -0
  47. package/dist/languages/assemblyscript.js +3 -0
  48. package/dist/languages/austral.cjs +2 -1
  49. package/dist/languages/austral.d.cts +1 -0
  50. package/dist/languages/austral.d.ts +1 -0
  51. package/dist/languages/austral.js +2 -1
  52. package/dist/languages/bcpl.cjs +2 -1
  53. package/dist/languages/bcpl.d.cts +1 -0
  54. package/dist/languages/bcpl.d.ts +1 -0
  55. package/dist/languages/bcpl.js +2 -1
  56. package/dist/languages/bibtex.cjs +1 -1
  57. package/dist/languages/bibtex.js +1 -1
  58. package/dist/languages/bosque.cjs +2 -1
  59. package/dist/languages/bosque.d.cts +1 -0
  60. package/dist/languages/bosque.d.ts +1 -0
  61. package/dist/languages/bosque.js +2 -1
  62. package/dist/languages/brainfuck.cjs +1 -1
  63. package/dist/languages/brainfuck.js +1 -1
  64. package/dist/languages/c3.cjs +56 -0
  65. package/dist/languages/c3.d.cts +53 -0
  66. package/dist/languages/c3.d.ts +53 -0
  67. package/dist/languages/c3.js +54 -0
  68. package/dist/languages/carbon.cjs +1 -0
  69. package/dist/languages/carbon.d.cts +1 -0
  70. package/dist/languages/carbon.d.ts +1 -0
  71. package/dist/languages/carbon.js +1 -0
  72. package/dist/languages/clarity.cjs +56 -0
  73. package/dist/languages/clarity.d.cts +53 -0
  74. package/dist/languages/clarity.d.ts +53 -0
  75. package/dist/languages/clarity.js +54 -0
  76. package/dist/languages/cobol.cjs +1 -1
  77. package/dist/languages/cobol.js +1 -1
  78. package/dist/languages/coffeescript.cjs +3 -0
  79. package/dist/languages/coffeescript.d.cts +3 -0
  80. package/dist/languages/coffeescript.d.ts +3 -0
  81. package/dist/languages/coffeescript.js +3 -0
  82. package/dist/languages/coq.cjs +1 -0
  83. package/dist/languages/coq.d.cts +1 -0
  84. package/dist/languages/coq.d.ts +1 -0
  85. package/dist/languages/coq.js +1 -0
  86. package/dist/languages/cpp.cjs +4 -0
  87. package/dist/languages/cpp.d.cts +4 -0
  88. package/dist/languages/cpp.d.ts +4 -0
  89. package/dist/languages/cpp.js +4 -0
  90. package/dist/languages/csharp.cjs +1 -0
  91. package/dist/languages/csharp.d.cts +1 -0
  92. package/dist/languages/csharp.d.ts +1 -0
  93. package/dist/languages/csharp.js +1 -0
  94. package/dist/languages/cwl.cjs +52 -0
  95. package/dist/languages/cwl.d.cts +49 -0
  96. package/dist/languages/cwl.d.ts +49 -0
  97. package/dist/languages/cwl.js +50 -0
  98. package/dist/languages/cython.cjs +4 -0
  99. package/dist/languages/cython.d.cts +4 -0
  100. package/dist/languages/cython.d.ts +4 -0
  101. package/dist/languages/cython.js +4 -0
  102. package/dist/languages/dart.cjs +3 -0
  103. package/dist/languages/dart.d.cts +3 -0
  104. package/dist/languages/dart.d.ts +3 -0
  105. package/dist/languages/dart.js +3 -0
  106. package/dist/languages/dax.cjs +1 -1
  107. package/dist/languages/dax.js +1 -1
  108. package/dist/languages/dockerfile.cjs +1 -0
  109. package/dist/languages/dockerfile.d.cts +1 -0
  110. package/dist/languages/dockerfile.d.ts +1 -0
  111. package/dist/languages/dockerfile.js +1 -0
  112. package/dist/languages/edgeql.cjs +53 -0
  113. package/dist/languages/edgeql.d.cts +50 -0
  114. package/dist/languages/edgeql.d.ts +50 -0
  115. package/dist/languages/edgeql.js +51 -0
  116. package/dist/languages/elm.cjs +3 -0
  117. package/dist/languages/elm.d.cts +3 -0
  118. package/dist/languages/elm.d.ts +3 -0
  119. package/dist/languages/elm.js +3 -0
  120. package/dist/languages/emacs-lisp.cjs +57 -0
  121. package/dist/languages/emacs-lisp.d.cts +54 -0
  122. package/dist/languages/emacs-lisp.d.ts +54 -0
  123. package/dist/languages/emacs-lisp.js +55 -0
  124. package/dist/languages/erb.cjs +1 -1
  125. package/dist/languages/erb.js +1 -1
  126. package/dist/languages/faust.cjs +55 -0
  127. package/dist/languages/faust.d.cts +52 -0
  128. package/dist/languages/faust.d.ts +52 -0
  129. package/dist/languages/faust.js +53 -0
  130. package/dist/languages/fe.cjs +1 -0
  131. package/dist/languages/fe.d.cts +1 -0
  132. package/dist/languages/fe.d.ts +1 -0
  133. package/dist/languages/fe.js +1 -0
  134. package/dist/languages/fennel.cjs +3 -0
  135. package/dist/languages/fennel.d.cts +3 -0
  136. package/dist/languages/fennel.d.ts +3 -0
  137. package/dist/languages/fennel.js +3 -0
  138. package/dist/languages/flix.cjs +53 -0
  139. package/dist/languages/flix.d.cts +50 -0
  140. package/dist/languages/flix.d.ts +50 -0
  141. package/dist/languages/flix.js +51 -0
  142. package/dist/languages/fql.cjs +1 -1
  143. package/dist/languages/fql.js +1 -1
  144. package/dist/languages/fsharp.cjs +1 -0
  145. package/dist/languages/fsharp.d.cts +1 -0
  146. package/dist/languages/fsharp.d.ts +1 -0
  147. package/dist/languages/fsharp.js +1 -0
  148. package/dist/languages/futhark.cjs +56 -0
  149. package/dist/languages/futhark.d.cts +53 -0
  150. package/dist/languages/futhark.d.ts +53 -0
  151. package/dist/languages/futhark.js +54 -0
  152. package/dist/languages/gcode.cjs +1 -1
  153. package/dist/languages/gcode.js +1 -1
  154. package/dist/languages/gettext.cjs +1 -1
  155. package/dist/languages/gettext.js +1 -1
  156. package/dist/languages/gleam.cjs +3 -0
  157. package/dist/languages/gleam.d.cts +3 -0
  158. package/dist/languages/gleam.d.ts +3 -0
  159. package/dist/languages/gleam.js +3 -0
  160. package/dist/languages/go.cjs +1 -0
  161. package/dist/languages/go.d.cts +1 -0
  162. package/dist/languages/go.d.ts +1 -0
  163. package/dist/languages/go.js +1 -0
  164. package/dist/languages/hack.cjs +4 -1
  165. package/dist/languages/hack.d.cts +3 -0
  166. package/dist/languages/hack.d.ts +3 -0
  167. package/dist/languages/hack.js +4 -1
  168. package/dist/languages/haxe.cjs +3 -0
  169. package/dist/languages/haxe.d.cts +3 -0
  170. package/dist/languages/haxe.d.ts +3 -0
  171. package/dist/languages/haxe.js +3 -0
  172. package/dist/languages/hocon.cjs +1 -1
  173. package/dist/languages/hocon.js +1 -1
  174. package/dist/languages/io.cjs +1 -1
  175. package/dist/languages/io.js +1 -1
  176. package/dist/languages/j.cjs +52 -0
  177. package/dist/languages/j.d.cts +49 -0
  178. package/dist/languages/j.d.ts +49 -0
  179. package/dist/languages/j.js +50 -0
  180. package/dist/languages/javascript.cjs +1 -0
  181. package/dist/languages/javascript.d.cts +1 -0
  182. package/dist/languages/javascript.d.ts +1 -0
  183. package/dist/languages/javascript.js +1 -0
  184. package/dist/languages/jcl.cjs +52 -0
  185. package/dist/languages/jcl.d.cts +49 -0
  186. package/dist/languages/jcl.d.ts +49 -0
  187. package/dist/languages/jcl.js +50 -0
  188. package/dist/languages/jq.cjs +52 -0
  189. package/dist/languages/jq.d.cts +49 -0
  190. package/dist/languages/jq.d.ts +49 -0
  191. package/dist/languages/jq.js +50 -0
  192. package/dist/languages/json5.cjs +3 -0
  193. package/dist/languages/json5.d.cts +3 -0
  194. package/dist/languages/json5.d.ts +3 -0
  195. package/dist/languages/json5.js +3 -0
  196. package/dist/languages/jsonc.cjs +3 -0
  197. package/dist/languages/jsonc.d.cts +3 -0
  198. package/dist/languages/jsonc.d.ts +3 -0
  199. package/dist/languages/jsonc.js +3 -0
  200. package/dist/languages/kotlin.cjs +1 -0
  201. package/dist/languages/kotlin.d.cts +1 -0
  202. package/dist/languages/kotlin.d.ts +1 -0
  203. package/dist/languages/kotlin.js +1 -0
  204. package/dist/languages/less.cjs +4 -0
  205. package/dist/languages/less.d.cts +4 -0
  206. package/dist/languages/less.d.ts +4 -0
  207. package/dist/languages/less.js +4 -0
  208. package/dist/languages/lex.cjs +53 -0
  209. package/dist/languages/lex.d.cts +50 -0
  210. package/dist/languages/lex.d.ts +50 -0
  211. package/dist/languages/lex.js +51 -0
  212. package/dist/languages/linkerscript.cjs +1 -1
  213. package/dist/languages/linkerscript.js +1 -1
  214. package/dist/languages/lobster.cjs +1 -1
  215. package/dist/languages/lobster.js +1 -1
  216. package/dist/languages/luau.cjs +3 -0
  217. package/dist/languages/luau.d.cts +3 -0
  218. package/dist/languages/luau.d.ts +3 -0
  219. package/dist/languages/luau.js +3 -0
  220. package/dist/languages/markdown.cjs +1 -0
  221. package/dist/languages/markdown.d.cts +1 -0
  222. package/dist/languages/markdown.d.ts +1 -0
  223. package/dist/languages/markdown.js +1 -0
  224. package/dist/languages/mdx.cjs +3 -0
  225. package/dist/languages/mdx.d.cts +3 -0
  226. package/dist/languages/mdx.d.ts +3 -0
  227. package/dist/languages/mdx.js +3 -0
  228. package/dist/languages/modula-2.cjs +1 -1
  229. package/dist/languages/modula-2.js +1 -1
  230. package/dist/languages/nim.cjs +3 -0
  231. package/dist/languages/nim.d.cts +3 -0
  232. package/dist/languages/nim.d.ts +3 -0
  233. package/dist/languages/nim.js +3 -0
  234. package/dist/languages/noir.cjs +54 -0
  235. package/dist/languages/noir.d.cts +51 -0
  236. package/dist/languages/noir.d.ts +51 -0
  237. package/dist/languages/noir.js +52 -0
  238. package/dist/languages/nushell.cjs +1 -1
  239. package/dist/languages/nushell.js +1 -1
  240. package/dist/languages/oberon.cjs +1 -1
  241. package/dist/languages/oberon.js +1 -1
  242. package/dist/languages/objective-c.cjs +4 -0
  243. package/dist/languages/objective-c.d.cts +4 -0
  244. package/dist/languages/objective-c.d.ts +4 -0
  245. package/dist/languages/objective-c.js +4 -0
  246. package/dist/languages/pl-i.cjs +1 -1
  247. package/dist/languages/pl-i.js +1 -1
  248. package/dist/languages/plpgsql.cjs +3 -0
  249. package/dist/languages/plpgsql.d.cts +3 -0
  250. package/dist/languages/plpgsql.d.ts +3 -0
  251. package/dist/languages/plpgsql.js +3 -0
  252. package/dist/languages/plsql.cjs +3 -0
  253. package/dist/languages/plsql.d.cts +3 -0
  254. package/dist/languages/plsql.d.ts +3 -0
  255. package/dist/languages/plsql.js +3 -0
  256. package/dist/languages/postscript.cjs +1 -1
  257. package/dist/languages/postscript.js +1 -1
  258. package/dist/languages/powerquery.cjs +1 -1
  259. package/dist/languages/powerquery.js +1 -1
  260. package/dist/languages/powershell.cjs +1 -0
  261. package/dist/languages/powershell.d.cts +1 -0
  262. package/dist/languages/powershell.d.ts +1 -0
  263. package/dist/languages/powershell.js +1 -0
  264. package/dist/languages/properties.cjs +53 -0
  265. package/dist/languages/properties.d.cts +50 -0
  266. package/dist/languages/properties.d.ts +50 -0
  267. package/dist/languages/properties.js +51 -0
  268. package/dist/languages/protobuf.cjs +1 -0
  269. package/dist/languages/protobuf.d.cts +1 -0
  270. package/dist/languages/protobuf.d.ts +1 -0
  271. package/dist/languages/protobuf.js +1 -0
  272. package/dist/languages/prql.cjs +56 -0
  273. package/dist/languages/prql.d.cts +53 -0
  274. package/dist/languages/prql.d.ts +53 -0
  275. package/dist/languages/prql.js +54 -0
  276. package/dist/languages/purescript.cjs +3 -0
  277. package/dist/languages/purescript.d.cts +3 -0
  278. package/dist/languages/purescript.d.ts +3 -0
  279. package/dist/languages/purescript.js +3 -0
  280. package/dist/languages/python.cjs +1 -0
  281. package/dist/languages/python.d.cts +1 -0
  282. package/dist/languages/python.d.ts +1 -0
  283. package/dist/languages/python.js +1 -0
  284. package/dist/languages/q.cjs +53 -0
  285. package/dist/languages/q.d.cts +50 -0
  286. package/dist/languages/q.d.ts +50 -0
  287. package/dist/languages/q.js +51 -0
  288. package/dist/languages/raku.cjs +1 -0
  289. package/dist/languages/raku.d.cts +1 -0
  290. package/dist/languages/raku.d.ts +1 -0
  291. package/dist/languages/raku.js +1 -0
  292. package/dist/languages/reasonml.cjs +3 -0
  293. package/dist/languages/reasonml.d.cts +3 -0
  294. package/dist/languages/reasonml.d.ts +3 -0
  295. package/dist/languages/reasonml.js +3 -0
  296. package/dist/languages/renpy.cjs +53 -0
  297. package/dist/languages/renpy.d.cts +50 -0
  298. package/dist/languages/renpy.d.ts +50 -0
  299. package/dist/languages/renpy.js +51 -0
  300. package/dist/languages/rescript.cjs +3 -0
  301. package/dist/languages/rescript.d.cts +3 -0
  302. package/dist/languages/rescript.d.ts +3 -0
  303. package/dist/languages/rescript.js +3 -0
  304. package/dist/languages/restructuredtext.cjs +1 -0
  305. package/dist/languages/restructuredtext.d.cts +1 -0
  306. package/dist/languages/restructuredtext.d.ts +1 -0
  307. package/dist/languages/restructuredtext.js +1 -0
  308. package/dist/languages/rexx.cjs +52 -0
  309. package/dist/languages/rexx.d.cts +49 -0
  310. package/dist/languages/rexx.d.ts +49 -0
  311. package/dist/languages/rexx.js +50 -0
  312. package/dist/languages/ruby.cjs +1 -0
  313. package/dist/languages/ruby.d.cts +1 -0
  314. package/dist/languages/ruby.d.ts +1 -0
  315. package/dist/languages/ruby.js +1 -0
  316. package/dist/languages/scss.cjs +4 -0
  317. package/dist/languages/scss.d.cts +4 -0
  318. package/dist/languages/scss.d.ts +4 -0
  319. package/dist/languages/scss.js +4 -0
  320. package/dist/languages/simula.cjs +2 -1
  321. package/dist/languages/simula.d.cts +1 -0
  322. package/dist/languages/simula.d.ts +1 -0
  323. package/dist/languages/simula.js +2 -1
  324. package/dist/languages/slang.cjs +55 -0
  325. package/dist/languages/slang.d.cts +52 -0
  326. package/dist/languages/slang.d.ts +52 -0
  327. package/dist/languages/slang.js +53 -0
  328. package/dist/languages/smithy.cjs +53 -0
  329. package/dist/languages/smithy.d.cts +50 -0
  330. package/dist/languages/smithy.d.ts +50 -0
  331. package/dist/languages/smithy.js +51 -0
  332. package/dist/languages/snobol.cjs +2 -1
  333. package/dist/languages/snobol.d.cts +1 -0
  334. package/dist/languages/snobol.d.ts +1 -0
  335. package/dist/languages/snobol.js +2 -1
  336. package/dist/languages/spark.cjs +1 -1
  337. package/dist/languages/spark.js +1 -1
  338. package/dist/languages/spss.cjs +1 -1
  339. package/dist/languages/spss.js +1 -1
  340. package/dist/languages/squirrel.cjs +1 -1
  341. package/dist/languages/squirrel.js +1 -1
  342. package/dist/languages/stylus.cjs +4 -0
  343. package/dist/languages/stylus.d.cts +4 -0
  344. package/dist/languages/stylus.d.ts +4 -0
  345. package/dist/languages/stylus.js +4 -0
  346. package/dist/languages/supercollider.cjs +54 -0
  347. package/dist/languages/supercollider.d.cts +51 -0
  348. package/dist/languages/supercollider.d.ts +51 -0
  349. package/dist/languages/supercollider.js +52 -0
  350. package/dist/languages/svelte.cjs +3 -0
  351. package/dist/languages/svelte.d.cts +3 -0
  352. package/dist/languages/svelte.d.ts +3 -0
  353. package/dist/languages/svelte.js +3 -0
  354. package/dist/languages/sway.cjs +54 -0
  355. package/dist/languages/sway.d.cts +51 -0
  356. package/dist/languages/sway.d.ts +51 -0
  357. package/dist/languages/sway.js +52 -0
  358. package/dist/languages/tcsh.cjs +1 -1
  359. package/dist/languages/tcsh.js +1 -1
  360. package/dist/languages/tex.cjs +1 -0
  361. package/dist/languages/tex.d.cts +1 -0
  362. package/dist/languages/tex.d.ts +1 -0
  363. package/dist/languages/tex.js +1 -0
  364. package/dist/languages/tsql.cjs +3 -0
  365. package/dist/languages/tsql.d.cts +3 -0
  366. package/dist/languages/tsql.d.ts +3 -0
  367. package/dist/languages/tsql.js +3 -0
  368. package/dist/languages/typescript.cjs +5 -0
  369. package/dist/languages/typescript.d.cts +5 -0
  370. package/dist/languages/typescript.d.ts +5 -0
  371. package/dist/languages/typescript.js +5 -0
  372. package/dist/languages/typespec.cjs +57 -0
  373. package/dist/languages/typespec.d.cts +54 -0
  374. package/dist/languages/typespec.d.ts +54 -0
  375. package/dist/languages/typespec.js +55 -0
  376. package/dist/languages/v.cjs +3 -0
  377. package/dist/languages/v.d.cts +3 -0
  378. package/dist/languages/v.d.ts +3 -0
  379. package/dist/languages/v.js +3 -0
  380. package/dist/languages/vale.cjs +2 -1
  381. package/dist/languages/vale.d.cts +1 -0
  382. package/dist/languages/vale.d.ts +1 -0
  383. package/dist/languages/vale.js +2 -1
  384. package/dist/languages/vba.cjs +4 -1
  385. package/dist/languages/vba.d.cts +3 -0
  386. package/dist/languages/vba.d.ts +3 -0
  387. package/dist/languages/vba.js +4 -1
  388. package/dist/languages/vbscript.cjs +56 -0
  389. package/dist/languages/vbscript.d.cts +53 -0
  390. package/dist/languages/vbscript.d.ts +53 -0
  391. package/dist/languages/vbscript.js +54 -0
  392. package/dist/languages/verse.cjs +1 -1
  393. package/dist/languages/verse.js +1 -1
  394. package/dist/languages/vimscript.cjs +54 -0
  395. package/dist/languages/vimscript.d.cts +51 -0
  396. package/dist/languages/vimscript.d.ts +51 -0
  397. package/dist/languages/vimscript.js +52 -0
  398. package/dist/languages/visual-basic.cjs +1 -0
  399. package/dist/languages/visual-basic.d.cts +1 -0
  400. package/dist/languages/visual-basic.d.ts +1 -0
  401. package/dist/languages/visual-basic.js +1 -0
  402. package/dist/languages/webassembly.cjs +1 -0
  403. package/dist/languages/webassembly.d.cts +1 -0
  404. package/dist/languages/webassembly.d.ts +1 -0
  405. package/dist/languages/webassembly.js +1 -0
  406. package/dist/languages/yacc.cjs +55 -0
  407. package/dist/languages/yacc.d.cts +50 -0
  408. package/dist/languages/yacc.d.ts +50 -0
  409. package/dist/languages/yacc.js +53 -0
  410. package/dist/{registry-p4uQJ2gP.d.cts → registry-DftZRMv6.d.cts} +132 -51
  411. package/dist/{registry-p4uQJ2gP.d.ts → registry-DftZRMv6.d.ts} +132 -51
  412. package/dist/shebang-Be8JBsB_.d.cts +17 -0
  413. package/dist/shebang-wOz_EqIy.d.ts +17 -0
  414. package/dist/{types-B0_wjl_Q.d.cts → types-BRDmsib7.d.cts} +25 -1
  415. package/dist/{types-B0_wjl_Q.d.ts → types-BRDmsib7.d.ts} +25 -1
  416. package/package.json +147 -10
package/dist/detect.js CHANGED
@@ -1,3 +1,127 @@
1
+ // src/domain/detection/match.ts
2
+ var pathSegmentPattern = /[/\\]/;
3
+ var indexCache = /* @__PURE__ */ new WeakMap();
4
+ var getBasename = (filename) => {
5
+ const parts = filename.trim().split(pathSegmentPattern);
6
+ return parts.at(-1).toLowerCase();
7
+ };
8
+ var addIndexKey = (index, key, match) => {
9
+ const matches = index.get(key);
10
+ if (matches) {
11
+ matches.push(match);
12
+ } else {
13
+ index.set(key, [match]);
14
+ }
15
+ };
16
+ var buildDetectionIndex = (entries) => {
17
+ const index = /* @__PURE__ */ new Map();
18
+ entries.forEach((entry, entryIndex) => {
19
+ for (const extension of entry.extensions) {
20
+ const normalizedExtension = extension.toLowerCase();
21
+ const match = { entry, index: entryIndex, matchLength: extension.length };
22
+ if (normalizedExtension.startsWith(".")) {
23
+ addIndexKey(index, normalizedExtension, match);
24
+ } else {
25
+ addIndexKey(index, normalizedExtension, match);
26
+ addIndexKey(index, `.${normalizedExtension}`, match);
27
+ }
28
+ }
29
+ });
30
+ return index;
31
+ };
32
+ var getDetectionIndex = (entries) => {
33
+ let index = indexCache.get(entries);
34
+ if (!index) {
35
+ index = buildDetectionIndex(entries);
36
+ indexCache.set(entries, index);
37
+ }
38
+ return index;
39
+ };
40
+ var getLookupKeys = (basename) => {
41
+ const keys = [basename];
42
+ for (let position = basename.indexOf("."); position !== -1; position = basename.indexOf(".", position + 1)) {
43
+ const suffix = basename.slice(position);
44
+ if (suffix !== basename) {
45
+ keys.push(suffix);
46
+ }
47
+ }
48
+ return keys;
49
+ };
50
+ var detectMatchingEntries = (entries, filename) => {
51
+ const basename = getBasename(filename);
52
+ if (!basename) {
53
+ return [];
54
+ }
55
+ const index = getDetectionIndex(entries);
56
+ const bestMatches = /* @__PURE__ */ new Map();
57
+ for (const key of getLookupKeys(basename)) {
58
+ for (const match of index.get(key) ?? []) {
59
+ const existing = bestMatches.get(match.index);
60
+ if (!existing || match.matchLength > existing.matchLength) {
61
+ bestMatches.set(match.index, match);
62
+ }
63
+ }
64
+ }
65
+ return [...bestMatches.values()].sort((first, second) => second.matchLength - first.matchLength || first.index - second.index).map(({ entry }) => entry);
66
+ };
67
+
68
+ // src/domain/detection/shebang.ts
69
+ var SHEBANG_INTERPRETERS = {
70
+ awk: "awk",
71
+ bash: "bash",
72
+ bun: "javascript",
73
+ crystal: "crystal",
74
+ csh: "tcsh",
75
+ dash: "bash",
76
+ deno: "typescript",
77
+ elixir: "elixir",
78
+ escript: "erlang",
79
+ expect: "tcl",
80
+ fish: "fish",
81
+ gawk: "awk",
82
+ groovy: "groovy",
83
+ guile: "scheme",
84
+ janet: "janet",
85
+ julia: "julia",
86
+ ksh: "bash",
87
+ lua: "lua",
88
+ mawk: "awk",
89
+ nawk: "awk",
90
+ node: "javascript",
91
+ nodejs: "javascript",
92
+ nu: "nushell",
93
+ osascript: "applescript",
94
+ perl: "perl",
95
+ php: "php",
96
+ pwsh: "powershell",
97
+ python: "python",
98
+ racket: "racket",
99
+ raku: "raku",
100
+ rscript: "r",
101
+ ruby: "ruby",
102
+ scala: "scala",
103
+ sh: "bash",
104
+ tclsh: "tcl",
105
+ tcsh: "tcsh",
106
+ wish: "tcl",
107
+ zsh: "zsh"
108
+ };
109
+ var trailingVersionPattern = /[-.]?\d[\d.]*$/;
110
+ var lookupInterpreter = (interpreter) => SHEBANG_INTERPRETERS[interpreter] ?? SHEBANG_INTERPRETERS[interpreter.replace(trailingVersionPattern, "")];
111
+ var detectLanguageSlugByShebang = (content) => {
112
+ if (!content.startsWith("#!")) {
113
+ return void 0;
114
+ }
115
+ const newlineIndex = content.search(/\r?\n/);
116
+ const firstLine = newlineIndex === -1 ? content : content.slice(0, newlineIndex);
117
+ const parts = firstLine.slice(2).trim().split(/\s+/);
118
+ let interpreter = parts[0]?.split("/").at(-1)?.toLowerCase();
119
+ if (interpreter === "env") {
120
+ interpreter = parts.slice(1).find((argument) => !argument.startsWith("-"))?.split("/").at(-1)?.toLowerCase();
121
+ }
122
+ return interpreter ? lookupInterpreter(interpreter) : void 0;
123
+ };
124
+
1
125
  // src/languages/abap.ts
2
126
  var abap = {
3
127
  slug: "abap",
@@ -50,10 +174,11 @@ var abap = {
50
174
  // src/languages/actionscript.ts
51
175
  var actionscript = {
52
176
  slug: "actionscript",
177
+ status: "legacy",
53
178
  publishedDate: "1998-01-01",
54
179
  extensions: [".as"],
55
180
  author: "Gary Grossman / Macromedia",
56
- website: "https://airsdk.dev/docs/development/actionscript-3.0",
181
+ website: "https://airsdk.dev",
57
182
  paradigms: ["event-driven", "imperative", "object-oriented", "scripting"],
58
183
  tooling: {
59
184
  runtimes: ["Adobe Flash Player", "Adobe AIR", "Apache Royale"],
@@ -199,6 +324,7 @@ var agda = {
199
324
  // src/languages/algol.ts
200
325
  var algol = {
201
326
  slug: "algol",
327
+ status: "historical",
202
328
  publishedDate: "1958-01-01",
203
329
  extensions: [".alg", ".algol"],
204
330
  author: "ACM-GAMM committee",
@@ -209,7 +335,7 @@ var algol = {
209
335
  ecosystems: ["Academic Computing", "Language Design", "Numerical Computing"]
210
336
  },
211
337
  version: "ALGOL 68",
212
- logo: "https://dummyimage.com/32x32/6B7280/ffffff.png&text=ALG",
338
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/algol.svg",
213
339
  color: "#6B7280",
214
340
  i18n: {
215
341
  en: {
@@ -245,6 +371,55 @@ var algol = {
245
371
  }
246
372
  };
247
373
 
374
+ // src/languages/alloy.ts
375
+ var alloy = {
376
+ slug: "alloy",
377
+ publishedDate: "2002-01-01",
378
+ extensions: [".als"],
379
+ author: "Daniel Jackson / MIT",
380
+ website: "https://alloytools.org",
381
+ paradigms: ["declarative", "logic", "formal-methods"],
382
+ tooling: {
383
+ runtimes: ["Alloy Analyzer", "JVM"],
384
+ ecosystems: ["Formal Methods", "Verification"]
385
+ },
386
+ version: "Alloy 6",
387
+ logo: "https://avatars.githubusercontent.com/u/30268214?v=4",
388
+ color: "#64C800",
389
+ i18n: {
390
+ en: {
391
+ name: "Alloy",
392
+ description: "A relational modeling language with a SAT-based analyzer for finding design flaws.",
393
+ longDescription: "Alloy is a declarative modeling language based on relational logic, created by Daniel Jackson at MIT. Models describe structures and constraints; the Alloy Analyzer exhaustively searches bounded scopes with a SAT solver to find counterexamples, and Alloy 6 adds temporal operators for modeling system behavior over time.\n\nAlloy is used to check software designs, security protocols, and data models before implementation, catching subtle flaws that testing rarely reaches."
394
+ },
395
+ es: {
396
+ name: "Alloy",
397
+ description: "Un lenguaje de modelado relacional con un analizador basado en SAT para hallar fallos de dise\xF1o.",
398
+ longDescription: "Alloy es un lenguaje de modelado declarativo basado en l\xF3gica relacional, creado por Daniel Jackson en el MIT. Los modelos describen estructuras y restricciones; el Alloy Analyzer busca exhaustivamente en \xE1mbitos acotados con un solucionador SAT para encontrar contraejemplos, y Alloy 6 a\xF1ade operadores temporales para modelar el comportamiento del sistema en el tiempo.\n\nAlloy se usa para verificar dise\xF1os de software, protocolos de seguridad y modelos de datos antes de la implementaci\xF3n, atrapando fallos sutiles que las pruebas rara vez alcanzan."
399
+ },
400
+ it: {
401
+ name: "Alloy",
402
+ description: "Un linguaggio di modellazione relazionale con un analizzatore basato su SAT per trovare difetti di progetto.",
403
+ longDescription: "Alloy \xE8 un linguaggio di modellazione dichiarativo basato sulla logica relazionale, creato da Daniel Jackson al MIT. I modelli descrivono strutture e vincoli; l'Alloy Analyzer esplora esaustivamente ambiti limitati con un risolutore SAT per trovare controesempi, e Alloy 6 aggiunge operatori temporali per modellare il comportamento del sistema nel tempo.\n\nAlloy \xE8 usato per verificare progetti software, protocolli di sicurezza e modelli di dati prima dell'implementazione, catturando difetti sottili che i test raramente raggiungono."
404
+ },
405
+ fr: {
406
+ name: "Alloy",
407
+ description: "Un langage de mod\xE9lisation relationnelle avec un analyseur SAT pour d\xE9tecter les d\xE9fauts de conception.",
408
+ longDescription: "Alloy est un langage de mod\xE9lisation d\xE9claratif fond\xE9 sur la logique relationnelle, cr\xE9\xE9 par Daniel Jackson au MIT. Les mod\xE8les d\xE9crivent structures et contraintes ; l'Alloy Analyzer explore exhaustivement des port\xE9es born\xE9es avec un solveur SAT pour trouver des contre-exemples, et Alloy 6 ajoute des op\xE9rateurs temporels pour mod\xE9liser le comportement des syst\xE8mes dans le temps.\n\nAlloy sert \xE0 v\xE9rifier des conceptions logicielles, des protocoles de s\xE9curit\xE9 et des mod\xE8les de donn\xE9es avant l'impl\xE9mentation, d\xE9busquant des d\xE9fauts subtils que les tests atteignent rarement."
409
+ },
410
+ de: {
411
+ name: "Alloy",
412
+ description: "Eine relationale Modellierungssprache mit SAT-basiertem Analyzer zum Aufsp\xFCren von Designfehlern.",
413
+ longDescription: "Alloy ist eine deklarative Modellierungssprache auf Basis relationaler Logik, geschaffen von Daniel Jackson am MIT. Modelle beschreiben Strukturen und Constraints; der Alloy Analyzer durchsucht begrenzte Suchr\xE4ume ersch\xF6pfend mit einem SAT-Solver nach Gegenbeispielen, und Alloy 6 erg\xE4nzt temporale Operatoren zur Modellierung von Systemverhalten \xFCber die Zeit.\n\nAlloy wird eingesetzt, um Softwaredesigns, Sicherheitsprotokolle und Datenmodelle vor der Implementierung zu pr\xFCfen und subtile Fehler zu finden, die Tests selten erreichen."
414
+ },
415
+ pt: {
416
+ name: "Alloy",
417
+ description: "Uma linguagem de modelagem relacional com analisador baseado em SAT para achar falhas de projeto.",
418
+ longDescription: "Alloy \xE9 uma linguagem de modelagem declarativa baseada em l\xF3gica relacional, criada por Daniel Jackson no MIT. Os modelos descrevem estruturas e restri\xE7\xF5es; o Alloy Analyzer busca exaustivamente em escopos limitados com um resolvedor SAT para encontrar contraexemplos, e o Alloy 6 adiciona operadores temporais para modelar o comportamento do sistema ao longo do tempo.\n\nAlloy \xE9 usado para verificar projetos de software, protocolos de seguran\xE7a e modelos de dados antes da implementa\xE7\xE3o, capturando falhas sutis que os testes raramente alcan\xE7am."
419
+ }
420
+ }
421
+ };
422
+
248
423
  // src/languages/ampl.ts
249
424
  var ampl = {
250
425
  slug: "ampl",
@@ -307,7 +482,7 @@ var angelscript = {
307
482
  ecosystems: ["Game Development", "Embedded Scripting", "Modding"]
308
483
  },
309
484
  version: "2.36.1",
310
- logo: "https://dummyimage.com/32x32/2D5FA0/ffffff.png&text=AS",
485
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/angelscript.svg",
311
486
  color: "#2D5FA0",
312
487
  i18n: {
313
488
  en: {
@@ -346,6 +521,7 @@ var angelscript = {
346
521
  // src/languages/ante.ts
347
522
  var ante = {
348
523
  slug: "ante",
524
+ status: "experimental",
349
525
  publishedDate: "2019-01-01",
350
526
  extensions: [".ante"],
351
527
  author: "Evan Haas",
@@ -793,6 +969,7 @@ var asp = {
793
969
  // src/languages/assembly.ts
794
970
  var assembly = {
795
971
  slug: "assembly",
972
+ aliases: ["asm"],
796
973
  publishedDate: "1949-01-01",
797
974
  extensions: [".asm", ".s", ".S", ".inc"],
798
975
  author: "Machine architecture vendors and assembler implementers",
@@ -848,6 +1025,9 @@ var assemblyscript = {
848
1025
  author: "Daniel Wirtz / AssemblyScript Contributors",
849
1026
  website: "https://www.assemblyscript.org",
850
1027
  paradigms: ["imperative", "object-oriented", "compiled"],
1028
+ relations: {
1029
+ compilesTo: ["webassembly"]
1030
+ },
851
1031
  tooling: {
852
1032
  runtimes: ["Wasm", "WASI"],
853
1033
  ecosystems: ["WebAssembly"]
@@ -942,6 +1122,7 @@ var astro = {
942
1122
  // src/languages/austral.ts
943
1123
  var austral = {
944
1124
  slug: "austral",
1125
+ status: "experimental",
945
1126
  publishedDate: "2021-01-01",
946
1127
  extensions: [".aum", ".aui"],
947
1128
  author: "Fernando Borretti",
@@ -952,7 +1133,7 @@ var austral = {
952
1133
  ecosystems: ["Systems Programming", "Memory Safety", "Research"]
953
1134
  },
954
1135
  version: "0.1.0",
955
- logo: "https://dummyimage.com/32x32/0F766E/ffffff.png&text=Au",
1136
+ logo: "https://avatars.githubusercontent.com/u/17337956?v=4",
956
1137
  color: "#0F766E",
957
1138
  i18n: {
958
1139
  en: {
@@ -1383,6 +1564,7 @@ var bazel = {
1383
1564
  // src/languages/bcpl.ts
1384
1565
  var bcpl = {
1385
1566
  slug: "bcpl",
1567
+ status: "historical",
1386
1568
  publishedDate: "1967-01-01",
1387
1569
  extensions: [".bcpl"],
1388
1570
  author: "Martin Richards",
@@ -1393,7 +1575,7 @@ var bcpl = {
1393
1575
  ecosystems: ["Systems Programming", "Operating Systems", "Language History"]
1394
1576
  },
1395
1577
  version: "Cintsys BCPL",
1396
- logo: "https://dummyimage.com/32x32/374151/ffffff.png&text=BC",
1578
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/bcpl.svg",
1397
1579
  color: "#374151",
1398
1580
  i18n: {
1399
1581
  en: {
@@ -1442,7 +1624,7 @@ var bibtex = {
1442
1624
  ecosystems: ["TeX", "LaTeX", "Academic publishing"]
1443
1625
  },
1444
1626
  version: "stable",
1445
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Bi",
1627
+ logo: "https://upload.wikimedia.org/wikipedia/commons/9/92/LaTeX_logo.svg",
1446
1628
  color: "#2563EB",
1447
1629
  i18n: {
1448
1630
  en: {
@@ -1581,6 +1763,7 @@ var blade = {
1581
1763
  // src/languages/bosque.ts
1582
1764
  var bosque = {
1583
1765
  slug: "bosque",
1766
+ status: "experimental",
1584
1767
  publishedDate: "2019-04-15",
1585
1768
  extensions: [".bsq"],
1586
1769
  author: "Microsoft Research",
@@ -1591,7 +1774,7 @@ var bosque = {
1591
1774
  ecosystems: ["Research", "Verification", "Application Logic"]
1592
1775
  },
1593
1776
  version: "experimental",
1594
- logo: "https://dummyimage.com/32x32/0078D4/ffffff.png&text=B",
1777
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/bosque.svg",
1595
1778
  color: "#0078D4",
1596
1779
  i18n: {
1597
1780
  en: {
@@ -1689,7 +1872,7 @@ var brainfuck = {
1689
1872
  ecosystems: ["Esoteric programming"]
1690
1873
  },
1691
1874
  version: "stable",
1692
- logo: "https://dummyimage.com/32x32/111827/ffffff.png&text=BF",
1875
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/brainfuck.svg",
1693
1876
  color: "#111827",
1694
1877
  i18n: {
1695
1878
  en: {
@@ -1775,6 +1958,59 @@ var c = {
1775
1958
  }
1776
1959
  };
1777
1960
 
1961
+ // src/languages/c3.ts
1962
+ var c3 = {
1963
+ slug: "c3",
1964
+ status: "experimental",
1965
+ publishedDate: "2019-07-01",
1966
+ extensions: [".c3", ".c3i"],
1967
+ author: "Christoffer Lern\xF6",
1968
+ website: "https://c3-lang.org",
1969
+ paradigms: ["imperative", "procedural", "systems"],
1970
+ relations: {
1971
+ dialectOf: ["c"]
1972
+ },
1973
+ tooling: {
1974
+ runtimes: ["Native", "LLVM"],
1975
+ ecosystems: ["Systems"]
1976
+ },
1977
+ version: "0.7.5",
1978
+ logo: "https://avatars.githubusercontent.com/u/53541653?v=4",
1979
+ color: "#295B9A",
1980
+ i18n: {
1981
+ en: {
1982
+ name: "C3",
1983
+ description: "An evolution of C with modules, generics, and safety, keeping C ABI compatibility.",
1984
+ longDescription: "C3 is a systems programming language designed as an evolution of C rather than a replacement. It adds modules, semantic macros, generics, slices, optionals, and built-in error handling while staying close to C syntax and remaining fully ABI-compatible with existing C libraries.\n\nCompiled through LLVM, C3 targets the same niches as C \u2014 operating systems, embedded, and game development \u2014 and lets teams adopt it incrementally alongside existing C codebases."
1985
+ },
1986
+ es: {
1987
+ name: "C3",
1988
+ description: "Una evoluci\xF3n de C con m\xF3dulos, gen\xE9ricos y seguridad, manteniendo compatibilidad ABI con C.",
1989
+ longDescription: "C3 es un lenguaje de programaci\xF3n de sistemas dise\xF1ado como una evoluci\xF3n de C y no como un reemplazo. Agrega m\xF3dulos, macros sem\xE1nticas, gen\xE9ricos, slices, opcionales y manejo de errores integrado, manteni\xE9ndose cercano a la sintaxis de C y totalmente compatible a nivel ABI con las bibliotecas C existentes.\n\nCompilado mediante LLVM, C3 apunta a los mismos nichos que C \u2014 sistemas operativos, embebidos y desarrollo de juegos \u2014 y permite adoptarlo de forma incremental junto a bases de c\xF3digo C existentes."
1990
+ },
1991
+ it: {
1992
+ name: "C3",
1993
+ description: "Un'evoluzione di C con moduli, generics e sicurezza, mantenendo la compatibilit\xE0 ABI con C.",
1994
+ longDescription: "C3 \xE8 un linguaggio di programmazione di sistemi progettato come evoluzione di C piuttosto che come sostituto. Aggiunge moduli, macro semantiche, generics, slice, optional e gestione degli errori integrata, restando vicino alla sintassi di C e pienamente compatibile a livello ABI con le librerie C esistenti.\n\nCompilato tramite LLVM, C3 punta alle stesse nicchie di C \u2014 sistemi operativi, embedded e sviluppo di giochi \u2014 e consente un'adozione incrementale accanto alle basi di codice C esistenti."
1995
+ },
1996
+ fr: {
1997
+ name: "C3",
1998
+ description: "Une \xE9volution de C avec modules, g\xE9n\xE9riques et s\xFBret\xE9, compatible ABI avec C.",
1999
+ longDescription: "C3 est un langage de programmation syst\xE8me con\xE7u comme une \xE9volution de C plut\xF4t qu'un remplacement. Il ajoute des modules, des macros s\xE9mantiques, des g\xE9n\xE9riques, des slices, des optionnels et une gestion d'erreurs int\xE9gr\xE9e, tout en restant proche de la syntaxe C et enti\xE8rement compatible ABI avec les biblioth\xE8ques C existantes.\n\nCompil\xE9 via LLVM, C3 vise les m\xEAmes niches que C \u2014 syst\xE8mes d'exploitation, embarqu\xE9 et d\xE9veloppement de jeux \u2014 et permet une adoption progressive aux c\xF4t\xE9s des bases de code C existantes."
2000
+ },
2001
+ de: {
2002
+ name: "C3",
2003
+ description: "Eine Weiterentwicklung von C mit Modulen, Generics und Sicherheit, ABI-kompatibel zu C.",
2004
+ longDescription: "C3 ist eine Systemprogrammiersprache, die als Weiterentwicklung von C und nicht als Ersatz konzipiert ist. Sie erg\xE4nzt Module, semantische Makros, Generics, Slices, Optionals und eingebaute Fehlerbehandlung, bleibt dabei nah an der C-Syntax und vollst\xE4ndig ABI-kompatibel zu bestehenden C-Bibliotheken.\n\n\xDCber LLVM kompiliert, zielt C3 auf dieselben Nischen wie C \u2014 Betriebssysteme, Embedded und Spieleentwicklung \u2014 und l\xE4sst sich schrittweise neben bestehenden C-Codebasen einf\xFChren."
2005
+ },
2006
+ pt: {
2007
+ name: "C3",
2008
+ description: "Uma evolu\xE7\xE3o do C com m\xF3dulos, gen\xE9ricos e seguran\xE7a, mantendo compatibilidade ABI com C.",
2009
+ longDescription: "C3 \xE9 uma linguagem de programa\xE7\xE3o de sistemas projetada como uma evolu\xE7\xE3o do C, n\xE3o um substituto. Adiciona m\xF3dulos, macros sem\xE2nticas, gen\xE9ricos, slices, opcionais e tratamento de erros embutido, mantendo-se pr\xF3xima da sintaxe do C e totalmente compat\xEDvel em n\xEDvel de ABI com bibliotecas C existentes.\n\nCompilada via LLVM, a C3 mira os mesmos nichos do C \u2014 sistemas operacionais, embarcados e desenvolvimento de jogos \u2014 e permite ado\xE7\xE3o incremental ao lado de bases de c\xF3digo C existentes."
2010
+ }
2011
+ }
2012
+ };
2013
+
1778
2014
  // src/languages/cairo.ts
1779
2015
  var cairo = {
1780
2016
  slug: "cairo",
@@ -1877,6 +2113,7 @@ var capnproto = {
1877
2113
  // src/languages/carbon.ts
1878
2114
  var carbon = {
1879
2115
  slug: "carbon",
2116
+ status: "experimental",
1880
2117
  publishedDate: "2022-07-19",
1881
2118
  extensions: [".carbon"],
1882
2119
  author: "Carbon Language Project",
@@ -2073,6 +2310,59 @@ var circom = {
2073
2310
  }
2074
2311
  };
2075
2312
 
2313
+ // src/languages/clarity.ts
2314
+ var clarity = {
2315
+ slug: "clarity",
2316
+ publishedDate: "2021-01-14",
2317
+ extensions: [".clar"],
2318
+ author: "Hiro Systems / Stacks",
2319
+ website: "https://clarity-lang.org",
2320
+ paradigms: ["functional", "declarative", "smart-contract"],
2321
+ relations: {
2322
+ dialectOf: ["lisp"]
2323
+ },
2324
+ tooling: {
2325
+ runtimes: ["Stacks blockchain"],
2326
+ packageManagers: ["Clarinet"],
2327
+ ecosystems: ["Blockchain", "Web3"]
2328
+ },
2329
+ version: "Clarity 3",
2330
+ logo: "https://avatars.githubusercontent.com/u/66125257?v=4",
2331
+ color: "#5546FF",
2332
+ i18n: {
2333
+ en: {
2334
+ name: "Clarity",
2335
+ description: "A decidable, Lisp-like smart contract language for the Stacks Bitcoin layer.",
2336
+ longDescription: "Clarity is the smart contract language of the Stacks blockchain, which settles on Bitcoin. Its Lisp-like syntax is interpreted, not compiled, and the language is intentionally decidable: contracts cannot loop unboundedly, so their cost and behavior can be analyzed before execution.\n\nContracts are published as readable source on-chain, eliminating compiler trust issues. The Clarinet toolchain provides local development, testing, and deployment workflows."
2337
+ },
2338
+ es: {
2339
+ name: "Clarity",
2340
+ description: "Un lenguaje de contratos inteligentes decidible y tipo Lisp para la capa Bitcoin de Stacks.",
2341
+ longDescription: "Clarity es el lenguaje de contratos inteligentes de la blockchain Stacks, que se asienta sobre Bitcoin. Su sintaxis tipo Lisp se interpreta, no se compila, y el lenguaje es intencionalmente decidible: los contratos no pueden iterar sin l\xEDmite, as\xED que su costo y comportamiento pueden analizarse antes de la ejecuci\xF3n.\n\nLos contratos se publican como c\xF3digo fuente legible en la cadena, eliminando problemas de confianza en el compilador. La cadena de herramientas Clarinet ofrece flujos de desarrollo local, pruebas y despliegue."
2342
+ },
2343
+ it: {
2344
+ name: "Clarity",
2345
+ description: "Un linguaggio per smart contract decidibile e in stile Lisp per il layer Bitcoin di Stacks.",
2346
+ longDescription: "Clarity \xE8 il linguaggio per smart contract della blockchain Stacks, che si regola su Bitcoin. La sua sintassi in stile Lisp viene interpretata, non compilata, e il linguaggio \xE8 volutamente decidibile: i contratti non possono iterare senza limiti, quindi costo e comportamento possono essere analizzati prima dell'esecuzione.\n\nI contratti sono pubblicati come sorgente leggibile sulla catena, eliminando i problemi di fiducia nel compilatore. La toolchain Clarinet fornisce flussi di sviluppo locale, test e deployment."
2347
+ },
2348
+ fr: {
2349
+ name: "Clarity",
2350
+ description: "Un langage de smart contracts d\xE9cidable, de type Lisp, pour la couche Bitcoin de Stacks.",
2351
+ longDescription: "Clarity est le langage de smart contracts de la blockchain Stacks, qui se r\xE8gle sur Bitcoin. Sa syntaxe de type Lisp est interpr\xE9t\xE9e, non compil\xE9e, et le langage est volontairement d\xE9cidable : les contrats ne peuvent pas boucler ind\xE9finiment, leur co\xFBt et leur comportement peuvent donc \xEAtre analys\xE9s avant ex\xE9cution.\n\nLes contrats sont publi\xE9s en source lisible sur la cha\xEEne, \xE9liminant les probl\xE8mes de confiance envers le compilateur. La cha\xEEne d'outils Clarinet fournit d\xE9veloppement local, tests et d\xE9ploiement."
2352
+ },
2353
+ de: {
2354
+ name: "Clarity",
2355
+ description: "Eine entscheidbare, Lisp-artige Smart-Contract-Sprache f\xFCr die Bitcoin-Schicht von Stacks.",
2356
+ longDescription: "Clarity ist die Smart-Contract-Sprache der Stacks-Blockchain, die auf Bitcoin abgerechnet wird. Ihre Lisp-artige Syntax wird interpretiert, nicht kompiliert, und die Sprache ist bewusst entscheidbar: Vertr\xE4ge k\xF6nnen nicht unbegrenzt iterieren, sodass Kosten und Verhalten vor der Ausf\xFChrung analysierbar sind.\n\nVertr\xE4ge werden als lesbarer Quelltext on-chain ver\xF6ffentlicht, was Vertrauensprobleme mit Compilern beseitigt. Die Clarinet-Toolchain bietet lokale Entwicklung, Tests und Deployment."
2357
+ },
2358
+ pt: {
2359
+ name: "Clarity",
2360
+ description: "Uma linguagem de contratos inteligentes decid\xEDvel e estilo Lisp para a camada Bitcoin da Stacks.",
2361
+ longDescription: "Clarity \xE9 a linguagem de contratos inteligentes da blockchain Stacks, que se liquida no Bitcoin. Sua sintaxe estilo Lisp \xE9 interpretada, n\xE3o compilada, e a linguagem \xE9 intencionalmente decid\xEDvel: os contratos n\xE3o podem iterar sem limite, ent\xE3o seu custo e comportamento podem ser analisados antes da execu\xE7\xE3o.\n\nOs contratos s\xE3o publicados como c\xF3digo-fonte leg\xEDvel na cadeia, eliminando problemas de confian\xE7a no compilador. A toolchain Clarinet fornece fluxos de desenvolvimento local, testes e implanta\xE7\xE3o."
2362
+ }
2363
+ }
2364
+ };
2365
+
2076
2366
  // src/languages/clojure.ts
2077
2367
  var clojure = {
2078
2368
  slug: "clojure",
@@ -2185,7 +2475,7 @@ var cobol = {
2185
2475
  ecosystems: ["Mainframe", "Business applications", "Transaction processing"]
2186
2476
  },
2187
2477
  version: "ISO/IEC 1989:2023",
2188
- logo: "https://logo.svgcdn.com/devicon/cobol-original.png",
2478
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_cobol.svg",
2189
2479
  color: "#005CA5",
2190
2480
  i18n: {
2191
2481
  en: {
@@ -2229,6 +2519,9 @@ var coffeescript = {
2229
2519
  author: "Jeremy Ashkenas",
2230
2520
  website: "https://coffeescript.org",
2231
2521
  paradigms: ["functional", "imperative", "object-oriented", "scripting"],
2522
+ relations: {
2523
+ compilesTo: ["javascript"]
2524
+ },
2232
2525
  tooling: {
2233
2526
  runtimes: ["Browser", "Node.js"],
2234
2527
  packageManagers: ["npm", "pnpm", "Yarn"],
@@ -2324,6 +2617,7 @@ var coldfusion = {
2324
2617
  // src/languages/coq.ts
2325
2618
  var coq = {
2326
2619
  slug: "coq",
2620
+ aliases: ["rocq"],
2327
2621
  publishedDate: "1989-01-01",
2328
2622
  extensions: [".v"],
2329
2623
  author: "INRIA / Rocq Prover Development Team",
@@ -2374,11 +2668,15 @@ var coq = {
2374
2668
  // src/languages/cpp.ts
2375
2669
  var cpp = {
2376
2670
  slug: "cpp",
2671
+ aliases: ["c++", "cplusplus"],
2377
2672
  publishedDate: "1985-10-01",
2378
2673
  extensions: [".cpp", ".cc", ".cxx", ".h", ".hpp", ".hh", ".hxx"],
2379
2674
  author: "Bjarne Stroustrup",
2380
2675
  website: "https://isocpp.org",
2381
2676
  paradigms: ["procedural", "object-oriented", "generic", "functional"],
2677
+ relations: {
2678
+ supersetOf: ["c"]
2679
+ },
2382
2680
  tooling: {
2383
2681
  runtimes: ["Native"],
2384
2682
  packageManagers: ["Conan", "vcpkg"],
@@ -2523,6 +2821,7 @@ var crystal = {
2523
2821
  // src/languages/csharp.ts
2524
2822
  var csharp = {
2525
2823
  slug: "csharp",
2824
+ aliases: ["c#", "cs"],
2526
2825
  publishedDate: "2000-06-26",
2527
2826
  extensions: [".cs", ".csx"],
2528
2827
  author: "Anders Hejlsberg / Microsoft",
@@ -2765,6 +3064,55 @@ var curry = {
2765
3064
  }
2766
3065
  };
2767
3066
 
3067
+ // src/languages/cwl.ts
3068
+ var cwl = {
3069
+ slug: "cwl",
3070
+ publishedDate: "2016-07-08",
3071
+ extensions: [".cwl"],
3072
+ author: "Common Workflow Language project",
3073
+ website: "https://www.commonwl.org",
3074
+ paradigms: ["declarative", "workflow"],
3075
+ tooling: {
3076
+ runtimes: ["cwltool", "Toil", "Arvados"],
3077
+ ecosystems: ["Bioinformatics", "Scientific Computing", "HPC"]
3078
+ },
3079
+ version: "v1.2",
3080
+ logo: "https://avatars.githubusercontent.com/u/9947495?v=4",
3081
+ color: "#B5314C",
3082
+ i18n: {
3083
+ en: {
3084
+ name: "Common Workflow Language",
3085
+ description: "An open standard for describing portable, reproducible data-analysis workflows.",
3086
+ longDescription: "The Common Workflow Language (CWL) is an open standard for describing command-line tools and connecting them into workflows, expressed in YAML/JSON documents. Explicit inputs, outputs, and container requirements make workflows portable across laptops, clusters, and clouds.\n\nCWL is widely adopted in bioinformatics and scientific computing, with implementations such as cwltool, Toil, and Arvados executing the same workflow description on very different infrastructure."
3087
+ },
3088
+ es: {
3089
+ name: "Common Workflow Language",
3090
+ description: "Un est\xE1ndar abierto para describir flujos de an\xE1lisis de datos portables y reproducibles.",
3091
+ longDescription: "El Common Workflow Language (CWL) es un est\xE1ndar abierto para describir herramientas de l\xEDnea de comandos y conectarlas en flujos de trabajo, expresados en documentos YAML/JSON. Las entradas, salidas y requisitos de contenedores expl\xEDcitos hacen que los flujos sean portables entre port\xE1tiles, cl\xFAsteres y nubes.\n\nCWL est\xE1 ampliamente adoptado en bioinform\xE1tica y computaci\xF3n cient\xEDfica, con implementaciones como cwltool, Toil y Arvados que ejecutan la misma descripci\xF3n de flujo en infraestructuras muy distintas."
3092
+ },
3093
+ it: {
3094
+ name: "Common Workflow Language",
3095
+ description: "Uno standard aperto per descrivere flussi di analisi dati portabili e riproducibili.",
3096
+ longDescription: "Il Common Workflow Language (CWL) \xE8 uno standard aperto per descrivere strumenti da riga di comando e collegarli in flussi di lavoro, espressi in documenti YAML/JSON. Input, output e requisiti dei container espliciti rendono i flussi portabili tra laptop, cluster e cloud.\n\nCWL \xE8 ampiamente adottato nella bioinformatica e nel calcolo scientifico, con implementazioni come cwltool, Toil e Arvados che eseguono la stessa descrizione di workflow su infrastrutture molto diverse."
3097
+ },
3098
+ fr: {
3099
+ name: "Common Workflow Language",
3100
+ description: "Un standard ouvert pour d\xE9crire des workflows d'analyse de donn\xE9es portables et reproductibles.",
3101
+ longDescription: "Le Common Workflow Language (CWL) est un standard ouvert pour d\xE9crire des outils en ligne de commande et les relier en workflows, exprim\xE9s dans des documents YAML/JSON. Des entr\xE9es, sorties et exigences de conteneurs explicites rendent les workflows portables entre ordinateurs portables, clusters et clouds.\n\nCWL est largement adopt\xE9 en bio-informatique et en calcul scientifique, avec des impl\xE9mentations comme cwltool, Toil et Arvados ex\xE9cutant la m\xEAme description de workflow sur des infrastructures tr\xE8s diff\xE9rentes."
3102
+ },
3103
+ de: {
3104
+ name: "Common Workflow Language",
3105
+ description: "Ein offener Standard zur Beschreibung portabler, reproduzierbarer Datenanalyse-Workflows.",
3106
+ longDescription: "Die Common Workflow Language (CWL) ist ein offener Standard, um Kommandozeilenwerkzeuge zu beschreiben und zu Workflows zu verbinden, ausgedr\xFCckt in YAML/JSON-Dokumenten. Explizite Eingaben, Ausgaben und Container-Anforderungen machen Workflows \xFCber Laptops, Cluster und Clouds hinweg portabel.\n\nCWL ist in der Bioinformatik und im wissenschaftlichen Rechnen weit verbreitet; Implementierungen wie cwltool, Toil und Arvados f\xFChren dieselbe Workflow-Beschreibung auf sehr unterschiedlicher Infrastruktur aus."
3107
+ },
3108
+ pt: {
3109
+ name: "Common Workflow Language",
3110
+ description: "Um padr\xE3o aberto para descrever fluxos de an\xE1lise de dados port\xE1veis e reproduz\xEDveis.",
3111
+ longDescription: "O Common Workflow Language (CWL) \xE9 um padr\xE3o aberto para descrever ferramentas de linha de comando e conect\xE1-las em fluxos de trabalho, expressos em documentos YAML/JSON. Entradas, sa\xEDdas e requisitos de cont\xEAineres expl\xEDcitos tornam os fluxos port\xE1veis entre laptops, clusters e nuvens.\n\nO CWL \xE9 amplamente adotado em bioinform\xE1tica e computa\xE7\xE3o cient\xEDfica, com implementa\xE7\xF5es como cwltool, Toil e Arvados executando a mesma descri\xE7\xE3o de workflow em infraestruturas muito diferentes."
3112
+ }
3113
+ }
3114
+ };
3115
+
2768
3116
  // src/languages/cypher.ts
2769
3117
  var cypher = {
2770
3118
  slug: "cypher",
@@ -2822,6 +3170,10 @@ var cython = {
2822
3170
  author: "Robert Bradshaw, Stefan Behnel, Dag Sverre Seljebotn, Greg Ewing, et al.",
2823
3171
  website: "https://cython.org",
2824
3172
  paradigms: ["object-oriented", "imperative", "procedural"],
3173
+ relations: {
3174
+ supersetOf: ["python"],
3175
+ compilesTo: ["c"]
3176
+ },
2825
3177
  tooling: {
2826
3178
  runtimes: ["CPython"],
2827
3179
  packageManagers: ["pip", "conda", "Poetry"],
@@ -2972,6 +3324,9 @@ var dart = {
2972
3324
  author: "Google",
2973
3325
  website: "https://dart.dev",
2974
3326
  paradigms: ["class-based", "functional", "object-oriented", "structured"],
3327
+ relations: {
3328
+ compilesTo: ["javascript"]
3329
+ },
2975
3330
  tooling: {
2976
3331
  runtimes: ["Dart VM", "Dart Native", "JavaScript"],
2977
3332
  packageManagers: ["pub"],
@@ -3031,7 +3386,7 @@ var dax = {
3031
3386
  ]
3032
3387
  },
3033
3388
  version: "DAX 2025",
3034
- logo: "https://dummyimage.com/32x32/F2C811/000000.png&text=DAX",
3389
+ logo: "https://upload.wikimedia.org/wikipedia/commons/c/cf/New_Power_BI_Logo.svg",
3035
3390
  color: "#F2C811",
3036
3391
  i18n: {
3037
3392
  en: {
@@ -3170,6 +3525,7 @@ var dita = {
3170
3525
  // src/languages/dockerfile.ts
3171
3526
  var dockerfile = {
3172
3527
  slug: "dockerfile",
3528
+ aliases: ["docker"],
3173
3529
  publishedDate: "2013-03-20",
3174
3530
  extensions: ["Dockerfile", ".dockerfile"],
3175
3531
  author: "Docker, Inc.",
@@ -3315,6 +3671,56 @@ var earthly = {
3315
3671
  }
3316
3672
  };
3317
3673
 
3674
+ // src/languages/edgeql.ts
3675
+ var edgeql = {
3676
+ slug: "edgeql",
3677
+ aliases: ["gel"],
3678
+ publishedDate: "2022-02-10",
3679
+ extensions: [".edgeql"],
3680
+ author: "EdgeDB (Gel Data)",
3681
+ website: "https://www.geldata.com",
3682
+ paradigms: ["declarative", "functional", "query"],
3683
+ tooling: {
3684
+ runtimes: ["Gel", "EdgeDB"],
3685
+ ecosystems: ["Databases"]
3686
+ },
3687
+ version: "Gel 6",
3688
+ logo: "https://avatars.githubusercontent.com/u/200293856?v=4",
3689
+ color: "#6963FF",
3690
+ i18n: {
3691
+ en: {
3692
+ name: "EdgeQL",
3693
+ description: "The composable query language of the Gel (formerly EdgeDB) graph-relational database.",
3694
+ longDescription: "EdgeQL is the query language of Gel (formerly EdgeDB), a database that layers an object-and-link data model over PostgreSQL. Queries traverse relationships with paths instead of joins, nest naturally to return structured results, and compose like expressions rather than statements.\n\nBacked by a strict type system and a migration-aware schema language, EdgeQL eliminates common ORM problems \u2014 N+1 queries, impedance mismatch \u2014 while retaining the reliability of PostgreSQL underneath."
3695
+ },
3696
+ es: {
3697
+ name: "EdgeQL",
3698
+ description: "El lenguaje de consultas componible de la base de datos grafo-relacional Gel (antes EdgeDB).",
3699
+ longDescription: "EdgeQL es el lenguaje de consultas de Gel (antes EdgeDB), una base de datos que superpone un modelo de objetos y enlaces sobre PostgreSQL. Las consultas recorren relaciones con rutas en lugar de joins, se anidan de forma natural para devolver resultados estructurados y se componen como expresiones y no como sentencias.\n\nRespaldado por un sistema de tipos estricto y un lenguaje de esquemas con migraciones, EdgeQL elimina problemas comunes de los ORM \u2014 consultas N+1, desajuste de impedancia \u2014 conservando la fiabilidad de PostgreSQL por debajo."
3700
+ },
3701
+ it: {
3702
+ name: "EdgeQL",
3703
+ description: "Il linguaggio di query componibile del database grafo-relazionale Gel (ex EdgeDB).",
3704
+ longDescription: "EdgeQL \xE8 il linguaggio di query di Gel (ex EdgeDB), un database che sovrappone un modello di oggetti e collegamenti a PostgreSQL. Le query attraversano le relazioni con percorsi invece di join, si annidano naturalmente per restituire risultati strutturati e si compongono come espressioni anzich\xE9 istruzioni.\n\nSostenuto da un sistema di tipi rigoroso e da un linguaggio di schema con migrazioni, EdgeQL elimina i problemi comuni degli ORM \u2014 query N+1, disallineamento di impedenza \u2014 mantenendo sotto l'affidabilit\xE0 di PostgreSQL."
3705
+ },
3706
+ fr: {
3707
+ name: "EdgeQL",
3708
+ description: "Le langage de requ\xEAte composable de la base graphe-relationnelle Gel (ex-EdgeDB).",
3709
+ longDescription: "EdgeQL est le langage de requ\xEAte de Gel (anciennement EdgeDB), une base de donn\xE9es qui superpose un mod\xE8le d'objets et de liens \xE0 PostgreSQL. Les requ\xEAtes parcourent les relations par des chemins plut\xF4t que des jointures, s'imbriquent naturellement pour renvoyer des r\xE9sultats structur\xE9s et se composent comme des expressions plut\xF4t que des instructions.\n\nAdoss\xE9 \xE0 un syst\xE8me de types strict et \xE0 un langage de sch\xE9ma avec migrations, EdgeQL \xE9limine les probl\xE8mes courants des ORM \u2014 requ\xEAtes N+1, d\xE9sadaptation d'imp\xE9dance \u2014 tout en conservant la fiabilit\xE9 de PostgreSQL en dessous."
3710
+ },
3711
+ de: {
3712
+ name: "EdgeQL",
3713
+ description: "Die komponierbare Abfragesprache der graph-relationalen Datenbank Gel (fr\xFCher EdgeDB).",
3714
+ longDescription: "EdgeQL ist die Abfragesprache von Gel (fr\xFCher EdgeDB), einer Datenbank, die ein Objekt-und-Link-Datenmodell \xFCber PostgreSQL legt. Abfragen folgen Beziehungen \xFCber Pfade statt Joins, verschachteln sich nat\xFCrlich zu strukturierten Ergebnissen und komponieren wie Ausdr\xFCcke statt wie Anweisungen.\n\nGest\xFCtzt auf ein striktes Typsystem und eine migrationsbewusste Schemasprache beseitigt EdgeQL typische ORM-Probleme \u2014 N+1-Abfragen, Impedanz-Missverh\xE4ltnis \u2014 und beh\xE4lt darunter die Zuverl\xE4ssigkeit von PostgreSQL."
3715
+ },
3716
+ pt: {
3717
+ name: "EdgeQL",
3718
+ description: "A linguagem de consulta compon\xEDvel do banco grafo-relacional Gel (antes EdgeDB).",
3719
+ longDescription: "EdgeQL \xE9 a linguagem de consulta do Gel (antes EdgeDB), um banco de dados que sobrep\xF5e um modelo de objetos e v\xEDnculos ao PostgreSQL. As consultas percorrem relacionamentos com caminhos em vez de joins, aninham-se naturalmente para retornar resultados estruturados e comp\xF5em-se como express\xF5es em vez de comandos.\n\nApoiado por um sistema de tipos estrito e uma linguagem de esquema com migra\xE7\xF5es, o EdgeQL elimina problemas comuns de ORMs \u2014 consultas N+1, descasamento de imped\xE2ncia \u2014 mantendo por baixo a confiabilidade do PostgreSQL."
3720
+ }
3721
+ }
3722
+ };
3723
+
3318
3724
  // src/languages/editorconfig.ts
3319
3725
  var editorconfig = {
3320
3726
  slug: "editorconfig",
@@ -3521,6 +3927,9 @@ var elm = {
3521
3927
  author: "Evan Czaplicki",
3522
3928
  website: "https://elm-lang.org",
3523
3929
  paradigms: ["functional", "declarative", "reactive", "statically typed"],
3930
+ relations: {
3931
+ compilesTo: ["javascript"]
3932
+ },
3524
3933
  tooling: {
3525
3934
  runtimes: ["Browser", "JavaScript"],
3526
3935
  packageManagers: ["elm", "npm", "pnpm", "Yarn"],
@@ -3563,13 +3972,67 @@ var elm = {
3563
3972
  }
3564
3973
  };
3565
3974
 
3975
+ // src/languages/emacs-lisp.ts
3976
+ var emacsLisp = {
3977
+ slug: "emacs-lisp",
3978
+ aliases: ["elisp"],
3979
+ publishedDate: "1985-03-20",
3980
+ extensions: [".el"],
3981
+ author: "Richard Stallman / GNU Project",
3982
+ website: "https://www.gnu.org/software/emacs/manual/elisp.html",
3983
+ paradigms: ["functional", "imperative", "meta-programming", "scripting"],
3984
+ relations: {
3985
+ dialectOf: ["lisp"]
3986
+ },
3987
+ tooling: {
3988
+ runtimes: ["GNU Emacs"],
3989
+ packageManagers: ["package.el", "ELPA", "MELPA"],
3990
+ ecosystems: ["Text Editors", "Scripting"]
3991
+ },
3992
+ version: "Emacs 30.1",
3993
+ logo: "https://cdn.simpleicons.org/gnuemacs/7F5AB6",
3994
+ color: "#7F5AB6",
3995
+ i18n: {
3996
+ en: {
3997
+ name: "Emacs Lisp",
3998
+ description: "The Lisp dialect used to implement and extend the GNU Emacs editor.",
3999
+ longDescription: "Emacs Lisp is a dialect of Lisp that powers most of the GNU Emacs editor. Beyond configuration, it is a complete programming language with dynamic and lexical binding, macros, and an interactive development workflow built into the editor itself.\n\nThousands of packages distributed through ELPA and MELPA are written in Emacs Lisp, covering everything from mail clients and file managers to language servers and note-taking systems such as Org mode."
4000
+ },
4001
+ es: {
4002
+ name: "Emacs Lisp",
4003
+ description: "El dialecto de Lisp usado para implementar y extender el editor GNU Emacs.",
4004
+ longDescription: "Emacs Lisp es un dialecto de Lisp que impulsa la mayor parte del editor GNU Emacs. M\xE1s all\xE1 de la configuraci\xF3n, es un lenguaje de programaci\xF3n completo con enlace din\xE1mico y l\xE9xico, macros y un flujo de desarrollo interactivo integrado en el propio editor.\n\nMiles de paquetes distribuidos a trav\xE9s de ELPA y MELPA est\xE1n escritos en Emacs Lisp, cubriendo desde clientes de correo y gestores de archivos hasta servidores de lenguaje y sistemas de notas como Org mode."
4005
+ },
4006
+ it: {
4007
+ name: "Emacs Lisp",
4008
+ description: "Il dialetto Lisp usato per implementare ed estendere l'editor GNU Emacs.",
4009
+ longDescription: "Emacs Lisp \xE8 un dialetto di Lisp che alimenta la maggior parte dell'editor GNU Emacs. Oltre alla configurazione, \xE8 un linguaggio di programmazione completo con binding dinamico e lessicale, macro e un flusso di sviluppo interattivo integrato nell'editor stesso.\n\nMigliaia di pacchetti distribuiti tramite ELPA e MELPA sono scritti in Emacs Lisp, coprendo di tutto: client di posta, gestori di file, language server e sistemi di appunti come Org mode."
4010
+ },
4011
+ fr: {
4012
+ name: "Emacs Lisp",
4013
+ description: "Le dialecte Lisp utilis\xE9 pour impl\xE9menter et \xE9tendre l'\xE9diteur GNU Emacs.",
4014
+ longDescription: "Emacs Lisp est un dialecte de Lisp qui fait fonctionner la majeure partie de l'\xE9diteur GNU Emacs. Au-del\xE0 de la configuration, c'est un langage de programmation complet avec liaison dynamique et lexicale, macros et un flux de d\xE9veloppement interactif int\xE9gr\xE9 \xE0 l'\xE9diteur lui-m\xEAme.\n\nDes milliers de paquets distribu\xE9s via ELPA et MELPA sont \xE9crits en Emacs Lisp, couvrant aussi bien des clients de messagerie et des gestionnaires de fichiers que des serveurs de langage et des syst\xE8mes de prise de notes comme Org mode."
4015
+ },
4016
+ de: {
4017
+ name: "Emacs Lisp",
4018
+ description: "Der Lisp-Dialekt, mit dem der GNU-Emacs-Editor implementiert und erweitert wird.",
4019
+ longDescription: "Emacs Lisp ist ein Lisp-Dialekt, der den gr\xF6\xDFten Teil des GNU-Emacs-Editors antreibt. \xDCber die Konfiguration hinaus ist es eine vollst\xE4ndige Programmiersprache mit dynamischer und lexikalischer Bindung, Makros und einem interaktiven Entwicklungsworkflow direkt im Editor.\n\nTausende \xFCber ELPA und MELPA verteilte Pakete sind in Emacs Lisp geschrieben und decken alles ab: von Mail-Clients und Dateimanagern bis zu Language-Servern und Notizsystemen wie Org mode."
4020
+ },
4021
+ pt: {
4022
+ name: "Emacs Lisp",
4023
+ description: "O dialeto de Lisp usado para implementar e estender o editor GNU Emacs.",
4024
+ longDescription: "Emacs Lisp \xE9 um dialeto de Lisp que move a maior parte do editor GNU Emacs. Al\xE9m da configura\xE7\xE3o, \xE9 uma linguagem de programa\xE7\xE3o completa com liga\xE7\xE3o din\xE2mica e l\xE9xica, macros e um fluxo de desenvolvimento interativo integrado ao pr\xF3prio editor.\n\nMilhares de pacotes distribu\xEDdos via ELPA e MELPA s\xE3o escritos em Emacs Lisp, cobrindo de clientes de e-mail e gerenciadores de arquivos a servidores de linguagem e sistemas de notas como o Org mode."
4025
+ }
4026
+ }
4027
+ };
4028
+
3566
4029
  // src/languages/erb.ts
3567
4030
  var erb = {
3568
4031
  slug: "erb",
3569
4032
  publishedDate: "2000-01-01",
3570
4033
  extensions: [".erb", ".rhtml", ".html.erb"],
3571
4034
  author: "Masatoshi Seki / Ruby",
3572
- website: "https://ruby-doc.org/stdlib/erb/",
4035
+ website: "https://docs.ruby-lang.org/en/master/ERB.html",
3573
4036
  paradigms: ["templating", "embedded", "markup"],
3574
4037
  tooling: {
3575
4038
  runtimes: ["Ruby", "Ruby on Rails"],
@@ -3713,9 +4176,62 @@ var factor = {
3713
4176
  }
3714
4177
  };
3715
4178
 
4179
+ // src/languages/faust.ts
4180
+ var faust = {
4181
+ slug: "faust",
4182
+ publishedDate: "2002-01-01",
4183
+ extensions: [".dsp"],
4184
+ author: "GRAME-CNCM",
4185
+ website: "https://faust.grame.fr",
4186
+ paradigms: ["functional", "dataflow", "audio"],
4187
+ relations: {
4188
+ compilesTo: ["cpp", "webassembly"]
4189
+ },
4190
+ tooling: {
4191
+ runtimes: ["Native", "Browser", "Embedded DSP"],
4192
+ ecosystems: ["Audio", "Music", "DSP"]
4193
+ },
4194
+ version: "stable",
4195
+ logo: "https://faust.grame.fr/img/faustText.svg",
4196
+ color: "#C6613F",
4197
+ i18n: {
4198
+ en: {
4199
+ name: "Faust",
4200
+ description: "A functional language for real-time audio DSP that compiles to C++, WebAssembly, and more.",
4201
+ longDescription: "Faust (Functional Audio Stream) is a functional language for real-time signal processing developed at GRAME. Programs describe audio processors as block-diagram compositions of signal functions, which the compiler translates into highly optimized C++, WebAssembly, LLVM IR, or Rust.\n\nFrom one Faust source, build tools generate VST/AU plugins, standalone applications, microcontroller firmware, and web audio nodes \u2014 making it a standard tool for synthesizer, effect, and audio-research development."
4202
+ },
4203
+ es: {
4204
+ name: "Faust",
4205
+ description: "Un lenguaje funcional para DSP de audio en tiempo real que compila a C++, WebAssembly y m\xE1s.",
4206
+ longDescription: "Faust (Functional Audio Stream) es un lenguaje funcional para procesamiento de se\xF1ales en tiempo real desarrollado en GRAME. Los programas describen procesadores de audio como composiciones en diagrama de bloques de funciones de se\xF1al, que el compilador traduce a C++, WebAssembly, LLVM IR o Rust altamente optimizados.\n\nDesde una sola fuente Faust, las herramientas generan plugins VST/AU, aplicaciones independientes, firmware para microcontroladores y nodos de audio web \u2014 una herramienta est\xE1ndar para el desarrollo de sintetizadores, efectos e investigaci\xF3n de audio."
4207
+ },
4208
+ it: {
4209
+ name: "Faust",
4210
+ description: "Un linguaggio funzionale per DSP audio in tempo reale che compila in C++, WebAssembly e altro.",
4211
+ longDescription: "Faust (Functional Audio Stream) \xE8 un linguaggio funzionale per l'elaborazione dei segnali in tempo reale sviluppato al GRAME. I programmi descrivono processori audio come composizioni a diagramma a blocchi di funzioni di segnale, che il compilatore traduce in C++, WebAssembly, LLVM IR o Rust altamente ottimizzati.\n\nDa un'unica sorgente Faust, gli strumenti di build generano plugin VST/AU, applicazioni standalone, firmware per microcontrollori e nodi web audio \u2014 uno strumento standard per lo sviluppo di sintetizzatori, effetti e ricerca audio."
4212
+ },
4213
+ fr: {
4214
+ name: "Faust",
4215
+ description: "Un langage fonctionnel pour le DSP audio temps r\xE9el, compilant vers C++, WebAssembly et plus.",
4216
+ longDescription: "Faust (Functional Audio Stream) est un langage fonctionnel pour le traitement du signal en temps r\xE9el d\xE9velopp\xE9 au GRAME. Les programmes d\xE9crivent des processeurs audio comme des compositions en sch\xE9ma-bloc de fonctions de signal, que le compilateur traduit en C++, WebAssembly, LLVM IR ou Rust hautement optimis\xE9s.\n\n\xC0 partir d'une m\xEAme source Faust, les outils g\xE9n\xE8rent des plugins VST/AU, des applications autonomes, du firmware pour microcontr\xF4leurs et des n\u0153uds web audio \u2014 un outil standard pour le d\xE9veloppement de synth\xE9tiseurs, d'effets et la recherche audio."
4217
+ },
4218
+ de: {
4219
+ name: "Faust",
4220
+ description: "Eine funktionale Sprache f\xFCr Echtzeit-Audio-DSP, die zu C++, WebAssembly und mehr kompiliert.",
4221
+ longDescription: "Faust (Functional Audio Stream) ist eine am GRAME entwickelte funktionale Sprache f\xFCr Echtzeit-Signalverarbeitung. Programme beschreiben Audioprozessoren als Blockdiagramm-Kompositionen von Signalfunktionen, die der Compiler in hochoptimiertes C++, WebAssembly, LLVM IR oder Rust \xFCbersetzt.\n\nAus einer Faust-Quelle erzeugen die Build-Werkzeuge VST/AU-Plugins, eigenst\xE4ndige Anwendungen, Mikrocontroller-Firmware und Web-Audio-Knoten \u2014 ein Standardwerkzeug f\xFCr Synthesizer-, Effekt- und Audio-Forschungsentwicklung."
4222
+ },
4223
+ pt: {
4224
+ name: "Faust",
4225
+ description: "Uma linguagem funcional para DSP de \xE1udio em tempo real que compila para C++, WebAssembly e mais.",
4226
+ longDescription: "Faust (Functional Audio Stream) \xE9 uma linguagem funcional para processamento de sinais em tempo real desenvolvida no GRAME. Os programas descrevem processadores de \xE1udio como composi\xE7\xF5es em diagrama de blocos de fun\xE7\xF5es de sinal, que o compilador traduz em C++, WebAssembly, LLVM IR ou Rust altamente otimizados.\n\nDe uma \xFAnica fonte Faust, as ferramentas de build geram plugins VST/AU, aplica\xE7\xF5es independentes, firmware para microcontroladores e n\xF3s de web audio \u2014 uma ferramenta padr\xE3o para o desenvolvimento de sintetizadores, efeitos e pesquisa em \xE1udio."
4227
+ }
4228
+ }
4229
+ };
4230
+
3716
4231
  // src/languages/fe.ts
3717
4232
  var fe = {
3718
4233
  slug: "fe",
4234
+ status: "experimental",
3719
4235
  publishedDate: "2020-10-08",
3720
4236
  extensions: [".fe"],
3721
4237
  author: "Ethereum Foundation contributors",
@@ -3770,6 +4286,9 @@ var fennel = {
3770
4286
  author: "Calvin Rose, Phil Hagelberg",
3771
4287
  website: "https://fennel-lang.org",
3772
4288
  paradigms: ["functional", "lisp", "scripting", "metaprogramming"],
4289
+ relations: {
4290
+ compilesTo: ["lua"]
4291
+ },
3773
4292
  tooling: {
3774
4293
  runtimes: ["Lua", "LuaJIT"],
3775
4294
  packageManagers: ["LuaRocks"],
@@ -3911,6 +4430,56 @@ var flatbuffers = {
3911
4430
  }
3912
4431
  };
3913
4432
 
4433
+ // src/languages/flix.ts
4434
+ var flix = {
4435
+ slug: "flix",
4436
+ publishedDate: "2016-01-01",
4437
+ extensions: [".flix"],
4438
+ author: "Magnus Madsen / Aarhus University",
4439
+ website: "https://flix.dev",
4440
+ paradigms: ["functional", "imperative", "logic", "concurrent"],
4441
+ tooling: {
4442
+ runtimes: ["JVM"],
4443
+ packageManagers: ["Flix package manager"],
4444
+ ecosystems: ["JVM"]
4445
+ },
4446
+ version: "0.60.0",
4447
+ logo: "https://avatars.githubusercontent.com/u/16831634?v=4",
4448
+ color: "#2D2A55",
4449
+ i18n: {
4450
+ en: {
4451
+ name: "Flix",
4452
+ description: "A JVM language combining functional, imperative, and Datalog-style logic programming.",
4453
+ longDescription: "Flix is a statically typed language for the JVM that blends functional programming with algebraic effects, channels and processes for concurrency, and first-class Datalog constraints for logic programming. Its type and effect system tracks purity, enabling safe parallelism and aggressive optimization.\n\nDeveloped as a research language at Aarhus University with an open-source community, Flix ships a complete toolchain \u2014 compiler, build tool, package manager, and Visual Studio Code extension."
4454
+ },
4455
+ es: {
4456
+ name: "Flix",
4457
+ description: "Un lenguaje JVM que combina programaci\xF3n funcional, imperativa y l\xF3gica estilo Datalog.",
4458
+ longDescription: "Flix es un lenguaje de tipado est\xE1tico para la JVM que mezcla programaci\xF3n funcional con efectos algebraicos, canales y procesos para concurrencia, y restricciones Datalog de primera clase para programaci\xF3n l\xF3gica. Su sistema de tipos y efectos rastrea la pureza, habilitando paralelismo seguro y optimizaci\xF3n agresiva.\n\nDesarrollado como lenguaje de investigaci\xF3n en la Universidad de Aarhus con una comunidad de c\xF3digo abierto, Flix incluye una cadena de herramientas completa: compilador, herramienta de build, gestor de paquetes y extensi\xF3n para Visual Studio Code."
4459
+ },
4460
+ it: {
4461
+ name: "Flix",
4462
+ description: "Un linguaggio JVM che combina programmazione funzionale, imperativa e logica in stile Datalog.",
4463
+ longDescription: "Flix \xE8 un linguaggio a tipizzazione statica per la JVM che unisce la programmazione funzionale con effetti algebrici, canali e processi per la concorrenza, e vincoli Datalog di prima classe per la programmazione logica. Il suo sistema di tipi ed effetti traccia la purezza, abilitando parallelismo sicuro e ottimizzazioni aggressive.\n\nSviluppato come linguaggio di ricerca all'Universit\xE0 di Aarhus con una comunit\xE0 open source, Flix offre una toolchain completa: compilatore, strumento di build, gestore di pacchetti ed estensione per Visual Studio Code."
4464
+ },
4465
+ fr: {
4466
+ name: "Flix",
4467
+ description: "Un langage JVM combinant programmation fonctionnelle, imp\xE9rative et logique de type Datalog.",
4468
+ longDescription: "Flix est un langage \xE0 typage statique pour la JVM qui marie la programmation fonctionnelle avec des effets alg\xE9briques, des canaux et des processus pour la concurrence, et des contraintes Datalog de premi\xE8re classe pour la programmation logique. Son syst\xE8me de types et d'effets suit la puret\xE9, permettant un parall\xE9lisme s\xFBr et des optimisations agressives.\n\nD\xE9velopp\xE9 comme langage de recherche \xE0 l'universit\xE9 d'Aarhus avec une communaut\xE9 open source, Flix fournit une cha\xEEne d'outils compl\xE8te : compilateur, outil de build, gestionnaire de paquets et extension Visual Studio Code."
4469
+ },
4470
+ de: {
4471
+ name: "Flix",
4472
+ description: "Eine JVM-Sprache, die funktionale, imperative und Datalog-artige Logikprogrammierung vereint.",
4473
+ longDescription: "Flix ist eine statisch typisierte Sprache f\xFCr die JVM, die funktionale Programmierung mit algebraischen Effekten, Kan\xE4len und Prozessen f\xFCr Nebenl\xE4ufigkeit sowie erstklassigen Datalog-Constraints f\xFCr Logikprogrammierung verbindet. Ihr Typ- und Effektsystem verfolgt Reinheit und erm\xF6glicht sichere Parallelit\xE4t und aggressive Optimierung.\n\nAls Forschungssprache an der Universit\xE4t Aarhus mit einer Open-Source-Community entwickelt, liefert Flix eine vollst\xE4ndige Toolchain: Compiler, Build-Tool, Paketmanager und Visual-Studio-Code-Erweiterung."
4474
+ },
4475
+ pt: {
4476
+ name: "Flix",
4477
+ description: "Uma linguagem JVM que combina programa\xE7\xE3o funcional, imperativa e l\xF3gica estilo Datalog.",
4478
+ longDescription: "Flix \xE9 uma linguagem de tipagem est\xE1tica para a JVM que mistura programa\xE7\xE3o funcional com efeitos alg\xE9bricos, canais e processos para concorr\xEAncia, e restri\xE7\xF5es Datalog de primeira classe para programa\xE7\xE3o l\xF3gica. Seu sistema de tipos e efeitos rastreia a pureza, permitindo paralelismo seguro e otimiza\xE7\xE3o agressiva.\n\nDesenvolvida como linguagem de pesquisa na Universidade de Aarhus com uma comunidade de c\xF3digo aberto, a Flix traz uma toolchain completa: compilador, ferramenta de build, gerenciador de pacotes e extens\xE3o para o Visual Studio Code."
4479
+ }
4480
+ }
4481
+ };
4482
+
3914
4483
  // src/languages/flux.ts
3915
4484
  var flux = {
3916
4485
  slug: "flux",
@@ -4065,7 +4634,7 @@ var fql = {
4065
4634
  publishedDate: "2012-01-01",
4066
4635
  extensions: [".fql"],
4067
4636
  author: "Facebook",
4068
- website: "https://developers.facebook.com/docs/reference/fql/",
4637
+ website: "https://developers.facebook.com/docs/graph-api/",
4069
4638
  paradigms: ["query", "declarative"],
4070
4639
  tooling: {
4071
4640
  runtimes: ["Facebook Platform"],
@@ -4161,6 +4730,7 @@ var freemarker = {
4161
4730
  // src/languages/fsharp.ts
4162
4731
  var fsharp = {
4163
4732
  slug: "fsharp",
4733
+ aliases: ["f#"],
4164
4734
  publishedDate: "2005-05-01",
4165
4735
  extensions: [".fs", ".fsi", ".fsx", ".fsscript"],
4166
4736
  author: "Don Syme / Microsoft Research",
@@ -4258,6 +4828,59 @@ var fstar = {
4258
4828
  }
4259
4829
  };
4260
4830
 
4831
+ // src/languages/futhark.ts
4832
+ var futhark = {
4833
+ slug: "futhark",
4834
+ status: "experimental",
4835
+ publishedDate: "2014-01-01",
4836
+ extensions: [".fut"],
4837
+ author: "Troels Henriksen / DIKU, University of Copenhagen",
4838
+ website: "https://futhark-lang.org",
4839
+ paradigms: ["functional", "array", "parallel"],
4840
+ relations: {
4841
+ compilesTo: ["c"]
4842
+ },
4843
+ tooling: {
4844
+ runtimes: ["OpenCL", "CUDA", "Multicore CPU"],
4845
+ ecosystems: ["GPU", "HPC", "Scientific Computing"]
4846
+ },
4847
+ version: "0.25.32",
4848
+ logo: "https://raw.githubusercontent.com/diku-dk/futhark/master/assets/logo.svg",
4849
+ color: "#5F021F",
4850
+ i18n: {
4851
+ en: {
4852
+ name: "Futhark",
4853
+ description: "A purely functional array language that compiles to fast GPU code.",
4854
+ longDescription: "Futhark is a purely functional, data-parallel array language developed at DIKU. Programs express computation as bulk operations \u2014 map, reduce, scan \u2014 over multidimensional arrays, which the optimizing compiler fuses and flattens into efficient OpenCL, CUDA, or multicore C code.\n\nFuthark is not a general-purpose language: it is designed to write the numeric cores of larger applications, exposing them as C libraries callable from Python, Rust, or any FFI-capable host."
4855
+ },
4856
+ es: {
4857
+ name: "Futhark",
4858
+ description: "Un lenguaje de arrays puramente funcional que compila a c\xF3digo GPU r\xE1pido.",
4859
+ longDescription: "Futhark es un lenguaje de arrays puramente funcional y data-paralelo desarrollado en DIKU. Los programas expresan la computaci\xF3n como operaciones masivas \u2014 map, reduce, scan \u2014 sobre arrays multidimensionales, que el compilador optimizador fusiona y aplana en c\xF3digo OpenCL, CUDA o C multin\xFAcleo eficiente.\n\nFuthark no es un lenguaje de prop\xF3sito general: est\xE1 dise\xF1ado para escribir los n\xFAcleos num\xE9ricos de aplicaciones m\xE1s grandes, exponi\xE9ndolos como bibliotecas C invocables desde Python, Rust o cualquier host con FFI."
4860
+ },
4861
+ it: {
4862
+ name: "Futhark",
4863
+ description: "Un linguaggio di array puramente funzionale che compila in codice GPU veloce.",
4864
+ longDescription: "Futhark \xE8 un linguaggio di array puramente funzionale e data-parallelo sviluppato al DIKU. I programmi esprimono la computazione come operazioni di massa \u2014 map, reduce, scan \u2014 su array multidimensionali, che il compilatore ottimizzante fonde e appiattisce in codice OpenCL, CUDA o C multicore efficiente.\n\nFuthark non \xE8 un linguaggio general-purpose: \xE8 progettato per scrivere i nuclei numerici di applicazioni pi\xF9 grandi, esponendoli come librerie C richiamabili da Python, Rust o qualsiasi host con FFI."
4865
+ },
4866
+ fr: {
4867
+ name: "Futhark",
4868
+ description: "Un langage de tableaux purement fonctionnel qui compile en code GPU rapide.",
4869
+ longDescription: "Futhark est un langage de tableaux purement fonctionnel et data-parall\xE8le d\xE9velopp\xE9 au DIKU. Les programmes expriment le calcul sous forme d'op\xE9rations massives \u2014 map, reduce, scan \u2014 sur des tableaux multidimensionnels, que le compilateur optimisant fusionne et aplatit en code OpenCL, CUDA ou C multic\u0153ur efficace.\n\nFuthark n'est pas un langage g\xE9n\xE9raliste : il est con\xE7u pour \xE9crire les c\u0153urs num\xE9riques d'applications plus larges, expos\xE9s comme des biblioth\xE8ques C appelables depuis Python, Rust ou tout h\xF4te dot\xE9 d'une FFI."
4870
+ },
4871
+ de: {
4872
+ name: "Futhark",
4873
+ description: "Eine rein funktionale Array-Sprache, die zu schnellem GPU-Code kompiliert.",
4874
+ longDescription: "Futhark ist eine rein funktionale, datenparallele Array-Sprache, die am DIKU entwickelt wird. Programme dr\xFCcken Berechnungen als Massenoperationen \u2014 map, reduce, scan \u2014 \xFCber mehrdimensionale Arrays aus, die der optimierende Compiler zu effizientem OpenCL-, CUDA- oder Multicore-C-Code fusioniert und abflacht.\n\nFuthark ist keine Allzwecksprache: Sie ist daf\xFCr gedacht, die numerischen Kerne gr\xF6\xDFerer Anwendungen zu schreiben und sie als C-Bibliotheken bereitzustellen, die aus Python, Rust oder jedem FFI-f\xE4higen Host aufrufbar sind."
4875
+ },
4876
+ pt: {
4877
+ name: "Futhark",
4878
+ description: "Uma linguagem de arrays puramente funcional que compila para c\xF3digo GPU r\xE1pido.",
4879
+ longDescription: "Futhark \xE9 uma linguagem de arrays puramente funcional e data-paralela desenvolvida no DIKU. Os programas expressam a computa\xE7\xE3o como opera\xE7\xF5es em massa \u2014 map, reduce, scan \u2014 sobre arrays multidimensionais, que o compilador otimizador funde e achata em c\xF3digo OpenCL, CUDA ou C multicore eficiente.\n\nFuthark n\xE3o \xE9 uma linguagem de prop\xF3sito geral: foi projetada para escrever os n\xFAcleos num\xE9ricos de aplica\xE7\xF5es maiores, expondo-os como bibliotecas C cham\xE1veis de Python, Rust ou qualquer host com FFI."
4880
+ }
4881
+ }
4882
+ };
4883
+
4261
4884
  // src/languages/gcode.ts
4262
4885
  var gcode = {
4263
4886
  slug: "gcode",
@@ -4271,7 +4894,7 @@ var gcode = {
4271
4894
  ecosystems: ["CNC machining", "Additive manufacturing"]
4272
4895
  },
4273
4896
  version: "RS-274",
4274
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=G",
4897
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_gcode.svg",
4275
4898
  color: "#DC2626",
4276
4899
  i18n: {
4277
4900
  en: {
@@ -4370,7 +4993,7 @@ var gettext = {
4370
4993
  ecosystems: ["Internationalization", "Localization"]
4371
4994
  },
4372
4995
  version: "stable",
4373
- logo: "https://dummyimage.com/32x32/7C3AED/ffffff.png&text=PO",
4996
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
4374
4997
  color: "#7C3AED",
4375
4998
  i18n: {
4376
4999
  en: {
@@ -4463,6 +5086,9 @@ var gleam = {
4463
5086
  author: "Louis Pilfold",
4464
5087
  website: "https://gleam.run",
4465
5088
  paradigms: ["functional", "statically typed", "concurrent", "actor-model"],
5089
+ relations: {
5090
+ compilesTo: ["erlang", "javascript"]
5091
+ },
4466
5092
  tooling: {
4467
5093
  runtimes: ["Erlang/OTP", "BEAM", "JavaScript"],
4468
5094
  packageManagers: ["gleam", "Hex"],
@@ -4607,6 +5233,7 @@ var gml = {
4607
5233
  // src/languages/go.ts
4608
5234
  var go = {
4609
5235
  slug: "go",
5236
+ aliases: ["golang"],
4610
5237
  publishedDate: "2012-03-28",
4611
5238
  extensions: [".go"],
4612
5239
  author: "Robert Griesemer, Rob Pike, Ken Thompson / Google",
@@ -4909,8 +5536,11 @@ var hack = {
4909
5536
  publishedDate: "2014-03-20",
4910
5537
  extensions: [".hack", ".hh", ".hhi"],
4911
5538
  author: "Meta",
4912
- website: "https://docs.hhvm.com/hack/",
5539
+ website: "https://hacklang.org",
4913
5540
  paradigms: ["object-oriented", "functional", "gradually typed", "imperative"],
5541
+ relations: {
5542
+ dialectOf: ["php"]
5543
+ },
4914
5544
  tooling: {
4915
5545
  runtimes: ["HHVM"],
4916
5546
  packageManagers: ["Composer"],
@@ -5161,6 +5791,9 @@ var haxe = {
5161
5791
  author: "Nicolas Cannasse / Haxe Foundation",
5162
5792
  website: "https://haxe.org",
5163
5793
  paradigms: ["object-oriented", "functional", "cross-platform", "statically typed"],
5794
+ relations: {
5795
+ compilesTo: ["javascript", "cpp"]
5796
+ },
5164
5797
  tooling: {
5165
5798
  runtimes: ["JavaScript", "HashLink", "JVM", "C++", "C#", "PHP", "Lua", "Python"],
5166
5799
  packageManagers: ["haxelib"],
@@ -5315,7 +5948,7 @@ var hocon = {
5315
5948
  ecosystems: ["JVM", "Scala", "Akka", "Play Framework", "Configuration"]
5316
5949
  },
5317
5950
  version: "1.4.3",
5318
- logo: "https://dummyimage.com/32x32/F26822/ffffff.png&text=HC",
5951
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/hocon.svg",
5319
5952
  color: "#F26822",
5320
5953
  i18n: {
5321
5954
  en: {
@@ -5656,7 +6289,7 @@ var io = {
5656
6289
  ecosystems: ["Scripting", "Prototype Programming", "Language Exploration"]
5657
6290
  },
5658
6291
  version: "2017.09.06",
5659
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Io",
6292
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_io.svg",
5660
6293
  color: "#2563EB",
5661
6294
  i18n: {
5662
6295
  en: {
@@ -5741,6 +6374,55 @@ var isabelle = {
5741
6374
  }
5742
6375
  };
5743
6376
 
6377
+ // src/languages/j.ts
6378
+ var j = {
6379
+ slug: "j",
6380
+ publishedDate: "1990-01-01",
6381
+ extensions: [".ijs"],
6382
+ author: "Kenneth E. Iverson / Roger Hui",
6383
+ website: "https://www.jsoftware.com",
6384
+ paradigms: ["array", "functional", "tacit"],
6385
+ tooling: {
6386
+ runtimes: ["J Engine"],
6387
+ ecosystems: ["Data Science", "Numerical Computing"]
6388
+ },
6389
+ version: "J9.6",
6390
+ logo: "https://avatars.githubusercontent.com/u/583748?v=4",
6391
+ color: "#9EEDFF",
6392
+ i18n: {
6393
+ en: {
6394
+ name: "J",
6395
+ description: "A terse array language by the creator of APL, using ASCII instead of symbols.",
6396
+ longDescription: "J is an array programming language designed by Kenneth Iverson and Roger Hui as a successor to APL, replacing its special symbol set with ASCII digraphs. Programs compose verbs and adverbs over whole arrays, often in a point-free (tacit) style.\n\nJ excels at statistics, mathematical exploration, and data transformation, packing algorithms into remarkably short expressions. The interpreter, labs, and extensive vocabulary documentation are freely available from Jsoftware."
6397
+ },
6398
+ es: {
6399
+ name: "J",
6400
+ description: "Un lenguaje de arrays conciso del creador de APL, usando ASCII en lugar de s\xEDmbolos.",
6401
+ longDescription: "J es un lenguaje de programaci\xF3n de arrays dise\xF1ado por Kenneth Iverson y Roger Hui como sucesor de APL, reemplazando su juego de s\xEDmbolos especiales por d\xEDgrafos ASCII. Los programas componen verbos y adverbios sobre arrays completos, a menudo en estilo t\xE1cito (point-free).\n\nJ destaca en estad\xEDstica, exploraci\xF3n matem\xE1tica y transformaci\xF3n de datos, condensando algoritmos en expresiones notablemente cortas. El int\xE9rprete, los laboratorios y la extensa documentaci\xF3n de vocabulario est\xE1n disponibles gratuitamente en Jsoftware."
6402
+ },
6403
+ it: {
6404
+ name: "J",
6405
+ description: "Un linguaggio di array conciso del creatore di APL, con ASCII al posto dei simboli.",
6406
+ longDescription: "J \xE8 un linguaggio di programmazione di array progettato da Kenneth Iverson e Roger Hui come successore di APL, sostituendo il suo set di simboli speciali con digrammi ASCII. I programmi compongono verbi e avverbi su interi array, spesso in stile tacito (point-free).\n\nJ eccelle in statistica, esplorazione matematica e trasformazione dei dati, condensando algoritmi in espressioni notevolmente brevi. L'interprete, i laboratori e l'ampia documentazione del vocabolario sono disponibili gratuitamente da Jsoftware."
6407
+ },
6408
+ fr: {
6409
+ name: "J",
6410
+ description: "Un langage de tableaux concis du cr\xE9ateur d'APL, utilisant l'ASCII plut\xF4t que des symboles.",
6411
+ longDescription: "J est un langage de programmation de tableaux con\xE7u par Kenneth Iverson et Roger Hui comme successeur d'APL, rempla\xE7ant son jeu de symboles sp\xE9ciaux par des digrammes ASCII. Les programmes composent des verbes et des adverbes sur des tableaux entiers, souvent dans un style tacite (point-free).\n\nJ excelle en statistique, en exploration math\xE9matique et en transformation de donn\xE9es, condensant les algorithmes en expressions remarquablement courtes. L'interpr\xE9teur, les laboratoires et la vaste documentation du vocabulaire sont disponibles gratuitement chez Jsoftware."
6412
+ },
6413
+ de: {
6414
+ name: "J",
6415
+ description: "Eine knappe Array-Sprache vom Sch\xF6pfer von APL, mit ASCII statt Sonderzeichen.",
6416
+ longDescription: "J ist eine Array-Programmiersprache, die Kenneth Iverson und Roger Hui als Nachfolger von APL entworfen haben; der spezielle Symbolsatz wurde durch ASCII-Digraphen ersetzt. Programme komponieren Verben und Adverbien \xFCber ganze Arrays, oft im punktfreien (taciten) Stil.\n\nJ gl\xE4nzt bei Statistik, mathematischer Exploration und Datentransformation und verdichtet Algorithmen zu bemerkenswert kurzen Ausdr\xFCcken. Interpreter, Labs und die umfangreiche Vokabular-Dokumentation sind bei Jsoftware frei erh\xE4ltlich."
6417
+ },
6418
+ pt: {
6419
+ name: "J",
6420
+ description: "Uma linguagem de arrays concisa do criador do APL, usando ASCII em vez de s\xEDmbolos.",
6421
+ longDescription: "J \xE9 uma linguagem de programa\xE7\xE3o de arrays projetada por Kenneth Iverson e Roger Hui como sucessora do APL, substituindo seu conjunto de s\xEDmbolos especiais por d\xEDgrafos ASCII. Os programas comp\xF5em verbos e adv\xE9rbios sobre arrays inteiros, frequentemente em estilo t\xE1cito (point-free).\n\nJ se destaca em estat\xEDstica, explora\xE7\xE3o matem\xE1tica e transforma\xE7\xE3o de dados, condensando algoritmos em express\xF5es notavelmente curtas. O interpretador, os laborat\xF3rios e a extensa documenta\xE7\xE3o de vocabul\xE1rio est\xE3o dispon\xEDveis gratuitamente na Jsoftware."
6422
+ }
6423
+ }
6424
+ };
6425
+
5744
6426
  // src/languages/janet.ts
5745
6427
  var janet = {
5746
6428
  slug: "janet",
@@ -5844,6 +6526,7 @@ var java = {
5844
6526
  // src/languages/javascript.ts
5845
6527
  var javascript = {
5846
6528
  slug: "javascript",
6529
+ aliases: ["js", "ecmascript"],
5847
6530
  publishedDate: "1995-12-04",
5848
6531
  extensions: [".js", ".mjs", ".cjs", ".jsx"],
5849
6532
  author: "Brendan Eich / Netscape",
@@ -5891,6 +6574,55 @@ var javascript = {
5891
6574
  }
5892
6575
  };
5893
6576
 
6577
+ // src/languages/jcl.ts
6578
+ var jcl = {
6579
+ slug: "jcl",
6580
+ publishedDate: "1964-04-07",
6581
+ extensions: [".jcl"],
6582
+ author: "IBM",
6583
+ website: "https://www.ibm.com/docs/en/zos/3.1.0?topic=zos-mvs-jcl-reference",
6584
+ paradigms: ["declarative", "batch"],
6585
+ tooling: {
6586
+ runtimes: ["z/OS", "MVS", "JES2", "JES3"],
6587
+ ecosystems: ["Mainframe", "Batch Processing"]
6588
+ },
6589
+ version: "z/OS 3.1",
6590
+ logo: "https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
6591
+ color: "#1F70C1",
6592
+ i18n: {
6593
+ en: {
6594
+ name: "JCL",
6595
+ description: "IBM Job Control Language for describing batch jobs on z/OS mainframes.",
6596
+ longDescription: "JCL (Job Control Language) tells IBM mainframe operating systems how to run batch work: which programs to execute, in what order, with which datasets, and how to react to failures. JOB, EXEC, and DD statements describe jobs, steps, and data allocations processed by the JES2/JES3 subsystems.\n\nIntroduced with System/360 in 1964, JCL still orchestrates nightly batch processing in banking, insurance, and government workloads on z/OS, usually alongside COBOL, PL/I, and REXX."
6597
+ },
6598
+ es: {
6599
+ name: "JCL",
6600
+ description: "El Job Control Language de IBM para describir trabajos batch en mainframes z/OS.",
6601
+ longDescription: "JCL (Job Control Language) indica a los sistemas operativos de mainframe de IBM c\xF3mo ejecutar trabajo batch: qu\xE9 programas ejecutar, en qu\xE9 orden, con qu\xE9 datasets y c\xF3mo reaccionar ante fallos. Las sentencias JOB, EXEC y DD describen trabajos, pasos y asignaciones de datos procesados por los subsistemas JES2/JES3.\n\nIntroducido con el System/360 en 1964, JCL sigue orquestando el procesamiento batch nocturno en cargas bancarias, de seguros y gubernamentales sobre z/OS, normalmente junto a COBOL, PL/I y REXX."
6602
+ },
6603
+ it: {
6604
+ name: "JCL",
6605
+ description: "Il Job Control Language di IBM per descrivere job batch sui mainframe z/OS.",
6606
+ longDescription: "JCL (Job Control Language) indica ai sistemi operativi mainframe di IBM come eseguire il lavoro batch: quali programmi eseguire, in quale ordine, con quali dataset e come reagire ai fallimenti. Le istruzioni JOB, EXEC e DD descrivono job, step e allocazioni di dati elaborati dai sottosistemi JES2/JES3.\n\nIntrodotto con il System/360 nel 1964, JCL orchestra ancora l'elaborazione batch notturna nei carichi bancari, assicurativi e governativi su z/OS, di solito insieme a COBOL, PL/I e REXX."
6607
+ },
6608
+ fr: {
6609
+ name: "JCL",
6610
+ description: "Le Job Control Language d'IBM pour d\xE9crire les travaux batch sur mainframes z/OS.",
6611
+ longDescription: "JCL (Job Control Language) indique aux syst\xE8mes d'exploitation mainframe d'IBM comment ex\xE9cuter le travail batch : quels programmes lancer, dans quel ordre, avec quels datasets et comment r\xE9agir aux \xE9checs. Les instructions JOB, EXEC et DD d\xE9crivent les travaux, les \xE9tapes et les allocations de donn\xE9es trait\xE9s par les sous-syst\xE8mes JES2/JES3.\n\nIntroduit avec le System/360 en 1964, JCL orchestre encore le traitement batch nocturne des charges bancaires, d'assurance et gouvernementales sous z/OS, g\xE9n\xE9ralement aux c\xF4t\xE9s de COBOL, PL/I et REXX."
6612
+ },
6613
+ de: {
6614
+ name: "JCL",
6615
+ description: "IBMs Job Control Language zur Beschreibung von Batch-Jobs auf z/OS-Mainframes.",
6616
+ longDescription: "JCL (Job Control Language) sagt IBM-Mainframe-Betriebssystemen, wie Batch-Arbeit auszuf\xFChren ist: welche Programme in welcher Reihenfolge laufen, mit welchen Datasets und wie auf Fehler zu reagieren ist. JOB-, EXEC- und DD-Anweisungen beschreiben Jobs, Schritte und Datenzuweisungen, die von den JES2/JES3-Subsystemen verarbeitet werden.\n\nMit dem System/360 im Jahr 1964 eingef\xFChrt, orchestriert JCL noch heute die n\xE4chtliche Batch-Verarbeitung in Bank-, Versicherungs- und Beh\xF6rden-Workloads auf z/OS, \xFCblicherweise neben COBOL, PL/I und REXX."
6617
+ },
6618
+ pt: {
6619
+ name: "JCL",
6620
+ description: "A Job Control Language da IBM para descrever jobs batch em mainframes z/OS.",
6621
+ longDescription: "JCL (Job Control Language) diz aos sistemas operacionais de mainframe da IBM como executar trabalho batch: quais programas executar, em que ordem, com quais datasets e como reagir a falhas. As instru\xE7\xF5es JOB, EXEC e DD descrevem jobs, passos e aloca\xE7\xF5es de dados processados pelos subsistemas JES2/JES3.\n\nIntroduzida com o System/360 em 1964, a JCL ainda orquestra o processamento batch noturno em cargas banc\xE1rias, de seguros e governamentais no z/OS, geralmente ao lado de COBOL, PL/I e REXX."
6622
+ }
6623
+ }
6624
+ };
6625
+
5894
6626
  // src/languages/jinja.ts
5895
6627
  var jinja = {
5896
6628
  slug: "jinja",
@@ -5990,15 +6722,64 @@ var jmespath = {
5990
6722
  }
5991
6723
  };
5992
6724
 
5993
- // src/languages/json.ts
5994
- var json = {
5995
- slug: "json",
5996
- publishedDate: "2001-04-01",
5997
- extensions: [".json"],
5998
- author: "Douglas Crockford",
5999
- website: "https://www.json.org/json-en.html",
6000
- paradigms: ["data serialization", "declarative"],
6001
- version: "RFC 8259",
6725
+ // src/languages/jq.ts
6726
+ var jq = {
6727
+ slug: "jq",
6728
+ publishedDate: "2012-10-21",
6729
+ extensions: [".jq"],
6730
+ author: "Stephen Dolan",
6731
+ website: "https://jqlang.org",
6732
+ paradigms: ["functional", "declarative", "query"],
6733
+ tooling: {
6734
+ runtimes: ["jq CLI"],
6735
+ ecosystems: ["Data Processing", "DevOps", "Scripting"]
6736
+ },
6737
+ version: "1.8.1",
6738
+ logo: "https://avatars.githubusercontent.com/u/125535133?v=4",
6739
+ color: "#C7254E",
6740
+ i18n: {
6741
+ en: {
6742
+ name: "jq",
6743
+ description: "A functional filter language for slicing, transforming, and querying JSON.",
6744
+ longDescription: "jq is a lightweight command-line language for processing JSON. Programs are written as filter pipelines that select, reshape, and combine values, with built-in functions for iteration, reduction, string handling, and arithmetic.\n\nIt is a staple of shell scripting and DevOps workflows, used to inspect API responses, transform configuration, and glue JSON-producing tools together. Larger filters can be stored in .jq files and reused as modules."
6745
+ },
6746
+ es: {
6747
+ name: "jq",
6748
+ description: "Un lenguaje funcional de filtros para cortar, transformar y consultar JSON.",
6749
+ longDescription: "jq es un lenguaje ligero de l\xEDnea de comandos para procesar JSON. Los programas se escriben como tuber\xEDas de filtros que seleccionan, remodelan y combinan valores, con funciones integradas para iteraci\xF3n, reducci\xF3n, manejo de cadenas y aritm\xE9tica.\n\nEs una pieza b\xE1sica del scripting de shell y de los flujos DevOps, usado para inspeccionar respuestas de API, transformar configuraci\xF3n y conectar herramientas que producen JSON. Los filtros grandes pueden guardarse en archivos .jq y reutilizarse como m\xF3dulos."
6750
+ },
6751
+ it: {
6752
+ name: "jq",
6753
+ description: "Un linguaggio funzionale di filtri per tagliare, trasformare e interrogare JSON.",
6754
+ longDescription: "jq \xE8 un linguaggio leggero da riga di comando per elaborare JSON. I programmi si scrivono come pipeline di filtri che selezionano, rimodellano e combinano valori, con funzioni integrate per iterazione, riduzione, gestione delle stringhe e aritmetica.\n\n\xC8 un elemento fondamentale dello scripting di shell e dei flussi DevOps, usato per ispezionare risposte di API, trasformare configurazioni e collegare strumenti che producono JSON. I filtri pi\xF9 grandi possono essere salvati in file .jq e riutilizzati come moduli."
6755
+ },
6756
+ fr: {
6757
+ name: "jq",
6758
+ description: "Un langage fonctionnel de filtres pour d\xE9couper, transformer et interroger du JSON.",
6759
+ longDescription: "jq est un langage l\xE9ger en ligne de commande pour traiter du JSON. Les programmes s'\xE9crivent comme des pipelines de filtres qui s\xE9lectionnent, remod\xE8lent et combinent des valeurs, avec des fonctions int\xE9gr\xE9es pour l'it\xE9ration, la r\xE9duction, le traitement des cha\xEEnes et l'arithm\xE9tique.\n\nC'est un incontournable des scripts shell et des workflows DevOps, utilis\xE9 pour inspecter des r\xE9ponses d'API, transformer de la configuration et relier des outils produisant du JSON. Les filtres volumineux peuvent \xEAtre stock\xE9s dans des fichiers .jq et r\xE9utilis\xE9s comme modules."
6760
+ },
6761
+ de: {
6762
+ name: "jq",
6763
+ description: "Eine funktionale Filtersprache zum Zerlegen, Transformieren und Abfragen von JSON.",
6764
+ longDescription: "jq ist eine leichtgewichtige Kommandozeilensprache zur Verarbeitung von JSON. Programme werden als Filter-Pipelines geschrieben, die Werte ausw\xE4hlen, umformen und kombinieren, mit eingebauten Funktionen f\xFCr Iteration, Reduktion, Zeichenkettenverarbeitung und Arithmetik.\n\nSie ist ein fester Bestandteil von Shell-Skripten und DevOps-Workflows und dient dazu, API-Antworten zu untersuchen, Konfigurationen zu transformieren und JSON-erzeugende Werkzeuge zu verbinden. Gr\xF6\xDFere Filter k\xF6nnen in .jq-Dateien abgelegt und als Module wiederverwendet werden."
6765
+ },
6766
+ pt: {
6767
+ name: "jq",
6768
+ description: "Uma linguagem funcional de filtros para fatiar, transformar e consultar JSON.",
6769
+ longDescription: "jq \xE9 uma linguagem leve de linha de comando para processar JSON. Os programas s\xE3o escritos como pipelines de filtros que selecionam, remodelam e combinam valores, com fun\xE7\xF5es embutidas para itera\xE7\xE3o, redu\xE7\xE3o, manipula\xE7\xE3o de strings e aritm\xE9tica.\n\n\xC9 um item b\xE1sico do scripting de shell e dos fluxos DevOps, usado para inspecionar respostas de API, transformar configura\xE7\xF5es e conectar ferramentas que produzem JSON. Filtros maiores podem ser guardados em arquivos .jq e reutilizados como m\xF3dulos."
6770
+ }
6771
+ }
6772
+ };
6773
+
6774
+ // src/languages/json.ts
6775
+ var json = {
6776
+ slug: "json",
6777
+ publishedDate: "2001-04-01",
6778
+ extensions: [".json"],
6779
+ author: "Douglas Crockford",
6780
+ website: "https://www.json.org/json-en.html",
6781
+ paradigms: ["data serialization", "declarative"],
6782
+ version: "RFC 8259",
6002
6783
  logo: "https://www.json.org/img/json160.gif",
6003
6784
  color: "#000000",
6004
6785
  i18n: {
@@ -6043,6 +6824,9 @@ var json5 = {
6043
6824
  author: "Aseem Kishore",
6044
6825
  website: "https://json5.org",
6045
6826
  paradigms: ["declarative"],
6827
+ relations: {
6828
+ supersetOf: ["json"]
6829
+ },
6046
6830
  tooling: {
6047
6831
  runtimes: ["Node.js", "Browser"],
6048
6832
  packageManagers: ["npm", "pnpm", "Yarn"],
@@ -6142,6 +6926,9 @@ var jsonc = {
6142
6926
  author: "Microsoft",
6143
6927
  website: "https://jsonc.org",
6144
6928
  paradigms: ["data serialization", "configuration"],
6929
+ relations: {
6930
+ supersetOf: ["json"]
6931
+ },
6145
6932
  tooling: {
6146
6933
  runtimes: ["Editors", "Build tools"],
6147
6934
  ecosystems: ["JavaScript", "TypeScript", "Configuration"]
@@ -6535,6 +7322,7 @@ var koka = {
6535
7322
  // src/languages/kotlin.ts
6536
7323
  var kotlin = {
6537
7324
  slug: "kotlin",
7325
+ aliases: ["kt"],
6538
7326
  publishedDate: "2016-02-15",
6539
7327
  extensions: [".kt", ".kts"],
6540
7328
  author: "JetBrains",
@@ -6689,6 +7477,10 @@ var less = {
6689
7477
  author: "Alexis Sellier / Less Core Team",
6690
7478
  website: "https://lesscss.org",
6691
7479
  paradigms: ["declarative", "stylesheet", "preprocessor"],
7480
+ relations: {
7481
+ dialectOf: ["css"],
7482
+ compilesTo: ["css"]
7483
+ },
6692
7484
  tooling: {
6693
7485
  runtimes: ["Less.js", "Node.js", "Browser"],
6694
7486
  packageManagers: ["npm", "pnpm", "Yarn", "Bun"],
@@ -6731,6 +7523,56 @@ var less = {
6731
7523
  }
6732
7524
  };
6733
7525
 
7526
+ // src/languages/lex.ts
7527
+ var lex = {
7528
+ slug: "lex",
7529
+ aliases: ["flex"],
7530
+ publishedDate: "1975-07-01",
7531
+ extensions: [".l", ".lex"],
7532
+ author: "Mike Lesk / Eric Schmidt (Bell Labs)",
7533
+ website: "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/lex.html",
7534
+ paradigms: ["declarative", "generator"],
7535
+ tooling: {
7536
+ runtimes: ["C toolchains"],
7537
+ ecosystems: ["Compilers", "Language Tooling", "Unix"]
7538
+ },
7539
+ version: "POSIX lex / flex 2.6.4",
7540
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/lex.svg",
7541
+ color: "#DBCA00",
7542
+ i18n: {
7543
+ en: {
7544
+ name: "Lex",
7545
+ description: "A lexical analyzer generator that turns regex rules into scanner code.",
7546
+ longDescription: "Lex is a classic Unix tool that generates lexical analyzers. A .l specification pairs regular expressions with C actions; the generated scanner reads input, groups characters into tokens, and hands them to a parser, typically one produced by Yacc or Bison.\n\nThe modern open-source implementation is flex, which remains a standard part of compiler courses and production language tooling wherever hand-written lexers are not required."
7547
+ },
7548
+ es: {
7549
+ name: "Lex",
7550
+ description: "Un generador de analizadores l\xE9xicos que convierte reglas regex en c\xF3digo de escaneo.",
7551
+ longDescription: "Lex es una herramienta cl\xE1sica de Unix que genera analizadores l\xE9xicos. Una especificaci\xF3n .l empareja expresiones regulares con acciones en C; el esc\xE1ner generado lee la entrada, agrupa caracteres en tokens y los entrega a un parser, normalmente producido por Yacc o Bison.\n\nLa implementaci\xF3n moderna de c\xF3digo abierto es flex, que sigue siendo parte est\xE1ndar de los cursos de compiladores y de las herramientas de lenguajes en producci\xF3n donde no se requieren lexers escritos a mano."
7552
+ },
7553
+ it: {
7554
+ name: "Lex",
7555
+ description: "Un generatore di analizzatori lessicali che trasforma regole regex in codice scanner.",
7556
+ longDescription: "Lex \xE8 uno strumento classico di Unix che genera analizzatori lessicali. Una specifica .l abbina espressioni regolari ad azioni in C; lo scanner generato legge l'input, raggruppa i caratteri in token e li passa a un parser, tipicamente prodotto da Yacc o Bison.\n\nL'implementazione open source moderna \xE8 flex, che rimane una parte standard dei corsi sui compilatori e degli strumenti linguistici in produzione dove non servono lexer scritti a mano."
7557
+ },
7558
+ fr: {
7559
+ name: "Lex",
7560
+ description: "Un g\xE9n\xE9rateur d'analyseurs lexicaux qui transforme des r\xE8gles regex en code de scanner.",
7561
+ longDescription: "Lex est un outil Unix classique qui g\xE9n\xE8re des analyseurs lexicaux. Une sp\xE9cification .l associe des expressions r\xE9guli\xE8res \xE0 des actions en C ; le scanner g\xE9n\xE9r\xE9 lit l'entr\xE9e, regroupe les caract\xE8res en jetons et les transmet \xE0 un parseur, g\xE9n\xE9ralement produit par Yacc ou Bison.\n\nL'impl\xE9mentation open source moderne est flex, qui reste un \xE9l\xE9ment standard des cours de compilation et de l'outillage de langages en production lorsque des lexers \xE9crits \xE0 la main ne sont pas n\xE9cessaires."
7562
+ },
7563
+ de: {
7564
+ name: "Lex",
7565
+ description: "Ein Generator f\xFCr lexikalische Analysatoren, der Regex-Regeln in Scanner-Code \xFCbersetzt.",
7566
+ longDescription: "Lex ist ein klassisches Unix-Werkzeug zur Erzeugung lexikalischer Analysatoren. Eine .l-Spezifikation verkn\xFCpft regul\xE4re Ausdr\xFCcke mit C-Aktionen; der erzeugte Scanner liest die Eingabe, gruppiert Zeichen zu Tokens und \xFCbergibt sie an einen Parser, der typischerweise von Yacc oder Bison erzeugt wird.\n\nDie moderne Open-Source-Implementierung ist flex, die weiterhin fester Bestandteil von Compiler-Kursen und produktivem Sprach-Tooling ist, wo keine handgeschriebenen Lexer erforderlich sind."
7567
+ },
7568
+ pt: {
7569
+ name: "Lex",
7570
+ description: "Um gerador de analisadores l\xE9xicos que converte regras regex em c\xF3digo de scanner.",
7571
+ longDescription: "Lex \xE9 uma ferramenta cl\xE1ssica do Unix que gera analisadores l\xE9xicos. Uma especifica\xE7\xE3o .l combina express\xF5es regulares com a\xE7\xF5es em C; o scanner gerado l\xEA a entrada, agrupa caracteres em tokens e os entrega a um parser, normalmente produzido pelo Yacc ou Bison.\n\nA implementa\xE7\xE3o moderna de c\xF3digo aberto \xE9 o flex, que continua sendo parte padr\xE3o dos cursos de compiladores e das ferramentas de linguagens em produ\xE7\xE3o onde lexers escritos \xE0 m\xE3o n\xE3o s\xE3o necess\xE1rios."
7572
+ }
7573
+ }
7574
+ };
7575
+
6734
7576
  // src/languages/ligo.ts
6735
7577
  var ligo = {
6736
7578
  slug: "ligo",
@@ -6794,7 +7636,7 @@ var linkerscript = {
6794
7636
  ecosystems: ["Embedded systems", "Operating systems"]
6795
7637
  },
6796
7638
  version: "stable",
6797
- logo: "https://dummyimage.com/32x32/475569/ffffff.png&text=LD",
7639
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
6798
7640
  color: "#475569",
6799
7641
  i18n: {
6800
7642
  en: {
@@ -6993,7 +7835,7 @@ var lobster = {
6993
7835
  ecosystems: ["Games", "Interactive Graphics", "Language Experiments"]
6994
7836
  },
6995
7837
  version: "development snapshot",
6996
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=Lo",
7838
+ logo: "https://raw.githubusercontent.com/aardappel/lobster/master/docs/lobster.png",
6997
7839
  color: "#DC2626",
6998
7840
  i18n: {
6999
7841
  en: {
@@ -7136,6 +7978,9 @@ var luau = {
7136
7978
  author: "Roblox",
7137
7979
  website: "https://luau.org",
7138
7980
  paradigms: ["imperative", "scripting", "gradually typed", "embeddable"],
7981
+ relations: {
7982
+ supersetOf: ["lua"]
7983
+ },
7139
7984
  tooling: {
7140
7985
  runtimes: ["Luau VM", "Roblox"],
7141
7986
  packageManagers: ["Wally", "Pesde"],
@@ -7280,6 +8125,7 @@ var mako = {
7280
8125
  // src/languages/markdown.ts
7281
8126
  var markdown = {
7282
8127
  slug: "markdown",
8128
+ aliases: ["md"],
7283
8129
  publishedDate: "2004-03-19",
7284
8130
  extensions: [".md", ".markdown", ".mdown", ".mkd"],
7285
8131
  author: "John Gruber / Aaron Swartz",
@@ -7527,6 +8373,9 @@ var mdx = {
7527
8373
  author: "MDX contributors",
7528
8374
  website: "https://mdxjs.com",
7529
8375
  paradigms: ["markup", "component-oriented", "declarative", "documentation"],
8376
+ relations: {
8377
+ supersetOf: ["markdown"]
8378
+ },
7530
8379
  tooling: {
7531
8380
  runtimes: ["React", "Node.js"],
7532
8381
  packageManagers: ["npm", "Yarn", "pnpm"],
@@ -7830,7 +8679,7 @@ var modula2 = {
7830
8679
  ecosystems: ["Systems Programming", "Education", "Language History"]
7831
8680
  },
7832
8681
  version: "ISO/IEC 10514-1:1996",
7833
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=M2",
8682
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/modula-2.svg",
7834
8683
  color: "#2563EB",
7835
8684
  i18n: {
7836
8685
  en: {
@@ -8316,6 +9165,9 @@ var nim = {
8316
9165
  author: "Andreas Rumpf",
8317
9166
  website: "https://nim-lang.org",
8318
9167
  paradigms: ["systems", "imperative", "functional", "metaprogramming", "statically typed"],
9168
+ relations: {
9169
+ compilesTo: ["c", "javascript"]
9170
+ },
8319
9171
  tooling: {
8320
9172
  runtimes: ["Native", "JavaScript"],
8321
9173
  packageManagers: ["Nimble"],
@@ -8408,6 +9260,57 @@ var nix = {
8408
9260
  }
8409
9261
  };
8410
9262
 
9263
+ // src/languages/noir.ts
9264
+ var noir = {
9265
+ slug: "noir",
9266
+ status: "experimental",
9267
+ publishedDate: "2022-01-01",
9268
+ extensions: [".nr"],
9269
+ author: "Aztec Labs",
9270
+ website: "https://noir-lang.org",
9271
+ paradigms: ["imperative", "declarative", "zero-knowledge"],
9272
+ tooling: {
9273
+ runtimes: ["ACVM"],
9274
+ packageManagers: ["Nargo"],
9275
+ ecosystems: ["Blockchain", "Cryptography", "Web3"]
9276
+ },
9277
+ version: "1.0.0-beta",
9278
+ logo: "https://avatars.githubusercontent.com/u/72610319?v=4",
9279
+ color: "#2F1F49",
9280
+ i18n: {
9281
+ en: {
9282
+ name: "Noir",
9283
+ description: "A Rust-like language for writing zero-knowledge proof circuits.",
9284
+ longDescription: "Noir is a domain-specific language for writing zero-knowledge circuits, developed by Aztec Labs. Programs written in Rust-like syntax compile to an intermediate representation (ACIR) that can target multiple proving backends, abstracting away the cryptographic machinery of ZK-SNARKs.\n\nWith the Nargo toolchain for building, testing, and proving, Noir is used for private smart contracts, identity proofs, and verifiable computation across the zero-knowledge ecosystem."
9285
+ },
9286
+ es: {
9287
+ name: "Noir",
9288
+ description: "Un lenguaje similar a Rust para escribir circuitos de pruebas de conocimiento cero.",
9289
+ longDescription: "Noir es un lenguaje de dominio espec\xEDfico para escribir circuitos de conocimiento cero, desarrollado por Aztec Labs. Los programas, con sintaxis similar a Rust, compilan a una representaci\xF3n intermedia (ACIR) que puede apuntar a m\xFAltiples backends de prueba, abstrayendo la maquinaria criptogr\xE1fica de los ZK-SNARKs.\n\nCon la cadena de herramientas Nargo para compilar, probar y generar pruebas, Noir se usa en contratos inteligentes privados, pruebas de identidad y computaci\xF3n verificable en el ecosistema de conocimiento cero."
9290
+ },
9291
+ it: {
9292
+ name: "Noir",
9293
+ description: "Un linguaggio simile a Rust per scrivere circuiti a conoscenza zero.",
9294
+ longDescription: "Noir \xE8 un linguaggio di dominio specifico per scrivere circuiti a conoscenza zero, sviluppato da Aztec Labs. I programmi, con sintassi simile a Rust, compilano in una rappresentazione intermedia (ACIR) che pu\xF2 puntare a pi\xF9 backend di prova, astraendo la macchina crittografica degli ZK-SNARK.\n\nCon la toolchain Nargo per compilare, testare e generare prove, Noir \xE8 usato per smart contract privati, prove di identit\xE0 e computazione verificabile in tutto l'ecosistema a conoscenza zero."
9295
+ },
9296
+ fr: {
9297
+ name: "Noir",
9298
+ description: "Un langage proche de Rust pour \xE9crire des circuits \xE0 divulgation nulle de connaissance.",
9299
+ longDescription: "Noir est un langage d\xE9di\xE9 \xE0 l'\xE9criture de circuits \xE0 divulgation nulle de connaissance, d\xE9velopp\xE9 par Aztec Labs. Les programmes, \xE0 la syntaxe proche de Rust, compilent vers une repr\xE9sentation interm\xE9diaire (ACIR) capable de cibler plusieurs backends de preuve, en masquant la machinerie cryptographique des ZK-SNARKs.\n\nAvec la cha\xEEne d'outils Nargo pour compiler, tester et prouver, Noir sert aux contrats intelligents priv\xE9s, aux preuves d'identit\xE9 et au calcul v\xE9rifiable dans l'\xE9cosyst\xE8me zero-knowledge."
9300
+ },
9301
+ de: {
9302
+ name: "Noir",
9303
+ description: "Eine Rust-\xE4hnliche Sprache zum Schreiben von Zero-Knowledge-Beweis-Schaltkreisen.",
9304
+ longDescription: "Noir ist eine dom\xE4nenspezifische Sprache zum Schreiben von Zero-Knowledge-Schaltkreisen, entwickelt von Aztec Labs. Programme in Rust-\xE4hnlicher Syntax kompilieren zu einer Zwischendarstellung (ACIR), die mehrere Proving-Backends ansteuern kann und die kryptografische Maschinerie von ZK-SNARKs abstrahiert.\n\nMit der Nargo-Toolchain zum Bauen, Testen und Beweisen wird Noir f\xFCr private Smart Contracts, Identit\xE4tsnachweise und verifizierbare Berechnungen im Zero-Knowledge-\xD6kosystem eingesetzt."
9305
+ },
9306
+ pt: {
9307
+ name: "Noir",
9308
+ description: "Uma linguagem parecida com Rust para escrever circuitos de conhecimento zero.",
9309
+ longDescription: "Noir \xE9 uma linguagem de dom\xEDnio espec\xEDfico para escrever circuitos de conhecimento zero, desenvolvida pela Aztec Labs. Os programas, com sintaxe parecida com Rust, compilam para uma representa\xE7\xE3o intermedi\xE1ria (ACIR) que pode mirar v\xE1rios backends de prova, abstraindo a maquinaria criptogr\xE1fica dos ZK-SNARKs.\n\nCom a toolchain Nargo para compilar, testar e provar, o Noir \xE9 usado em contratos inteligentes privados, provas de identidade e computa\xE7\xE3o verific\xE1vel em todo o ecossistema de conhecimento zero."
9310
+ }
9311
+ }
9312
+ };
9313
+
8411
9314
  // src/languages/nunjucks.ts
8412
9315
  var nunjucks = {
8413
9316
  slug: "nunjucks",
@@ -8471,7 +9374,7 @@ var nushell = {
8471
9374
  packageManagers: ["nupm"],
8472
9375
  ecosystems: ["Shell", "Unix", "Windows", "macOS"]
8473
9376
  },
8474
- version: "0.114.0",
9377
+ version: "0.114.1",
8475
9378
  logo: "https://cdn.simpleicons.org/nushell/3AA675",
8476
9379
  color: "#3AA675",
8477
9380
  i18n: {
@@ -8521,7 +9424,7 @@ var oberon = {
8521
9424
  ecosystems: ["Operating Systems", "Education", "Language Design"]
8522
9425
  },
8523
9426
  version: "Oberon-2",
8524
- logo: "https://dummyimage.com/32x32/0F766E/ffffff.png&text=Ob",
9427
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/oberon.svg",
8525
9428
  color: "#0F766E",
8526
9429
  i18n: {
8527
9430
  en: {
@@ -8560,11 +9463,15 @@ var oberon = {
8560
9463
  // src/languages/objective-c.ts
8561
9464
  var objectiveC = {
8562
9465
  slug: "objective-c",
9466
+ aliases: ["objc", "objective c"],
8563
9467
  publishedDate: "1984-01-01",
8564
9468
  extensions: [".m", ".mm"],
8565
9469
  author: "Brad Cox / Tom Love",
8566
9470
  website: "https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/",
8567
9471
  paradigms: ["class-based", "dynamic", "object-oriented", "reflective"],
9472
+ relations: {
9473
+ supersetOf: ["c"]
9474
+ },
8568
9475
  tooling: {
8569
9476
  runtimes: ["Objective-C runtime", "Apple platforms", "GNUstep"],
8570
9477
  packageManagers: ["CocoaPods", "Swift Package Manager"],
@@ -9214,7 +10121,7 @@ var plI = {
9214
10121
  ecosystems: ["Mainframe", "Enterprise", "Scientific Computing"]
9215
10122
  },
9216
10123
  version: "Enterprise PL/I 6.2",
9217
- logo: "https://dummyimage.com/32x32/1F2937/ffffff.png&text=PL1",
10124
+ logo: "https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
9218
10125
  color: "#1F2937",
9219
10126
  i18n: {
9220
10127
  en: {
@@ -9308,6 +10215,9 @@ var plpgsql = {
9308
10215
  author: "PostgreSQL Global Development Group",
9309
10216
  website: "https://www.postgresql.org/docs/current/plpgsql.html",
9310
10217
  paradigms: ["procedural", "database"],
10218
+ relations: {
10219
+ dialectOf: ["sql"]
10220
+ },
9311
10221
  tooling: {
9312
10222
  runtimes: ["PostgreSQL"],
9313
10223
  ecosystems: ["Relational databases", "Stored procedures"]
@@ -9357,6 +10267,9 @@ var plsql = {
9357
10267
  author: "Oracle",
9358
10268
  website: "https://www.oracle.com/database/technologies/appdev/plsql.html",
9359
10269
  paradigms: ["procedural", "database", "declarative", "imperative"],
10270
+ relations: {
10271
+ dialectOf: ["sql"]
10272
+ },
9360
10273
  tooling: {
9361
10274
  runtimes: ["Oracle Database"],
9362
10275
  ecosystems: ["Oracle", "SQL", "Enterprise Data"]
@@ -9509,7 +10422,7 @@ var postscript = {
9509
10422
  ecosystems: ["Print", "PDF"]
9510
10423
  },
9511
10424
  version: "PostScript 3",
9512
- logo: "https://dummyimage.com/32x32/EC1C24/ffffff.png&text=PS",
10425
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_postscript.svg",
9513
10426
  color: "#EC1C24",
9514
10427
  i18n: {
9515
10428
  en: {
@@ -9557,7 +10470,7 @@ var powerquery = {
9557
10470
  ecosystems: ["Microsoft Power BI", "Excel", "Azure Data Factory", "Microsoft Fabric"]
9558
10471
  },
9559
10472
  version: "Power Query M 2025",
9560
- logo: "https://dummyimage.com/32x32/F2C811/000000.png&text=PQ",
10473
+ logo: "https://upload.wikimedia.org/wikipedia/commons/c/cf/New_Power_BI_Logo.svg",
9561
10474
  color: "#F2C811",
9562
10475
  i18n: {
9563
10476
  en: {
@@ -9596,6 +10509,7 @@ var powerquery = {
9596
10509
  // src/languages/powershell.ts
9597
10510
  var powershell = {
9598
10511
  slug: "powershell",
10512
+ aliases: ["pwsh"],
9599
10513
  publishedDate: "2006-11-14",
9600
10514
  extensions: [".ps1", ".psm1", ".psd1", ".ps1xml"],
9601
10515
  author: "Microsoft",
@@ -9791,9 +10705,60 @@ var promql = {
9791
10705
  }
9792
10706
  };
9793
10707
 
10708
+ // src/languages/properties.ts
10709
+ var properties = {
10710
+ slug: "properties",
10711
+ aliases: ["java properties"],
10712
+ publishedDate: "1996-01-23",
10713
+ extensions: [".properties"],
10714
+ author: "Sun Microsystems",
10715
+ website: "https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html",
10716
+ paradigms: ["declarative", "configuration"],
10717
+ tooling: {
10718
+ runtimes: ["JVM"],
10719
+ ecosystems: ["JVM", "Configuration"]
10720
+ },
10721
+ version: "stable",
10722
+ logo: "https://cdn.simpleicons.org/openjdk/437291",
10723
+ color: "#2A6277",
10724
+ i18n: {
10725
+ en: {
10726
+ name: "Java Properties",
10727
+ description: "A simple key-value configuration format used across the Java ecosystem.",
10728
+ longDescription: "Java Properties files store configuration as key-value pairs in plain text, with support for comments, escaping, and Unicode sequences. The format ships with the JDK through java.util.Properties and dates back to Java 1.0.\n\nIt remains the default configuration format across the JVM ecosystem: Spring application settings, Gradle project configuration, log4j setup, and resource bundles for internationalization all commonly live in .properties files."
10729
+ },
10730
+ es: {
10731
+ name: "Java Properties",
10732
+ description: "Un formato simple de configuraci\xF3n clave-valor usado en todo el ecosistema Java.",
10733
+ longDescription: "Los archivos Java Properties almacenan configuraci\xF3n como pares clave-valor en texto plano, con soporte para comentarios, escapes y secuencias Unicode. El formato viene con el JDK a trav\xE9s de java.util.Properties y se remonta a Java 1.0.\n\nSigue siendo el formato de configuraci\xF3n por defecto en el ecosistema JVM: los ajustes de aplicaciones Spring, la configuraci\xF3n de proyectos Gradle, la configuraci\xF3n de log4j y los resource bundles de internacionalizaci\xF3n suelen vivir en archivos .properties."
10734
+ },
10735
+ it: {
10736
+ name: "Java Properties",
10737
+ description: "Un semplice formato di configurazione chiave-valore usato nell'ecosistema Java.",
10738
+ longDescription: "I file Java Properties memorizzano la configurazione come coppie chiave-valore in testo semplice, con supporto per commenti, escape e sequenze Unicode. Il formato \xE8 incluso nel JDK tramite java.util.Properties e risale a Java 1.0.\n\nRimane il formato di configurazione predefinito nell'ecosistema JVM: le impostazioni delle applicazioni Spring, la configurazione dei progetti Gradle, la configurazione di log4j e i resource bundle per l'internazionalizzazione vivono comunemente in file .properties."
10739
+ },
10740
+ fr: {
10741
+ name: "Java Properties",
10742
+ description: "Un format simple de configuration cl\xE9-valeur utilis\xE9 dans tout l'\xE9cosyst\xE8me Java.",
10743
+ longDescription: "Les fichiers Java Properties stockent la configuration sous forme de paires cl\xE9-valeur en texte brut, avec la prise en charge des commentaires, de l'\xE9chappement et des s\xE9quences Unicode. Le format est livr\xE9 avec le JDK via java.util.Properties et remonte \xE0 Java 1.0.\n\nIl reste le format de configuration par d\xE9faut de l'\xE9cosyst\xE8me JVM : les param\xE8tres d'applications Spring, la configuration de projets Gradle, la configuration de log4j et les resource bundles d'internationalisation vivent couramment dans des fichiers .properties."
10744
+ },
10745
+ de: {
10746
+ name: "Java Properties",
10747
+ description: "Ein einfaches Schl\xFCssel-Wert-Konfigurationsformat aus dem Java-\xD6kosystem.",
10748
+ longDescription: "Java-Properties-Dateien speichern Konfiguration als Schl\xFCssel-Wert-Paare im Klartext, mit Unterst\xFCtzung f\xFCr Kommentare, Escaping und Unicode-Sequenzen. Das Format ist \xFCber java.util.Properties Teil des JDK und stammt aus Java 1.0.\n\nEs bleibt das Standard-Konfigurationsformat im JVM-\xD6kosystem: Spring-Anwendungseinstellungen, Gradle-Projektkonfiguration, log4j-Setup und Resource-Bundles f\xFCr Internationalisierung liegen \xFCblicherweise in .properties-Dateien."
10749
+ },
10750
+ pt: {
10751
+ name: "Java Properties",
10752
+ description: "Um formato simples de configura\xE7\xE3o chave-valor usado em todo o ecossistema Java.",
10753
+ longDescription: "Os arquivos Java Properties armazenam configura\xE7\xE3o como pares chave-valor em texto simples, com suporte a coment\xE1rios, escapes e sequ\xEAncias Unicode. O formato acompanha o JDK por meio de java.util.Properties e remonta ao Java 1.0.\n\nContinua sendo o formato de configura\xE7\xE3o padr\xE3o do ecossistema JVM: as configura\xE7\xF5es de aplica\xE7\xF5es Spring, a configura\xE7\xE3o de projetos Gradle, a configura\xE7\xE3o do log4j e os resource bundles de internacionaliza\xE7\xE3o costumam viver em arquivos .properties."
10754
+ }
10755
+ }
10756
+ };
10757
+
9794
10758
  // src/languages/protobuf.ts
9795
10759
  var protobuf = {
9796
10760
  slug: "protobuf",
10761
+ aliases: ["proto", "protocol buffers"],
9797
10762
  publishedDate: "2008-07-07",
9798
10763
  extensions: [".proto"],
9799
10764
  author: "Google",
@@ -9841,6 +10806,59 @@ var protobuf = {
9841
10806
  }
9842
10807
  };
9843
10808
 
10809
+ // src/languages/prql.ts
10810
+ var prql = {
10811
+ slug: "prql",
10812
+ status: "experimental",
10813
+ publishedDate: "2022-01-24",
10814
+ extensions: [".prql"],
10815
+ author: "PRQL project",
10816
+ website: "https://prql-lang.org",
10817
+ paradigms: ["declarative", "functional", "query"],
10818
+ relations: {
10819
+ compilesTo: ["sql"]
10820
+ },
10821
+ tooling: {
10822
+ runtimes: ["prqlc"],
10823
+ ecosystems: ["Databases", "Data Processing"]
10824
+ },
10825
+ version: "0.13.0",
10826
+ logo: "https://avatars.githubusercontent.com/u/102252800?v=4",
10827
+ color: "#4A6FBF",
10828
+ i18n: {
10829
+ en: {
10830
+ name: "PRQL",
10831
+ description: "A pipelined relational query language that compiles to readable SQL.",
10832
+ longDescription: "PRQL (Pipelined Relational Query Language) reimagines SQL as a series of transformations: each line filters, derives, aggregates, or sorts the result of the previous one, with variables, functions, and consistent syntax replacing SQL's irregularities.\n\nThe prqlc compiler emits standard SQL for many dialects \u2014 PostgreSQL, DuckDB, SQLite, MySQL, and more \u2014 so PRQL works with existing databases and integrates into Python, Rust, JavaScript, and dbt workflows."
10833
+ },
10834
+ es: {
10835
+ name: "PRQL",
10836
+ description: "Un lenguaje de consultas relacional en tuber\xEDas que compila a SQL legible.",
10837
+ longDescription: "PRQL (Pipelined Relational Query Language) reimagina SQL como una serie de transformaciones: cada l\xEDnea filtra, deriva, agrega u ordena el resultado de la anterior, con variables, funciones y una sintaxis consistente que reemplaza las irregularidades de SQL.\n\nEl compilador prqlc emite SQL est\xE1ndar para muchos dialectos \u2014 PostgreSQL, DuckDB, SQLite, MySQL y m\xE1s \u2014 de modo que PRQL funciona con bases de datos existentes y se integra en flujos de Python, Rust, JavaScript y dbt."
10838
+ },
10839
+ it: {
10840
+ name: "PRQL",
10841
+ description: "Un linguaggio di query relazionale a pipeline che compila in SQL leggibile.",
10842
+ longDescription: "PRQL (Pipelined Relational Query Language) reimmagina SQL come una serie di trasformazioni: ogni riga filtra, deriva, aggrega oppure ordina il risultato della precedente, con variabili, funzioni e una sintassi coerente al posto delle irregolarit\xE0 di SQL.\n\nIl compilatore prqlc emette SQL standard per molti dialetti \u2014 PostgreSQL, DuckDB, SQLite, MySQL e altri \u2014 quindi PRQL funziona con i database esistenti e si integra nei flussi Python, Rust, JavaScript e dbt."
10843
+ },
10844
+ fr: {
10845
+ name: "PRQL",
10846
+ description: "Un langage de requ\xEAte relationnel en pipeline qui compile vers du SQL lisible.",
10847
+ longDescription: "PRQL (Pipelined Relational Query Language) r\xE9invente SQL comme une s\xE9rie de transformations : chaque ligne filtre, d\xE9rive, agr\xE8ge ou trie le r\xE9sultat de la pr\xE9c\xE9dente, avec des variables, des fonctions et une syntaxe coh\xE9rente rempla\xE7ant les irr\xE9gularit\xE9s de SQL.\n\nLe compilateur prqlc \xE9met du SQL standard pour de nombreux dialectes \u2014 PostgreSQL, DuckDB, SQLite, MySQL et plus \u2014 de sorte que PRQL fonctionne avec les bases existantes et s'int\xE8gre aux flux Python, Rust, JavaScript et dbt."
10848
+ },
10849
+ de: {
10850
+ name: "PRQL",
10851
+ description: "Eine relationale Pipeline-Abfragesprache, die zu lesbarem SQL kompiliert.",
10852
+ longDescription: "PRQL (Pipelined Relational Query Language) denkt SQL als Folge von Transformationen neu: Jede Zeile filtert, leitet ab, aggregiert oder sortiert das Ergebnis der vorherigen, mit Variablen, Funktionen und konsistenter Syntax anstelle der Unregelm\xE4\xDFigkeiten von SQL.\n\nDer prqlc-Compiler erzeugt Standard-SQL f\xFCr viele Dialekte \u2014 PostgreSQL, DuckDB, SQLite, MySQL und mehr \u2014, sodass PRQL mit bestehenden Datenbanken funktioniert und sich in Python-, Rust-, JavaScript- und dbt-Workflows integriert."
10853
+ },
10854
+ pt: {
10855
+ name: "PRQL",
10856
+ description: "Uma linguagem de consulta relacional em pipeline que compila para SQL leg\xEDvel.",
10857
+ longDescription: "PRQL (Pipelined Relational Query Language) reimagina o SQL como uma s\xE9rie de transforma\xE7\xF5es: cada linha filtra, deriva, agrega ou ordena o resultado da anterior, com vari\xE1veis, fun\xE7\xF5es e sintaxe consistente no lugar das irregularidades do SQL.\n\nO compilador prqlc emite SQL padr\xE3o para muitos dialetos \u2014 PostgreSQL, DuckDB, SQLite, MySQL e mais \u2014 de modo que o PRQL funciona com bancos existentes e se integra a fluxos Python, Rust, JavaScript e dbt."
10858
+ }
10859
+ }
10860
+ };
10861
+
9844
10862
  // src/languages/pug.ts
9845
10863
  var pug = {
9846
10864
  slug: "pug",
@@ -9949,6 +10967,9 @@ var purescript = {
9949
10967
  author: "Phil Freeman / PureScript contributors",
9950
10968
  website: "https://www.purescript.org",
9951
10969
  paradigms: ["functional", "pure", "statically typed", "declarative"],
10970
+ relations: {
10971
+ compilesTo: ["javascript"]
10972
+ },
9952
10973
  tooling: {
9953
10974
  runtimes: ["JavaScript", "Node.js"],
9954
10975
  packageManagers: ["Spago", "npm"],
@@ -9994,6 +11015,7 @@ var purescript = {
9994
11015
  // src/languages/python.ts
9995
11016
  var python = {
9996
11017
  slug: "python",
11018
+ aliases: ["py"],
9997
11019
  publishedDate: "1991-02-20",
9998
11020
  extensions: [".py", ".pyw"],
9999
11021
  author: "Guido van Rossum",
@@ -10041,6 +11063,56 @@ var python = {
10041
11063
  }
10042
11064
  };
10043
11065
 
11066
+ // src/languages/q.ts
11067
+ var q = {
11068
+ slug: "q",
11069
+ aliases: ["kdb", "kdb+"],
11070
+ publishedDate: "2003-01-01",
11071
+ extensions: [".q", ".k"],
11072
+ author: "Arthur Whitney / Kx Systems",
11073
+ website: "https://kx.com",
11074
+ paradigms: ["array", "functional", "query"],
11075
+ tooling: {
11076
+ runtimes: ["kdb+"],
11077
+ ecosystems: ["Finance", "Data Science", "Time Series"]
11078
+ },
11079
+ version: "q 4.1",
11080
+ logo: "https://avatars.githubusercontent.com/u/11446750?v=4",
11081
+ color: "#0040CD",
11082
+ i18n: {
11083
+ en: {
11084
+ name: "q / kdb+",
11085
+ description: "An array and query language built into the kdb+ time-series database.",
11086
+ longDescription: "q is the programming and query language of kdb+, the columnar time-series database from Kx Systems. Descended from APL and K, it operates on whole vectors and tables with an extremely terse syntax and treats queries, analytics, and stored procedures as one language.\n\nq/kdb+ dominates tick-data capture and real-time analytics in investment banks, hedge funds, and exchanges, where its in-memory column store processes billions of records with low latency."
11087
+ },
11088
+ es: {
11089
+ name: "q / kdb+",
11090
+ description: "Un lenguaje de arrays y consultas integrado en la base de datos de series temporales kdb+.",
11091
+ longDescription: "q es el lenguaje de programaci\xF3n y consulta de kdb+, la base de datos columnar de series temporales de Kx Systems. Descendiente de APL y K, opera sobre vectores y tablas completas con una sintaxis extremadamente concisa y trata consultas, anal\xEDtica y procedimientos almacenados como un solo lenguaje.\n\nq/kdb+ domina la captura de datos de tick y la anal\xEDtica en tiempo real en bancos de inversi\xF3n, hedge funds y bolsas, donde su almac\xE9n columnar en memoria procesa miles de millones de registros con baja latencia."
11092
+ },
11093
+ it: {
11094
+ name: "q / kdb+",
11095
+ description: "Un linguaggio di array e query integrato nel database di serie temporali kdb+.",
11096
+ longDescription: "q \xE8 il linguaggio di programmazione e interrogazione di kdb+, il database colonnare di serie temporali di Kx Systems. Discendente di APL e K, opera su vettori e tabelle interi con una sintassi estremamente concisa e tratta query, analisi e stored procedure come un unico linguaggio.\n\nq/kdb+ domina la cattura dei dati tick e le analisi in tempo reale in banche di investimento, hedge fund e borse, dove il suo archivio colonnare in memoria elabora miliardi di record a bassa latenza."
11097
+ },
11098
+ fr: {
11099
+ name: "q / kdb+",
11100
+ description: "Un langage de tableaux et de requ\xEAtes int\xE9gr\xE9 \xE0 la base de s\xE9ries temporelles kdb+.",
11101
+ longDescription: "q est le langage de programmation et de requ\xEAte de kdb+, la base de donn\xE9es colonne de s\xE9ries temporelles de Kx Systems. Descendant d'APL et de K, il op\xE8re sur des vecteurs et des tables entiers avec une syntaxe extr\xEAmement concise et traite requ\xEAtes, analyses et proc\xE9dures stock\xE9es comme un seul langage.\n\nq/kdb+ domine la capture de donn\xE9es tick et l'analytique temps r\xE9el dans les banques d'investissement, les hedge funds et les bourses, o\xF9 son stockage colonne en m\xE9moire traite des milliards d'enregistrements \xE0 faible latence."
11102
+ },
11103
+ de: {
11104
+ name: "q / kdb+",
11105
+ description: "Eine Array- und Abfragesprache, eingebaut in die Zeitreihen-Datenbank kdb+.",
11106
+ longDescription: "q ist die Programmier- und Abfragesprache von kdb+, der spaltenorientierten Zeitreihen-Datenbank von Kx Systems. Als Nachfahre von APL und K arbeitet sie auf ganzen Vektoren und Tabellen mit extrem knapper Syntax und behandelt Abfragen, Analysen und Stored Procedures als eine Sprache.\n\nq/kdb+ dominiert die Tick-Daten-Erfassung und Echtzeit-Analytik in Investmentbanken, Hedgefonds und B\xF6rsen, wo der spaltenorientierte In-Memory-Speicher Milliarden von Datens\xE4tzen mit geringer Latenz verarbeitet."
11107
+ },
11108
+ pt: {
11109
+ name: "q / kdb+",
11110
+ description: "Uma linguagem de arrays e consultas embutida no banco de s\xE9ries temporais kdb+.",
11111
+ longDescription: "q \xE9 a linguagem de programa\xE7\xE3o e consulta do kdb+, o banco de dados colunar de s\xE9ries temporais da Kx Systems. Descendente de APL e K, opera sobre vetores e tabelas inteiros com uma sintaxe extremamente concisa e trata consultas, an\xE1lises e stored procedures como uma \xFAnica linguagem.\n\nq/kdb+ domina a captura de dados de tick e a an\xE1lise em tempo real em bancos de investimento, fundos de hedge e bolsas, onde seu armazenamento colunar em mem\xF3ria processa bilh\xF5es de registros com baixa lat\xEAncia."
11112
+ }
11113
+ }
11114
+ };
11115
+
10044
11116
  // src/languages/qmake.ts
10045
11117
  var qmake = {
10046
11118
  slug: "qmake",
@@ -10293,6 +11365,7 @@ var racket = {
10293
11365
  // src/languages/raku.ts
10294
11366
  var raku = {
10295
11367
  slug: "raku",
11368
+ aliases: ["perl6", "perl 6"],
10296
11369
  publishedDate: "2015-12-25",
10297
11370
  extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"],
10298
11371
  author: "Raku Community",
@@ -10398,6 +11471,9 @@ var reasonml = {
10398
11471
  author: "Jordan Walke / Reason contributors",
10399
11472
  website: "https://reasonml.github.io",
10400
11473
  paradigms: ["functional", "statically typed", "multi-paradigm"],
11474
+ relations: {
11475
+ compilesTo: ["javascript", "ocaml"]
11476
+ },
10401
11477
  tooling: {
10402
11478
  runtimes: ["OCaml", "JavaScript"],
10403
11479
  packageManagers: ["opam", "npm"],
@@ -10588,6 +11664,56 @@ var rego = {
10588
11664
  }
10589
11665
  };
10590
11666
 
11667
+ // src/languages/renpy.ts
11668
+ var renpy = {
11669
+ slug: "renpy",
11670
+ aliases: ["ren'py"],
11671
+ publishedDate: "2004-08-24",
11672
+ extensions: [".rpy", ".rpym"],
11673
+ author: "Tom Rothamel",
11674
+ website: "https://www.renpy.org",
11675
+ paradigms: ["imperative", "scripting", "narrative"],
11676
+ tooling: {
11677
+ runtimes: ["Ren'Py Engine", "CPython"],
11678
+ ecosystems: ["Game Development", "Interactive Fiction"]
11679
+ },
11680
+ version: "8.3.7",
11681
+ logo: "https://avatars.githubusercontent.com/u/1900740?v=4",
11682
+ color: "#FF7F7F",
11683
+ i18n: {
11684
+ en: {
11685
+ name: "Ren'Py",
11686
+ description: "A visual novel engine with a screenplay-like script language embedding Python.",
11687
+ longDescription: "Ren'Py is an open-source engine for visual novels and story-driven games. Its script language reads like a screenplay \u2014 labels, dialogue, menus, and scene statements \u2014 while full Python can be embedded anywhere game logic needs it.\n\nThousands of commercial and free titles ship on Ren'Py, which exports to Windows, macOS, Linux, Android, iOS, and the web, and includes built-in support for saves, rollback, localization, and accessibility."
11688
+ },
11689
+ es: {
11690
+ name: "Ren'Py",
11691
+ description: "Un motor de novelas visuales con un lenguaje de guion tipo cinematogr\xE1fico que embebe Python.",
11692
+ longDescription: "Ren'Py es un motor de c\xF3digo abierto para novelas visuales y juegos narrativos. Su lenguaje de script se lee como un guion \u2014 etiquetas, di\xE1logo, men\xFAs y sentencias de escena \u2014 mientras que Python completo puede embeberse donde la l\xF3gica del juego lo necesite.\n\nMiles de t\xEDtulos comerciales y gratuitos se publican con Ren'Py, que exporta a Windows, macOS, Linux, Android, iOS y la web, e incluye soporte integrado para guardados, rollback, localizaci\xF3n y accesibilidad."
11693
+ },
11694
+ it: {
11695
+ name: "Ren'Py",
11696
+ description: "Un motore per visual novel con un linguaggio di script simile a una sceneggiatura che incorpora Python.",
11697
+ longDescription: "Ren'Py \xE8 un motore open source per visual novel e giochi narrativi. Il suo linguaggio di script si legge come una sceneggiatura \u2014 etichette, dialoghi, menu e istruzioni di scena \u2014 mentre Python completo pu\xF2 essere incorporato ovunque serva logica di gioco.\n\nMigliaia di titoli commerciali e gratuiti sono pubblicati con Ren'Py, che esporta su Windows, macOS, Linux, Android, iOS e web, e include supporto integrato per salvataggi, rollback, localizzazione e accessibilit\xE0."
11698
+ },
11699
+ fr: {
11700
+ name: "Ren'Py",
11701
+ description: "Un moteur de visual novels au langage de script fa\xE7on sc\xE9nario, avec Python int\xE9gr\xE9.",
11702
+ longDescription: "Ren'Py est un moteur open source pour visual novels et jeux narratifs. Son langage de script se lit comme un sc\xE9nario \u2014 \xE9tiquettes, dialogues, menus et instructions de sc\xE8ne \u2014 tandis que Python complet peut \xEAtre int\xE9gr\xE9 partout o\xF9 la logique du jeu l'exige.\n\nDes milliers de titres commerciaux et gratuits sortent sur Ren'Py, qui exporte vers Windows, macOS, Linux, Android, iOS et le web, avec une prise en charge int\xE9gr\xE9e des sauvegardes, du rollback, de la localisation et de l'accessibilit\xE9."
11703
+ },
11704
+ de: {
11705
+ name: "Ren'Py",
11706
+ description: "Eine Visual-Novel-Engine mit drehbuchartiger Skriptsprache und eingebettetem Python.",
11707
+ longDescription: "Ren'Py ist eine Open-Source-Engine f\xFCr Visual Novels und erz\xE4hlgetriebene Spiele. Die Skriptsprache liest sich wie ein Drehbuch \u2014 Labels, Dialoge, Men\xFCs und Szenenanweisungen \u2014, w\xE4hrend vollst\xE4ndiges Python \xFCberall eingebettet werden kann, wo Spiellogik n\xF6tig ist.\n\nTausende kommerzielle und freie Titel erscheinen auf Ren'Py, das nach Windows, macOS, Linux, Android, iOS und ins Web exportiert und eingebaute Unterst\xFCtzung f\xFCr Spielst\xE4nde, Rollback, Lokalisierung und Barrierefreiheit mitbringt."
11708
+ },
11709
+ pt: {
11710
+ name: "Ren'Py",
11711
+ description: "Um motor de visual novels com linguagem de script estilo roteiro que incorpora Python.",
11712
+ longDescription: "Ren'Py \xE9 um motor de c\xF3digo aberto para visual novels e jogos narrativos. Sua linguagem de script se l\xEA como um roteiro \u2014 r\xF3tulos, di\xE1logos, menus e instru\xE7\xF5es de cena \u2014 enquanto Python completo pode ser incorporado onde a l\xF3gica do jogo precisar.\n\nMilhares de t\xEDtulos comerciais e gratuitos s\xE3o lan\xE7ados com Ren'Py, que exporta para Windows, macOS, Linux, Android, iOS e web, e inclui suporte embutido a salvamentos, rollback, localiza\xE7\xE3o e acessibilidade."
11713
+ }
11714
+ }
11715
+ };
11716
+
10591
11717
  // src/languages/rescript.ts
10592
11718
  var rescript = {
10593
11719
  slug: "rescript",
@@ -10596,6 +11722,9 @@ var rescript = {
10596
11722
  author: "ReScript Association",
10597
11723
  website: "https://rescript-lang.org",
10598
11724
  paradigms: ["functional", "statically typed", "multi-paradigm", "javascript-targeted"],
11725
+ relations: {
11726
+ compilesTo: ["javascript"]
11727
+ },
10599
11728
  tooling: {
10600
11729
  runtimes: ["JavaScript", "Node.js", "Browser"],
10601
11730
  packageManagers: ["npm", "pnpm", "Yarn"],
@@ -10641,6 +11770,7 @@ var rescript = {
10641
11770
  // src/languages/restructuredtext.ts
10642
11771
  var restructuredtext = {
10643
11772
  slug: "restructuredtext",
11773
+ aliases: ["rst"],
10644
11774
  publishedDate: "2001-06-01",
10645
11775
  extensions: [".rst", ".rest"],
10646
11776
  author: "David Goodger / Docutils contributors",
@@ -10688,6 +11818,55 @@ var restructuredtext = {
10688
11818
  }
10689
11819
  };
10690
11820
 
11821
+ // src/languages/rexx.ts
11822
+ var rexx = {
11823
+ slug: "rexx",
11824
+ publishedDate: "1979-03-20",
11825
+ extensions: [".rexx", ".rex"],
11826
+ author: "Mike Cowlishaw / IBM",
11827
+ website: "https://www.rexxla.org",
11828
+ paradigms: ["imperative", "procedural", "scripting"],
11829
+ tooling: {
11830
+ runtimes: ["z/OS", "ooRexx", "Regina REXX"],
11831
+ ecosystems: ["Mainframe", "Scripting"]
11832
+ },
11833
+ version: "ANSI X3.274-1996",
11834
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_rexx.svg",
11835
+ color: "#D90E09",
11836
+ i18n: {
11837
+ en: {
11838
+ name: "REXX",
11839
+ description: "A readable IBM scripting language for mainframe automation and system glue.",
11840
+ longDescription: "REXX (Restructured Extended Executor) is a scripting language designed by Mike Cowlishaw at IBM with an emphasis on readability and ease of learning. It became the standard automation language on IBM mainframes, driving TSO/ISPF, batch jobs, and system utilities on z/OS.\n\nBeyond the mainframe, Open Object Rexx (ooRexx) and Regina bring the language to Linux, Windows, and macOS, and REXX remains in active production use wherever decades of mainframe automation live on."
11841
+ },
11842
+ es: {
11843
+ name: "REXX",
11844
+ description: "Un lenguaje de scripting legible de IBM para automatizaci\xF3n de mainframes.",
11845
+ longDescription: "REXX (Restructured Extended Executor) es un lenguaje de scripting dise\xF1ado por Mike Cowlishaw en IBM con \xE9nfasis en la legibilidad y la facilidad de aprendizaje. Se convirti\xF3 en el lenguaje de automatizaci\xF3n est\xE1ndar de los mainframes de IBM, controlando TSO/ISPF, trabajos batch y utilidades del sistema en z/OS.\n\nM\xE1s all\xE1 del mainframe, Open Object Rexx (ooRexx) y Regina llevan el lenguaje a Linux, Windows y macOS, y REXX sigue en uso productivo activo dondequiera que perduren d\xE9cadas de automatizaci\xF3n de mainframe."
11846
+ },
11847
+ it: {
11848
+ name: "REXX",
11849
+ description: "Un linguaggio di scripting IBM leggibile per l'automazione dei mainframe.",
11850
+ longDescription: "REXX (Restructured Extended Executor) \xE8 un linguaggio di scripting progettato da Mike Cowlishaw in IBM con enfasi sulla leggibilit\xE0 e sulla facilit\xE0 di apprendimento. \xC8 diventato il linguaggio di automazione standard sui mainframe IBM, guidando TSO/ISPF, job batch e utility di sistema su z/OS.\n\nOltre il mainframe, Open Object Rexx (ooRexx) e Regina portano il linguaggio su Linux, Windows e macOS, e REXX rimane in uso produttivo attivo ovunque sopravvivano decenni di automazione mainframe."
11851
+ },
11852
+ fr: {
11853
+ name: "REXX",
11854
+ description: "Un langage de script IBM lisible pour l'automatisation des mainframes.",
11855
+ longDescription: "REXX (Restructured Extended Executor) est un langage de script con\xE7u par Mike Cowlishaw chez IBM avec un accent sur la lisibilit\xE9 et la facilit\xE9 d'apprentissage. Il est devenu le langage d'automatisation standard des mainframes IBM, pilotant TSO/ISPF, les travaux batch et les utilitaires syst\xE8me sous z/OS.\n\nAu-del\xE0 du mainframe, Open Object Rexx (ooRexx) et Regina portent le langage sur Linux, Windows et macOS, et REXX reste en usage productif actif partout o\xF9 survivent des d\xE9cennies d'automatisation mainframe."
11856
+ },
11857
+ de: {
11858
+ name: "REXX",
11859
+ description: "Eine gut lesbare IBM-Skriptsprache f\xFCr Mainframe-Automatisierung.",
11860
+ longDescription: "REXX (Restructured Extended Executor) ist eine von Mike Cowlishaw bei IBM entworfene Skriptsprache mit Schwerpunkt auf Lesbarkeit und leichter Erlernbarkeit. Sie wurde zur Standard-Automatisierungssprache auf IBM-Mainframes und steuert TSO/ISPF, Batch-Jobs und Systemwerkzeuge unter z/OS.\n\nJenseits des Mainframes bringen Open Object Rexx (ooRexx) und Regina die Sprache auf Linux, Windows und macOS, und REXX bleibt \xFCberall dort im produktiven Einsatz, wo Jahrzehnte an Mainframe-Automatisierung weiterleben."
11861
+ },
11862
+ pt: {
11863
+ name: "REXX",
11864
+ description: "Uma linguagem de script leg\xEDvel da IBM para automa\xE7\xE3o de mainframes.",
11865
+ longDescription: "REXX (Restructured Extended Executor) \xE9 uma linguagem de script projetada por Mike Cowlishaw na IBM com \xEAnfase em legibilidade e facilidade de aprendizado. Tornou-se a linguagem de automa\xE7\xE3o padr\xE3o nos mainframes da IBM, controlando TSO/ISPF, jobs batch e utilit\xE1rios de sistema no z/OS.\n\nAl\xE9m do mainframe, o Open Object Rexx (ooRexx) e o Regina levam a linguagem para Linux, Windows e macOS, e o REXX continua em uso produtivo ativo onde quer que d\xE9cadas de automa\xE7\xE3o de mainframe sobrevivam."
11866
+ }
11867
+ }
11868
+ };
11869
+
10691
11870
  // src/languages/roc.ts
10692
11871
  var roc = {
10693
11872
  slug: "roc",
@@ -10789,6 +11968,7 @@ var rpg = {
10789
11968
  // src/languages/ruby.ts
10790
11969
  var ruby = {
10791
11970
  slug: "ruby",
11971
+ aliases: ["rb"],
10792
11972
  publishedDate: "1995-12-21",
10793
11973
  extensions: [".rb", ".rbw", ".rake", ".gemspec", "Gemfile", "Rakefile", "config.ru"],
10794
11974
  author: "Yukihiro Matsumoto",
@@ -11042,6 +12222,10 @@ var scss = {
11042
12222
  author: "Hampton Catlin / Natalie Weizenbaum / Chris Eppstein",
11043
12223
  website: "https://sass-lang.com",
11044
12224
  paradigms: ["declarative", "stylesheet", "preprocessor"],
12225
+ relations: {
12226
+ supersetOf: ["css"],
12227
+ compilesTo: ["css"]
12228
+ },
11045
12229
  tooling: {
11046
12230
  runtimes: ["Dart Sass"],
11047
12231
  packageManagers: ["npm", "pnpm", "Yarn", "Bun"],
@@ -11136,6 +12320,7 @@ var self = {
11136
12320
  // src/languages/simula.ts
11137
12321
  var simula = {
11138
12322
  slug: "simula",
12323
+ status: "historical",
11139
12324
  publishedDate: "1962-01-01",
11140
12325
  extensions: [".sim", ".simula"],
11141
12326
  author: "Ole-Johan Dahl and Kristen Nygaard",
@@ -11146,7 +12331,7 @@ var simula = {
11146
12331
  ecosystems: ["Simulation", "Language history"]
11147
12332
  },
11148
12333
  version: "Simula 67",
11149
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Si",
12334
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/simula.svg",
11150
12335
  color: "#2563EB",
11151
12336
  i18n: {
11152
12337
  en: {
@@ -11182,6 +12367,58 @@ var simula = {
11182
12367
  }
11183
12368
  };
11184
12369
 
12370
+ // src/languages/slang.ts
12371
+ var slang = {
12372
+ slug: "slang",
12373
+ publishedDate: "2017-01-01",
12374
+ extensions: [".slang"],
12375
+ author: "NVIDIA / Khronos Group",
12376
+ website: "https://shader-slang.org",
12377
+ paradigms: ["imperative", "shader", "generic"],
12378
+ relations: {
12379
+ compilesTo: ["hlsl", "glsl", "metal", "wgsl"]
12380
+ },
12381
+ tooling: {
12382
+ runtimes: ["Vulkan", "Direct3D", "Metal", "WebGPU"],
12383
+ ecosystems: ["GPU", "Graphics", "Game Development"]
12384
+ },
12385
+ version: "stable",
12386
+ logo: "https://avatars.githubusercontent.com/u/29205606?v=4",
12387
+ color: "#1FBEC9",
12388
+ i18n: {
12389
+ en: {
12390
+ name: "Slang",
12391
+ description: "A modern shading language that cross-compiles to HLSL, GLSL, Metal, and WGSL.",
12392
+ longDescription: "Slang is a shading language that extends HLSL with modules, generics, interfaces, and automatic differentiation. A single Slang codebase cross-compiles to HLSL, GLSL, SPIR-V, Metal, WGSL, and CUDA, eliminating per-API shader duplication.\n\nOriginally developed at NVIDIA and now hosted by the Khronos Group, Slang powers production renderers and research frameworks, with differentiable shading making it popular for machine-learning graphics."
12393
+ },
12394
+ es: {
12395
+ name: "Slang",
12396
+ description: "Un lenguaje de shaders moderno que compila de forma cruzada a HLSL, GLSL, Metal y WGSL.",
12397
+ longDescription: "Slang es un lenguaje de shaders que extiende HLSL con m\xF3dulos, gen\xE9ricos, interfaces y diferenciaci\xF3n autom\xE1tica. Una sola base de c\xF3digo Slang se compila de forma cruzada a HLSL, GLSL, SPIR-V, Metal, WGSL y CUDA, eliminando la duplicaci\xF3n de shaders por API.\n\nDesarrollado originalmente en NVIDIA y ahora alojado por el Grupo Khronos, Slang impulsa renderizadores de producci\xF3n y frameworks de investigaci\xF3n, y su shading diferenciable lo hace popular en gr\xE1ficos con machine learning."
12398
+ },
12399
+ it: {
12400
+ name: "Slang",
12401
+ description: "Un moderno linguaggio di shading che compila verso HLSL, GLSL, Metal e WGSL.",
12402
+ longDescription: "Slang \xE8 un linguaggio di shading che estende HLSL con moduli, generics, interfacce e differenziazione automatica. Una singola base di codice Slang si compila verso HLSL, GLSL, SPIR-V, Metal, WGSL e CUDA, eliminando la duplicazione degli shader per ogni API.\n\nSviluppato originariamente da NVIDIA e ora ospitato dal Khronos Group, Slang alimenta renderer di produzione e framework di ricerca, e lo shading differenziabile lo rende popolare nella grafica per il machine learning."
12403
+ },
12404
+ fr: {
12405
+ name: "Slang",
12406
+ description: "Un langage de shading moderne qui se compile vers HLSL, GLSL, Metal et WGSL.",
12407
+ longDescription: "Slang est un langage de shading qui \xE9tend HLSL avec des modules, des g\xE9n\xE9riques, des interfaces et la diff\xE9rentiation automatique. Une seule base de code Slang se compile vers HLSL, GLSL, SPIR-V, Metal, WGSL et CUDA, \xE9liminant la duplication de shaders par API.\n\nD\xE9velopp\xE9 \xE0 l'origine chez NVIDIA et d\xE9sormais h\xE9berg\xE9 par le Khronos Group, Slang alimente des moteurs de rendu en production et des frameworks de recherche, et son shading diff\xE9rentiable le rend populaire pour les graphismes en machine learning."
12408
+ },
12409
+ de: {
12410
+ name: "Slang",
12411
+ description: "Eine moderne Shading-Sprache, die nach HLSL, GLSL, Metal und WGSL cross-kompiliert.",
12412
+ longDescription: "Slang ist eine Shading-Sprache, die HLSL um Module, Generics, Interfaces und automatische Differentiation erweitert. Eine einzige Slang-Codebasis wird nach HLSL, GLSL, SPIR-V, Metal, WGSL und CUDA cross-kompiliert und beseitigt so die Shader-Duplikation pro API.\n\nUrspr\xFCnglich bei NVIDIA entwickelt und heute von der Khronos Group betreut, treibt Slang Produktions-Renderer und Forschungs-Frameworks an; differenzierbares Shading macht es in der Machine-Learning-Grafik beliebt."
12413
+ },
12414
+ pt: {
12415
+ name: "Slang",
12416
+ description: "Uma linguagem de shaders moderna que compila para HLSL, GLSL, Metal e WGSL.",
12417
+ longDescription: "Slang \xE9 uma linguagem de shaders que estende o HLSL com m\xF3dulos, gen\xE9ricos, interfaces e diferencia\xE7\xE3o autom\xE1tica. Uma \xFAnica base de c\xF3digo Slang \xE9 compilada para HLSL, GLSL, SPIR-V, Metal, WGSL e CUDA, eliminando a duplica\xE7\xE3o de shaders por API.\n\nDesenvolvida originalmente na NVIDIA e agora mantida pelo Khronos Group, a Slang move renderizadores de produ\xE7\xE3o e frameworks de pesquisa, e o shading diferenci\xE1vel a torna popular em gr\xE1ficos com machine learning."
12418
+ }
12419
+ }
12420
+ };
12421
+
11185
12422
  // src/languages/smalltalk.ts
11186
12423
  var smalltalk = {
11187
12424
  slug: "smalltalk",
@@ -11281,6 +12518,56 @@ var smarty = {
11281
12518
  }
11282
12519
  };
11283
12520
 
12521
+ // src/languages/smithy.ts
12522
+ var smithy = {
12523
+ slug: "smithy",
12524
+ publishedDate: "2019-01-01",
12525
+ extensions: [".smithy"],
12526
+ author: "Amazon Web Services",
12527
+ website: "https://smithy.io",
12528
+ paradigms: ["declarative", "interface-definition"],
12529
+ tooling: {
12530
+ runtimes: ["JVM"],
12531
+ packageManagers: ["Gradle", "Maven"],
12532
+ ecosystems: ["Cloud", "API Design"]
12533
+ },
12534
+ version: "IDL 2.0",
12535
+ logo: "https://avatars.githubusercontent.com/u/133827778?v=4",
12536
+ color: "#FF9900",
12537
+ i18n: {
12538
+ en: {
12539
+ name: "Smithy",
12540
+ description: "AWS's protocol-agnostic interface definition language for modeling services.",
12541
+ longDescription: "Smithy is an interface definition language created by AWS to model services, resources, and operations independently of any protocol or transport. Models are decorated with traits \u2014 validation, authentication, pagination, error behavior \u2014 from which code generators produce clients, servers, and documentation.\n\nAWS uses Smithy to define its own service APIs and generate its SDKs. The open-source toolchain includes a Java-based build system, model validation, and generators for multiple target languages."
12542
+ },
12543
+ es: {
12544
+ name: "Smithy",
12545
+ description: "El lenguaje de definici\xF3n de interfaces de AWS, agn\xF3stico de protocolo, para modelar servicios.",
12546
+ longDescription: "Smithy es un lenguaje de definici\xF3n de interfaces creado por AWS para modelar servicios, recursos y operaciones con independencia de cualquier protocolo o transporte. Los modelos se decoran con traits \u2014 validaci\xF3n, autenticaci\xF3n, paginaci\xF3n, comportamiento de errores \u2014 a partir de los cuales los generadores producen clientes, servidores y documentaci\xF3n.\n\nAWS usa Smithy para definir sus propias APIs de servicio y generar sus SDKs. La cadena de herramientas de c\xF3digo abierto incluye un sistema de build basado en Java, validaci\xF3n de modelos y generadores para m\xFAltiples lenguajes destino."
12547
+ },
12548
+ it: {
12549
+ name: "Smithy",
12550
+ description: "Il linguaggio di definizione delle interfacce di AWS, agnostico rispetto al protocollo.",
12551
+ longDescription: "Smithy \xE8 un linguaggio di definizione delle interfacce creato da AWS per modellare servizi, risorse e operazioni indipendentemente da qualsiasi protocollo o trasporto. I modelli sono decorati con trait \u2014 validazione, autenticazione, paginazione, comportamento degli errori \u2014 dai quali i generatori producono client, server e documentazione.\n\nAWS usa Smithy per definire le proprie API di servizio e generare i propri SDK. La toolchain open source include un sistema di build basato su Java, la validazione dei modelli e generatori per pi\xF9 linguaggi di destinazione."
12552
+ },
12553
+ fr: {
12554
+ name: "Smithy",
12555
+ description: "Le langage de d\xE9finition d'interfaces d'AWS, ind\xE9pendant du protocole, pour mod\xE9liser des services.",
12556
+ longDescription: "Smithy est un langage de d\xE9finition d'interfaces cr\xE9\xE9 par AWS pour mod\xE9liser services, ressources et op\xE9rations ind\xE9pendamment de tout protocole ou transport. Les mod\xE8les sont d\xE9cor\xE9s de traits \u2014 validation, authentification, pagination, comportement d'erreur \u2014 \xE0 partir desquels des g\xE9n\xE9rateurs produisent clients, serveurs et documentation.\n\nAWS utilise Smithy pour d\xE9finir ses propres API de service et g\xE9n\xE9rer ses SDK. La cha\xEEne d'outils open source comprend un syst\xE8me de build en Java, la validation de mod\xE8les et des g\xE9n\xE9rateurs pour plusieurs langages cibles."
12557
+ },
12558
+ de: {
12559
+ name: "Smithy",
12560
+ description: "AWS' protokollunabh\xE4ngige Schnittstellenbeschreibungssprache zur Modellierung von Services.",
12561
+ longDescription: "Smithy ist eine von AWS geschaffene Schnittstellenbeschreibungssprache, um Services, Ressourcen und Operationen unabh\xE4ngig von Protokoll oder Transport zu modellieren. Modelle werden mit Traits versehen \u2014 Validierung, Authentifizierung, Paginierung, Fehlerverhalten \u2014, aus denen Codegeneratoren Clients, Server und Dokumentation erzeugen.\n\nAWS definiert mit Smithy seine eigenen Service-APIs und generiert daraus seine SDKs. Die Open-Source-Toolchain umfasst ein Java-basiertes Build-System, Modellvalidierung und Generatoren f\xFCr mehrere Zielsprachen."
12562
+ },
12563
+ pt: {
12564
+ name: "Smithy",
12565
+ description: "A linguagem de defini\xE7\xE3o de interfaces da AWS, agn\xF3stica de protocolo, para modelar servi\xE7os.",
12566
+ longDescription: "Smithy \xE9 uma linguagem de defini\xE7\xE3o de interfaces criada pela AWS para modelar servi\xE7os, recursos e opera\xE7\xF5es independentemente de qualquer protocolo ou transporte. Os modelos s\xE3o decorados com traits \u2014 valida\xE7\xE3o, autentica\xE7\xE3o, pagina\xE7\xE3o, comportamento de erros \u2014 a partir dos quais geradores produzem clientes, servidores e documenta\xE7\xE3o.\n\nA AWS usa Smithy para definir suas pr\xF3prias APIs de servi\xE7o e gerar seus SDKs. A toolchain de c\xF3digo aberto inclui um sistema de build baseado em Java, valida\xE7\xE3o de modelos e geradores para v\xE1rias linguagens de destino."
12567
+ }
12568
+ }
12569
+ };
12570
+
11284
12571
  // src/languages/snakemake.ts
11285
12572
  var snakemake = {
11286
12573
  slug: "snakemake",
@@ -11333,6 +12620,7 @@ var snakemake = {
11333
12620
  // src/languages/snobol.ts
11334
12621
  var snobol = {
11335
12622
  slug: "snobol",
12623
+ status: "historical",
11336
12624
  publishedDate: "1962-01-01",
11337
12625
  extensions: [".sno", ".snobol"],
11338
12626
  author: "David J. Farber, Ralph Griswold, and Ivan P. Polonsky",
@@ -11343,7 +12631,7 @@ var snobol = {
11343
12631
  ecosystems: ["Text processing", "Language history"]
11344
12632
  },
11345
12633
  version: "SNOBOL4",
11346
- logo: "https://dummyimage.com/32x32/7C2D12/ffffff.png&text=SN",
12634
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/snobol.svg",
11347
12635
  color: "#7C2D12",
11348
12636
  i18n: {
11349
12637
  en: {
@@ -11491,7 +12779,7 @@ var spark = {
11491
12779
  ecosystems: ["Ada", "Embedded", "Safety-critical software"]
11492
12780
  },
11493
12781
  version: "SPARK Community 2021",
11494
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=SP",
12782
+ logo: "https://avatars.githubusercontent.com/u/7767877?v=4",
11495
12783
  color: "#DC2626",
11496
12784
  i18n: {
11497
12785
  en: {
@@ -11638,7 +12926,7 @@ var spss = {
11638
12926
  ecosystems: ["Statistics", "Data Analysis", "Social Sciences", "Business Intelligence"]
11639
12927
  },
11640
12928
  version: "29.0",
11641
- logo: "https://dummyimage.com/32x32/052FAD/ffffff.png&text=SPSS",
12929
+ logo: "https://upload.wikimedia.org/wikipedia/commons/e/ea/SPSS_logo.svg",
11642
12930
  color: "#052FAD",
11643
12931
  i18n: {
11644
12932
  en: {
@@ -11732,7 +13020,7 @@ var squirrel = {
11732
13020
  ecosystems: ["Game Development", "Embedded Scripting", "Valve Source Engine"]
11733
13021
  },
11734
13022
  version: "3.2",
11735
- logo: "https://dummyimage.com/32x32/CC4A00/ffffff.png&text=SQ",
13023
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_squirrel.svg",
11736
13024
  color: "#CC4A00",
11737
13025
  i18n: {
11738
13026
  en: {
@@ -11924,6 +13212,10 @@ var stylus = {
11924
13212
  author: "TJ Holowaychuk / Stylus contributors",
11925
13213
  website: "https://stylus-lang.com",
11926
13214
  paradigms: ["stylesheet", "declarative", "preprocessor"],
13215
+ relations: {
13216
+ dialectOf: ["css"],
13217
+ compilesTo: ["css"]
13218
+ },
11927
13219
  tooling: {
11928
13220
  runtimes: ["Node.js"],
11929
13221
  packageManagers: ["npm", "pnpm", "Yarn"],
@@ -11966,6 +13258,57 @@ var stylus = {
11966
13258
  }
11967
13259
  };
11968
13260
 
13261
+ // src/languages/supercollider.ts
13262
+ var supercollider = {
13263
+ slug: "supercollider",
13264
+ aliases: ["sclang"],
13265
+ publishedDate: "1996-03-01",
13266
+ extensions: [".scd", ".sc"],
13267
+ author: "James McCartney",
13268
+ website: "https://supercollider.github.io",
13269
+ paradigms: ["object-oriented", "functional", "audio"],
13270
+ tooling: {
13271
+ runtimes: ["sclang", "scsynth"],
13272
+ packageManagers: ["Quarks"],
13273
+ ecosystems: ["Audio", "Music", "Creative Coding"]
13274
+ },
13275
+ version: "3.13.0",
13276
+ logo: "https://avatars.githubusercontent.com/u/1706741?v=4",
13277
+ color: "#46390B",
13278
+ i18n: {
13279
+ en: {
13280
+ name: "SuperCollider",
13281
+ description: "A platform and language for real-time audio synthesis and algorithmic composition.",
13282
+ longDescription: "SuperCollider pairs an interpreted, Smalltalk-inspired language (sclang) with a real-time audio synthesis server (scsynth). Code builds synth definitions, schedules musical patterns, and rewires signal graphs live, making it a foundation of the live-coding and computer-music communities.\n\nOpen source since 2002, SuperCollider runs on Linux, macOS, and Windows, extends through Quarks packages, and serves as the synthesis engine behind environments such as TidalCycles."
13283
+ },
13284
+ es: {
13285
+ name: "SuperCollider",
13286
+ description: "Una plataforma y lenguaje para s\xEDntesis de audio en tiempo real y composici\xF3n algor\xEDtmica.",
13287
+ longDescription: "SuperCollider combina un lenguaje interpretado inspirado en Smalltalk (sclang) con un servidor de s\xEDntesis de audio en tiempo real (scsynth). El c\xF3digo construye definiciones de sintetizadores, agenda patrones musicales y recablea grafos de se\xF1al en vivo, siendo una base de las comunidades de live coding y m\xFAsica por computadora.\n\nDe c\xF3digo abierto desde 2002, SuperCollider corre en Linux, macOS y Windows, se extiende mediante paquetes Quarks y act\xFAa como motor de s\xEDntesis detr\xE1s de entornos como TidalCycles."
13288
+ },
13289
+ it: {
13290
+ name: "SuperCollider",
13291
+ description: "Una piattaforma e linguaggio per la sintesi audio in tempo reale e la composizione algoritmica.",
13292
+ longDescription: "SuperCollider abbina un linguaggio interpretato ispirato a Smalltalk (sclang) a un server di sintesi audio in tempo reale (scsynth). Il codice costruisce definizioni di sintetizzatori, pianifica pattern musicali e ricollega grafi di segnale dal vivo, costituendo una base delle comunit\xE0 di live coding e computer music.\n\nOpen source dal 2002, SuperCollider gira su Linux, macOS e Windows, si estende tramite i pacchetti Quarks e funge da motore di sintesi dietro ambienti come TidalCycles."
13293
+ },
13294
+ fr: {
13295
+ name: "SuperCollider",
13296
+ description: "Une plateforme et un langage pour la synth\xE8se audio temps r\xE9el et la composition algorithmique.",
13297
+ longDescription: "SuperCollider associe un langage interpr\xE9t\xE9 inspir\xE9 de Smalltalk (sclang) \xE0 un serveur de synth\xE8se audio temps r\xE9el (scsynth). Le code construit des d\xE9finitions de synth\xE9s, planifie des motifs musicaux et rec\xE2ble des graphes de signal en direct, ce qui en fait un pilier des communaut\xE9s de live coding et de musique par ordinateur.\n\nOpen source depuis 2002, SuperCollider fonctionne sous Linux, macOS et Windows, s'\xE9tend via les paquets Quarks et sert de moteur de synth\xE8se \xE0 des environnements comme TidalCycles."
13298
+ },
13299
+ de: {
13300
+ name: "SuperCollider",
13301
+ description: "Eine Plattform und Sprache f\xFCr Echtzeit-Audiosynthese und algorithmische Komposition.",
13302
+ longDescription: "SuperCollider verbindet eine interpretierte, Smalltalk-inspirierte Sprache (sclang) mit einem Echtzeit-Audiosynthese-Server (scsynth). Code baut Synth-Definitionen, plant musikalische Patterns und verdrahtet Signalgraphen live um \u2014 ein Fundament der Live-Coding- und Computermusik-Szene.\n\nSeit 2002 Open Source, l\xE4uft SuperCollider auf Linux, macOS und Windows, wird \xFCber Quarks-Pakete erweitert und dient als Synthese-Engine hinter Umgebungen wie TidalCycles."
13303
+ },
13304
+ pt: {
13305
+ name: "SuperCollider",
13306
+ description: "Uma plataforma e linguagem para s\xEDntese de \xE1udio em tempo real e composi\xE7\xE3o algor\xEDtmica.",
13307
+ longDescription: "O SuperCollider combina uma linguagem interpretada inspirada em Smalltalk (sclang) com um servidor de s\xEDntese de \xE1udio em tempo real (scsynth). O c\xF3digo constr\xF3i defini\xE7\xF5es de sintetizadores, agenda padr\xF5es musicais e religa grafos de sinal ao vivo, sendo uma base das comunidades de live coding e m\xFAsica computacional.\n\nDe c\xF3digo aberto desde 2002, o SuperCollider roda em Linux, macOS e Windows, estende-se por meio de pacotes Quarks e serve como motor de s\xEDntese por tr\xE1s de ambientes como o TidalCycles."
13308
+ }
13309
+ }
13310
+ };
13311
+
11969
13312
  // src/languages/svelte.ts
11970
13313
  var svelte = {
11971
13314
  slug: "svelte",
@@ -11974,6 +13317,9 @@ var svelte = {
11974
13317
  author: "Rich Harris / Svelte contributors",
11975
13318
  website: "https://svelte.dev",
11976
13319
  paradigms: ["component-based", "declarative", "reactive", "compiled"],
13320
+ relations: {
13321
+ compilesTo: ["javascript"]
13322
+ },
11977
13323
  tooling: {
11978
13324
  runtimes: ["Browser", "Node.js"],
11979
13325
  packageManagers: ["npm", "pnpm", "Yarn", "Bun"],
@@ -12114,6 +13460,57 @@ var svn = {
12114
13460
  }
12115
13461
  };
12116
13462
 
13463
+ // src/languages/sway.ts
13464
+ var sway = {
13465
+ slug: "sway",
13466
+ status: "experimental",
13467
+ publishedDate: "2021-01-01",
13468
+ extensions: [".sw"],
13469
+ author: "Fuel Labs",
13470
+ website: "https://fuellabs.github.io/sway",
13471
+ paradigms: ["imperative", "functional", "smart-contract"],
13472
+ tooling: {
13473
+ runtimes: ["FuelVM"],
13474
+ packageManagers: ["Forc"],
13475
+ ecosystems: ["Blockchain", "Web3"]
13476
+ },
13477
+ version: "0.69.0",
13478
+ logo: "https://avatars.githubusercontent.com/u/55993183?v=4",
13479
+ color: "#00F58C",
13480
+ i18n: {
13481
+ en: {
13482
+ name: "Sway",
13483
+ description: "A Rust-inspired smart contract language for the Fuel blockchain virtual machine.",
13484
+ longDescription: "Sway is a domain-specific language for writing smart contracts on the FuelVM, the execution layer built by Fuel Labs. It borrows Rust syntax, traits, and safety principles while adding blockchain-native concepts such as contract storage, predicates, and scripts.\n\nThe Forc toolchain manages builds, dependencies, testing, and deployment, giving Sway developers a cargo-like workflow for the Fuel modular rollup ecosystem."
13485
+ },
13486
+ es: {
13487
+ name: "Sway",
13488
+ description: "Un lenguaje de contratos inteligentes inspirado en Rust para la m\xE1quina virtual de Fuel.",
13489
+ longDescription: "Sway es un lenguaje de dominio espec\xEDfico para escribir contratos inteligentes en la FuelVM, la capa de ejecuci\xF3n construida por Fuel Labs. Toma prestados la sintaxis, los traits y los principios de seguridad de Rust, a\xF1adiendo conceptos nativos de blockchain como almacenamiento de contratos, predicados y scripts.\n\nLa cadena de herramientas Forc gestiona builds, dependencias, pruebas y despliegue, dando a los desarrolladores de Sway un flujo estilo cargo para el ecosistema de rollups modulares de Fuel."
13490
+ },
13491
+ it: {
13492
+ name: "Sway",
13493
+ description: "Un linguaggio per smart contract ispirato a Rust per la macchina virtuale di Fuel.",
13494
+ longDescription: "Sway \xE8 un linguaggio di dominio specifico per scrivere smart contract sulla FuelVM, il livello di esecuzione costruito da Fuel Labs. Prende in prestito la sintassi, i trait e i principi di sicurezza di Rust, aggiungendo concetti nativi della blockchain come lo storage dei contratti, i predicati e gli script.\n\nLa toolchain Forc gestisce build, dipendenze, test e deployment, offrendo agli sviluppatori Sway un flusso di lavoro in stile cargo per l'ecosistema di rollup modulari di Fuel."
13495
+ },
13496
+ fr: {
13497
+ name: "Sway",
13498
+ description: "Un langage de smart contracts inspir\xE9 de Rust pour la machine virtuelle Fuel.",
13499
+ longDescription: "Sway est un langage d\xE9di\xE9 \xE0 l'\xE9criture de smart contracts sur la FuelVM, la couche d'ex\xE9cution construite par Fuel Labs. Il emprunte la syntaxe, les traits et les principes de s\xFBret\xE9 de Rust, en ajoutant des concepts propres \xE0 la blockchain comme le stockage de contrats, les pr\xE9dicats et les scripts.\n\nLa cha\xEEne d'outils Forc g\xE8re la compilation, les d\xE9pendances, les tests et le d\xE9ploiement, offrant aux d\xE9veloppeurs Sway un flux de travail \xE0 la cargo pour l'\xE9cosyst\xE8me de rollups modulaires de Fuel."
13500
+ },
13501
+ de: {
13502
+ name: "Sway",
13503
+ description: "Eine Rust-inspirierte Smart-Contract-Sprache f\xFCr die virtuelle Maschine von Fuel.",
13504
+ longDescription: "Sway ist eine dom\xE4nenspezifische Sprache zum Schreiben von Smart Contracts auf der FuelVM, der von Fuel Labs entwickelten Ausf\xFChrungsschicht. Sie \xFCbernimmt Syntax, Traits und Sicherheitsprinzipien von Rust und erg\xE4nzt Blockchain-native Konzepte wie Contract-Storage, Pr\xE4dikate und Skripte.\n\nDie Forc-Toolchain verwaltet Builds, Abh\xE4ngigkeiten, Tests und Deployment und bietet Sway-Entwicklern einen cargo-\xE4hnlichen Workflow f\xFCr das modulare Rollup-\xD6kosystem von Fuel."
13505
+ },
13506
+ pt: {
13507
+ name: "Sway",
13508
+ description: "Uma linguagem de contratos inteligentes inspirada em Rust para a m\xE1quina virtual da Fuel.",
13509
+ longDescription: "Sway \xE9 uma linguagem de dom\xEDnio espec\xEDfico para escrever contratos inteligentes na FuelVM, a camada de execu\xE7\xE3o constru\xEDda pela Fuel Labs. Ela toma emprestados a sintaxe, os traits e os princ\xEDpios de seguran\xE7a do Rust, adicionando conceitos nativos de blockchain como armazenamento de contratos, predicados e scripts.\n\nA toolchain Forc gerencia builds, depend\xEAncias, testes e implanta\xE7\xE3o, dando aos desenvolvedores Sway um fluxo de trabalho no estilo cargo para o ecossistema de rollups modulares da Fuel."
13510
+ }
13511
+ }
13512
+ };
13513
+
12117
13514
  // src/languages/swift.ts
12118
13515
  var swift = {
12119
13516
  slug: "swift",
@@ -12227,7 +13624,7 @@ var tcsh = {
12227
13624
  ecosystems: ["Unix", "BSD"]
12228
13625
  },
12229
13626
  version: "6.24.16",
12230
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=TC",
13627
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/tcsh.svg",
12231
13628
  color: "#2563EB",
12232
13629
  i18n: {
12233
13630
  en: {
@@ -12266,6 +13663,7 @@ var tcsh = {
12266
13663
  // src/languages/tex.ts
12267
13664
  var tex = {
12268
13665
  slug: "tex",
13666
+ aliases: ["latex"],
12269
13667
  publishedDate: "1978-01-01",
12270
13668
  extensions: [".tex", ".sty", ".cls", ".dtx", ".ins", ".ltx"],
12271
13669
  author: "Donald Knuth",
@@ -12562,6 +13960,9 @@ var tsql = {
12562
13960
  author: "Sybase / Microsoft",
12563
13961
  website: "https://learn.microsoft.com/en-us/sql/t-sql/language-reference",
12564
13962
  paradigms: ["procedural", "declarative", "database", "imperative"],
13963
+ relations: {
13964
+ dialectOf: ["sql"]
13965
+ },
12565
13966
  tooling: {
12566
13967
  runtimes: [
12567
13968
  "SQL Server",
@@ -12710,11 +14111,16 @@ var twig = {
12710
14111
  // src/languages/typescript.ts
12711
14112
  var typescript = {
12712
14113
  slug: "typescript",
14114
+ aliases: ["ts"],
12713
14115
  publishedDate: "2012-10-01",
12714
14116
  extensions: [".ts", ".tsx", ".mts", ".cts"],
12715
14117
  author: "Anders Hejlsberg / Microsoft",
12716
14118
  website: "https://www.typescriptlang.org",
12717
14119
  paradigms: ["object-oriented", "functional", "imperative", "generic"],
14120
+ relations: {
14121
+ supersetOf: ["javascript"],
14122
+ compilesTo: ["javascript"]
14123
+ },
12718
14124
  tooling: {
12719
14125
  runtimes: ["Browser", "Node.js", "Deno", "Bun"],
12720
14126
  packageManagers: ["npm", "pnpm", "Yarn", "Bun"],
@@ -12757,6 +14163,60 @@ var typescript = {
12757
14163
  }
12758
14164
  };
12759
14165
 
14166
+ // src/languages/typespec.ts
14167
+ var typespec = {
14168
+ slug: "typespec",
14169
+ aliases: ["cadl"],
14170
+ publishedDate: "2022-09-07",
14171
+ extensions: [".tsp"],
14172
+ author: "Microsoft",
14173
+ website: "https://typespec.io",
14174
+ paradigms: ["declarative", "interface-definition"],
14175
+ relations: {
14176
+ compilesTo: ["openapi", "protobuf", "json"]
14177
+ },
14178
+ tooling: {
14179
+ runtimes: ["Node.js"],
14180
+ packageManagers: ["npm"],
14181
+ ecosystems: ["Cloud", "API Design"]
14182
+ },
14183
+ version: "1.0",
14184
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/typespec.svg",
14185
+ color: "#4B3CC4",
14186
+ i18n: {
14187
+ en: {
14188
+ name: "TypeSpec",
14189
+ description: "A TypeScript-inspired language from Microsoft for describing APIs, emitting OpenAPI and more.",
14190
+ longDescription: "TypeSpec (formerly Cadl) is an API description language from Microsoft with TypeScript-inspired syntax. Reusable models, decorators, and interfaces describe REST, gRPC, and event-driven APIs at a higher level than hand-written specifications.\n\nEmitters compile TypeSpec into OpenAPI documents, Protobuf definitions, JSON Schema, and client code. Microsoft uses it to define Azure service APIs, keeping large API surfaces consistent from one concise source of truth."
14191
+ },
14192
+ es: {
14193
+ name: "TypeSpec",
14194
+ description: "Un lenguaje de Microsoft inspirado en TypeScript para describir APIs, emitiendo OpenAPI y m\xE1s.",
14195
+ longDescription: "TypeSpec (antes Cadl) es un lenguaje de descripci\xF3n de APIs de Microsoft con sintaxis inspirada en TypeScript. Modelos reutilizables, decoradores e interfaces describen APIs REST, gRPC y orientadas a eventos a un nivel m\xE1s alto que las especificaciones escritas a mano.\n\nLos emisores compilan TypeSpec a documentos OpenAPI, definiciones Protobuf, JSON Schema y c\xF3digo cliente. Microsoft lo usa para definir las APIs de servicios de Azure, manteniendo superficies de API enormes consistentes desde una sola fuente de verdad concisa."
14196
+ },
14197
+ it: {
14198
+ name: "TypeSpec",
14199
+ description: "Un linguaggio Microsoft ispirato a TypeScript per descrivere API, generando OpenAPI e altro.",
14200
+ longDescription: "TypeSpec (ex Cadl) \xE8 un linguaggio di descrizione delle API di Microsoft con sintassi ispirata a TypeScript. Modelli riutilizzabili, decoratori e interfacce descrivono API REST, gRPC e a eventi a un livello pi\xF9 alto delle specifiche scritte a mano.\n\nGli emitter compilano TypeSpec in documenti OpenAPI, definizioni Protobuf, JSON Schema e codice client. Microsoft lo usa per definire le API dei servizi Azure, mantenendo superfici API estese coerenti da un'unica fonte di verit\xE0 concisa."
14201
+ },
14202
+ fr: {
14203
+ name: "TypeSpec",
14204
+ description: "Un langage Microsoft inspir\xE9 de TypeScript pour d\xE9crire des API, g\xE9n\xE9rant OpenAPI et plus.",
14205
+ longDescription: "TypeSpec (anciennement Cadl) est un langage de description d'API de Microsoft \xE0 la syntaxe inspir\xE9e de TypeScript. Des mod\xE8les r\xE9utilisables, des d\xE9corateurs et des interfaces d\xE9crivent des API REST, gRPC et \xE9v\xE9nementielles \xE0 un niveau plus \xE9lev\xE9 que les sp\xE9cifications \xE9crites \xE0 la main.\n\nDes \xE9metteurs compilent TypeSpec en documents OpenAPI, d\xE9finitions Protobuf, JSON Schema et code client. Microsoft l'utilise pour d\xE9finir les API des services Azure, en gardant de vastes surfaces d'API coh\xE9rentes depuis une source de v\xE9rit\xE9 unique et concise."
14206
+ },
14207
+ de: {
14208
+ name: "TypeSpec",
14209
+ description: "Eine TypeScript-inspirierte Sprache von Microsoft zur API-Beschreibung, die OpenAPI und mehr erzeugt.",
14210
+ longDescription: "TypeSpec (fr\xFCher Cadl) ist eine API-Beschreibungssprache von Microsoft mit TypeScript-inspirierter Syntax. Wiederverwendbare Modelle, Dekoratoren und Interfaces beschreiben REST-, gRPC- und ereignisgetriebene APIs auf h\xF6herem Niveau als handgeschriebene Spezifikationen.\n\nEmitter kompilieren TypeSpec zu OpenAPI-Dokumenten, Protobuf-Definitionen, JSON Schema und Client-Code. Microsoft definiert damit die Azure-Service-APIs und h\xE4lt gro\xDFe API-Oberfl\xE4chen von einer knappen Single Source of Truth aus konsistent."
14211
+ },
14212
+ pt: {
14213
+ name: "TypeSpec",
14214
+ description: "Uma linguagem da Microsoft inspirada em TypeScript para descrever APIs, emitindo OpenAPI e mais.",
14215
+ longDescription: "TypeSpec (antes Cadl) \xE9 uma linguagem de descri\xE7\xE3o de APIs da Microsoft com sintaxe inspirada em TypeScript. Modelos reutiliz\xE1veis, decoradores e interfaces descrevem APIs REST, gRPC e orientadas a eventos em um n\xEDvel mais alto do que especifica\xE7\xF5es escritas \xE0 m\xE3o.\n\nOs emissores compilam TypeSpec em documentos OpenAPI, defini\xE7\xF5es Protobuf, JSON Schema e c\xF3digo cliente. A Microsoft a usa para definir as APIs dos servi\xE7os do Azure, mantendo grandes superf\xEDcies de API consistentes a partir de uma \xFAnica fonte de verdade concisa."
14216
+ }
14217
+ }
14218
+ };
14219
+
12760
14220
  // src/languages/typst.ts
12761
14221
  var typst = {
12762
14222
  slug: "typst",
@@ -12865,6 +14325,9 @@ var v = {
12865
14325
  author: "Alexander Medvednikov / V contributors",
12866
14326
  website: "https://vlang.io",
12867
14327
  paradigms: ["imperative", "systems", "multi-paradigm", "statically typed"],
14328
+ relations: {
14329
+ compilesTo: ["c"]
14330
+ },
12868
14331
  tooling: {
12869
14332
  runtimes: ["V compiler"],
12870
14333
  packageManagers: ["vpm"],
@@ -12960,6 +14423,7 @@ var vala = {
12960
14423
  // src/languages/vale.ts
12961
14424
  var vale = {
12962
14425
  slug: "vale",
14426
+ status: "experimental",
12963
14427
  publishedDate: "2018-01-01",
12964
14428
  extensions: [".vale"],
12965
14429
  author: "Evan Ovadia",
@@ -12970,7 +14434,7 @@ var vale = {
12970
14434
  ecosystems: ["Native applications", "Systems programming"]
12971
14435
  },
12972
14436
  version: "experimental",
12973
- logo: "https://dummyimage.com/32x32/059669/ffffff.png&text=Va",
14437
+ logo: "https://avatars.githubusercontent.com/u/67560249?v=4",
12974
14438
  color: "#059669",
12975
14439
  i18n: {
12976
14440
  en: {
@@ -13014,11 +14478,14 @@ var vba = {
13014
14478
  author: "Microsoft",
13015
14479
  website: "https://learn.microsoft.com/en-us/office/vba/api/overview/",
13016
14480
  paradigms: ["imperative", "object-oriented", "event-driven"],
14481
+ relations: {
14482
+ dialectOf: ["visual-basic"]
14483
+ },
13017
14484
  tooling: {
13018
14485
  ecosystems: ["Microsoft Office", "Excel", "Access", "Word", "Outlook"]
13019
14486
  },
13020
14487
  version: "VBA 7.1",
13021
- logo: "https://dummyimage.com/32x32/217346/ffffff.png&text=VBA",
14488
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_vba.svg",
13022
14489
  color: "#217346",
13023
14490
  i18n: {
13024
14491
  en: {
@@ -13054,6 +14521,59 @@ var vba = {
13054
14521
  }
13055
14522
  };
13056
14523
 
14524
+ // src/languages/vbscript.ts
14525
+ var vbscript = {
14526
+ slug: "vbscript",
14527
+ status: "legacy",
14528
+ publishedDate: "1996-08-01",
14529
+ extensions: [".vbs", ".vbe"],
14530
+ author: "Microsoft",
14531
+ website: "https://learn.microsoft.com/en-us/previous-versions/t0aew7h6(v=vs.85)",
14532
+ paradigms: ["imperative", "object-based", "scripting"],
14533
+ relations: {
14534
+ dialectOf: ["visual-basic"]
14535
+ },
14536
+ tooling: {
14537
+ runtimes: ["Windows Script Host", "Classic ASP", "Internet Explorer"],
14538
+ ecosystems: ["Windows", "Scripting"]
14539
+ },
14540
+ version: "5.8",
14541
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/vbscript.svg",
14542
+ color: "#15DCDC",
14543
+ i18n: {
14544
+ en: {
14545
+ name: "VBScript",
14546
+ description: "A lightweight Visual Basic dialect for Windows automation and Classic ASP.",
14547
+ longDescription: "VBScript is a scripting language modeled on Visual Basic and executed by the Windows Script Host, Classic ASP, and legacy Internet Explorer. It was widely used for Windows administration, logon scripts, and early server-side web pages.\n\nMicrosoft has deprecated VBScript and is phasing it out of Windows in favor of PowerShell and JavaScript, but large volumes of .vbs automation still run in enterprise environments."
14548
+ },
14549
+ es: {
14550
+ name: "VBScript",
14551
+ description: "Un dialecto ligero de Visual Basic para automatizaci\xF3n de Windows y ASP cl\xE1sico.",
14552
+ longDescription: "VBScript es un lenguaje de scripting inspirado en Visual Basic y ejecutado por Windows Script Host, ASP cl\xE1sico e Internet Explorer heredado. Se us\xF3 ampliamente para administraci\xF3n de Windows, scripts de inicio de sesi\xF3n y las primeras p\xE1ginas web del lado del servidor.\n\nMicrosoft ha marcado VBScript como obsoleto y lo est\xE1 retirando de Windows en favor de PowerShell y JavaScript, pero grandes vol\xFAmenes de automatizaci\xF3n .vbs siguen ejecut\xE1ndose en entornos empresariales."
14553
+ },
14554
+ it: {
14555
+ name: "VBScript",
14556
+ description: "Un dialetto leggero di Visual Basic per automazione Windows e ASP classico.",
14557
+ longDescription: "VBScript \xE8 un linguaggio di scripting modellato su Visual Basic ed eseguito da Windows Script Host, ASP classico e dal vecchio Internet Explorer. \xC8 stato ampiamente usato per l'amministrazione di Windows, gli script di accesso e le prime pagine web lato server.\n\nMicrosoft ha deprecato VBScript e lo sta rimuovendo da Windows in favore di PowerShell e JavaScript, ma grandi volumi di automazione .vbs sono ancora in esecuzione negli ambienti aziendali."
14558
+ },
14559
+ fr: {
14560
+ name: "VBScript",
14561
+ description: "Un dialecte l\xE9ger de Visual Basic pour l'automatisation Windows et l'ASP classique.",
14562
+ longDescription: "VBScript est un langage de script inspir\xE9 de Visual Basic et ex\xE9cut\xE9 par Windows Script Host, l'ASP classique et l'ancien Internet Explorer. Il a \xE9t\xE9 largement utilis\xE9 pour l'administration Windows, les scripts d'ouverture de session et les premi\xE8res pages web c\xF4t\xE9 serveur.\n\nMicrosoft a d\xE9pr\xE9ci\xE9 VBScript et le retire progressivement de Windows au profit de PowerShell et de JavaScript, mais de grands volumes d'automatisation .vbs tournent encore dans les environnements d'entreprise."
14563
+ },
14564
+ de: {
14565
+ name: "VBScript",
14566
+ description: "Ein leichter Visual-Basic-Dialekt f\xFCr Windows-Automatisierung und Classic ASP.",
14567
+ longDescription: "VBScript ist eine an Visual Basic angelehnte Skriptsprache, die vom Windows Script Host, Classic ASP und dem alten Internet Explorer ausgef\xFChrt wird. Sie wurde breit f\xFCr Windows-Administration, Anmeldeskripte und fr\xFChe serverseitige Webseiten eingesetzt.\n\nMicrosoft hat VBScript als veraltet markiert und entfernt es schrittweise aus Windows zugunsten von PowerShell und JavaScript, aber gro\xDFe Mengen an .vbs-Automatisierung laufen weiterhin in Unternehmensumgebungen."
14568
+ },
14569
+ pt: {
14570
+ name: "VBScript",
14571
+ description: "Um dialeto leve de Visual Basic para automa\xE7\xE3o do Windows e ASP cl\xE1ssico.",
14572
+ longDescription: "VBScript \xE9 uma linguagem de script baseada no Visual Basic e executada pelo Windows Script Host, pelo ASP cl\xE1ssico e pelo antigo Internet Explorer. Foi amplamente usada para administra\xE7\xE3o do Windows, scripts de logon e as primeiras p\xE1ginas web do lado do servidor.\n\nA Microsoft descontinuou o VBScript e o est\xE1 removendo do Windows em favor do PowerShell e do JavaScript, mas grandes volumes de automa\xE7\xE3o .vbs ainda rodam em ambientes corporativos."
14573
+ }
14574
+ }
14575
+ };
14576
+
13057
14577
  // src/languages/velocity.ts
13058
14578
  var velocity = {
13059
14579
  slug: "velocity",
@@ -13166,7 +14686,7 @@ var verse = {
13166
14686
  ecosystems: ["Unreal Engine", "Fortnite Creator"]
13167
14687
  },
13168
14688
  version: "UEFN Verse",
13169
- logo: "https://dummyimage.com/32x32/111827/ffffff.png&text=Ve",
14689
+ logo: "https://cdn.simpleicons.org/epicgames",
13170
14690
  color: "#111827",
13171
14691
  i18n: {
13172
14692
  en: {
@@ -13252,9 +14772,61 @@ var vhdl = {
13252
14772
  }
13253
14773
  };
13254
14774
 
14775
+ // src/languages/vimscript.ts
14776
+ var vimscript = {
14777
+ slug: "vimscript",
14778
+ aliases: ["vim", "vim script", "viml"],
14779
+ publishedDate: "1991-11-02",
14780
+ extensions: [".vim", ".vimrc", ".gvimrc"],
14781
+ author: "Bram Moolenaar",
14782
+ website: "https://www.vim.org",
14783
+ paradigms: ["imperative", "scripting"],
14784
+ tooling: {
14785
+ runtimes: ["Vim", "Neovim"],
14786
+ packageManagers: ["vim-plug", "lazy.nvim", "packer.nvim"],
14787
+ ecosystems: ["Text Editors", "Scripting"]
14788
+ },
14789
+ version: "Vim 9.1",
14790
+ logo: "https://cdn.simpleicons.org/vim/019733",
14791
+ color: "#019733",
14792
+ i18n: {
14793
+ en: {
14794
+ name: "Vim script",
14795
+ description: "The scripting language built into the Vim editor for configuration & plugins.",
14796
+ longDescription: "Vim script is the scripting language embedded in the Vim text editor. It drives user configuration through vimrc files and powers a large plugin ecosystem, with commands, autocommands, functions, and access to buffers, windows, and registers.\n\nVim 9 introduced Vim9 script, a faster, more structured dialect with typed variables and compiled functions, while Neovim pairs the legacy dialect with Lua as an alternative extension language."
14797
+ },
14798
+ es: {
14799
+ name: "Vim script",
14800
+ description: "El lenguaje de scripting integrado en el editor Vim para configuraci\xF3n y plugins.",
14801
+ longDescription: "Vim script es el lenguaje de scripting integrado en el editor de texto Vim. Gestiona la configuraci\xF3n del usuario mediante archivos vimrc e impulsa un gran ecosistema de plugins, con comandos, autocomandos, funciones y acceso a buffers, ventanas y registros.\n\nVim 9 introdujo Vim9 script, un dialecto m\xE1s r\xE1pido y estructurado con variables tipadas y funciones compiladas, mientras que Neovim combina el dialecto cl\xE1sico con Lua como lenguaje de extensi\xF3n alternativo."
14802
+ },
14803
+ it: {
14804
+ name: "Vim script",
14805
+ description: "Il linguaggio di scripting integrato nell'editor Vim per configurazione e plugin.",
14806
+ longDescription: "Vim script \xE8 il linguaggio di scripting incorporato nell'editor di testo Vim. Gestisce la configurazione dell'utente tramite i file vimrc e alimenta un vasto ecosistema di plugin, con comandi, autocomandi, funzioni e accesso a buffer, finestre e registri.\n\nVim 9 ha introdotto Vim9 script, un dialetto pi\xF9 veloce e strutturato con variabili tipate e funzioni compilate, mentre Neovim affianca al dialetto classico Lua come linguaggio di estensione alternativo."
14807
+ },
14808
+ fr: {
14809
+ name: "Vim script",
14810
+ description: "Le langage de script int\xE9gr\xE9 \xE0 l'\xE9diteur Vim pour la configuration et les plugins.",
14811
+ longDescription: "Vim script est le langage de script int\xE9gr\xE9 \xE0 l'\xE9diteur de texte Vim. Il pilote la configuration de l'utilisateur via les fichiers vimrc et alimente un vaste \xE9cosyst\xE8me de plugins, avec des commandes, des autocommandes, des fonctions et un acc\xE8s aux tampons, fen\xEAtres et registres.\n\nVim 9 a introduit Vim9 script, un dialecte plus rapide et plus structur\xE9 avec des variables typ\xE9es et des fonctions compil\xE9es, tandis que Neovim associe le dialecte historique \xE0 Lua comme langage d'extension alternatif."
14812
+ },
14813
+ de: {
14814
+ name: "Vim script",
14815
+ description: "Die im Vim-Editor eingebaute Skriptsprache f\xFCr Konfiguration und Plugins.",
14816
+ longDescription: "Vim script ist die in den Texteditor Vim eingebettete Skriptsprache. Sie steuert die Benutzerkonfiguration \xFCber vimrc-Dateien und treibt ein gro\xDFes Plugin-\xD6kosystem an, mit Befehlen, Autokommandos, Funktionen und Zugriff auf Puffer, Fenster und Register.\n\nVim 9 f\xFChrte Vim9 script ein, einen schnelleren, st\xE4rker strukturierten Dialekt mit typisierten Variablen und kompilierten Funktionen, w\xE4hrend Neovim den klassischen Dialekt mit Lua als alternativer Erweiterungssprache kombiniert."
14817
+ },
14818
+ pt: {
14819
+ name: "Vim script",
14820
+ description: "A linguagem de script embutida no editor Vim para configura\xE7\xE3o e plugins.",
14821
+ longDescription: "Vim script \xE9 a linguagem de script embutida no editor de texto Vim. Ela controla a configura\xE7\xE3o do usu\xE1rio por meio de arquivos vimrc e move um grande ecossistema de plugins, com comandos, autocomandos, fun\xE7\xF5es e acesso a buffers, janelas e registradores.\n\nO Vim 9 introduziu o Vim9 script, um dialeto mais r\xE1pido e estruturado com vari\xE1veis tipadas e fun\xE7\xF5es compiladas, enquanto o Neovim combina o dialeto cl\xE1ssico com Lua como linguagem de extens\xE3o alternativa."
14822
+ }
14823
+ }
14824
+ };
14825
+
13255
14826
  // src/languages/visual-basic.ts
13256
14827
  var visualBasic = {
13257
14828
  slug: "visual-basic",
14829
+ aliases: ["vb", "vb.net"],
13258
14830
  publishedDate: "2001-02-13",
13259
14831
  extensions: [".vb"],
13260
14832
  author: "Microsoft",
@@ -13454,6 +15026,7 @@ var wdl = {
13454
15026
  // src/languages/webassembly.ts
13455
15027
  var webassembly = {
13456
15028
  slug: "webassembly",
15029
+ aliases: ["wasm", "wat"],
13457
15030
  publishedDate: "2017-03-07",
13458
15031
  extensions: [".wasm", ".wat"],
13459
15032
  author: "W3C WebAssembly Community Group",
@@ -13842,6 +15415,58 @@ var xslt = {
13842
15415
  }
13843
15416
  };
13844
15417
 
15418
+ // src/languages/yacc.ts
15419
+ var yacc = {
15420
+ slug: "yacc",
15421
+ aliases: ["bison"],
15422
+ publishedDate: "1973-01-01",
15423
+ extensions: [".y", ".yacc"],
15424
+ author: "Stephen C. Johnson (Bell Labs)",
15425
+ website: "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html",
15426
+ paradigms: ["declarative", "generator"],
15427
+ tooling: {
15428
+ runtimes: ["C toolchains"],
15429
+ ecosystems: ["Compilers", "Language Tooling", "Unix"]
15430
+ },
15431
+ version: "POSIX yacc / Bison 3.8.2",
15432
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
15433
+ color: "#4B6C4B",
15434
+ i18n: {
15435
+ en: {
15436
+ name: "Yacc",
15437
+ description: "A parser generator that turns context-free grammars into LALR parser code.",
15438
+ longDescription: 'Yacc ("Yet Another Compiler-Compiler") is a classic Unix parser generator. A .y grammar file declares tokens, precedences, and production rules with embedded C actions, from which Yacc produces an LALR(1) parser that pairs naturally with a Lex-generated scanner.\n\nGNU Bison is the dominant modern implementation and remains widely used to build compilers, interpreters, configuration readers, and query languages across open-source projects.'
15439
+ },
15440
+ es: {
15441
+ name: "Yacc",
15442
+ description: "Un generador de parsers que convierte gram\xE1ticas libres de contexto en parsers LALR.",
15443
+ longDescription: 'Yacc ("Yet Another Compiler-Compiler") es un generador de parsers cl\xE1sico de Unix. Un archivo de gram\xE1tica .y declara tokens, precedencias y reglas de producci\xF3n con acciones en C incrustadas, a partir de las cuales Yacc produce un parser LALR(1) que se combina de forma natural con un esc\xE1ner generado por Lex.\n\nGNU Bison es la implementaci\xF3n moderna dominante y sigue siendo muy usada para construir compiladores, int\xE9rpretes, lectores de configuraci\xF3n y lenguajes de consulta en proyectos de c\xF3digo abierto.'
15444
+ },
15445
+ it: {
15446
+ name: "Yacc",
15447
+ description: "Un generatore di parser che trasforma grammatiche libere dal contesto in parser LALR.",
15448
+ longDescription: `Yacc ("Yet Another Compiler-Compiler") \xE8 un generatore di parser classico di Unix. Un file di grammatica .y dichiara token, precedenze e regole di produzione con azioni C incorporate, da cui Yacc produce un parser LALR(1) che si abbina naturalmente a uno scanner generato da Lex.
15449
+
15450
+ GNU Bison \xE8 l'implementazione moderna dominante e rimane ampiamente usata per costruire compilatori, interpreti, lettori di configurazione e linguaggi di interrogazione nei progetti open source.`
15451
+ },
15452
+ fr: {
15453
+ name: "Yacc",
15454
+ description: "Un g\xE9n\xE9rateur de parseurs qui transforme des grammaires hors contexte en parseurs LALR.",
15455
+ longDescription: "Yacc (\xAB Yet Another Compiler-Compiler \xBB) est un g\xE9n\xE9rateur de parseurs Unix classique. Un fichier de grammaire .y d\xE9clare des jetons, des pr\xE9c\xE9dences et des r\xE8gles de production avec des actions C int\xE9gr\xE9es, \xE0 partir desquelles Yacc produit un parseur LALR(1) qui se combine naturellement avec un scanner g\xE9n\xE9r\xE9 par Lex.\n\nGNU Bison est l'impl\xE9mentation moderne dominante et reste largement utilis\xE9e pour construire des compilateurs, des interpr\xE9teurs, des lecteurs de configuration et des langages de requ\xEAte dans les projets open source."
15456
+ },
15457
+ de: {
15458
+ name: "Yacc",
15459
+ description: "Ein Parser-Generator, der kontextfreie Grammatiken in LALR-Parser-Code \xFCbersetzt.",
15460
+ longDescription: 'Yacc (\u201EYet Another Compiler-Compiler") ist ein klassischer Unix-Parser-Generator. Eine .y-Grammatikdatei deklariert Tokens, Pr\xE4zedenzen und Produktionsregeln mit eingebetteten C-Aktionen, aus denen Yacc einen LALR(1)-Parser erzeugt, der sich nat\xFCrlich mit einem von Lex erzeugten Scanner kombinieren l\xE4sst.\n\nGNU Bison ist die dominierende moderne Implementierung und wird weiterhin breit eingesetzt, um Compiler, Interpreter, Konfigurationsleser und Abfragesprachen in Open-Source-Projekten zu bauen.'
15461
+ },
15462
+ pt: {
15463
+ name: "Yacc",
15464
+ description: "Um gerador de parsers que converte gram\xE1ticas livres de contexto em parsers LALR.",
15465
+ longDescription: 'Yacc ("Yet Another Compiler-Compiler") \xE9 um gerador de parsers cl\xE1ssico do Unix. Um arquivo de gram\xE1tica .y declara tokens, preced\xEAncias e regras de produ\xE7\xE3o com a\xE7\xF5es em C embutidas, a partir das quais o Yacc produz um parser LALR(1) que combina naturalmente com um scanner gerado pelo Lex.\n\nO GNU Bison \xE9 a implementa\xE7\xE3o moderna dominante e continua amplamente usado para construir compiladores, interpretadores, leitores de configura\xE7\xE3o e linguagens de consulta em projetos de c\xF3digo aberto.'
15466
+ }
15467
+ }
15468
+ };
15469
+
13845
15470
  // src/languages/yaml.ts
13846
15471
  var yaml = {
13847
15472
  slug: "yaml",
@@ -14143,43 +15768,46 @@ var languages = [
14143
15768
  ada,
14144
15769
  agda,
14145
15770
  algol,
15771
+ alloy,
14146
15772
  ampl,
15773
+ angelscript,
14147
15774
  ante,
14148
15775
  antlr,
14149
15776
  apex,
14150
15777
  apl,
14151
15778
  applescript,
14152
- arduino,
14153
15779
  aql,
15780
+ arduino,
14154
15781
  asciidoc,
14155
15782
  asp,
14156
15783
  assembly,
14157
15784
  assemblyscript,
14158
- angelscript,
14159
15785
  astro,
14160
15786
  austral,
14161
15787
  autohotkey,
14162
15788
  avroIdl,
14163
15789
  awk,
14164
15790
  ballerina,
14165
- basic,
14166
15791
  bash,
15792
+ basic,
14167
15793
  batch,
14168
15794
  bazel,
14169
15795
  bcpl,
14170
- bicep,
14171
15796
  bibtex,
15797
+ bicep,
14172
15798
  blade,
14173
15799
  bosque,
14174
15800
  bqn,
14175
15801
  brainfuck,
14176
15802
  c,
15803
+ c3,
14177
15804
  cairo,
14178
15805
  capnproto,
14179
15806
  carbon,
14180
15807
  cel,
14181
15808
  chapel,
14182
15809
  circom,
15810
+ clarity,
14183
15811
  clojure,
14184
15812
  cmake,
14185
15813
  cobol,
@@ -14187,13 +15815,14 @@ var languages = [
14187
15815
  coldfusion,
14188
15816
  coq,
14189
15817
  cpp,
14190
- crystal,
14191
15818
  cql,
15819
+ crystal,
14192
15820
  csharp,
14193
15821
  css,
14194
15822
  cuda,
14195
15823
  cue,
14196
15824
  curry,
15825
+ cwl,
14197
15826
  cypher,
14198
15827
  cython,
14199
15828
  d,
@@ -14205,32 +15834,37 @@ var languages = [
14205
15834
  dockerfile,
14206
15835
  dot,
14207
15836
  earthly,
15837
+ edgeql,
14208
15838
  editorconfig,
14209
15839
  eiffel,
14210
15840
  ejs,
14211
15841
  elixir,
14212
15842
  elm,
15843
+ emacsLisp,
14213
15844
  erb,
14214
15845
  erlang,
14215
15846
  factor,
15847
+ faust,
14216
15848
  fe,
14217
15849
  fennel,
14218
15850
  fish,
14219
15851
  flatbuffers,
15852
+ flix,
14220
15853
  flux,
14221
15854
  forth,
14222
15855
  fortran,
14223
- freemarker,
14224
15856
  fql,
15857
+ freemarker,
14225
15858
  fsharp,
14226
15859
  fstar,
14227
- gdscript,
15860
+ futhark,
14228
15861
  gcode,
15862
+ gdscript,
14229
15863
  gettext,
14230
15864
  git,
14231
15865
  gleam,
14232
- gml,
14233
15866
  glsl,
15867
+ gml,
14234
15868
  go,
14235
15869
  gradle,
14236
15870
  grain,
@@ -14254,11 +15888,14 @@ var languages = [
14254
15888
  inkNarrative,
14255
15889
  io,
14256
15890
  isabelle,
15891
+ j,
14257
15892
  janet,
14258
15893
  java,
14259
15894
  javascript,
15895
+ jcl,
14260
15896
  jinja,
14261
15897
  jmespath,
15898
+ jq,
14262
15899
  json,
14263
15900
  json5,
14264
15901
  jsonata,
@@ -14274,9 +15911,10 @@ var languages = [
14274
15911
  kql,
14275
15912
  lean,
14276
15913
  less,
15914
+ lex,
14277
15915
  ligo,
14278
- liquid,
14279
15916
  linkerscript,
15917
+ liquid,
14280
15918
  lisp,
14281
15919
  llvmIr,
14282
15920
  lobster,
@@ -14291,13 +15929,13 @@ var languages = [
14291
15929
  matlab,
14292
15930
  maxima,
14293
15931
  mdx,
15932
+ mercury,
14294
15933
  mermaid,
14295
15934
  meson,
14296
- mercury,
14297
15935
  metal,
14298
15936
  modelica,
14299
- mojo,
14300
15937
  modula2,
15938
+ mojo,
14301
15939
  moonbit,
14302
15940
  move,
14303
15941
  mumps,
@@ -14308,12 +15946,13 @@ var languages = [
14308
15946
  nickel,
14309
15947
  nim,
14310
15948
  nix,
15949
+ noir,
14311
15950
  nunjucks,
14312
15951
  nushell,
15952
+ oberon,
14313
15953
  objectiveC,
14314
15954
  ocaml,
14315
15955
  octave,
14316
- oberon,
14317
15956
  odin,
14318
15957
  openapi,
14319
15958
  opencl,
@@ -14323,8 +15962,8 @@ var languages = [
14323
15962
  perl,
14324
15963
  php,
14325
15964
  pineScript,
14326
- plI,
14327
15965
  pkl,
15966
+ plI,
14328
15967
  plantuml,
14329
15968
  plpgsql,
14330
15969
  plsql,
@@ -14336,24 +15975,29 @@ var languages = [
14336
15975
  processing,
14337
15976
  prolog,
14338
15977
  promql,
15978
+ properties,
14339
15979
  protobuf,
15980
+ prql,
14340
15981
  pug,
14341
15982
  puppet,
14342
15983
  purescript,
14343
15984
  python,
14344
- qml,
15985
+ q,
14345
15986
  qmake,
15987
+ qml,
14346
15988
  qsharp,
14347
15989
  r,
14348
15990
  racket,
14349
15991
  raku,
14350
15992
  razor,
15993
+ reasonml,
14351
15994
  rebol,
14352
15995
  red,
14353
- reasonml,
14354
15996
  rego,
15997
+ renpy,
14355
15998
  rescript,
14356
15999
  restructuredtext,
16000
+ rexx,
14357
16001
  roc,
14358
16002
  rpg,
14359
16003
  ruby,
@@ -14364,14 +16008,16 @@ var languages = [
14364
16008
  scss,
14365
16009
  self,
14366
16010
  simula,
16011
+ slang,
14367
16012
  smalltalk,
14368
16013
  smarty,
16014
+ smithy,
14369
16015
  snakemake,
14370
16016
  snobol,
14371
16017
  solidity,
14372
16018
  soql,
14373
- sparql,
14374
16019
  spark,
16020
+ sparql,
14375
16021
  spl,
14376
16022
  spss,
14377
16023
  sql,
@@ -14380,9 +16026,11 @@ var languages = [
14380
16026
  starlark,
14381
16027
  stata,
14382
16028
  stylus,
16029
+ supercollider,
14383
16030
  svelte,
14384
16031
  svg,
14385
16032
  svn,
16033
+ sway,
14386
16034
  swift,
14387
16035
  tcl,
14388
16036
  tcsh,
@@ -14396,21 +16044,24 @@ var languages = [
14396
16044
  twee,
14397
16045
  twig,
14398
16046
  typescript,
16047
+ typespec,
14399
16048
  typst,
14400
16049
  unison,
14401
16050
  v,
14402
16051
  vala,
14403
- vba,
14404
16052
  vale,
16053
+ vba,
16054
+ vbscript,
14405
16055
  velocity,
14406
16056
  verilog,
14407
16057
  verse,
14408
16058
  vhdl,
16059
+ vimscript,
14409
16060
  visualBasic,
14410
16061
  vue,
14411
16062
  vyper,
14412
- webassembly,
14413
16063
  wdl,
16064
+ webassembly,
14414
16065
  wgsl,
14415
16066
  wren,
14416
16067
  xaml,
@@ -14418,6 +16069,7 @@ var languages = [
14418
16069
  xpath,
14419
16070
  xquery,
14420
16071
  xslt,
16072
+ yacc,
14421
16073
  yaml,
14422
16074
  yara,
14423
16075
  zeek,
@@ -14426,37 +16078,14 @@ var languages = [
14426
16078
  zsh
14427
16079
  ];
14428
16080
 
14429
- // src/domain/detection/match.ts
14430
- var pathSegmentPattern = /[/\\]/;
14431
- var getBasename = (filename) => {
14432
- const parts = filename.trim().split(pathSegmentPattern);
14433
- return parts.at(-1).toLowerCase();
14434
- };
14435
- var matchesExtension = (basename, extension) => {
14436
- const normalizedExtension = extension.toLowerCase();
14437
- if (normalizedExtension.startsWith(".")) {
14438
- return basename.endsWith(normalizedExtension);
14439
- }
14440
- return basename === normalizedExtension || basename.endsWith(`.${normalizedExtension}`);
14441
- };
14442
- var detectMatchingEntries = (entries, filename) => {
14443
- const basename = getBasename(filename);
14444
- if (!basename) {
14445
- return [];
14446
- }
14447
- return entries.map((entry, index) => ({
14448
- entry,
14449
- index,
14450
- matchLength: Math.max(
14451
- ...entry.extensions.filter((extension) => matchesExtension(basename, extension)).map((extension) => extension.length)
14452
- )
14453
- })).filter(({ matchLength }) => Number.isFinite(matchLength)).sort((first, second) => second.matchLength - first.matchLength || first.index - second.index).map(({ entry }) => entry);
14454
- };
14455
-
14456
16081
  // src/domain/detection/detect.ts
14457
16082
  var detectLanguages = (filename) => {
14458
16083
  return detectMatchingEntries(languages, filename);
14459
16084
  };
14460
16085
  var detectLanguage = (filename) => detectLanguages(filename).at(0);
16086
+ var detectLanguageByShebang = (content) => {
16087
+ const slug = detectLanguageSlugByShebang(content);
16088
+ return slug ? languages.find((language) => language.slug === slug) : void 0;
16089
+ };
14461
16090
 
14462
- export { detectLanguage, detectLanguages };
16091
+ export { detectLanguage, detectLanguageByShebang, detectLanguageSlugByShebang, detectLanguages };