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.cjs CHANGED
@@ -1,5 +1,129 @@
1
1
  'use strict';
2
2
 
3
+ // src/domain/detection/match.ts
4
+ var pathSegmentPattern = /[/\\]/;
5
+ var indexCache = /* @__PURE__ */ new WeakMap();
6
+ var getBasename = (filename) => {
7
+ const parts = filename.trim().split(pathSegmentPattern);
8
+ return parts.at(-1).toLowerCase();
9
+ };
10
+ var addIndexKey = (index, key, match) => {
11
+ const matches = index.get(key);
12
+ if (matches) {
13
+ matches.push(match);
14
+ } else {
15
+ index.set(key, [match]);
16
+ }
17
+ };
18
+ var buildDetectionIndex = (entries) => {
19
+ const index = /* @__PURE__ */ new Map();
20
+ entries.forEach((entry, entryIndex) => {
21
+ for (const extension of entry.extensions) {
22
+ const normalizedExtension = extension.toLowerCase();
23
+ const match = { entry, index: entryIndex, matchLength: extension.length };
24
+ if (normalizedExtension.startsWith(".")) {
25
+ addIndexKey(index, normalizedExtension, match);
26
+ } else {
27
+ addIndexKey(index, normalizedExtension, match);
28
+ addIndexKey(index, `.${normalizedExtension}`, match);
29
+ }
30
+ }
31
+ });
32
+ return index;
33
+ };
34
+ var getDetectionIndex = (entries) => {
35
+ let index = indexCache.get(entries);
36
+ if (!index) {
37
+ index = buildDetectionIndex(entries);
38
+ indexCache.set(entries, index);
39
+ }
40
+ return index;
41
+ };
42
+ var getLookupKeys = (basename) => {
43
+ const keys = [basename];
44
+ for (let position = basename.indexOf("."); position !== -1; position = basename.indexOf(".", position + 1)) {
45
+ const suffix = basename.slice(position);
46
+ if (suffix !== basename) {
47
+ keys.push(suffix);
48
+ }
49
+ }
50
+ return keys;
51
+ };
52
+ var detectMatchingEntries = (entries, filename) => {
53
+ const basename = getBasename(filename);
54
+ if (!basename) {
55
+ return [];
56
+ }
57
+ const index = getDetectionIndex(entries);
58
+ const bestMatches = /* @__PURE__ */ new Map();
59
+ for (const key of getLookupKeys(basename)) {
60
+ for (const match of index.get(key) ?? []) {
61
+ const existing = bestMatches.get(match.index);
62
+ if (!existing || match.matchLength > existing.matchLength) {
63
+ bestMatches.set(match.index, match);
64
+ }
65
+ }
66
+ }
67
+ return [...bestMatches.values()].sort((first, second) => second.matchLength - first.matchLength || first.index - second.index).map(({ entry }) => entry);
68
+ };
69
+
70
+ // src/domain/detection/shebang.ts
71
+ var SHEBANG_INTERPRETERS = {
72
+ awk: "awk",
73
+ bash: "bash",
74
+ bun: "javascript",
75
+ crystal: "crystal",
76
+ csh: "tcsh",
77
+ dash: "bash",
78
+ deno: "typescript",
79
+ elixir: "elixir",
80
+ escript: "erlang",
81
+ expect: "tcl",
82
+ fish: "fish",
83
+ gawk: "awk",
84
+ groovy: "groovy",
85
+ guile: "scheme",
86
+ janet: "janet",
87
+ julia: "julia",
88
+ ksh: "bash",
89
+ lua: "lua",
90
+ mawk: "awk",
91
+ nawk: "awk",
92
+ node: "javascript",
93
+ nodejs: "javascript",
94
+ nu: "nushell",
95
+ osascript: "applescript",
96
+ perl: "perl",
97
+ php: "php",
98
+ pwsh: "powershell",
99
+ python: "python",
100
+ racket: "racket",
101
+ raku: "raku",
102
+ rscript: "r",
103
+ ruby: "ruby",
104
+ scala: "scala",
105
+ sh: "bash",
106
+ tclsh: "tcl",
107
+ tcsh: "tcsh",
108
+ wish: "tcl",
109
+ zsh: "zsh"
110
+ };
111
+ var trailingVersionPattern = /[-.]?\d[\d.]*$/;
112
+ var lookupInterpreter = (interpreter) => SHEBANG_INTERPRETERS[interpreter] ?? SHEBANG_INTERPRETERS[interpreter.replace(trailingVersionPattern, "")];
113
+ var detectLanguageSlugByShebang = (content) => {
114
+ if (!content.startsWith("#!")) {
115
+ return void 0;
116
+ }
117
+ const newlineIndex = content.search(/\r?\n/);
118
+ const firstLine = newlineIndex === -1 ? content : content.slice(0, newlineIndex);
119
+ const parts = firstLine.slice(2).trim().split(/\s+/);
120
+ let interpreter = parts[0]?.split("/").at(-1)?.toLowerCase();
121
+ if (interpreter === "env") {
122
+ interpreter = parts.slice(1).find((argument) => !argument.startsWith("-"))?.split("/").at(-1)?.toLowerCase();
123
+ }
124
+ return interpreter ? lookupInterpreter(interpreter) : void 0;
125
+ };
126
+
3
127
  // src/languages/abap.ts
4
128
  var abap = {
5
129
  slug: "abap",
@@ -52,10 +176,11 @@ var abap = {
52
176
  // src/languages/actionscript.ts
53
177
  var actionscript = {
54
178
  slug: "actionscript",
179
+ status: "legacy",
55
180
  publishedDate: "1998-01-01",
56
181
  extensions: [".as"],
57
182
  author: "Gary Grossman / Macromedia",
58
- website: "https://airsdk.dev/docs/development/actionscript-3.0",
183
+ website: "https://airsdk.dev",
59
184
  paradigms: ["event-driven", "imperative", "object-oriented", "scripting"],
60
185
  tooling: {
61
186
  runtimes: ["Adobe Flash Player", "Adobe AIR", "Apache Royale"],
@@ -201,6 +326,7 @@ var agda = {
201
326
  // src/languages/algol.ts
202
327
  var algol = {
203
328
  slug: "algol",
329
+ status: "historical",
204
330
  publishedDate: "1958-01-01",
205
331
  extensions: [".alg", ".algol"],
206
332
  author: "ACM-GAMM committee",
@@ -211,7 +337,7 @@ var algol = {
211
337
  ecosystems: ["Academic Computing", "Language Design", "Numerical Computing"]
212
338
  },
213
339
  version: "ALGOL 68",
214
- logo: "https://dummyimage.com/32x32/6B7280/ffffff.png&text=ALG",
340
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/algol.svg",
215
341
  color: "#6B7280",
216
342
  i18n: {
217
343
  en: {
@@ -247,6 +373,55 @@ var algol = {
247
373
  }
248
374
  };
249
375
 
376
+ // src/languages/alloy.ts
377
+ var alloy = {
378
+ slug: "alloy",
379
+ publishedDate: "2002-01-01",
380
+ extensions: [".als"],
381
+ author: "Daniel Jackson / MIT",
382
+ website: "https://alloytools.org",
383
+ paradigms: ["declarative", "logic", "formal-methods"],
384
+ tooling: {
385
+ runtimes: ["Alloy Analyzer", "JVM"],
386
+ ecosystems: ["Formal Methods", "Verification"]
387
+ },
388
+ version: "Alloy 6",
389
+ logo: "https://avatars.githubusercontent.com/u/30268214?v=4",
390
+ color: "#64C800",
391
+ i18n: {
392
+ en: {
393
+ name: "Alloy",
394
+ description: "A relational modeling language with a SAT-based analyzer for finding design flaws.",
395
+ 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."
396
+ },
397
+ es: {
398
+ name: "Alloy",
399
+ description: "Un lenguaje de modelado relacional con un analizador basado en SAT para hallar fallos de dise\xF1o.",
400
+ 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."
401
+ },
402
+ it: {
403
+ name: "Alloy",
404
+ description: "Un linguaggio di modellazione relazionale con un analizzatore basato su SAT per trovare difetti di progetto.",
405
+ 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."
406
+ },
407
+ fr: {
408
+ name: "Alloy",
409
+ description: "Un langage de mod\xE9lisation relationnelle avec un analyseur SAT pour d\xE9tecter les d\xE9fauts de conception.",
410
+ 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."
411
+ },
412
+ de: {
413
+ name: "Alloy",
414
+ description: "Eine relationale Modellierungssprache mit SAT-basiertem Analyzer zum Aufsp\xFCren von Designfehlern.",
415
+ 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."
416
+ },
417
+ pt: {
418
+ name: "Alloy",
419
+ description: "Uma linguagem de modelagem relacional com analisador baseado em SAT para achar falhas de projeto.",
420
+ 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."
421
+ }
422
+ }
423
+ };
424
+
250
425
  // src/languages/ampl.ts
251
426
  var ampl = {
252
427
  slug: "ampl",
@@ -309,7 +484,7 @@ var angelscript = {
309
484
  ecosystems: ["Game Development", "Embedded Scripting", "Modding"]
310
485
  },
311
486
  version: "2.36.1",
312
- logo: "https://dummyimage.com/32x32/2D5FA0/ffffff.png&text=AS",
487
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/angelscript.svg",
313
488
  color: "#2D5FA0",
314
489
  i18n: {
315
490
  en: {
@@ -348,6 +523,7 @@ var angelscript = {
348
523
  // src/languages/ante.ts
349
524
  var ante = {
350
525
  slug: "ante",
526
+ status: "experimental",
351
527
  publishedDate: "2019-01-01",
352
528
  extensions: [".ante"],
353
529
  author: "Evan Haas",
@@ -795,6 +971,7 @@ var asp = {
795
971
  // src/languages/assembly.ts
796
972
  var assembly = {
797
973
  slug: "assembly",
974
+ aliases: ["asm"],
798
975
  publishedDate: "1949-01-01",
799
976
  extensions: [".asm", ".s", ".S", ".inc"],
800
977
  author: "Machine architecture vendors and assembler implementers",
@@ -850,6 +1027,9 @@ var assemblyscript = {
850
1027
  author: "Daniel Wirtz / AssemblyScript Contributors",
851
1028
  website: "https://www.assemblyscript.org",
852
1029
  paradigms: ["imperative", "object-oriented", "compiled"],
1030
+ relations: {
1031
+ compilesTo: ["webassembly"]
1032
+ },
853
1033
  tooling: {
854
1034
  runtimes: ["Wasm", "WASI"],
855
1035
  ecosystems: ["WebAssembly"]
@@ -944,6 +1124,7 @@ var astro = {
944
1124
  // src/languages/austral.ts
945
1125
  var austral = {
946
1126
  slug: "austral",
1127
+ status: "experimental",
947
1128
  publishedDate: "2021-01-01",
948
1129
  extensions: [".aum", ".aui"],
949
1130
  author: "Fernando Borretti",
@@ -954,7 +1135,7 @@ var austral = {
954
1135
  ecosystems: ["Systems Programming", "Memory Safety", "Research"]
955
1136
  },
956
1137
  version: "0.1.0",
957
- logo: "https://dummyimage.com/32x32/0F766E/ffffff.png&text=Au",
1138
+ logo: "https://avatars.githubusercontent.com/u/17337956?v=4",
958
1139
  color: "#0F766E",
959
1140
  i18n: {
960
1141
  en: {
@@ -1385,6 +1566,7 @@ var bazel = {
1385
1566
  // src/languages/bcpl.ts
1386
1567
  var bcpl = {
1387
1568
  slug: "bcpl",
1569
+ status: "historical",
1388
1570
  publishedDate: "1967-01-01",
1389
1571
  extensions: [".bcpl"],
1390
1572
  author: "Martin Richards",
@@ -1395,7 +1577,7 @@ var bcpl = {
1395
1577
  ecosystems: ["Systems Programming", "Operating Systems", "Language History"]
1396
1578
  },
1397
1579
  version: "Cintsys BCPL",
1398
- logo: "https://dummyimage.com/32x32/374151/ffffff.png&text=BC",
1580
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/bcpl.svg",
1399
1581
  color: "#374151",
1400
1582
  i18n: {
1401
1583
  en: {
@@ -1444,7 +1626,7 @@ var bibtex = {
1444
1626
  ecosystems: ["TeX", "LaTeX", "Academic publishing"]
1445
1627
  },
1446
1628
  version: "stable",
1447
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Bi",
1629
+ logo: "https://upload.wikimedia.org/wikipedia/commons/9/92/LaTeX_logo.svg",
1448
1630
  color: "#2563EB",
1449
1631
  i18n: {
1450
1632
  en: {
@@ -1583,6 +1765,7 @@ var blade = {
1583
1765
  // src/languages/bosque.ts
1584
1766
  var bosque = {
1585
1767
  slug: "bosque",
1768
+ status: "experimental",
1586
1769
  publishedDate: "2019-04-15",
1587
1770
  extensions: [".bsq"],
1588
1771
  author: "Microsoft Research",
@@ -1593,7 +1776,7 @@ var bosque = {
1593
1776
  ecosystems: ["Research", "Verification", "Application Logic"]
1594
1777
  },
1595
1778
  version: "experimental",
1596
- logo: "https://dummyimage.com/32x32/0078D4/ffffff.png&text=B",
1779
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/bosque.svg",
1597
1780
  color: "#0078D4",
1598
1781
  i18n: {
1599
1782
  en: {
@@ -1691,7 +1874,7 @@ var brainfuck = {
1691
1874
  ecosystems: ["Esoteric programming"]
1692
1875
  },
1693
1876
  version: "stable",
1694
- logo: "https://dummyimage.com/32x32/111827/ffffff.png&text=BF",
1877
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/brainfuck.svg",
1695
1878
  color: "#111827",
1696
1879
  i18n: {
1697
1880
  en: {
@@ -1777,6 +1960,59 @@ var c = {
1777
1960
  }
1778
1961
  };
1779
1962
 
1963
+ // src/languages/c3.ts
1964
+ var c3 = {
1965
+ slug: "c3",
1966
+ status: "experimental",
1967
+ publishedDate: "2019-07-01",
1968
+ extensions: [".c3", ".c3i"],
1969
+ author: "Christoffer Lern\xF6",
1970
+ website: "https://c3-lang.org",
1971
+ paradigms: ["imperative", "procedural", "systems"],
1972
+ relations: {
1973
+ dialectOf: ["c"]
1974
+ },
1975
+ tooling: {
1976
+ runtimes: ["Native", "LLVM"],
1977
+ ecosystems: ["Systems"]
1978
+ },
1979
+ version: "0.7.5",
1980
+ logo: "https://avatars.githubusercontent.com/u/53541653?v=4",
1981
+ color: "#295B9A",
1982
+ i18n: {
1983
+ en: {
1984
+ name: "C3",
1985
+ description: "An evolution of C with modules, generics, and safety, keeping C ABI compatibility.",
1986
+ 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."
1987
+ },
1988
+ es: {
1989
+ name: "C3",
1990
+ description: "Una evoluci\xF3n de C con m\xF3dulos, gen\xE9ricos y seguridad, manteniendo compatibilidad ABI con C.",
1991
+ 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."
1992
+ },
1993
+ it: {
1994
+ name: "C3",
1995
+ description: "Un'evoluzione di C con moduli, generics e sicurezza, mantenendo la compatibilit\xE0 ABI con C.",
1996
+ 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."
1997
+ },
1998
+ fr: {
1999
+ name: "C3",
2000
+ description: "Une \xE9volution de C avec modules, g\xE9n\xE9riques et s\xFBret\xE9, compatible ABI avec C.",
2001
+ 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."
2002
+ },
2003
+ de: {
2004
+ name: "C3",
2005
+ description: "Eine Weiterentwicklung von C mit Modulen, Generics und Sicherheit, ABI-kompatibel zu C.",
2006
+ 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."
2007
+ },
2008
+ pt: {
2009
+ name: "C3",
2010
+ description: "Uma evolu\xE7\xE3o do C com m\xF3dulos, gen\xE9ricos e seguran\xE7a, mantendo compatibilidade ABI com C.",
2011
+ 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."
2012
+ }
2013
+ }
2014
+ };
2015
+
1780
2016
  // src/languages/cairo.ts
1781
2017
  var cairo = {
1782
2018
  slug: "cairo",
@@ -1879,6 +2115,7 @@ var capnproto = {
1879
2115
  // src/languages/carbon.ts
1880
2116
  var carbon = {
1881
2117
  slug: "carbon",
2118
+ status: "experimental",
1882
2119
  publishedDate: "2022-07-19",
1883
2120
  extensions: [".carbon"],
1884
2121
  author: "Carbon Language Project",
@@ -2075,6 +2312,59 @@ var circom = {
2075
2312
  }
2076
2313
  };
2077
2314
 
2315
+ // src/languages/clarity.ts
2316
+ var clarity = {
2317
+ slug: "clarity",
2318
+ publishedDate: "2021-01-14",
2319
+ extensions: [".clar"],
2320
+ author: "Hiro Systems / Stacks",
2321
+ website: "https://clarity-lang.org",
2322
+ paradigms: ["functional", "declarative", "smart-contract"],
2323
+ relations: {
2324
+ dialectOf: ["lisp"]
2325
+ },
2326
+ tooling: {
2327
+ runtimes: ["Stacks blockchain"],
2328
+ packageManagers: ["Clarinet"],
2329
+ ecosystems: ["Blockchain", "Web3"]
2330
+ },
2331
+ version: "Clarity 3",
2332
+ logo: "https://avatars.githubusercontent.com/u/66125257?v=4",
2333
+ color: "#5546FF",
2334
+ i18n: {
2335
+ en: {
2336
+ name: "Clarity",
2337
+ description: "A decidable, Lisp-like smart contract language for the Stacks Bitcoin layer.",
2338
+ 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."
2339
+ },
2340
+ es: {
2341
+ name: "Clarity",
2342
+ description: "Un lenguaje de contratos inteligentes decidible y tipo Lisp para la capa Bitcoin de Stacks.",
2343
+ 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."
2344
+ },
2345
+ it: {
2346
+ name: "Clarity",
2347
+ description: "Un linguaggio per smart contract decidibile e in stile Lisp per il layer Bitcoin di Stacks.",
2348
+ 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."
2349
+ },
2350
+ fr: {
2351
+ name: "Clarity",
2352
+ description: "Un langage de smart contracts d\xE9cidable, de type Lisp, pour la couche Bitcoin de Stacks.",
2353
+ 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."
2354
+ },
2355
+ de: {
2356
+ name: "Clarity",
2357
+ description: "Eine entscheidbare, Lisp-artige Smart-Contract-Sprache f\xFCr die Bitcoin-Schicht von Stacks.",
2358
+ 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."
2359
+ },
2360
+ pt: {
2361
+ name: "Clarity",
2362
+ description: "Uma linguagem de contratos inteligentes decid\xEDvel e estilo Lisp para a camada Bitcoin da Stacks.",
2363
+ 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."
2364
+ }
2365
+ }
2366
+ };
2367
+
2078
2368
  // src/languages/clojure.ts
2079
2369
  var clojure = {
2080
2370
  slug: "clojure",
@@ -2187,7 +2477,7 @@ var cobol = {
2187
2477
  ecosystems: ["Mainframe", "Business applications", "Transaction processing"]
2188
2478
  },
2189
2479
  version: "ISO/IEC 1989:2023",
2190
- logo: "https://logo.svgcdn.com/devicon/cobol-original.png",
2480
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_cobol.svg",
2191
2481
  color: "#005CA5",
2192
2482
  i18n: {
2193
2483
  en: {
@@ -2231,6 +2521,9 @@ var coffeescript = {
2231
2521
  author: "Jeremy Ashkenas",
2232
2522
  website: "https://coffeescript.org",
2233
2523
  paradigms: ["functional", "imperative", "object-oriented", "scripting"],
2524
+ relations: {
2525
+ compilesTo: ["javascript"]
2526
+ },
2234
2527
  tooling: {
2235
2528
  runtimes: ["Browser", "Node.js"],
2236
2529
  packageManagers: ["npm", "pnpm", "Yarn"],
@@ -2326,6 +2619,7 @@ var coldfusion = {
2326
2619
  // src/languages/coq.ts
2327
2620
  var coq = {
2328
2621
  slug: "coq",
2622
+ aliases: ["rocq"],
2329
2623
  publishedDate: "1989-01-01",
2330
2624
  extensions: [".v"],
2331
2625
  author: "INRIA / Rocq Prover Development Team",
@@ -2376,11 +2670,15 @@ var coq = {
2376
2670
  // src/languages/cpp.ts
2377
2671
  var cpp = {
2378
2672
  slug: "cpp",
2673
+ aliases: ["c++", "cplusplus"],
2379
2674
  publishedDate: "1985-10-01",
2380
2675
  extensions: [".cpp", ".cc", ".cxx", ".h", ".hpp", ".hh", ".hxx"],
2381
2676
  author: "Bjarne Stroustrup",
2382
2677
  website: "https://isocpp.org",
2383
2678
  paradigms: ["procedural", "object-oriented", "generic", "functional"],
2679
+ relations: {
2680
+ supersetOf: ["c"]
2681
+ },
2384
2682
  tooling: {
2385
2683
  runtimes: ["Native"],
2386
2684
  packageManagers: ["Conan", "vcpkg"],
@@ -2525,6 +2823,7 @@ var crystal = {
2525
2823
  // src/languages/csharp.ts
2526
2824
  var csharp = {
2527
2825
  slug: "csharp",
2826
+ aliases: ["c#", "cs"],
2528
2827
  publishedDate: "2000-06-26",
2529
2828
  extensions: [".cs", ".csx"],
2530
2829
  author: "Anders Hejlsberg / Microsoft",
@@ -2767,6 +3066,55 @@ var curry = {
2767
3066
  }
2768
3067
  };
2769
3068
 
3069
+ // src/languages/cwl.ts
3070
+ var cwl = {
3071
+ slug: "cwl",
3072
+ publishedDate: "2016-07-08",
3073
+ extensions: [".cwl"],
3074
+ author: "Common Workflow Language project",
3075
+ website: "https://www.commonwl.org",
3076
+ paradigms: ["declarative", "workflow"],
3077
+ tooling: {
3078
+ runtimes: ["cwltool", "Toil", "Arvados"],
3079
+ ecosystems: ["Bioinformatics", "Scientific Computing", "HPC"]
3080
+ },
3081
+ version: "v1.2",
3082
+ logo: "https://avatars.githubusercontent.com/u/9947495?v=4",
3083
+ color: "#B5314C",
3084
+ i18n: {
3085
+ en: {
3086
+ name: "Common Workflow Language",
3087
+ description: "An open standard for describing portable, reproducible data-analysis workflows.",
3088
+ 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."
3089
+ },
3090
+ es: {
3091
+ name: "Common Workflow Language",
3092
+ description: "Un est\xE1ndar abierto para describir flujos de an\xE1lisis de datos portables y reproducibles.",
3093
+ 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."
3094
+ },
3095
+ it: {
3096
+ name: "Common Workflow Language",
3097
+ description: "Uno standard aperto per descrivere flussi di analisi dati portabili e riproducibili.",
3098
+ 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."
3099
+ },
3100
+ fr: {
3101
+ name: "Common Workflow Language",
3102
+ description: "Un standard ouvert pour d\xE9crire des workflows d'analyse de donn\xE9es portables et reproductibles.",
3103
+ 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."
3104
+ },
3105
+ de: {
3106
+ name: "Common Workflow Language",
3107
+ description: "Ein offener Standard zur Beschreibung portabler, reproduzierbarer Datenanalyse-Workflows.",
3108
+ 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."
3109
+ },
3110
+ pt: {
3111
+ name: "Common Workflow Language",
3112
+ description: "Um padr\xE3o aberto para descrever fluxos de an\xE1lise de dados port\xE1veis e reproduz\xEDveis.",
3113
+ 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."
3114
+ }
3115
+ }
3116
+ };
3117
+
2770
3118
  // src/languages/cypher.ts
2771
3119
  var cypher = {
2772
3120
  slug: "cypher",
@@ -2824,6 +3172,10 @@ var cython = {
2824
3172
  author: "Robert Bradshaw, Stefan Behnel, Dag Sverre Seljebotn, Greg Ewing, et al.",
2825
3173
  website: "https://cython.org",
2826
3174
  paradigms: ["object-oriented", "imperative", "procedural"],
3175
+ relations: {
3176
+ supersetOf: ["python"],
3177
+ compilesTo: ["c"]
3178
+ },
2827
3179
  tooling: {
2828
3180
  runtimes: ["CPython"],
2829
3181
  packageManagers: ["pip", "conda", "Poetry"],
@@ -2974,6 +3326,9 @@ var dart = {
2974
3326
  author: "Google",
2975
3327
  website: "https://dart.dev",
2976
3328
  paradigms: ["class-based", "functional", "object-oriented", "structured"],
3329
+ relations: {
3330
+ compilesTo: ["javascript"]
3331
+ },
2977
3332
  tooling: {
2978
3333
  runtimes: ["Dart VM", "Dart Native", "JavaScript"],
2979
3334
  packageManagers: ["pub"],
@@ -3033,7 +3388,7 @@ var dax = {
3033
3388
  ]
3034
3389
  },
3035
3390
  version: "DAX 2025",
3036
- logo: "https://dummyimage.com/32x32/F2C811/000000.png&text=DAX",
3391
+ logo: "https://upload.wikimedia.org/wikipedia/commons/c/cf/New_Power_BI_Logo.svg",
3037
3392
  color: "#F2C811",
3038
3393
  i18n: {
3039
3394
  en: {
@@ -3172,6 +3527,7 @@ var dita = {
3172
3527
  // src/languages/dockerfile.ts
3173
3528
  var dockerfile = {
3174
3529
  slug: "dockerfile",
3530
+ aliases: ["docker"],
3175
3531
  publishedDate: "2013-03-20",
3176
3532
  extensions: ["Dockerfile", ".dockerfile"],
3177
3533
  author: "Docker, Inc.",
@@ -3317,6 +3673,56 @@ var earthly = {
3317
3673
  }
3318
3674
  };
3319
3675
 
3676
+ // src/languages/edgeql.ts
3677
+ var edgeql = {
3678
+ slug: "edgeql",
3679
+ aliases: ["gel"],
3680
+ publishedDate: "2022-02-10",
3681
+ extensions: [".edgeql"],
3682
+ author: "EdgeDB (Gel Data)",
3683
+ website: "https://www.geldata.com",
3684
+ paradigms: ["declarative", "functional", "query"],
3685
+ tooling: {
3686
+ runtimes: ["Gel", "EdgeDB"],
3687
+ ecosystems: ["Databases"]
3688
+ },
3689
+ version: "Gel 6",
3690
+ logo: "https://avatars.githubusercontent.com/u/200293856?v=4",
3691
+ color: "#6963FF",
3692
+ i18n: {
3693
+ en: {
3694
+ name: "EdgeQL",
3695
+ description: "The composable query language of the Gel (formerly EdgeDB) graph-relational database.",
3696
+ 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."
3697
+ },
3698
+ es: {
3699
+ name: "EdgeQL",
3700
+ description: "El lenguaje de consultas componible de la base de datos grafo-relacional Gel (antes EdgeDB).",
3701
+ 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."
3702
+ },
3703
+ it: {
3704
+ name: "EdgeQL",
3705
+ description: "Il linguaggio di query componibile del database grafo-relazionale Gel (ex EdgeDB).",
3706
+ 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."
3707
+ },
3708
+ fr: {
3709
+ name: "EdgeQL",
3710
+ description: "Le langage de requ\xEAte composable de la base graphe-relationnelle Gel (ex-EdgeDB).",
3711
+ 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."
3712
+ },
3713
+ de: {
3714
+ name: "EdgeQL",
3715
+ description: "Die komponierbare Abfragesprache der graph-relationalen Datenbank Gel (fr\xFCher EdgeDB).",
3716
+ 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."
3717
+ },
3718
+ pt: {
3719
+ name: "EdgeQL",
3720
+ description: "A linguagem de consulta compon\xEDvel do banco grafo-relacional Gel (antes EdgeDB).",
3721
+ 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."
3722
+ }
3723
+ }
3724
+ };
3725
+
3320
3726
  // src/languages/editorconfig.ts
3321
3727
  var editorconfig = {
3322
3728
  slug: "editorconfig",
@@ -3523,6 +3929,9 @@ var elm = {
3523
3929
  author: "Evan Czaplicki",
3524
3930
  website: "https://elm-lang.org",
3525
3931
  paradigms: ["functional", "declarative", "reactive", "statically typed"],
3932
+ relations: {
3933
+ compilesTo: ["javascript"]
3934
+ },
3526
3935
  tooling: {
3527
3936
  runtimes: ["Browser", "JavaScript"],
3528
3937
  packageManagers: ["elm", "npm", "pnpm", "Yarn"],
@@ -3565,13 +3974,67 @@ var elm = {
3565
3974
  }
3566
3975
  };
3567
3976
 
3977
+ // src/languages/emacs-lisp.ts
3978
+ var emacsLisp = {
3979
+ slug: "emacs-lisp",
3980
+ aliases: ["elisp"],
3981
+ publishedDate: "1985-03-20",
3982
+ extensions: [".el"],
3983
+ author: "Richard Stallman / GNU Project",
3984
+ website: "https://www.gnu.org/software/emacs/manual/elisp.html",
3985
+ paradigms: ["functional", "imperative", "meta-programming", "scripting"],
3986
+ relations: {
3987
+ dialectOf: ["lisp"]
3988
+ },
3989
+ tooling: {
3990
+ runtimes: ["GNU Emacs"],
3991
+ packageManagers: ["package.el", "ELPA", "MELPA"],
3992
+ ecosystems: ["Text Editors", "Scripting"]
3993
+ },
3994
+ version: "Emacs 30.1",
3995
+ logo: "https://cdn.simpleicons.org/gnuemacs/7F5AB6",
3996
+ color: "#7F5AB6",
3997
+ i18n: {
3998
+ en: {
3999
+ name: "Emacs Lisp",
4000
+ description: "The Lisp dialect used to implement and extend the GNU Emacs editor.",
4001
+ 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."
4002
+ },
4003
+ es: {
4004
+ name: "Emacs Lisp",
4005
+ description: "El dialecto de Lisp usado para implementar y extender el editor GNU Emacs.",
4006
+ 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."
4007
+ },
4008
+ it: {
4009
+ name: "Emacs Lisp",
4010
+ description: "Il dialetto Lisp usato per implementare ed estendere l'editor GNU Emacs.",
4011
+ 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."
4012
+ },
4013
+ fr: {
4014
+ name: "Emacs Lisp",
4015
+ description: "Le dialecte Lisp utilis\xE9 pour impl\xE9menter et \xE9tendre l'\xE9diteur GNU Emacs.",
4016
+ 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."
4017
+ },
4018
+ de: {
4019
+ name: "Emacs Lisp",
4020
+ description: "Der Lisp-Dialekt, mit dem der GNU-Emacs-Editor implementiert und erweitert wird.",
4021
+ 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."
4022
+ },
4023
+ pt: {
4024
+ name: "Emacs Lisp",
4025
+ description: "O dialeto de Lisp usado para implementar e estender o editor GNU Emacs.",
4026
+ 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."
4027
+ }
4028
+ }
4029
+ };
4030
+
3568
4031
  // src/languages/erb.ts
3569
4032
  var erb = {
3570
4033
  slug: "erb",
3571
4034
  publishedDate: "2000-01-01",
3572
4035
  extensions: [".erb", ".rhtml", ".html.erb"],
3573
4036
  author: "Masatoshi Seki / Ruby",
3574
- website: "https://ruby-doc.org/stdlib/erb/",
4037
+ website: "https://docs.ruby-lang.org/en/master/ERB.html",
3575
4038
  paradigms: ["templating", "embedded", "markup"],
3576
4039
  tooling: {
3577
4040
  runtimes: ["Ruby", "Ruby on Rails"],
@@ -3715,9 +4178,62 @@ var factor = {
3715
4178
  }
3716
4179
  };
3717
4180
 
4181
+ // src/languages/faust.ts
4182
+ var faust = {
4183
+ slug: "faust",
4184
+ publishedDate: "2002-01-01",
4185
+ extensions: [".dsp"],
4186
+ author: "GRAME-CNCM",
4187
+ website: "https://faust.grame.fr",
4188
+ paradigms: ["functional", "dataflow", "audio"],
4189
+ relations: {
4190
+ compilesTo: ["cpp", "webassembly"]
4191
+ },
4192
+ tooling: {
4193
+ runtimes: ["Native", "Browser", "Embedded DSP"],
4194
+ ecosystems: ["Audio", "Music", "DSP"]
4195
+ },
4196
+ version: "stable",
4197
+ logo: "https://faust.grame.fr/img/faustText.svg",
4198
+ color: "#C6613F",
4199
+ i18n: {
4200
+ en: {
4201
+ name: "Faust",
4202
+ description: "A functional language for real-time audio DSP that compiles to C++, WebAssembly, and more.",
4203
+ 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."
4204
+ },
4205
+ es: {
4206
+ name: "Faust",
4207
+ description: "Un lenguaje funcional para DSP de audio en tiempo real que compila a C++, WebAssembly y m\xE1s.",
4208
+ 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."
4209
+ },
4210
+ it: {
4211
+ name: "Faust",
4212
+ description: "Un linguaggio funzionale per DSP audio in tempo reale che compila in C++, WebAssembly e altro.",
4213
+ 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."
4214
+ },
4215
+ fr: {
4216
+ name: "Faust",
4217
+ description: "Un langage fonctionnel pour le DSP audio temps r\xE9el, compilant vers C++, WebAssembly et plus.",
4218
+ 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."
4219
+ },
4220
+ de: {
4221
+ name: "Faust",
4222
+ description: "Eine funktionale Sprache f\xFCr Echtzeit-Audio-DSP, die zu C++, WebAssembly und mehr kompiliert.",
4223
+ 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."
4224
+ },
4225
+ pt: {
4226
+ name: "Faust",
4227
+ description: "Uma linguagem funcional para DSP de \xE1udio em tempo real que compila para C++, WebAssembly e mais.",
4228
+ 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."
4229
+ }
4230
+ }
4231
+ };
4232
+
3718
4233
  // src/languages/fe.ts
3719
4234
  var fe = {
3720
4235
  slug: "fe",
4236
+ status: "experimental",
3721
4237
  publishedDate: "2020-10-08",
3722
4238
  extensions: [".fe"],
3723
4239
  author: "Ethereum Foundation contributors",
@@ -3772,6 +4288,9 @@ var fennel = {
3772
4288
  author: "Calvin Rose, Phil Hagelberg",
3773
4289
  website: "https://fennel-lang.org",
3774
4290
  paradigms: ["functional", "lisp", "scripting", "metaprogramming"],
4291
+ relations: {
4292
+ compilesTo: ["lua"]
4293
+ },
3775
4294
  tooling: {
3776
4295
  runtimes: ["Lua", "LuaJIT"],
3777
4296
  packageManagers: ["LuaRocks"],
@@ -3913,6 +4432,56 @@ var flatbuffers = {
3913
4432
  }
3914
4433
  };
3915
4434
 
4435
+ // src/languages/flix.ts
4436
+ var flix = {
4437
+ slug: "flix",
4438
+ publishedDate: "2016-01-01",
4439
+ extensions: [".flix"],
4440
+ author: "Magnus Madsen / Aarhus University",
4441
+ website: "https://flix.dev",
4442
+ paradigms: ["functional", "imperative", "logic", "concurrent"],
4443
+ tooling: {
4444
+ runtimes: ["JVM"],
4445
+ packageManagers: ["Flix package manager"],
4446
+ ecosystems: ["JVM"]
4447
+ },
4448
+ version: "0.60.0",
4449
+ logo: "https://avatars.githubusercontent.com/u/16831634?v=4",
4450
+ color: "#2D2A55",
4451
+ i18n: {
4452
+ en: {
4453
+ name: "Flix",
4454
+ description: "A JVM language combining functional, imperative, and Datalog-style logic programming.",
4455
+ 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."
4456
+ },
4457
+ es: {
4458
+ name: "Flix",
4459
+ description: "Un lenguaje JVM que combina programaci\xF3n funcional, imperativa y l\xF3gica estilo Datalog.",
4460
+ 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."
4461
+ },
4462
+ it: {
4463
+ name: "Flix",
4464
+ description: "Un linguaggio JVM che combina programmazione funzionale, imperativa e logica in stile Datalog.",
4465
+ 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."
4466
+ },
4467
+ fr: {
4468
+ name: "Flix",
4469
+ description: "Un langage JVM combinant programmation fonctionnelle, imp\xE9rative et logique de type Datalog.",
4470
+ 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."
4471
+ },
4472
+ de: {
4473
+ name: "Flix",
4474
+ description: "Eine JVM-Sprache, die funktionale, imperative und Datalog-artige Logikprogrammierung vereint.",
4475
+ 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."
4476
+ },
4477
+ pt: {
4478
+ name: "Flix",
4479
+ description: "Uma linguagem JVM que combina programa\xE7\xE3o funcional, imperativa e l\xF3gica estilo Datalog.",
4480
+ 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."
4481
+ }
4482
+ }
4483
+ };
4484
+
3916
4485
  // src/languages/flux.ts
3917
4486
  var flux = {
3918
4487
  slug: "flux",
@@ -4067,7 +4636,7 @@ var fql = {
4067
4636
  publishedDate: "2012-01-01",
4068
4637
  extensions: [".fql"],
4069
4638
  author: "Facebook",
4070
- website: "https://developers.facebook.com/docs/reference/fql/",
4639
+ website: "https://developers.facebook.com/docs/graph-api/",
4071
4640
  paradigms: ["query", "declarative"],
4072
4641
  tooling: {
4073
4642
  runtimes: ["Facebook Platform"],
@@ -4163,6 +4732,7 @@ var freemarker = {
4163
4732
  // src/languages/fsharp.ts
4164
4733
  var fsharp = {
4165
4734
  slug: "fsharp",
4735
+ aliases: ["f#"],
4166
4736
  publishedDate: "2005-05-01",
4167
4737
  extensions: [".fs", ".fsi", ".fsx", ".fsscript"],
4168
4738
  author: "Don Syme / Microsoft Research",
@@ -4260,6 +4830,59 @@ var fstar = {
4260
4830
  }
4261
4831
  };
4262
4832
 
4833
+ // src/languages/futhark.ts
4834
+ var futhark = {
4835
+ slug: "futhark",
4836
+ status: "experimental",
4837
+ publishedDate: "2014-01-01",
4838
+ extensions: [".fut"],
4839
+ author: "Troels Henriksen / DIKU, University of Copenhagen",
4840
+ website: "https://futhark-lang.org",
4841
+ paradigms: ["functional", "array", "parallel"],
4842
+ relations: {
4843
+ compilesTo: ["c"]
4844
+ },
4845
+ tooling: {
4846
+ runtimes: ["OpenCL", "CUDA", "Multicore CPU"],
4847
+ ecosystems: ["GPU", "HPC", "Scientific Computing"]
4848
+ },
4849
+ version: "0.25.32",
4850
+ logo: "https://raw.githubusercontent.com/diku-dk/futhark/master/assets/logo.svg",
4851
+ color: "#5F021F",
4852
+ i18n: {
4853
+ en: {
4854
+ name: "Futhark",
4855
+ description: "A purely functional array language that compiles to fast GPU code.",
4856
+ 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."
4857
+ },
4858
+ es: {
4859
+ name: "Futhark",
4860
+ description: "Un lenguaje de arrays puramente funcional que compila a c\xF3digo GPU r\xE1pido.",
4861
+ 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."
4862
+ },
4863
+ it: {
4864
+ name: "Futhark",
4865
+ description: "Un linguaggio di array puramente funzionale che compila in codice GPU veloce.",
4866
+ 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."
4867
+ },
4868
+ fr: {
4869
+ name: "Futhark",
4870
+ description: "Un langage de tableaux purement fonctionnel qui compile en code GPU rapide.",
4871
+ 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."
4872
+ },
4873
+ de: {
4874
+ name: "Futhark",
4875
+ description: "Eine rein funktionale Array-Sprache, die zu schnellem GPU-Code kompiliert.",
4876
+ 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."
4877
+ },
4878
+ pt: {
4879
+ name: "Futhark",
4880
+ description: "Uma linguagem de arrays puramente funcional que compila para c\xF3digo GPU r\xE1pido.",
4881
+ 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."
4882
+ }
4883
+ }
4884
+ };
4885
+
4263
4886
  // src/languages/gcode.ts
4264
4887
  var gcode = {
4265
4888
  slug: "gcode",
@@ -4273,7 +4896,7 @@ var gcode = {
4273
4896
  ecosystems: ["CNC machining", "Additive manufacturing"]
4274
4897
  },
4275
4898
  version: "RS-274",
4276
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=G",
4899
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_gcode.svg",
4277
4900
  color: "#DC2626",
4278
4901
  i18n: {
4279
4902
  en: {
@@ -4372,7 +4995,7 @@ var gettext = {
4372
4995
  ecosystems: ["Internationalization", "Localization"]
4373
4996
  },
4374
4997
  version: "stable",
4375
- logo: "https://dummyimage.com/32x32/7C3AED/ffffff.png&text=PO",
4998
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
4376
4999
  color: "#7C3AED",
4377
5000
  i18n: {
4378
5001
  en: {
@@ -4465,6 +5088,9 @@ var gleam = {
4465
5088
  author: "Louis Pilfold",
4466
5089
  website: "https://gleam.run",
4467
5090
  paradigms: ["functional", "statically typed", "concurrent", "actor-model"],
5091
+ relations: {
5092
+ compilesTo: ["erlang", "javascript"]
5093
+ },
4468
5094
  tooling: {
4469
5095
  runtimes: ["Erlang/OTP", "BEAM", "JavaScript"],
4470
5096
  packageManagers: ["gleam", "Hex"],
@@ -4609,6 +5235,7 @@ var gml = {
4609
5235
  // src/languages/go.ts
4610
5236
  var go = {
4611
5237
  slug: "go",
5238
+ aliases: ["golang"],
4612
5239
  publishedDate: "2012-03-28",
4613
5240
  extensions: [".go"],
4614
5241
  author: "Robert Griesemer, Rob Pike, Ken Thompson / Google",
@@ -4911,8 +5538,11 @@ var hack = {
4911
5538
  publishedDate: "2014-03-20",
4912
5539
  extensions: [".hack", ".hh", ".hhi"],
4913
5540
  author: "Meta",
4914
- website: "https://docs.hhvm.com/hack/",
5541
+ website: "https://hacklang.org",
4915
5542
  paradigms: ["object-oriented", "functional", "gradually typed", "imperative"],
5543
+ relations: {
5544
+ dialectOf: ["php"]
5545
+ },
4916
5546
  tooling: {
4917
5547
  runtimes: ["HHVM"],
4918
5548
  packageManagers: ["Composer"],
@@ -5163,6 +5793,9 @@ var haxe = {
5163
5793
  author: "Nicolas Cannasse / Haxe Foundation",
5164
5794
  website: "https://haxe.org",
5165
5795
  paradigms: ["object-oriented", "functional", "cross-platform", "statically typed"],
5796
+ relations: {
5797
+ compilesTo: ["javascript", "cpp"]
5798
+ },
5166
5799
  tooling: {
5167
5800
  runtimes: ["JavaScript", "HashLink", "JVM", "C++", "C#", "PHP", "Lua", "Python"],
5168
5801
  packageManagers: ["haxelib"],
@@ -5317,7 +5950,7 @@ var hocon = {
5317
5950
  ecosystems: ["JVM", "Scala", "Akka", "Play Framework", "Configuration"]
5318
5951
  },
5319
5952
  version: "1.4.3",
5320
- logo: "https://dummyimage.com/32x32/F26822/ffffff.png&text=HC",
5953
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/hocon.svg",
5321
5954
  color: "#F26822",
5322
5955
  i18n: {
5323
5956
  en: {
@@ -5658,7 +6291,7 @@ var io = {
5658
6291
  ecosystems: ["Scripting", "Prototype Programming", "Language Exploration"]
5659
6292
  },
5660
6293
  version: "2017.09.06",
5661
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Io",
6294
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_io.svg",
5662
6295
  color: "#2563EB",
5663
6296
  i18n: {
5664
6297
  en: {
@@ -5743,6 +6376,55 @@ var isabelle = {
5743
6376
  }
5744
6377
  };
5745
6378
 
6379
+ // src/languages/j.ts
6380
+ var j = {
6381
+ slug: "j",
6382
+ publishedDate: "1990-01-01",
6383
+ extensions: [".ijs"],
6384
+ author: "Kenneth E. Iverson / Roger Hui",
6385
+ website: "https://www.jsoftware.com",
6386
+ paradigms: ["array", "functional", "tacit"],
6387
+ tooling: {
6388
+ runtimes: ["J Engine"],
6389
+ ecosystems: ["Data Science", "Numerical Computing"]
6390
+ },
6391
+ version: "J9.6",
6392
+ logo: "https://avatars.githubusercontent.com/u/583748?v=4",
6393
+ color: "#9EEDFF",
6394
+ i18n: {
6395
+ en: {
6396
+ name: "J",
6397
+ description: "A terse array language by the creator of APL, using ASCII instead of symbols.",
6398
+ 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."
6399
+ },
6400
+ es: {
6401
+ name: "J",
6402
+ description: "Un lenguaje de arrays conciso del creador de APL, usando ASCII en lugar de s\xEDmbolos.",
6403
+ 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."
6404
+ },
6405
+ it: {
6406
+ name: "J",
6407
+ description: "Un linguaggio di array conciso del creatore di APL, con ASCII al posto dei simboli.",
6408
+ 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."
6409
+ },
6410
+ fr: {
6411
+ name: "J",
6412
+ description: "Un langage de tableaux concis du cr\xE9ateur d'APL, utilisant l'ASCII plut\xF4t que des symboles.",
6413
+ 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."
6414
+ },
6415
+ de: {
6416
+ name: "J",
6417
+ description: "Eine knappe Array-Sprache vom Sch\xF6pfer von APL, mit ASCII statt Sonderzeichen.",
6418
+ 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."
6419
+ },
6420
+ pt: {
6421
+ name: "J",
6422
+ description: "Uma linguagem de arrays concisa do criador do APL, usando ASCII em vez de s\xEDmbolos.",
6423
+ 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."
6424
+ }
6425
+ }
6426
+ };
6427
+
5746
6428
  // src/languages/janet.ts
5747
6429
  var janet = {
5748
6430
  slug: "janet",
@@ -5846,6 +6528,7 @@ var java = {
5846
6528
  // src/languages/javascript.ts
5847
6529
  var javascript = {
5848
6530
  slug: "javascript",
6531
+ aliases: ["js", "ecmascript"],
5849
6532
  publishedDate: "1995-12-04",
5850
6533
  extensions: [".js", ".mjs", ".cjs", ".jsx"],
5851
6534
  author: "Brendan Eich / Netscape",
@@ -5893,6 +6576,55 @@ var javascript = {
5893
6576
  }
5894
6577
  };
5895
6578
 
6579
+ // src/languages/jcl.ts
6580
+ var jcl = {
6581
+ slug: "jcl",
6582
+ publishedDate: "1964-04-07",
6583
+ extensions: [".jcl"],
6584
+ author: "IBM",
6585
+ website: "https://www.ibm.com/docs/en/zos/3.1.0?topic=zos-mvs-jcl-reference",
6586
+ paradigms: ["declarative", "batch"],
6587
+ tooling: {
6588
+ runtimes: ["z/OS", "MVS", "JES2", "JES3"],
6589
+ ecosystems: ["Mainframe", "Batch Processing"]
6590
+ },
6591
+ version: "z/OS 3.1",
6592
+ logo: "https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
6593
+ color: "#1F70C1",
6594
+ i18n: {
6595
+ en: {
6596
+ name: "JCL",
6597
+ description: "IBM Job Control Language for describing batch jobs on z/OS mainframes.",
6598
+ 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."
6599
+ },
6600
+ es: {
6601
+ name: "JCL",
6602
+ description: "El Job Control Language de IBM para describir trabajos batch en mainframes z/OS.",
6603
+ 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."
6604
+ },
6605
+ it: {
6606
+ name: "JCL",
6607
+ description: "Il Job Control Language di IBM per descrivere job batch sui mainframe z/OS.",
6608
+ 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."
6609
+ },
6610
+ fr: {
6611
+ name: "JCL",
6612
+ description: "Le Job Control Language d'IBM pour d\xE9crire les travaux batch sur mainframes z/OS.",
6613
+ 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."
6614
+ },
6615
+ de: {
6616
+ name: "JCL",
6617
+ description: "IBMs Job Control Language zur Beschreibung von Batch-Jobs auf z/OS-Mainframes.",
6618
+ 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."
6619
+ },
6620
+ pt: {
6621
+ name: "JCL",
6622
+ description: "A Job Control Language da IBM para descrever jobs batch em mainframes z/OS.",
6623
+ 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."
6624
+ }
6625
+ }
6626
+ };
6627
+
5896
6628
  // src/languages/jinja.ts
5897
6629
  var jinja = {
5898
6630
  slug: "jinja",
@@ -5992,15 +6724,64 @@ var jmespath = {
5992
6724
  }
5993
6725
  };
5994
6726
 
5995
- // src/languages/json.ts
5996
- var json = {
5997
- slug: "json",
5998
- publishedDate: "2001-04-01",
5999
- extensions: [".json"],
6000
- author: "Douglas Crockford",
6001
- website: "https://www.json.org/json-en.html",
6002
- paradigms: ["data serialization", "declarative"],
6003
- version: "RFC 8259",
6727
+ // src/languages/jq.ts
6728
+ var jq = {
6729
+ slug: "jq",
6730
+ publishedDate: "2012-10-21",
6731
+ extensions: [".jq"],
6732
+ author: "Stephen Dolan",
6733
+ website: "https://jqlang.org",
6734
+ paradigms: ["functional", "declarative", "query"],
6735
+ tooling: {
6736
+ runtimes: ["jq CLI"],
6737
+ ecosystems: ["Data Processing", "DevOps", "Scripting"]
6738
+ },
6739
+ version: "1.8.1",
6740
+ logo: "https://avatars.githubusercontent.com/u/125535133?v=4",
6741
+ color: "#C7254E",
6742
+ i18n: {
6743
+ en: {
6744
+ name: "jq",
6745
+ description: "A functional filter language for slicing, transforming, and querying JSON.",
6746
+ 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."
6747
+ },
6748
+ es: {
6749
+ name: "jq",
6750
+ description: "Un lenguaje funcional de filtros para cortar, transformar y consultar JSON.",
6751
+ 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."
6752
+ },
6753
+ it: {
6754
+ name: "jq",
6755
+ description: "Un linguaggio funzionale di filtri per tagliare, trasformare e interrogare JSON.",
6756
+ 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."
6757
+ },
6758
+ fr: {
6759
+ name: "jq",
6760
+ description: "Un langage fonctionnel de filtres pour d\xE9couper, transformer et interroger du JSON.",
6761
+ 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."
6762
+ },
6763
+ de: {
6764
+ name: "jq",
6765
+ description: "Eine funktionale Filtersprache zum Zerlegen, Transformieren und Abfragen von JSON.",
6766
+ 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."
6767
+ },
6768
+ pt: {
6769
+ name: "jq",
6770
+ description: "Uma linguagem funcional de filtros para fatiar, transformar e consultar JSON.",
6771
+ 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."
6772
+ }
6773
+ }
6774
+ };
6775
+
6776
+ // src/languages/json.ts
6777
+ var json = {
6778
+ slug: "json",
6779
+ publishedDate: "2001-04-01",
6780
+ extensions: [".json"],
6781
+ author: "Douglas Crockford",
6782
+ website: "https://www.json.org/json-en.html",
6783
+ paradigms: ["data serialization", "declarative"],
6784
+ version: "RFC 8259",
6004
6785
  logo: "https://www.json.org/img/json160.gif",
6005
6786
  color: "#000000",
6006
6787
  i18n: {
@@ -6045,6 +6826,9 @@ var json5 = {
6045
6826
  author: "Aseem Kishore",
6046
6827
  website: "https://json5.org",
6047
6828
  paradigms: ["declarative"],
6829
+ relations: {
6830
+ supersetOf: ["json"]
6831
+ },
6048
6832
  tooling: {
6049
6833
  runtimes: ["Node.js", "Browser"],
6050
6834
  packageManagers: ["npm", "pnpm", "Yarn"],
@@ -6144,6 +6928,9 @@ var jsonc = {
6144
6928
  author: "Microsoft",
6145
6929
  website: "https://jsonc.org",
6146
6930
  paradigms: ["data serialization", "configuration"],
6931
+ relations: {
6932
+ supersetOf: ["json"]
6933
+ },
6147
6934
  tooling: {
6148
6935
  runtimes: ["Editors", "Build tools"],
6149
6936
  ecosystems: ["JavaScript", "TypeScript", "Configuration"]
@@ -6537,6 +7324,7 @@ var koka = {
6537
7324
  // src/languages/kotlin.ts
6538
7325
  var kotlin = {
6539
7326
  slug: "kotlin",
7327
+ aliases: ["kt"],
6540
7328
  publishedDate: "2016-02-15",
6541
7329
  extensions: [".kt", ".kts"],
6542
7330
  author: "JetBrains",
@@ -6691,6 +7479,10 @@ var less = {
6691
7479
  author: "Alexis Sellier / Less Core Team",
6692
7480
  website: "https://lesscss.org",
6693
7481
  paradigms: ["declarative", "stylesheet", "preprocessor"],
7482
+ relations: {
7483
+ dialectOf: ["css"],
7484
+ compilesTo: ["css"]
7485
+ },
6694
7486
  tooling: {
6695
7487
  runtimes: ["Less.js", "Node.js", "Browser"],
6696
7488
  packageManagers: ["npm", "pnpm", "Yarn", "Bun"],
@@ -6733,6 +7525,56 @@ var less = {
6733
7525
  }
6734
7526
  };
6735
7527
 
7528
+ // src/languages/lex.ts
7529
+ var lex = {
7530
+ slug: "lex",
7531
+ aliases: ["flex"],
7532
+ publishedDate: "1975-07-01",
7533
+ extensions: [".l", ".lex"],
7534
+ author: "Mike Lesk / Eric Schmidt (Bell Labs)",
7535
+ website: "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/lex.html",
7536
+ paradigms: ["declarative", "generator"],
7537
+ tooling: {
7538
+ runtimes: ["C toolchains"],
7539
+ ecosystems: ["Compilers", "Language Tooling", "Unix"]
7540
+ },
7541
+ version: "POSIX lex / flex 2.6.4",
7542
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/lex.svg",
7543
+ color: "#DBCA00",
7544
+ i18n: {
7545
+ en: {
7546
+ name: "Lex",
7547
+ description: "A lexical analyzer generator that turns regex rules into scanner code.",
7548
+ 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."
7549
+ },
7550
+ es: {
7551
+ name: "Lex",
7552
+ description: "Un generador de analizadores l\xE9xicos que convierte reglas regex en c\xF3digo de escaneo.",
7553
+ 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."
7554
+ },
7555
+ it: {
7556
+ name: "Lex",
7557
+ description: "Un generatore di analizzatori lessicali che trasforma regole regex in codice scanner.",
7558
+ 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."
7559
+ },
7560
+ fr: {
7561
+ name: "Lex",
7562
+ description: "Un g\xE9n\xE9rateur d'analyseurs lexicaux qui transforme des r\xE8gles regex en code de scanner.",
7563
+ 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."
7564
+ },
7565
+ de: {
7566
+ name: "Lex",
7567
+ description: "Ein Generator f\xFCr lexikalische Analysatoren, der Regex-Regeln in Scanner-Code \xFCbersetzt.",
7568
+ 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."
7569
+ },
7570
+ pt: {
7571
+ name: "Lex",
7572
+ description: "Um gerador de analisadores l\xE9xicos que converte regras regex em c\xF3digo de scanner.",
7573
+ 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."
7574
+ }
7575
+ }
7576
+ };
7577
+
6736
7578
  // src/languages/ligo.ts
6737
7579
  var ligo = {
6738
7580
  slug: "ligo",
@@ -6796,7 +7638,7 @@ var linkerscript = {
6796
7638
  ecosystems: ["Embedded systems", "Operating systems"]
6797
7639
  },
6798
7640
  version: "stable",
6799
- logo: "https://dummyimage.com/32x32/475569/ffffff.png&text=LD",
7641
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
6800
7642
  color: "#475569",
6801
7643
  i18n: {
6802
7644
  en: {
@@ -6995,7 +7837,7 @@ var lobster = {
6995
7837
  ecosystems: ["Games", "Interactive Graphics", "Language Experiments"]
6996
7838
  },
6997
7839
  version: "development snapshot",
6998
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=Lo",
7840
+ logo: "https://raw.githubusercontent.com/aardappel/lobster/master/docs/lobster.png",
6999
7841
  color: "#DC2626",
7000
7842
  i18n: {
7001
7843
  en: {
@@ -7138,6 +7980,9 @@ var luau = {
7138
7980
  author: "Roblox",
7139
7981
  website: "https://luau.org",
7140
7982
  paradigms: ["imperative", "scripting", "gradually typed", "embeddable"],
7983
+ relations: {
7984
+ supersetOf: ["lua"]
7985
+ },
7141
7986
  tooling: {
7142
7987
  runtimes: ["Luau VM", "Roblox"],
7143
7988
  packageManagers: ["Wally", "Pesde"],
@@ -7282,6 +8127,7 @@ var mako = {
7282
8127
  // src/languages/markdown.ts
7283
8128
  var markdown = {
7284
8129
  slug: "markdown",
8130
+ aliases: ["md"],
7285
8131
  publishedDate: "2004-03-19",
7286
8132
  extensions: [".md", ".markdown", ".mdown", ".mkd"],
7287
8133
  author: "John Gruber / Aaron Swartz",
@@ -7529,6 +8375,9 @@ var mdx = {
7529
8375
  author: "MDX contributors",
7530
8376
  website: "https://mdxjs.com",
7531
8377
  paradigms: ["markup", "component-oriented", "declarative", "documentation"],
8378
+ relations: {
8379
+ supersetOf: ["markdown"]
8380
+ },
7532
8381
  tooling: {
7533
8382
  runtimes: ["React", "Node.js"],
7534
8383
  packageManagers: ["npm", "Yarn", "pnpm"],
@@ -7832,7 +8681,7 @@ var modula2 = {
7832
8681
  ecosystems: ["Systems Programming", "Education", "Language History"]
7833
8682
  },
7834
8683
  version: "ISO/IEC 10514-1:1996",
7835
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=M2",
8684
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/modula-2.svg",
7836
8685
  color: "#2563EB",
7837
8686
  i18n: {
7838
8687
  en: {
@@ -8318,6 +9167,9 @@ var nim = {
8318
9167
  author: "Andreas Rumpf",
8319
9168
  website: "https://nim-lang.org",
8320
9169
  paradigms: ["systems", "imperative", "functional", "metaprogramming", "statically typed"],
9170
+ relations: {
9171
+ compilesTo: ["c", "javascript"]
9172
+ },
8321
9173
  tooling: {
8322
9174
  runtimes: ["Native", "JavaScript"],
8323
9175
  packageManagers: ["Nimble"],
@@ -8410,6 +9262,57 @@ var nix = {
8410
9262
  }
8411
9263
  };
8412
9264
 
9265
+ // src/languages/noir.ts
9266
+ var noir = {
9267
+ slug: "noir",
9268
+ status: "experimental",
9269
+ publishedDate: "2022-01-01",
9270
+ extensions: [".nr"],
9271
+ author: "Aztec Labs",
9272
+ website: "https://noir-lang.org",
9273
+ paradigms: ["imperative", "declarative", "zero-knowledge"],
9274
+ tooling: {
9275
+ runtimes: ["ACVM"],
9276
+ packageManagers: ["Nargo"],
9277
+ ecosystems: ["Blockchain", "Cryptography", "Web3"]
9278
+ },
9279
+ version: "1.0.0-beta",
9280
+ logo: "https://avatars.githubusercontent.com/u/72610319?v=4",
9281
+ color: "#2F1F49",
9282
+ i18n: {
9283
+ en: {
9284
+ name: "Noir",
9285
+ description: "A Rust-like language for writing zero-knowledge proof circuits.",
9286
+ 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."
9287
+ },
9288
+ es: {
9289
+ name: "Noir",
9290
+ description: "Un lenguaje similar a Rust para escribir circuitos de pruebas de conocimiento cero.",
9291
+ 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."
9292
+ },
9293
+ it: {
9294
+ name: "Noir",
9295
+ description: "Un linguaggio simile a Rust per scrivere circuiti a conoscenza zero.",
9296
+ 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."
9297
+ },
9298
+ fr: {
9299
+ name: "Noir",
9300
+ description: "Un langage proche de Rust pour \xE9crire des circuits \xE0 divulgation nulle de connaissance.",
9301
+ 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."
9302
+ },
9303
+ de: {
9304
+ name: "Noir",
9305
+ description: "Eine Rust-\xE4hnliche Sprache zum Schreiben von Zero-Knowledge-Beweis-Schaltkreisen.",
9306
+ 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."
9307
+ },
9308
+ pt: {
9309
+ name: "Noir",
9310
+ description: "Uma linguagem parecida com Rust para escrever circuitos de conhecimento zero.",
9311
+ 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."
9312
+ }
9313
+ }
9314
+ };
9315
+
8413
9316
  // src/languages/nunjucks.ts
8414
9317
  var nunjucks = {
8415
9318
  slug: "nunjucks",
@@ -8473,7 +9376,7 @@ var nushell = {
8473
9376
  packageManagers: ["nupm"],
8474
9377
  ecosystems: ["Shell", "Unix", "Windows", "macOS"]
8475
9378
  },
8476
- version: "0.114.0",
9379
+ version: "0.114.1",
8477
9380
  logo: "https://cdn.simpleicons.org/nushell/3AA675",
8478
9381
  color: "#3AA675",
8479
9382
  i18n: {
@@ -8523,7 +9426,7 @@ var oberon = {
8523
9426
  ecosystems: ["Operating Systems", "Education", "Language Design"]
8524
9427
  },
8525
9428
  version: "Oberon-2",
8526
- logo: "https://dummyimage.com/32x32/0F766E/ffffff.png&text=Ob",
9429
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/oberon.svg",
8527
9430
  color: "#0F766E",
8528
9431
  i18n: {
8529
9432
  en: {
@@ -8562,11 +9465,15 @@ var oberon = {
8562
9465
  // src/languages/objective-c.ts
8563
9466
  var objectiveC = {
8564
9467
  slug: "objective-c",
9468
+ aliases: ["objc", "objective c"],
8565
9469
  publishedDate: "1984-01-01",
8566
9470
  extensions: [".m", ".mm"],
8567
9471
  author: "Brad Cox / Tom Love",
8568
9472
  website: "https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/",
8569
9473
  paradigms: ["class-based", "dynamic", "object-oriented", "reflective"],
9474
+ relations: {
9475
+ supersetOf: ["c"]
9476
+ },
8570
9477
  tooling: {
8571
9478
  runtimes: ["Objective-C runtime", "Apple platforms", "GNUstep"],
8572
9479
  packageManagers: ["CocoaPods", "Swift Package Manager"],
@@ -9216,7 +10123,7 @@ var plI = {
9216
10123
  ecosystems: ["Mainframe", "Enterprise", "Scientific Computing"]
9217
10124
  },
9218
10125
  version: "Enterprise PL/I 6.2",
9219
- logo: "https://dummyimage.com/32x32/1F2937/ffffff.png&text=PL1",
10126
+ logo: "https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
9220
10127
  color: "#1F2937",
9221
10128
  i18n: {
9222
10129
  en: {
@@ -9310,6 +10217,9 @@ var plpgsql = {
9310
10217
  author: "PostgreSQL Global Development Group",
9311
10218
  website: "https://www.postgresql.org/docs/current/plpgsql.html",
9312
10219
  paradigms: ["procedural", "database"],
10220
+ relations: {
10221
+ dialectOf: ["sql"]
10222
+ },
9313
10223
  tooling: {
9314
10224
  runtimes: ["PostgreSQL"],
9315
10225
  ecosystems: ["Relational databases", "Stored procedures"]
@@ -9359,6 +10269,9 @@ var plsql = {
9359
10269
  author: "Oracle",
9360
10270
  website: "https://www.oracle.com/database/technologies/appdev/plsql.html",
9361
10271
  paradigms: ["procedural", "database", "declarative", "imperative"],
10272
+ relations: {
10273
+ dialectOf: ["sql"]
10274
+ },
9362
10275
  tooling: {
9363
10276
  runtimes: ["Oracle Database"],
9364
10277
  ecosystems: ["Oracle", "SQL", "Enterprise Data"]
@@ -9511,7 +10424,7 @@ var postscript = {
9511
10424
  ecosystems: ["Print", "PDF"]
9512
10425
  },
9513
10426
  version: "PostScript 3",
9514
- logo: "https://dummyimage.com/32x32/EC1C24/ffffff.png&text=PS",
10427
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_postscript.svg",
9515
10428
  color: "#EC1C24",
9516
10429
  i18n: {
9517
10430
  en: {
@@ -9559,7 +10472,7 @@ var powerquery = {
9559
10472
  ecosystems: ["Microsoft Power BI", "Excel", "Azure Data Factory", "Microsoft Fabric"]
9560
10473
  },
9561
10474
  version: "Power Query M 2025",
9562
- logo: "https://dummyimage.com/32x32/F2C811/000000.png&text=PQ",
10475
+ logo: "https://upload.wikimedia.org/wikipedia/commons/c/cf/New_Power_BI_Logo.svg",
9563
10476
  color: "#F2C811",
9564
10477
  i18n: {
9565
10478
  en: {
@@ -9598,6 +10511,7 @@ var powerquery = {
9598
10511
  // src/languages/powershell.ts
9599
10512
  var powershell = {
9600
10513
  slug: "powershell",
10514
+ aliases: ["pwsh"],
9601
10515
  publishedDate: "2006-11-14",
9602
10516
  extensions: [".ps1", ".psm1", ".psd1", ".ps1xml"],
9603
10517
  author: "Microsoft",
@@ -9793,9 +10707,60 @@ var promql = {
9793
10707
  }
9794
10708
  };
9795
10709
 
10710
+ // src/languages/properties.ts
10711
+ var properties = {
10712
+ slug: "properties",
10713
+ aliases: ["java properties"],
10714
+ publishedDate: "1996-01-23",
10715
+ extensions: [".properties"],
10716
+ author: "Sun Microsystems",
10717
+ website: "https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html",
10718
+ paradigms: ["declarative", "configuration"],
10719
+ tooling: {
10720
+ runtimes: ["JVM"],
10721
+ ecosystems: ["JVM", "Configuration"]
10722
+ },
10723
+ version: "stable",
10724
+ logo: "https://cdn.simpleicons.org/openjdk/437291",
10725
+ color: "#2A6277",
10726
+ i18n: {
10727
+ en: {
10728
+ name: "Java Properties",
10729
+ description: "A simple key-value configuration format used across the Java ecosystem.",
10730
+ 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."
10731
+ },
10732
+ es: {
10733
+ name: "Java Properties",
10734
+ description: "Un formato simple de configuraci\xF3n clave-valor usado en todo el ecosistema Java.",
10735
+ 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."
10736
+ },
10737
+ it: {
10738
+ name: "Java Properties",
10739
+ description: "Un semplice formato di configurazione chiave-valore usato nell'ecosistema Java.",
10740
+ 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."
10741
+ },
10742
+ fr: {
10743
+ name: "Java Properties",
10744
+ description: "Un format simple de configuration cl\xE9-valeur utilis\xE9 dans tout l'\xE9cosyst\xE8me Java.",
10745
+ 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."
10746
+ },
10747
+ de: {
10748
+ name: "Java Properties",
10749
+ description: "Ein einfaches Schl\xFCssel-Wert-Konfigurationsformat aus dem Java-\xD6kosystem.",
10750
+ 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."
10751
+ },
10752
+ pt: {
10753
+ name: "Java Properties",
10754
+ description: "Um formato simples de configura\xE7\xE3o chave-valor usado em todo o ecossistema Java.",
10755
+ 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."
10756
+ }
10757
+ }
10758
+ };
10759
+
9796
10760
  // src/languages/protobuf.ts
9797
10761
  var protobuf = {
9798
10762
  slug: "protobuf",
10763
+ aliases: ["proto", "protocol buffers"],
9799
10764
  publishedDate: "2008-07-07",
9800
10765
  extensions: [".proto"],
9801
10766
  author: "Google",
@@ -9843,6 +10808,59 @@ var protobuf = {
9843
10808
  }
9844
10809
  };
9845
10810
 
10811
+ // src/languages/prql.ts
10812
+ var prql = {
10813
+ slug: "prql",
10814
+ status: "experimental",
10815
+ publishedDate: "2022-01-24",
10816
+ extensions: [".prql"],
10817
+ author: "PRQL project",
10818
+ website: "https://prql-lang.org",
10819
+ paradigms: ["declarative", "functional", "query"],
10820
+ relations: {
10821
+ compilesTo: ["sql"]
10822
+ },
10823
+ tooling: {
10824
+ runtimes: ["prqlc"],
10825
+ ecosystems: ["Databases", "Data Processing"]
10826
+ },
10827
+ version: "0.13.0",
10828
+ logo: "https://avatars.githubusercontent.com/u/102252800?v=4",
10829
+ color: "#4A6FBF",
10830
+ i18n: {
10831
+ en: {
10832
+ name: "PRQL",
10833
+ description: "A pipelined relational query language that compiles to readable SQL.",
10834
+ 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."
10835
+ },
10836
+ es: {
10837
+ name: "PRQL",
10838
+ description: "Un lenguaje de consultas relacional en tuber\xEDas que compila a SQL legible.",
10839
+ 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."
10840
+ },
10841
+ it: {
10842
+ name: "PRQL",
10843
+ description: "Un linguaggio di query relazionale a pipeline che compila in SQL leggibile.",
10844
+ 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."
10845
+ },
10846
+ fr: {
10847
+ name: "PRQL",
10848
+ description: "Un langage de requ\xEAte relationnel en pipeline qui compile vers du SQL lisible.",
10849
+ 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."
10850
+ },
10851
+ de: {
10852
+ name: "PRQL",
10853
+ description: "Eine relationale Pipeline-Abfragesprache, die zu lesbarem SQL kompiliert.",
10854
+ 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."
10855
+ },
10856
+ pt: {
10857
+ name: "PRQL",
10858
+ description: "Uma linguagem de consulta relacional em pipeline que compila para SQL leg\xEDvel.",
10859
+ 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."
10860
+ }
10861
+ }
10862
+ };
10863
+
9846
10864
  // src/languages/pug.ts
9847
10865
  var pug = {
9848
10866
  slug: "pug",
@@ -9951,6 +10969,9 @@ var purescript = {
9951
10969
  author: "Phil Freeman / PureScript contributors",
9952
10970
  website: "https://www.purescript.org",
9953
10971
  paradigms: ["functional", "pure", "statically typed", "declarative"],
10972
+ relations: {
10973
+ compilesTo: ["javascript"]
10974
+ },
9954
10975
  tooling: {
9955
10976
  runtimes: ["JavaScript", "Node.js"],
9956
10977
  packageManagers: ["Spago", "npm"],
@@ -9996,6 +11017,7 @@ var purescript = {
9996
11017
  // src/languages/python.ts
9997
11018
  var python = {
9998
11019
  slug: "python",
11020
+ aliases: ["py"],
9999
11021
  publishedDate: "1991-02-20",
10000
11022
  extensions: [".py", ".pyw"],
10001
11023
  author: "Guido van Rossum",
@@ -10043,6 +11065,56 @@ var python = {
10043
11065
  }
10044
11066
  };
10045
11067
 
11068
+ // src/languages/q.ts
11069
+ var q = {
11070
+ slug: "q",
11071
+ aliases: ["kdb", "kdb+"],
11072
+ publishedDate: "2003-01-01",
11073
+ extensions: [".q", ".k"],
11074
+ author: "Arthur Whitney / Kx Systems",
11075
+ website: "https://kx.com",
11076
+ paradigms: ["array", "functional", "query"],
11077
+ tooling: {
11078
+ runtimes: ["kdb+"],
11079
+ ecosystems: ["Finance", "Data Science", "Time Series"]
11080
+ },
11081
+ version: "q 4.1",
11082
+ logo: "https://avatars.githubusercontent.com/u/11446750?v=4",
11083
+ color: "#0040CD",
11084
+ i18n: {
11085
+ en: {
11086
+ name: "q / kdb+",
11087
+ description: "An array and query language built into the kdb+ time-series database.",
11088
+ 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."
11089
+ },
11090
+ es: {
11091
+ name: "q / kdb+",
11092
+ description: "Un lenguaje de arrays y consultas integrado en la base de datos de series temporales kdb+.",
11093
+ 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."
11094
+ },
11095
+ it: {
11096
+ name: "q / kdb+",
11097
+ description: "Un linguaggio di array e query integrato nel database di serie temporali kdb+.",
11098
+ 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."
11099
+ },
11100
+ fr: {
11101
+ name: "q / kdb+",
11102
+ description: "Un langage de tableaux et de requ\xEAtes int\xE9gr\xE9 \xE0 la base de s\xE9ries temporelles kdb+.",
11103
+ 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."
11104
+ },
11105
+ de: {
11106
+ name: "q / kdb+",
11107
+ description: "Eine Array- und Abfragesprache, eingebaut in die Zeitreihen-Datenbank kdb+.",
11108
+ 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."
11109
+ },
11110
+ pt: {
11111
+ name: "q / kdb+",
11112
+ description: "Uma linguagem de arrays e consultas embutida no banco de s\xE9ries temporais kdb+.",
11113
+ 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."
11114
+ }
11115
+ }
11116
+ };
11117
+
10046
11118
  // src/languages/qmake.ts
10047
11119
  var qmake = {
10048
11120
  slug: "qmake",
@@ -10295,6 +11367,7 @@ var racket = {
10295
11367
  // src/languages/raku.ts
10296
11368
  var raku = {
10297
11369
  slug: "raku",
11370
+ aliases: ["perl6", "perl 6"],
10298
11371
  publishedDate: "2015-12-25",
10299
11372
  extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"],
10300
11373
  author: "Raku Community",
@@ -10400,6 +11473,9 @@ var reasonml = {
10400
11473
  author: "Jordan Walke / Reason contributors",
10401
11474
  website: "https://reasonml.github.io",
10402
11475
  paradigms: ["functional", "statically typed", "multi-paradigm"],
11476
+ relations: {
11477
+ compilesTo: ["javascript", "ocaml"]
11478
+ },
10403
11479
  tooling: {
10404
11480
  runtimes: ["OCaml", "JavaScript"],
10405
11481
  packageManagers: ["opam", "npm"],
@@ -10590,6 +11666,56 @@ var rego = {
10590
11666
  }
10591
11667
  };
10592
11668
 
11669
+ // src/languages/renpy.ts
11670
+ var renpy = {
11671
+ slug: "renpy",
11672
+ aliases: ["ren'py"],
11673
+ publishedDate: "2004-08-24",
11674
+ extensions: [".rpy", ".rpym"],
11675
+ author: "Tom Rothamel",
11676
+ website: "https://www.renpy.org",
11677
+ paradigms: ["imperative", "scripting", "narrative"],
11678
+ tooling: {
11679
+ runtimes: ["Ren'Py Engine", "CPython"],
11680
+ ecosystems: ["Game Development", "Interactive Fiction"]
11681
+ },
11682
+ version: "8.3.7",
11683
+ logo: "https://avatars.githubusercontent.com/u/1900740?v=4",
11684
+ color: "#FF7F7F",
11685
+ i18n: {
11686
+ en: {
11687
+ name: "Ren'Py",
11688
+ description: "A visual novel engine with a screenplay-like script language embedding Python.",
11689
+ 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."
11690
+ },
11691
+ es: {
11692
+ name: "Ren'Py",
11693
+ description: "Un motor de novelas visuales con un lenguaje de guion tipo cinematogr\xE1fico que embebe Python.",
11694
+ 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."
11695
+ },
11696
+ it: {
11697
+ name: "Ren'Py",
11698
+ description: "Un motore per visual novel con un linguaggio di script simile a una sceneggiatura che incorpora Python.",
11699
+ 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."
11700
+ },
11701
+ fr: {
11702
+ name: "Ren'Py",
11703
+ description: "Un moteur de visual novels au langage de script fa\xE7on sc\xE9nario, avec Python int\xE9gr\xE9.",
11704
+ 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."
11705
+ },
11706
+ de: {
11707
+ name: "Ren'Py",
11708
+ description: "Eine Visual-Novel-Engine mit drehbuchartiger Skriptsprache und eingebettetem Python.",
11709
+ 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."
11710
+ },
11711
+ pt: {
11712
+ name: "Ren'Py",
11713
+ description: "Um motor de visual novels com linguagem de script estilo roteiro que incorpora Python.",
11714
+ 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."
11715
+ }
11716
+ }
11717
+ };
11718
+
10593
11719
  // src/languages/rescript.ts
10594
11720
  var rescript = {
10595
11721
  slug: "rescript",
@@ -10598,6 +11724,9 @@ var rescript = {
10598
11724
  author: "ReScript Association",
10599
11725
  website: "https://rescript-lang.org",
10600
11726
  paradigms: ["functional", "statically typed", "multi-paradigm", "javascript-targeted"],
11727
+ relations: {
11728
+ compilesTo: ["javascript"]
11729
+ },
10601
11730
  tooling: {
10602
11731
  runtimes: ["JavaScript", "Node.js", "Browser"],
10603
11732
  packageManagers: ["npm", "pnpm", "Yarn"],
@@ -10643,6 +11772,7 @@ var rescript = {
10643
11772
  // src/languages/restructuredtext.ts
10644
11773
  var restructuredtext = {
10645
11774
  slug: "restructuredtext",
11775
+ aliases: ["rst"],
10646
11776
  publishedDate: "2001-06-01",
10647
11777
  extensions: [".rst", ".rest"],
10648
11778
  author: "David Goodger / Docutils contributors",
@@ -10690,6 +11820,55 @@ var restructuredtext = {
10690
11820
  }
10691
11821
  };
10692
11822
 
11823
+ // src/languages/rexx.ts
11824
+ var rexx = {
11825
+ slug: "rexx",
11826
+ publishedDate: "1979-03-20",
11827
+ extensions: [".rexx", ".rex"],
11828
+ author: "Mike Cowlishaw / IBM",
11829
+ website: "https://www.rexxla.org",
11830
+ paradigms: ["imperative", "procedural", "scripting"],
11831
+ tooling: {
11832
+ runtimes: ["z/OS", "ooRexx", "Regina REXX"],
11833
+ ecosystems: ["Mainframe", "Scripting"]
11834
+ },
11835
+ version: "ANSI X3.274-1996",
11836
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_rexx.svg",
11837
+ color: "#D90E09",
11838
+ i18n: {
11839
+ en: {
11840
+ name: "REXX",
11841
+ description: "A readable IBM scripting language for mainframe automation and system glue.",
11842
+ 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."
11843
+ },
11844
+ es: {
11845
+ name: "REXX",
11846
+ description: "Un lenguaje de scripting legible de IBM para automatizaci\xF3n de mainframes.",
11847
+ 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."
11848
+ },
11849
+ it: {
11850
+ name: "REXX",
11851
+ description: "Un linguaggio di scripting IBM leggibile per l'automazione dei mainframe.",
11852
+ 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."
11853
+ },
11854
+ fr: {
11855
+ name: "REXX",
11856
+ description: "Un langage de script IBM lisible pour l'automatisation des mainframes.",
11857
+ 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."
11858
+ },
11859
+ de: {
11860
+ name: "REXX",
11861
+ description: "Eine gut lesbare IBM-Skriptsprache f\xFCr Mainframe-Automatisierung.",
11862
+ 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."
11863
+ },
11864
+ pt: {
11865
+ name: "REXX",
11866
+ description: "Uma linguagem de script leg\xEDvel da IBM para automa\xE7\xE3o de mainframes.",
11867
+ 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."
11868
+ }
11869
+ }
11870
+ };
11871
+
10693
11872
  // src/languages/roc.ts
10694
11873
  var roc = {
10695
11874
  slug: "roc",
@@ -10791,6 +11970,7 @@ var rpg = {
10791
11970
  // src/languages/ruby.ts
10792
11971
  var ruby = {
10793
11972
  slug: "ruby",
11973
+ aliases: ["rb"],
10794
11974
  publishedDate: "1995-12-21",
10795
11975
  extensions: [".rb", ".rbw", ".rake", ".gemspec", "Gemfile", "Rakefile", "config.ru"],
10796
11976
  author: "Yukihiro Matsumoto",
@@ -11044,6 +12224,10 @@ var scss = {
11044
12224
  author: "Hampton Catlin / Natalie Weizenbaum / Chris Eppstein",
11045
12225
  website: "https://sass-lang.com",
11046
12226
  paradigms: ["declarative", "stylesheet", "preprocessor"],
12227
+ relations: {
12228
+ supersetOf: ["css"],
12229
+ compilesTo: ["css"]
12230
+ },
11047
12231
  tooling: {
11048
12232
  runtimes: ["Dart Sass"],
11049
12233
  packageManagers: ["npm", "pnpm", "Yarn", "Bun"],
@@ -11138,6 +12322,7 @@ var self = {
11138
12322
  // src/languages/simula.ts
11139
12323
  var simula = {
11140
12324
  slug: "simula",
12325
+ status: "historical",
11141
12326
  publishedDate: "1962-01-01",
11142
12327
  extensions: [".sim", ".simula"],
11143
12328
  author: "Ole-Johan Dahl and Kristen Nygaard",
@@ -11148,7 +12333,7 @@ var simula = {
11148
12333
  ecosystems: ["Simulation", "Language history"]
11149
12334
  },
11150
12335
  version: "Simula 67",
11151
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Si",
12336
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/simula.svg",
11152
12337
  color: "#2563EB",
11153
12338
  i18n: {
11154
12339
  en: {
@@ -11184,6 +12369,58 @@ var simula = {
11184
12369
  }
11185
12370
  };
11186
12371
 
12372
+ // src/languages/slang.ts
12373
+ var slang = {
12374
+ slug: "slang",
12375
+ publishedDate: "2017-01-01",
12376
+ extensions: [".slang"],
12377
+ author: "NVIDIA / Khronos Group",
12378
+ website: "https://shader-slang.org",
12379
+ paradigms: ["imperative", "shader", "generic"],
12380
+ relations: {
12381
+ compilesTo: ["hlsl", "glsl", "metal", "wgsl"]
12382
+ },
12383
+ tooling: {
12384
+ runtimes: ["Vulkan", "Direct3D", "Metal", "WebGPU"],
12385
+ ecosystems: ["GPU", "Graphics", "Game Development"]
12386
+ },
12387
+ version: "stable",
12388
+ logo: "https://avatars.githubusercontent.com/u/29205606?v=4",
12389
+ color: "#1FBEC9",
12390
+ i18n: {
12391
+ en: {
12392
+ name: "Slang",
12393
+ description: "A modern shading language that cross-compiles to HLSL, GLSL, Metal, and WGSL.",
12394
+ 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."
12395
+ },
12396
+ es: {
12397
+ name: "Slang",
12398
+ description: "Un lenguaje de shaders moderno que compila de forma cruzada a HLSL, GLSL, Metal y WGSL.",
12399
+ 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."
12400
+ },
12401
+ it: {
12402
+ name: "Slang",
12403
+ description: "Un moderno linguaggio di shading che compila verso HLSL, GLSL, Metal e WGSL.",
12404
+ 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."
12405
+ },
12406
+ fr: {
12407
+ name: "Slang",
12408
+ description: "Un langage de shading moderne qui se compile vers HLSL, GLSL, Metal et WGSL.",
12409
+ 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."
12410
+ },
12411
+ de: {
12412
+ name: "Slang",
12413
+ description: "Eine moderne Shading-Sprache, die nach HLSL, GLSL, Metal und WGSL cross-kompiliert.",
12414
+ 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."
12415
+ },
12416
+ pt: {
12417
+ name: "Slang",
12418
+ description: "Uma linguagem de shaders moderna que compila para HLSL, GLSL, Metal e WGSL.",
12419
+ 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."
12420
+ }
12421
+ }
12422
+ };
12423
+
11187
12424
  // src/languages/smalltalk.ts
11188
12425
  var smalltalk = {
11189
12426
  slug: "smalltalk",
@@ -11283,6 +12520,56 @@ var smarty = {
11283
12520
  }
11284
12521
  };
11285
12522
 
12523
+ // src/languages/smithy.ts
12524
+ var smithy = {
12525
+ slug: "smithy",
12526
+ publishedDate: "2019-01-01",
12527
+ extensions: [".smithy"],
12528
+ author: "Amazon Web Services",
12529
+ website: "https://smithy.io",
12530
+ paradigms: ["declarative", "interface-definition"],
12531
+ tooling: {
12532
+ runtimes: ["JVM"],
12533
+ packageManagers: ["Gradle", "Maven"],
12534
+ ecosystems: ["Cloud", "API Design"]
12535
+ },
12536
+ version: "IDL 2.0",
12537
+ logo: "https://avatars.githubusercontent.com/u/133827778?v=4",
12538
+ color: "#FF9900",
12539
+ i18n: {
12540
+ en: {
12541
+ name: "Smithy",
12542
+ description: "AWS's protocol-agnostic interface definition language for modeling services.",
12543
+ 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."
12544
+ },
12545
+ es: {
12546
+ name: "Smithy",
12547
+ description: "El lenguaje de definici\xF3n de interfaces de AWS, agn\xF3stico de protocolo, para modelar servicios.",
12548
+ 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."
12549
+ },
12550
+ it: {
12551
+ name: "Smithy",
12552
+ description: "Il linguaggio di definizione delle interfacce di AWS, agnostico rispetto al protocollo.",
12553
+ 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."
12554
+ },
12555
+ fr: {
12556
+ name: "Smithy",
12557
+ description: "Le langage de d\xE9finition d'interfaces d'AWS, ind\xE9pendant du protocole, pour mod\xE9liser des services.",
12558
+ 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."
12559
+ },
12560
+ de: {
12561
+ name: "Smithy",
12562
+ description: "AWS' protokollunabh\xE4ngige Schnittstellenbeschreibungssprache zur Modellierung von Services.",
12563
+ 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."
12564
+ },
12565
+ pt: {
12566
+ name: "Smithy",
12567
+ description: "A linguagem de defini\xE7\xE3o de interfaces da AWS, agn\xF3stica de protocolo, para modelar servi\xE7os.",
12568
+ 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."
12569
+ }
12570
+ }
12571
+ };
12572
+
11286
12573
  // src/languages/snakemake.ts
11287
12574
  var snakemake = {
11288
12575
  slug: "snakemake",
@@ -11335,6 +12622,7 @@ var snakemake = {
11335
12622
  // src/languages/snobol.ts
11336
12623
  var snobol = {
11337
12624
  slug: "snobol",
12625
+ status: "historical",
11338
12626
  publishedDate: "1962-01-01",
11339
12627
  extensions: [".sno", ".snobol"],
11340
12628
  author: "David J. Farber, Ralph Griswold, and Ivan P. Polonsky",
@@ -11345,7 +12633,7 @@ var snobol = {
11345
12633
  ecosystems: ["Text processing", "Language history"]
11346
12634
  },
11347
12635
  version: "SNOBOL4",
11348
- logo: "https://dummyimage.com/32x32/7C2D12/ffffff.png&text=SN",
12636
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/snobol.svg",
11349
12637
  color: "#7C2D12",
11350
12638
  i18n: {
11351
12639
  en: {
@@ -11493,7 +12781,7 @@ var spark = {
11493
12781
  ecosystems: ["Ada", "Embedded", "Safety-critical software"]
11494
12782
  },
11495
12783
  version: "SPARK Community 2021",
11496
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=SP",
12784
+ logo: "https://avatars.githubusercontent.com/u/7767877?v=4",
11497
12785
  color: "#DC2626",
11498
12786
  i18n: {
11499
12787
  en: {
@@ -11640,7 +12928,7 @@ var spss = {
11640
12928
  ecosystems: ["Statistics", "Data Analysis", "Social Sciences", "Business Intelligence"]
11641
12929
  },
11642
12930
  version: "29.0",
11643
- logo: "https://dummyimage.com/32x32/052FAD/ffffff.png&text=SPSS",
12931
+ logo: "https://upload.wikimedia.org/wikipedia/commons/e/ea/SPSS_logo.svg",
11644
12932
  color: "#052FAD",
11645
12933
  i18n: {
11646
12934
  en: {
@@ -11734,7 +13022,7 @@ var squirrel = {
11734
13022
  ecosystems: ["Game Development", "Embedded Scripting", "Valve Source Engine"]
11735
13023
  },
11736
13024
  version: "3.2",
11737
- logo: "https://dummyimage.com/32x32/CC4A00/ffffff.png&text=SQ",
13025
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_squirrel.svg",
11738
13026
  color: "#CC4A00",
11739
13027
  i18n: {
11740
13028
  en: {
@@ -11926,6 +13214,10 @@ var stylus = {
11926
13214
  author: "TJ Holowaychuk / Stylus contributors",
11927
13215
  website: "https://stylus-lang.com",
11928
13216
  paradigms: ["stylesheet", "declarative", "preprocessor"],
13217
+ relations: {
13218
+ dialectOf: ["css"],
13219
+ compilesTo: ["css"]
13220
+ },
11929
13221
  tooling: {
11930
13222
  runtimes: ["Node.js"],
11931
13223
  packageManagers: ["npm", "pnpm", "Yarn"],
@@ -11968,6 +13260,57 @@ var stylus = {
11968
13260
  }
11969
13261
  };
11970
13262
 
13263
+ // src/languages/supercollider.ts
13264
+ var supercollider = {
13265
+ slug: "supercollider",
13266
+ aliases: ["sclang"],
13267
+ publishedDate: "1996-03-01",
13268
+ extensions: [".scd", ".sc"],
13269
+ author: "James McCartney",
13270
+ website: "https://supercollider.github.io",
13271
+ paradigms: ["object-oriented", "functional", "audio"],
13272
+ tooling: {
13273
+ runtimes: ["sclang", "scsynth"],
13274
+ packageManagers: ["Quarks"],
13275
+ ecosystems: ["Audio", "Music", "Creative Coding"]
13276
+ },
13277
+ version: "3.13.0",
13278
+ logo: "https://avatars.githubusercontent.com/u/1706741?v=4",
13279
+ color: "#46390B",
13280
+ i18n: {
13281
+ en: {
13282
+ name: "SuperCollider",
13283
+ description: "A platform and language for real-time audio synthesis and algorithmic composition.",
13284
+ 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."
13285
+ },
13286
+ es: {
13287
+ name: "SuperCollider",
13288
+ description: "Una plataforma y lenguaje para s\xEDntesis de audio en tiempo real y composici\xF3n algor\xEDtmica.",
13289
+ 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."
13290
+ },
13291
+ it: {
13292
+ name: "SuperCollider",
13293
+ description: "Una piattaforma e linguaggio per la sintesi audio in tempo reale e la composizione algoritmica.",
13294
+ 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."
13295
+ },
13296
+ fr: {
13297
+ name: "SuperCollider",
13298
+ description: "Une plateforme et un langage pour la synth\xE8se audio temps r\xE9el et la composition algorithmique.",
13299
+ 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."
13300
+ },
13301
+ de: {
13302
+ name: "SuperCollider",
13303
+ description: "Eine Plattform und Sprache f\xFCr Echtzeit-Audiosynthese und algorithmische Komposition.",
13304
+ 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."
13305
+ },
13306
+ pt: {
13307
+ name: "SuperCollider",
13308
+ description: "Uma plataforma e linguagem para s\xEDntese de \xE1udio em tempo real e composi\xE7\xE3o algor\xEDtmica.",
13309
+ 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."
13310
+ }
13311
+ }
13312
+ };
13313
+
11971
13314
  // src/languages/svelte.ts
11972
13315
  var svelte = {
11973
13316
  slug: "svelte",
@@ -11976,6 +13319,9 @@ var svelte = {
11976
13319
  author: "Rich Harris / Svelte contributors",
11977
13320
  website: "https://svelte.dev",
11978
13321
  paradigms: ["component-based", "declarative", "reactive", "compiled"],
13322
+ relations: {
13323
+ compilesTo: ["javascript"]
13324
+ },
11979
13325
  tooling: {
11980
13326
  runtimes: ["Browser", "Node.js"],
11981
13327
  packageManagers: ["npm", "pnpm", "Yarn", "Bun"],
@@ -12116,6 +13462,57 @@ var svn = {
12116
13462
  }
12117
13463
  };
12118
13464
 
13465
+ // src/languages/sway.ts
13466
+ var sway = {
13467
+ slug: "sway",
13468
+ status: "experimental",
13469
+ publishedDate: "2021-01-01",
13470
+ extensions: [".sw"],
13471
+ author: "Fuel Labs",
13472
+ website: "https://fuellabs.github.io/sway",
13473
+ paradigms: ["imperative", "functional", "smart-contract"],
13474
+ tooling: {
13475
+ runtimes: ["FuelVM"],
13476
+ packageManagers: ["Forc"],
13477
+ ecosystems: ["Blockchain", "Web3"]
13478
+ },
13479
+ version: "0.69.0",
13480
+ logo: "https://avatars.githubusercontent.com/u/55993183?v=4",
13481
+ color: "#00F58C",
13482
+ i18n: {
13483
+ en: {
13484
+ name: "Sway",
13485
+ description: "A Rust-inspired smart contract language for the Fuel blockchain virtual machine.",
13486
+ 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."
13487
+ },
13488
+ es: {
13489
+ name: "Sway",
13490
+ description: "Un lenguaje de contratos inteligentes inspirado en Rust para la m\xE1quina virtual de Fuel.",
13491
+ 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."
13492
+ },
13493
+ it: {
13494
+ name: "Sway",
13495
+ description: "Un linguaggio per smart contract ispirato a Rust per la macchina virtuale di Fuel.",
13496
+ 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."
13497
+ },
13498
+ fr: {
13499
+ name: "Sway",
13500
+ description: "Un langage de smart contracts inspir\xE9 de Rust pour la machine virtuelle Fuel.",
13501
+ 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."
13502
+ },
13503
+ de: {
13504
+ name: "Sway",
13505
+ description: "Eine Rust-inspirierte Smart-Contract-Sprache f\xFCr die virtuelle Maschine von Fuel.",
13506
+ 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."
13507
+ },
13508
+ pt: {
13509
+ name: "Sway",
13510
+ description: "Uma linguagem de contratos inteligentes inspirada em Rust para a m\xE1quina virtual da Fuel.",
13511
+ 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."
13512
+ }
13513
+ }
13514
+ };
13515
+
12119
13516
  // src/languages/swift.ts
12120
13517
  var swift = {
12121
13518
  slug: "swift",
@@ -12229,7 +13626,7 @@ var tcsh = {
12229
13626
  ecosystems: ["Unix", "BSD"]
12230
13627
  },
12231
13628
  version: "6.24.16",
12232
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=TC",
13629
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/tcsh.svg",
12233
13630
  color: "#2563EB",
12234
13631
  i18n: {
12235
13632
  en: {
@@ -12268,6 +13665,7 @@ var tcsh = {
12268
13665
  // src/languages/tex.ts
12269
13666
  var tex = {
12270
13667
  slug: "tex",
13668
+ aliases: ["latex"],
12271
13669
  publishedDate: "1978-01-01",
12272
13670
  extensions: [".tex", ".sty", ".cls", ".dtx", ".ins", ".ltx"],
12273
13671
  author: "Donald Knuth",
@@ -12564,6 +13962,9 @@ var tsql = {
12564
13962
  author: "Sybase / Microsoft",
12565
13963
  website: "https://learn.microsoft.com/en-us/sql/t-sql/language-reference",
12566
13964
  paradigms: ["procedural", "declarative", "database", "imperative"],
13965
+ relations: {
13966
+ dialectOf: ["sql"]
13967
+ },
12567
13968
  tooling: {
12568
13969
  runtimes: [
12569
13970
  "SQL Server",
@@ -12712,11 +14113,16 @@ var twig = {
12712
14113
  // src/languages/typescript.ts
12713
14114
  var typescript = {
12714
14115
  slug: "typescript",
14116
+ aliases: ["ts"],
12715
14117
  publishedDate: "2012-10-01",
12716
14118
  extensions: [".ts", ".tsx", ".mts", ".cts"],
12717
14119
  author: "Anders Hejlsberg / Microsoft",
12718
14120
  website: "https://www.typescriptlang.org",
12719
14121
  paradigms: ["object-oriented", "functional", "imperative", "generic"],
14122
+ relations: {
14123
+ supersetOf: ["javascript"],
14124
+ compilesTo: ["javascript"]
14125
+ },
12720
14126
  tooling: {
12721
14127
  runtimes: ["Browser", "Node.js", "Deno", "Bun"],
12722
14128
  packageManagers: ["npm", "pnpm", "Yarn", "Bun"],
@@ -12759,6 +14165,60 @@ var typescript = {
12759
14165
  }
12760
14166
  };
12761
14167
 
14168
+ // src/languages/typespec.ts
14169
+ var typespec = {
14170
+ slug: "typespec",
14171
+ aliases: ["cadl"],
14172
+ publishedDate: "2022-09-07",
14173
+ extensions: [".tsp"],
14174
+ author: "Microsoft",
14175
+ website: "https://typespec.io",
14176
+ paradigms: ["declarative", "interface-definition"],
14177
+ relations: {
14178
+ compilesTo: ["openapi", "protobuf", "json"]
14179
+ },
14180
+ tooling: {
14181
+ runtimes: ["Node.js"],
14182
+ packageManagers: ["npm"],
14183
+ ecosystems: ["Cloud", "API Design"]
14184
+ },
14185
+ version: "1.0",
14186
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/typespec.svg",
14187
+ color: "#4B3CC4",
14188
+ i18n: {
14189
+ en: {
14190
+ name: "TypeSpec",
14191
+ description: "A TypeScript-inspired language from Microsoft for describing APIs, emitting OpenAPI and more.",
14192
+ 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."
14193
+ },
14194
+ es: {
14195
+ name: "TypeSpec",
14196
+ description: "Un lenguaje de Microsoft inspirado en TypeScript para describir APIs, emitiendo OpenAPI y m\xE1s.",
14197
+ 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."
14198
+ },
14199
+ it: {
14200
+ name: "TypeSpec",
14201
+ description: "Un linguaggio Microsoft ispirato a TypeScript per descrivere API, generando OpenAPI e altro.",
14202
+ 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."
14203
+ },
14204
+ fr: {
14205
+ name: "TypeSpec",
14206
+ description: "Un langage Microsoft inspir\xE9 de TypeScript pour d\xE9crire des API, g\xE9n\xE9rant OpenAPI et plus.",
14207
+ 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."
14208
+ },
14209
+ de: {
14210
+ name: "TypeSpec",
14211
+ description: "Eine TypeScript-inspirierte Sprache von Microsoft zur API-Beschreibung, die OpenAPI und mehr erzeugt.",
14212
+ 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."
14213
+ },
14214
+ pt: {
14215
+ name: "TypeSpec",
14216
+ description: "Uma linguagem da Microsoft inspirada em TypeScript para descrever APIs, emitindo OpenAPI e mais.",
14217
+ 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."
14218
+ }
14219
+ }
14220
+ };
14221
+
12762
14222
  // src/languages/typst.ts
12763
14223
  var typst = {
12764
14224
  slug: "typst",
@@ -12867,6 +14327,9 @@ var v = {
12867
14327
  author: "Alexander Medvednikov / V contributors",
12868
14328
  website: "https://vlang.io",
12869
14329
  paradigms: ["imperative", "systems", "multi-paradigm", "statically typed"],
14330
+ relations: {
14331
+ compilesTo: ["c"]
14332
+ },
12870
14333
  tooling: {
12871
14334
  runtimes: ["V compiler"],
12872
14335
  packageManagers: ["vpm"],
@@ -12962,6 +14425,7 @@ var vala = {
12962
14425
  // src/languages/vale.ts
12963
14426
  var vale = {
12964
14427
  slug: "vale",
14428
+ status: "experimental",
12965
14429
  publishedDate: "2018-01-01",
12966
14430
  extensions: [".vale"],
12967
14431
  author: "Evan Ovadia",
@@ -12972,7 +14436,7 @@ var vale = {
12972
14436
  ecosystems: ["Native applications", "Systems programming"]
12973
14437
  },
12974
14438
  version: "experimental",
12975
- logo: "https://dummyimage.com/32x32/059669/ffffff.png&text=Va",
14439
+ logo: "https://avatars.githubusercontent.com/u/67560249?v=4",
12976
14440
  color: "#059669",
12977
14441
  i18n: {
12978
14442
  en: {
@@ -13016,11 +14480,14 @@ var vba = {
13016
14480
  author: "Microsoft",
13017
14481
  website: "https://learn.microsoft.com/en-us/office/vba/api/overview/",
13018
14482
  paradigms: ["imperative", "object-oriented", "event-driven"],
14483
+ relations: {
14484
+ dialectOf: ["visual-basic"]
14485
+ },
13019
14486
  tooling: {
13020
14487
  ecosystems: ["Microsoft Office", "Excel", "Access", "Word", "Outlook"]
13021
14488
  },
13022
14489
  version: "VBA 7.1",
13023
- logo: "https://dummyimage.com/32x32/217346/ffffff.png&text=VBA",
14490
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_vba.svg",
13024
14491
  color: "#217346",
13025
14492
  i18n: {
13026
14493
  en: {
@@ -13056,6 +14523,59 @@ var vba = {
13056
14523
  }
13057
14524
  };
13058
14525
 
14526
+ // src/languages/vbscript.ts
14527
+ var vbscript = {
14528
+ slug: "vbscript",
14529
+ status: "legacy",
14530
+ publishedDate: "1996-08-01",
14531
+ extensions: [".vbs", ".vbe"],
14532
+ author: "Microsoft",
14533
+ website: "https://learn.microsoft.com/en-us/previous-versions/t0aew7h6(v=vs.85)",
14534
+ paradigms: ["imperative", "object-based", "scripting"],
14535
+ relations: {
14536
+ dialectOf: ["visual-basic"]
14537
+ },
14538
+ tooling: {
14539
+ runtimes: ["Windows Script Host", "Classic ASP", "Internet Explorer"],
14540
+ ecosystems: ["Windows", "Scripting"]
14541
+ },
14542
+ version: "5.8",
14543
+ logo: "https://raw.githubusercontent.com/ElJijuna/code-languages/main/public/assets/placeholders/vbscript.svg",
14544
+ color: "#15DCDC",
14545
+ i18n: {
14546
+ en: {
14547
+ name: "VBScript",
14548
+ description: "A lightweight Visual Basic dialect for Windows automation and Classic ASP.",
14549
+ 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."
14550
+ },
14551
+ es: {
14552
+ name: "VBScript",
14553
+ description: "Un dialecto ligero de Visual Basic para automatizaci\xF3n de Windows y ASP cl\xE1sico.",
14554
+ 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."
14555
+ },
14556
+ it: {
14557
+ name: "VBScript",
14558
+ description: "Un dialetto leggero di Visual Basic per automazione Windows e ASP classico.",
14559
+ 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."
14560
+ },
14561
+ fr: {
14562
+ name: "VBScript",
14563
+ description: "Un dialecte l\xE9ger de Visual Basic pour l'automatisation Windows et l'ASP classique.",
14564
+ 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."
14565
+ },
14566
+ de: {
14567
+ name: "VBScript",
14568
+ description: "Ein leichter Visual-Basic-Dialekt f\xFCr Windows-Automatisierung und Classic ASP.",
14569
+ 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."
14570
+ },
14571
+ pt: {
14572
+ name: "VBScript",
14573
+ description: "Um dialeto leve de Visual Basic para automa\xE7\xE3o do Windows e ASP cl\xE1ssico.",
14574
+ 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."
14575
+ }
14576
+ }
14577
+ };
14578
+
13059
14579
  // src/languages/velocity.ts
13060
14580
  var velocity = {
13061
14581
  slug: "velocity",
@@ -13168,7 +14688,7 @@ var verse = {
13168
14688
  ecosystems: ["Unreal Engine", "Fortnite Creator"]
13169
14689
  },
13170
14690
  version: "UEFN Verse",
13171
- logo: "https://dummyimage.com/32x32/111827/ffffff.png&text=Ve",
14691
+ logo: "https://cdn.simpleicons.org/epicgames",
13172
14692
  color: "#111827",
13173
14693
  i18n: {
13174
14694
  en: {
@@ -13254,9 +14774,61 @@ var vhdl = {
13254
14774
  }
13255
14775
  };
13256
14776
 
14777
+ // src/languages/vimscript.ts
14778
+ var vimscript = {
14779
+ slug: "vimscript",
14780
+ aliases: ["vim", "vim script", "viml"],
14781
+ publishedDate: "1991-11-02",
14782
+ extensions: [".vim", ".vimrc", ".gvimrc"],
14783
+ author: "Bram Moolenaar",
14784
+ website: "https://www.vim.org",
14785
+ paradigms: ["imperative", "scripting"],
14786
+ tooling: {
14787
+ runtimes: ["Vim", "Neovim"],
14788
+ packageManagers: ["vim-plug", "lazy.nvim", "packer.nvim"],
14789
+ ecosystems: ["Text Editors", "Scripting"]
14790
+ },
14791
+ version: "Vim 9.1",
14792
+ logo: "https://cdn.simpleicons.org/vim/019733",
14793
+ color: "#019733",
14794
+ i18n: {
14795
+ en: {
14796
+ name: "Vim script",
14797
+ description: "The scripting language built into the Vim editor for configuration & plugins.",
14798
+ 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."
14799
+ },
14800
+ es: {
14801
+ name: "Vim script",
14802
+ description: "El lenguaje de scripting integrado en el editor Vim para configuraci\xF3n y plugins.",
14803
+ 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."
14804
+ },
14805
+ it: {
14806
+ name: "Vim script",
14807
+ description: "Il linguaggio di scripting integrato nell'editor Vim per configurazione e plugin.",
14808
+ 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."
14809
+ },
14810
+ fr: {
14811
+ name: "Vim script",
14812
+ description: "Le langage de script int\xE9gr\xE9 \xE0 l'\xE9diteur Vim pour la configuration et les plugins.",
14813
+ 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."
14814
+ },
14815
+ de: {
14816
+ name: "Vim script",
14817
+ description: "Die im Vim-Editor eingebaute Skriptsprache f\xFCr Konfiguration und Plugins.",
14818
+ 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."
14819
+ },
14820
+ pt: {
14821
+ name: "Vim script",
14822
+ description: "A linguagem de script embutida no editor Vim para configura\xE7\xE3o e plugins.",
14823
+ 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."
14824
+ }
14825
+ }
14826
+ };
14827
+
13257
14828
  // src/languages/visual-basic.ts
13258
14829
  var visualBasic = {
13259
14830
  slug: "visual-basic",
14831
+ aliases: ["vb", "vb.net"],
13260
14832
  publishedDate: "2001-02-13",
13261
14833
  extensions: [".vb"],
13262
14834
  author: "Microsoft",
@@ -13456,6 +15028,7 @@ var wdl = {
13456
15028
  // src/languages/webassembly.ts
13457
15029
  var webassembly = {
13458
15030
  slug: "webassembly",
15031
+ aliases: ["wasm", "wat"],
13459
15032
  publishedDate: "2017-03-07",
13460
15033
  extensions: [".wasm", ".wat"],
13461
15034
  author: "W3C WebAssembly Community Group",
@@ -13844,6 +15417,58 @@ var xslt = {
13844
15417
  }
13845
15418
  };
13846
15419
 
15420
+ // src/languages/yacc.ts
15421
+ var yacc = {
15422
+ slug: "yacc",
15423
+ aliases: ["bison"],
15424
+ publishedDate: "1973-01-01",
15425
+ extensions: [".y", ".yacc"],
15426
+ author: "Stephen C. Johnson (Bell Labs)",
15427
+ website: "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html",
15428
+ paradigms: ["declarative", "generator"],
15429
+ tooling: {
15430
+ runtimes: ["C toolchains"],
15431
+ ecosystems: ["Compilers", "Language Tooling", "Unix"]
15432
+ },
15433
+ version: "POSIX yacc / Bison 3.8.2",
15434
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
15435
+ color: "#4B6C4B",
15436
+ i18n: {
15437
+ en: {
15438
+ name: "Yacc",
15439
+ description: "A parser generator that turns context-free grammars into LALR parser code.",
15440
+ 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.'
15441
+ },
15442
+ es: {
15443
+ name: "Yacc",
15444
+ description: "Un generador de parsers que convierte gram\xE1ticas libres de contexto en parsers LALR.",
15445
+ 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.'
15446
+ },
15447
+ it: {
15448
+ name: "Yacc",
15449
+ description: "Un generatore di parser che trasforma grammatiche libere dal contesto in parser LALR.",
15450
+ 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.
15451
+
15452
+ 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.`
15453
+ },
15454
+ fr: {
15455
+ name: "Yacc",
15456
+ description: "Un g\xE9n\xE9rateur de parseurs qui transforme des grammaires hors contexte en parseurs LALR.",
15457
+ 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."
15458
+ },
15459
+ de: {
15460
+ name: "Yacc",
15461
+ description: "Ein Parser-Generator, der kontextfreie Grammatiken in LALR-Parser-Code \xFCbersetzt.",
15462
+ 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.'
15463
+ },
15464
+ pt: {
15465
+ name: "Yacc",
15466
+ description: "Um gerador de parsers que converte gram\xE1ticas livres de contexto em parsers LALR.",
15467
+ 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.'
15468
+ }
15469
+ }
15470
+ };
15471
+
13847
15472
  // src/languages/yaml.ts
13848
15473
  var yaml = {
13849
15474
  slug: "yaml",
@@ -14145,43 +15770,46 @@ var languages = [
14145
15770
  ada,
14146
15771
  agda,
14147
15772
  algol,
15773
+ alloy,
14148
15774
  ampl,
15775
+ angelscript,
14149
15776
  ante,
14150
15777
  antlr,
14151
15778
  apex,
14152
15779
  apl,
14153
15780
  applescript,
14154
- arduino,
14155
15781
  aql,
15782
+ arduino,
14156
15783
  asciidoc,
14157
15784
  asp,
14158
15785
  assembly,
14159
15786
  assemblyscript,
14160
- angelscript,
14161
15787
  astro,
14162
15788
  austral,
14163
15789
  autohotkey,
14164
15790
  avroIdl,
14165
15791
  awk,
14166
15792
  ballerina,
14167
- basic,
14168
15793
  bash,
15794
+ basic,
14169
15795
  batch,
14170
15796
  bazel,
14171
15797
  bcpl,
14172
- bicep,
14173
15798
  bibtex,
15799
+ bicep,
14174
15800
  blade,
14175
15801
  bosque,
14176
15802
  bqn,
14177
15803
  brainfuck,
14178
15804
  c,
15805
+ c3,
14179
15806
  cairo,
14180
15807
  capnproto,
14181
15808
  carbon,
14182
15809
  cel,
14183
15810
  chapel,
14184
15811
  circom,
15812
+ clarity,
14185
15813
  clojure,
14186
15814
  cmake,
14187
15815
  cobol,
@@ -14189,13 +15817,14 @@ var languages = [
14189
15817
  coldfusion,
14190
15818
  coq,
14191
15819
  cpp,
14192
- crystal,
14193
15820
  cql,
15821
+ crystal,
14194
15822
  csharp,
14195
15823
  css,
14196
15824
  cuda,
14197
15825
  cue,
14198
15826
  curry,
15827
+ cwl,
14199
15828
  cypher,
14200
15829
  cython,
14201
15830
  d,
@@ -14207,32 +15836,37 @@ var languages = [
14207
15836
  dockerfile,
14208
15837
  dot,
14209
15838
  earthly,
15839
+ edgeql,
14210
15840
  editorconfig,
14211
15841
  eiffel,
14212
15842
  ejs,
14213
15843
  elixir,
14214
15844
  elm,
15845
+ emacsLisp,
14215
15846
  erb,
14216
15847
  erlang,
14217
15848
  factor,
15849
+ faust,
14218
15850
  fe,
14219
15851
  fennel,
14220
15852
  fish,
14221
15853
  flatbuffers,
15854
+ flix,
14222
15855
  flux,
14223
15856
  forth,
14224
15857
  fortran,
14225
- freemarker,
14226
15858
  fql,
15859
+ freemarker,
14227
15860
  fsharp,
14228
15861
  fstar,
14229
- gdscript,
15862
+ futhark,
14230
15863
  gcode,
15864
+ gdscript,
14231
15865
  gettext,
14232
15866
  git,
14233
15867
  gleam,
14234
- gml,
14235
15868
  glsl,
15869
+ gml,
14236
15870
  go,
14237
15871
  gradle,
14238
15872
  grain,
@@ -14256,11 +15890,14 @@ var languages = [
14256
15890
  inkNarrative,
14257
15891
  io,
14258
15892
  isabelle,
15893
+ j,
14259
15894
  janet,
14260
15895
  java,
14261
15896
  javascript,
15897
+ jcl,
14262
15898
  jinja,
14263
15899
  jmespath,
15900
+ jq,
14264
15901
  json,
14265
15902
  json5,
14266
15903
  jsonata,
@@ -14276,9 +15913,10 @@ var languages = [
14276
15913
  kql,
14277
15914
  lean,
14278
15915
  less,
15916
+ lex,
14279
15917
  ligo,
14280
- liquid,
14281
15918
  linkerscript,
15919
+ liquid,
14282
15920
  lisp,
14283
15921
  llvmIr,
14284
15922
  lobster,
@@ -14293,13 +15931,13 @@ var languages = [
14293
15931
  matlab,
14294
15932
  maxima,
14295
15933
  mdx,
15934
+ mercury,
14296
15935
  mermaid,
14297
15936
  meson,
14298
- mercury,
14299
15937
  metal,
14300
15938
  modelica,
14301
- mojo,
14302
15939
  modula2,
15940
+ mojo,
14303
15941
  moonbit,
14304
15942
  move,
14305
15943
  mumps,
@@ -14310,12 +15948,13 @@ var languages = [
14310
15948
  nickel,
14311
15949
  nim,
14312
15950
  nix,
15951
+ noir,
14313
15952
  nunjucks,
14314
15953
  nushell,
15954
+ oberon,
14315
15955
  objectiveC,
14316
15956
  ocaml,
14317
15957
  octave,
14318
- oberon,
14319
15958
  odin,
14320
15959
  openapi,
14321
15960
  opencl,
@@ -14325,8 +15964,8 @@ var languages = [
14325
15964
  perl,
14326
15965
  php,
14327
15966
  pineScript,
14328
- plI,
14329
15967
  pkl,
15968
+ plI,
14330
15969
  plantuml,
14331
15970
  plpgsql,
14332
15971
  plsql,
@@ -14338,24 +15977,29 @@ var languages = [
14338
15977
  processing,
14339
15978
  prolog,
14340
15979
  promql,
15980
+ properties,
14341
15981
  protobuf,
15982
+ prql,
14342
15983
  pug,
14343
15984
  puppet,
14344
15985
  purescript,
14345
15986
  python,
14346
- qml,
15987
+ q,
14347
15988
  qmake,
15989
+ qml,
14348
15990
  qsharp,
14349
15991
  r,
14350
15992
  racket,
14351
15993
  raku,
14352
15994
  razor,
15995
+ reasonml,
14353
15996
  rebol,
14354
15997
  red,
14355
- reasonml,
14356
15998
  rego,
15999
+ renpy,
14357
16000
  rescript,
14358
16001
  restructuredtext,
16002
+ rexx,
14359
16003
  roc,
14360
16004
  rpg,
14361
16005
  ruby,
@@ -14366,14 +16010,16 @@ var languages = [
14366
16010
  scss,
14367
16011
  self,
14368
16012
  simula,
16013
+ slang,
14369
16014
  smalltalk,
14370
16015
  smarty,
16016
+ smithy,
14371
16017
  snakemake,
14372
16018
  snobol,
14373
16019
  solidity,
14374
16020
  soql,
14375
- sparql,
14376
16021
  spark,
16022
+ sparql,
14377
16023
  spl,
14378
16024
  spss,
14379
16025
  sql,
@@ -14382,9 +16028,11 @@ var languages = [
14382
16028
  starlark,
14383
16029
  stata,
14384
16030
  stylus,
16031
+ supercollider,
14385
16032
  svelte,
14386
16033
  svg,
14387
16034
  svn,
16035
+ sway,
14388
16036
  swift,
14389
16037
  tcl,
14390
16038
  tcsh,
@@ -14398,21 +16046,24 @@ var languages = [
14398
16046
  twee,
14399
16047
  twig,
14400
16048
  typescript,
16049
+ typespec,
14401
16050
  typst,
14402
16051
  unison,
14403
16052
  v,
14404
16053
  vala,
14405
- vba,
14406
16054
  vale,
16055
+ vba,
16056
+ vbscript,
14407
16057
  velocity,
14408
16058
  verilog,
14409
16059
  verse,
14410
16060
  vhdl,
16061
+ vimscript,
14411
16062
  visualBasic,
14412
16063
  vue,
14413
16064
  vyper,
14414
- webassembly,
14415
16065
  wdl,
16066
+ webassembly,
14416
16067
  wgsl,
14417
16068
  wren,
14418
16069
  xaml,
@@ -14420,6 +16071,7 @@ var languages = [
14420
16071
  xpath,
14421
16072
  xquery,
14422
16073
  xslt,
16074
+ yacc,
14423
16075
  yaml,
14424
16076
  yara,
14425
16077
  zeek,
@@ -14428,38 +16080,17 @@ var languages = [
14428
16080
  zsh
14429
16081
  ];
14430
16082
 
14431
- // src/domain/detection/match.ts
14432
- var pathSegmentPattern = /[/\\]/;
14433
- var getBasename = (filename) => {
14434
- const parts = filename.trim().split(pathSegmentPattern);
14435
- return parts.at(-1).toLowerCase();
14436
- };
14437
- var matchesExtension = (basename, extension) => {
14438
- const normalizedExtension = extension.toLowerCase();
14439
- if (normalizedExtension.startsWith(".")) {
14440
- return basename.endsWith(normalizedExtension);
14441
- }
14442
- return basename === normalizedExtension || basename.endsWith(`.${normalizedExtension}`);
14443
- };
14444
- var detectMatchingEntries = (entries, filename) => {
14445
- const basename = getBasename(filename);
14446
- if (!basename) {
14447
- return [];
14448
- }
14449
- return entries.map((entry, index) => ({
14450
- entry,
14451
- index,
14452
- matchLength: Math.max(
14453
- ...entry.extensions.filter((extension) => matchesExtension(basename, extension)).map((extension) => extension.length)
14454
- )
14455
- })).filter(({ matchLength }) => Number.isFinite(matchLength)).sort((first, second) => second.matchLength - first.matchLength || first.index - second.index).map(({ entry }) => entry);
14456
- };
14457
-
14458
16083
  // src/domain/detection/detect.ts
14459
16084
  var detectLanguages = (filename) => {
14460
16085
  return detectMatchingEntries(languages, filename);
14461
16086
  };
14462
16087
  var detectLanguage = (filename) => detectLanguages(filename).at(0);
16088
+ var detectLanguageByShebang = (content) => {
16089
+ const slug = detectLanguageSlugByShebang(content);
16090
+ return slug ? languages.find((language) => language.slug === slug) : void 0;
16091
+ };
14463
16092
 
14464
16093
  exports.detectLanguage = detectLanguage;
16094
+ exports.detectLanguageByShebang = detectLanguageByShebang;
16095
+ exports.detectLanguageSlugByShebang = detectLanguageSlugByShebang;
14465
16096
  exports.detectLanguages = detectLanguages;