code-languages 1.40.11 → 1.41.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 (222) hide show
  1. package/README.md +72 -29
  2. package/dist/{api-Cvg4BdaR.d.cts → api-BmiYNzCU.d.cts} +38 -7
  3. package/dist/{api-BlQoDQtF.d.ts → api-DfrvOkQ-.d.ts} +38 -7
  4. package/dist/api.cjs +1873 -1205
  5. package/dist/api.d.cts +3 -3
  6. package/dist/api.d.ts +3 -3
  7. package/dist/api.js +1873 -1205
  8. package/dist/detect-slugs.cjs +147 -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 +147 -41
  12. package/dist/detect.cjs +657 -62
  13. package/dist/detect.d.cts +14 -2
  14. package/dist/detect.d.ts +14 -2
  15. package/dist/detect.js +656 -63
  16. package/dist/i18n.d.cts +1 -1
  17. package/dist/i18n.d.ts +1 -1
  18. package/dist/index.cjs +1988 -1237
  19. package/dist/index.d.cts +29 -13277
  20. package/dist/index.d.ts +29 -13277
  21. package/dist/index.js +1949 -1200
  22. package/dist/languages/actionscript.cjs +1 -0
  23. package/dist/languages/actionscript.d.cts +1 -0
  24. package/dist/languages/actionscript.d.ts +1 -0
  25. package/dist/languages/actionscript.js +1 -0
  26. package/dist/languages/algol.cjs +1 -0
  27. package/dist/languages/algol.d.cts +1 -0
  28. package/dist/languages/algol.d.ts +1 -0
  29. package/dist/languages/algol.js +1 -0
  30. package/dist/languages/ante.cjs +1 -0
  31. package/dist/languages/ante.d.cts +1 -0
  32. package/dist/languages/ante.d.ts +1 -0
  33. package/dist/languages/ante.js +1 -0
  34. package/dist/languages/assembly.cjs +1 -0
  35. package/dist/languages/assembly.d.cts +1 -0
  36. package/dist/languages/assembly.d.ts +1 -0
  37. package/dist/languages/assembly.js +1 -0
  38. package/dist/languages/austral.cjs +2 -1
  39. package/dist/languages/austral.d.cts +1 -0
  40. package/dist/languages/austral.d.ts +1 -0
  41. package/dist/languages/austral.js +2 -1
  42. package/dist/languages/bcpl.cjs +1 -0
  43. package/dist/languages/bcpl.d.cts +1 -0
  44. package/dist/languages/bcpl.d.ts +1 -0
  45. package/dist/languages/bcpl.js +1 -0
  46. package/dist/languages/bibtex.cjs +1 -1
  47. package/dist/languages/bibtex.js +1 -1
  48. package/dist/languages/bosque.cjs +1 -0
  49. package/dist/languages/bosque.d.cts +1 -0
  50. package/dist/languages/bosque.d.ts +1 -0
  51. package/dist/languages/bosque.js +1 -0
  52. package/dist/languages/carbon.cjs +1 -0
  53. package/dist/languages/carbon.d.cts +1 -0
  54. package/dist/languages/carbon.d.ts +1 -0
  55. package/dist/languages/carbon.js +1 -0
  56. package/dist/languages/coq.cjs +1 -0
  57. package/dist/languages/coq.d.cts +1 -0
  58. package/dist/languages/coq.d.ts +1 -0
  59. package/dist/languages/coq.js +1 -0
  60. package/dist/languages/cpp.cjs +1 -0
  61. package/dist/languages/cpp.d.cts +1 -0
  62. package/dist/languages/cpp.d.ts +1 -0
  63. package/dist/languages/cpp.js +1 -0
  64. package/dist/languages/csharp.cjs +1 -0
  65. package/dist/languages/csharp.d.cts +1 -0
  66. package/dist/languages/csharp.d.ts +1 -0
  67. package/dist/languages/csharp.js +1 -0
  68. package/dist/languages/dax.cjs +1 -1
  69. package/dist/languages/dax.js +1 -1
  70. package/dist/languages/dockerfile.cjs +1 -0
  71. package/dist/languages/dockerfile.d.cts +1 -0
  72. package/dist/languages/dockerfile.d.ts +1 -0
  73. package/dist/languages/dockerfile.js +1 -0
  74. package/dist/languages/emacs-lisp.cjs +54 -0
  75. package/dist/languages/emacs-lisp.d.cts +51 -0
  76. package/dist/languages/emacs-lisp.d.ts +51 -0
  77. package/dist/languages/emacs-lisp.js +52 -0
  78. package/dist/languages/fe.cjs +1 -0
  79. package/dist/languages/fe.d.cts +1 -0
  80. package/dist/languages/fe.d.ts +1 -0
  81. package/dist/languages/fe.js +1 -0
  82. package/dist/languages/fsharp.cjs +1 -0
  83. package/dist/languages/fsharp.d.cts +1 -0
  84. package/dist/languages/fsharp.d.ts +1 -0
  85. package/dist/languages/fsharp.js +1 -0
  86. package/dist/languages/gcode.cjs +1 -1
  87. package/dist/languages/gcode.js +1 -1
  88. package/dist/languages/gettext.cjs +1 -1
  89. package/dist/languages/gettext.js +1 -1
  90. package/dist/languages/go.cjs +1 -0
  91. package/dist/languages/go.d.cts +1 -0
  92. package/dist/languages/go.d.ts +1 -0
  93. package/dist/languages/go.js +1 -0
  94. package/dist/languages/io.cjs +1 -1
  95. package/dist/languages/io.js +1 -1
  96. package/dist/languages/javascript.cjs +1 -0
  97. package/dist/languages/javascript.d.cts +1 -0
  98. package/dist/languages/javascript.d.ts +1 -0
  99. package/dist/languages/javascript.js +1 -0
  100. package/dist/languages/jcl.cjs +52 -0
  101. package/dist/languages/jcl.d.cts +49 -0
  102. package/dist/languages/jcl.d.ts +49 -0
  103. package/dist/languages/jcl.js +50 -0
  104. package/dist/languages/jq.cjs +52 -0
  105. package/dist/languages/jq.d.cts +49 -0
  106. package/dist/languages/jq.d.ts +49 -0
  107. package/dist/languages/jq.js +50 -0
  108. package/dist/languages/kotlin.cjs +1 -0
  109. package/dist/languages/kotlin.d.cts +1 -0
  110. package/dist/languages/kotlin.d.ts +1 -0
  111. package/dist/languages/kotlin.js +1 -0
  112. package/dist/languages/lex.cjs +53 -0
  113. package/dist/languages/lex.d.cts +50 -0
  114. package/dist/languages/lex.d.ts +50 -0
  115. package/dist/languages/lex.js +51 -0
  116. package/dist/languages/linkerscript.cjs +1 -1
  117. package/dist/languages/linkerscript.js +1 -1
  118. package/dist/languages/lobster.cjs +1 -1
  119. package/dist/languages/lobster.js +1 -1
  120. package/dist/languages/markdown.cjs +1 -0
  121. package/dist/languages/markdown.d.cts +1 -0
  122. package/dist/languages/markdown.d.ts +1 -0
  123. package/dist/languages/markdown.js +1 -0
  124. package/dist/languages/objective-c.cjs +1 -0
  125. package/dist/languages/objective-c.d.cts +1 -0
  126. package/dist/languages/objective-c.d.ts +1 -0
  127. package/dist/languages/objective-c.js +1 -0
  128. package/dist/languages/pl-i.cjs +1 -1
  129. package/dist/languages/pl-i.js +1 -1
  130. package/dist/languages/postscript.cjs +1 -1
  131. package/dist/languages/postscript.js +1 -1
  132. package/dist/languages/powerquery.cjs +1 -1
  133. package/dist/languages/powerquery.js +1 -1
  134. package/dist/languages/powershell.cjs +1 -0
  135. package/dist/languages/powershell.d.cts +1 -0
  136. package/dist/languages/powershell.d.ts +1 -0
  137. package/dist/languages/powershell.js +1 -0
  138. package/dist/languages/properties.cjs +53 -0
  139. package/dist/languages/properties.d.cts +50 -0
  140. package/dist/languages/properties.d.ts +50 -0
  141. package/dist/languages/properties.js +51 -0
  142. package/dist/languages/protobuf.cjs +1 -0
  143. package/dist/languages/protobuf.d.cts +1 -0
  144. package/dist/languages/protobuf.d.ts +1 -0
  145. package/dist/languages/protobuf.js +1 -0
  146. package/dist/languages/python.cjs +1 -0
  147. package/dist/languages/python.d.cts +1 -0
  148. package/dist/languages/python.d.ts +1 -0
  149. package/dist/languages/python.js +1 -0
  150. package/dist/languages/raku.cjs +1 -0
  151. package/dist/languages/raku.d.cts +1 -0
  152. package/dist/languages/raku.d.ts +1 -0
  153. package/dist/languages/raku.js +1 -0
  154. package/dist/languages/restructuredtext.cjs +1 -0
  155. package/dist/languages/restructuredtext.d.cts +1 -0
  156. package/dist/languages/restructuredtext.d.ts +1 -0
  157. package/dist/languages/restructuredtext.js +1 -0
  158. package/dist/languages/rexx.cjs +52 -0
  159. package/dist/languages/rexx.d.cts +49 -0
  160. package/dist/languages/rexx.d.ts +49 -0
  161. package/dist/languages/rexx.js +50 -0
  162. package/dist/languages/ruby.cjs +1 -0
  163. package/dist/languages/ruby.d.cts +1 -0
  164. package/dist/languages/ruby.d.ts +1 -0
  165. package/dist/languages/ruby.js +1 -0
  166. package/dist/languages/simula.cjs +1 -0
  167. package/dist/languages/simula.d.cts +1 -0
  168. package/dist/languages/simula.d.ts +1 -0
  169. package/dist/languages/simula.js +1 -0
  170. package/dist/languages/snobol.cjs +1 -0
  171. package/dist/languages/snobol.d.cts +1 -0
  172. package/dist/languages/snobol.d.ts +1 -0
  173. package/dist/languages/snobol.js +1 -0
  174. package/dist/languages/spark.cjs +1 -1
  175. package/dist/languages/spark.js +1 -1
  176. package/dist/languages/spss.cjs +1 -1
  177. package/dist/languages/spss.js +1 -1
  178. package/dist/languages/squirrel.cjs +1 -1
  179. package/dist/languages/squirrel.js +1 -1
  180. package/dist/languages/tex.cjs +1 -0
  181. package/dist/languages/tex.d.cts +1 -0
  182. package/dist/languages/tex.d.ts +1 -0
  183. package/dist/languages/tex.js +1 -0
  184. package/dist/languages/typescript.cjs +1 -0
  185. package/dist/languages/typescript.d.cts +1 -0
  186. package/dist/languages/typescript.d.ts +1 -0
  187. package/dist/languages/typescript.js +1 -0
  188. package/dist/languages/vale.cjs +2 -1
  189. package/dist/languages/vale.d.cts +1 -0
  190. package/dist/languages/vale.d.ts +1 -0
  191. package/dist/languages/vale.js +2 -1
  192. package/dist/languages/vba.cjs +1 -1
  193. package/dist/languages/vba.js +1 -1
  194. package/dist/languages/vbscript.cjs +53 -0
  195. package/dist/languages/vbscript.d.cts +50 -0
  196. package/dist/languages/vbscript.d.ts +50 -0
  197. package/dist/languages/vbscript.js +51 -0
  198. package/dist/languages/verse.cjs +1 -1
  199. package/dist/languages/verse.js +1 -1
  200. package/dist/languages/vimscript.cjs +54 -0
  201. package/dist/languages/vimscript.d.cts +51 -0
  202. package/dist/languages/vimscript.d.ts +51 -0
  203. package/dist/languages/vimscript.js +52 -0
  204. package/dist/languages/visual-basic.cjs +1 -0
  205. package/dist/languages/visual-basic.d.cts +1 -0
  206. package/dist/languages/visual-basic.d.ts +1 -0
  207. package/dist/languages/visual-basic.js +1 -0
  208. package/dist/languages/webassembly.cjs +1 -0
  209. package/dist/languages/webassembly.d.cts +1 -0
  210. package/dist/languages/webassembly.d.ts +1 -0
  211. package/dist/languages/webassembly.js +1 -0
  212. package/dist/languages/yacc.cjs +55 -0
  213. package/dist/languages/yacc.d.cts +50 -0
  214. package/dist/languages/yacc.d.ts +50 -0
  215. package/dist/languages/yacc.js +53 -0
  216. package/dist/{registry-p4uQJ2gP.d.cts → registry-XRfwD571.d.cts} +80 -53
  217. package/dist/{registry-p4uQJ2gP.d.ts → registry-XRfwD571.d.ts} +80 -53
  218. package/dist/shebang-B1dhpwsv.d.ts +15 -0
  219. package/dist/shebang-BL2ZFHQP.d.cts +15 -0
  220. package/dist/{types-B0_wjl_Q.d.cts → types-DkAECzIe.d.cts} +14 -1
  221. package/dist/{types-B0_wjl_Q.d.ts → types-DkAECzIe.d.ts} +14 -1
  222. package/package.json +56 -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,6 +176,7 @@ 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",
@@ -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",
@@ -348,6 +474,7 @@ var angelscript = {
348
474
  // src/languages/ante.ts
349
475
  var ante = {
350
476
  slug: "ante",
477
+ status: "experimental",
351
478
  publishedDate: "2019-01-01",
352
479
  extensions: [".ante"],
353
480
  author: "Evan Haas",
@@ -795,6 +922,7 @@ var asp = {
795
922
  // src/languages/assembly.ts
796
923
  var assembly = {
797
924
  slug: "assembly",
925
+ aliases: ["asm"],
798
926
  publishedDate: "1949-01-01",
799
927
  extensions: [".asm", ".s", ".S", ".inc"],
800
928
  author: "Machine architecture vendors and assembler implementers",
@@ -944,6 +1072,7 @@ var astro = {
944
1072
  // src/languages/austral.ts
945
1073
  var austral = {
946
1074
  slug: "austral",
1075
+ status: "experimental",
947
1076
  publishedDate: "2021-01-01",
948
1077
  extensions: [".aum", ".aui"],
949
1078
  author: "Fernando Borretti",
@@ -954,7 +1083,7 @@ var austral = {
954
1083
  ecosystems: ["Systems Programming", "Memory Safety", "Research"]
955
1084
  },
956
1085
  version: "0.1.0",
957
- logo: "https://dummyimage.com/32x32/0F766E/ffffff.png&text=Au",
1086
+ logo: "https://avatars.githubusercontent.com/u/17337956?v=4",
958
1087
  color: "#0F766E",
959
1088
  i18n: {
960
1089
  en: {
@@ -1385,6 +1514,7 @@ var bazel = {
1385
1514
  // src/languages/bcpl.ts
1386
1515
  var bcpl = {
1387
1516
  slug: "bcpl",
1517
+ status: "historical",
1388
1518
  publishedDate: "1967-01-01",
1389
1519
  extensions: [".bcpl"],
1390
1520
  author: "Martin Richards",
@@ -1444,7 +1574,7 @@ var bibtex = {
1444
1574
  ecosystems: ["TeX", "LaTeX", "Academic publishing"]
1445
1575
  },
1446
1576
  version: "stable",
1447
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Bi",
1577
+ logo: "https://upload.wikimedia.org/wikipedia/commons/9/92/LaTeX_logo.svg",
1448
1578
  color: "#2563EB",
1449
1579
  i18n: {
1450
1580
  en: {
@@ -1583,6 +1713,7 @@ var blade = {
1583
1713
  // src/languages/bosque.ts
1584
1714
  var bosque = {
1585
1715
  slug: "bosque",
1716
+ status: "experimental",
1586
1717
  publishedDate: "2019-04-15",
1587
1718
  extensions: [".bsq"],
1588
1719
  author: "Microsoft Research",
@@ -1879,6 +2010,7 @@ var capnproto = {
1879
2010
  // src/languages/carbon.ts
1880
2011
  var carbon = {
1881
2012
  slug: "carbon",
2013
+ status: "experimental",
1882
2014
  publishedDate: "2022-07-19",
1883
2015
  extensions: [".carbon"],
1884
2016
  author: "Carbon Language Project",
@@ -2326,6 +2458,7 @@ var coldfusion = {
2326
2458
  // src/languages/coq.ts
2327
2459
  var coq = {
2328
2460
  slug: "coq",
2461
+ aliases: ["rocq"],
2329
2462
  publishedDate: "1989-01-01",
2330
2463
  extensions: [".v"],
2331
2464
  author: "INRIA / Rocq Prover Development Team",
@@ -2376,6 +2509,7 @@ var coq = {
2376
2509
  // src/languages/cpp.ts
2377
2510
  var cpp = {
2378
2511
  slug: "cpp",
2512
+ aliases: ["c++", "cplusplus"],
2379
2513
  publishedDate: "1985-10-01",
2380
2514
  extensions: [".cpp", ".cc", ".cxx", ".h", ".hpp", ".hh", ".hxx"],
2381
2515
  author: "Bjarne Stroustrup",
@@ -2525,6 +2659,7 @@ var crystal = {
2525
2659
  // src/languages/csharp.ts
2526
2660
  var csharp = {
2527
2661
  slug: "csharp",
2662
+ aliases: ["c#", "cs"],
2528
2663
  publishedDate: "2000-06-26",
2529
2664
  extensions: [".cs", ".csx"],
2530
2665
  author: "Anders Hejlsberg / Microsoft",
@@ -3033,7 +3168,7 @@ var dax = {
3033
3168
  ]
3034
3169
  },
3035
3170
  version: "DAX 2025",
3036
- logo: "https://dummyimage.com/32x32/F2C811/000000.png&text=DAX",
3171
+ logo: "https://upload.wikimedia.org/wikipedia/commons/c/cf/New_Power_BI_Logo.svg",
3037
3172
  color: "#F2C811",
3038
3173
  i18n: {
3039
3174
  en: {
@@ -3172,6 +3307,7 @@ var dita = {
3172
3307
  // src/languages/dockerfile.ts
3173
3308
  var dockerfile = {
3174
3309
  slug: "dockerfile",
3310
+ aliases: ["docker"],
3175
3311
  publishedDate: "2013-03-20",
3176
3312
  extensions: ["Dockerfile", ".dockerfile"],
3177
3313
  author: "Docker, Inc.",
@@ -3565,6 +3701,57 @@ var elm = {
3565
3701
  }
3566
3702
  };
3567
3703
 
3704
+ // src/languages/emacs-lisp.ts
3705
+ var emacsLisp = {
3706
+ slug: "emacs-lisp",
3707
+ aliases: ["elisp"],
3708
+ publishedDate: "1985-03-20",
3709
+ extensions: [".el"],
3710
+ author: "Richard Stallman / GNU Project",
3711
+ website: "https://www.gnu.org/software/emacs/manual/elisp.html",
3712
+ paradigms: ["functional", "imperative", "meta-programming", "scripting"],
3713
+ tooling: {
3714
+ runtimes: ["GNU Emacs"],
3715
+ packageManagers: ["package.el", "ELPA", "MELPA"],
3716
+ ecosystems: ["Text Editors", "Scripting"]
3717
+ },
3718
+ version: "Emacs 30.1",
3719
+ logo: "https://cdn.simpleicons.org/gnuemacs/7F5AB6",
3720
+ color: "#7F5AB6",
3721
+ i18n: {
3722
+ en: {
3723
+ name: "Emacs Lisp",
3724
+ description: "The Lisp dialect used to implement and extend the GNU Emacs editor.",
3725
+ 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."
3726
+ },
3727
+ es: {
3728
+ name: "Emacs Lisp",
3729
+ description: "El dialecto de Lisp usado para implementar y extender el editor GNU Emacs.",
3730
+ 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."
3731
+ },
3732
+ it: {
3733
+ name: "Emacs Lisp",
3734
+ description: "Il dialetto Lisp usato per implementare ed estendere l'editor GNU Emacs.",
3735
+ 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."
3736
+ },
3737
+ fr: {
3738
+ name: "Emacs Lisp",
3739
+ description: "Le dialecte Lisp utilis\xE9 pour impl\xE9menter et \xE9tendre l'\xE9diteur GNU Emacs.",
3740
+ 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."
3741
+ },
3742
+ de: {
3743
+ name: "Emacs Lisp",
3744
+ description: "Der Lisp-Dialekt, mit dem der GNU-Emacs-Editor implementiert und erweitert wird.",
3745
+ 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."
3746
+ },
3747
+ pt: {
3748
+ name: "Emacs Lisp",
3749
+ description: "O dialeto de Lisp usado para implementar e estender o editor GNU Emacs.",
3750
+ 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."
3751
+ }
3752
+ }
3753
+ };
3754
+
3568
3755
  // src/languages/erb.ts
3569
3756
  var erb = {
3570
3757
  slug: "erb",
@@ -3718,6 +3905,7 @@ var factor = {
3718
3905
  // src/languages/fe.ts
3719
3906
  var fe = {
3720
3907
  slug: "fe",
3908
+ status: "experimental",
3721
3909
  publishedDate: "2020-10-08",
3722
3910
  extensions: [".fe"],
3723
3911
  author: "Ethereum Foundation contributors",
@@ -4163,6 +4351,7 @@ var freemarker = {
4163
4351
  // src/languages/fsharp.ts
4164
4352
  var fsharp = {
4165
4353
  slug: "fsharp",
4354
+ aliases: ["f#"],
4166
4355
  publishedDate: "2005-05-01",
4167
4356
  extensions: [".fs", ".fsi", ".fsx", ".fsscript"],
4168
4357
  author: "Don Syme / Microsoft Research",
@@ -4273,7 +4462,7 @@ var gcode = {
4273
4462
  ecosystems: ["CNC machining", "Additive manufacturing"]
4274
4463
  },
4275
4464
  version: "RS-274",
4276
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=G",
4465
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_gcode.svg",
4277
4466
  color: "#DC2626",
4278
4467
  i18n: {
4279
4468
  en: {
@@ -4372,7 +4561,7 @@ var gettext = {
4372
4561
  ecosystems: ["Internationalization", "Localization"]
4373
4562
  },
4374
4563
  version: "stable",
4375
- logo: "https://dummyimage.com/32x32/7C3AED/ffffff.png&text=PO",
4564
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
4376
4565
  color: "#7C3AED",
4377
4566
  i18n: {
4378
4567
  en: {
@@ -4609,6 +4798,7 @@ var gml = {
4609
4798
  // src/languages/go.ts
4610
4799
  var go = {
4611
4800
  slug: "go",
4801
+ aliases: ["golang"],
4612
4802
  publishedDate: "2012-03-28",
4613
4803
  extensions: [".go"],
4614
4804
  author: "Robert Griesemer, Rob Pike, Ken Thompson / Google",
@@ -5658,7 +5848,7 @@ var io = {
5658
5848
  ecosystems: ["Scripting", "Prototype Programming", "Language Exploration"]
5659
5849
  },
5660
5850
  version: "2017.09.06",
5661
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Io",
5851
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_io.svg",
5662
5852
  color: "#2563EB",
5663
5853
  i18n: {
5664
5854
  en: {
@@ -5846,6 +6036,7 @@ var java = {
5846
6036
  // src/languages/javascript.ts
5847
6037
  var javascript = {
5848
6038
  slug: "javascript",
6039
+ aliases: ["js", "ecmascript"],
5849
6040
  publishedDate: "1995-12-04",
5850
6041
  extensions: [".js", ".mjs", ".cjs", ".jsx"],
5851
6042
  author: "Brendan Eich / Netscape",
@@ -5893,6 +6084,55 @@ var javascript = {
5893
6084
  }
5894
6085
  };
5895
6086
 
6087
+ // src/languages/jcl.ts
6088
+ var jcl = {
6089
+ slug: "jcl",
6090
+ publishedDate: "1964-04-07",
6091
+ extensions: [".jcl"],
6092
+ author: "IBM",
6093
+ website: "https://www.ibm.com/docs/en/zos/3.1.0?topic=zos-mvs-jcl-reference",
6094
+ paradigms: ["declarative", "batch"],
6095
+ tooling: {
6096
+ runtimes: ["z/OS", "MVS", "JES2", "JES3"],
6097
+ ecosystems: ["Mainframe", "Batch Processing"]
6098
+ },
6099
+ version: "z/OS 3.1",
6100
+ logo: "https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
6101
+ color: "#1F70C1",
6102
+ i18n: {
6103
+ en: {
6104
+ name: "JCL",
6105
+ description: "IBM Job Control Language for describing batch jobs on z/OS mainframes.",
6106
+ 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."
6107
+ },
6108
+ es: {
6109
+ name: "JCL",
6110
+ description: "El Job Control Language de IBM para describir trabajos batch en mainframes z/OS.",
6111
+ 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."
6112
+ },
6113
+ it: {
6114
+ name: "JCL",
6115
+ description: "Il Job Control Language di IBM per descrivere job batch sui mainframe z/OS.",
6116
+ 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."
6117
+ },
6118
+ fr: {
6119
+ name: "JCL",
6120
+ description: "Le Job Control Language d'IBM pour d\xE9crire les travaux batch sur mainframes z/OS.",
6121
+ 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."
6122
+ },
6123
+ de: {
6124
+ name: "JCL",
6125
+ description: "IBMs Job Control Language zur Beschreibung von Batch-Jobs auf z/OS-Mainframes.",
6126
+ 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."
6127
+ },
6128
+ pt: {
6129
+ name: "JCL",
6130
+ description: "A Job Control Language da IBM para descrever jobs batch em mainframes z/OS.",
6131
+ 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."
6132
+ }
6133
+ }
6134
+ };
6135
+
5896
6136
  // src/languages/jinja.ts
5897
6137
  var jinja = {
5898
6138
  slug: "jinja",
@@ -5992,6 +6232,55 @@ var jmespath = {
5992
6232
  }
5993
6233
  };
5994
6234
 
6235
+ // src/languages/jq.ts
6236
+ var jq = {
6237
+ slug: "jq",
6238
+ publishedDate: "2012-10-21",
6239
+ extensions: [".jq"],
6240
+ author: "Stephen Dolan",
6241
+ website: "https://jqlang.org",
6242
+ paradigms: ["functional", "declarative", "query"],
6243
+ tooling: {
6244
+ runtimes: ["jq CLI"],
6245
+ ecosystems: ["Data Processing", "DevOps", "Scripting"]
6246
+ },
6247
+ version: "1.8.1",
6248
+ logo: "https://avatars.githubusercontent.com/u/125535133?v=4",
6249
+ color: "#C7254E",
6250
+ i18n: {
6251
+ en: {
6252
+ name: "jq",
6253
+ description: "A functional filter language for slicing, transforming, and querying JSON.",
6254
+ 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."
6255
+ },
6256
+ es: {
6257
+ name: "jq",
6258
+ description: "Un lenguaje funcional de filtros para cortar, transformar y consultar JSON.",
6259
+ 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."
6260
+ },
6261
+ it: {
6262
+ name: "jq",
6263
+ description: "Un linguaggio funzionale di filtri per tagliare, trasformare e interrogare JSON.",
6264
+ 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."
6265
+ },
6266
+ fr: {
6267
+ name: "jq",
6268
+ description: "Un langage fonctionnel de filtres pour d\xE9couper, transformer et interroger du JSON.",
6269
+ 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."
6270
+ },
6271
+ de: {
6272
+ name: "jq",
6273
+ description: "Eine funktionale Filtersprache zum Zerlegen, Transformieren und Abfragen von JSON.",
6274
+ 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."
6275
+ },
6276
+ pt: {
6277
+ name: "jq",
6278
+ description: "Uma linguagem funcional de filtros para fatiar, transformar e consultar JSON.",
6279
+ 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."
6280
+ }
6281
+ }
6282
+ };
6283
+
5995
6284
  // src/languages/json.ts
5996
6285
  var json = {
5997
6286
  slug: "json",
@@ -6537,6 +6826,7 @@ var koka = {
6537
6826
  // src/languages/kotlin.ts
6538
6827
  var kotlin = {
6539
6828
  slug: "kotlin",
6829
+ aliases: ["kt"],
6540
6830
  publishedDate: "2016-02-15",
6541
6831
  extensions: [".kt", ".kts"],
6542
6832
  author: "JetBrains",
@@ -6733,6 +7023,56 @@ var less = {
6733
7023
  }
6734
7024
  };
6735
7025
 
7026
+ // src/languages/lex.ts
7027
+ var lex = {
7028
+ slug: "lex",
7029
+ aliases: ["flex"],
7030
+ publishedDate: "1975-07-01",
7031
+ extensions: [".l", ".lex"],
7032
+ author: "Mike Lesk / Eric Schmidt (Bell Labs)",
7033
+ website: "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/lex.html",
7034
+ paradigms: ["declarative", "generator"],
7035
+ tooling: {
7036
+ runtimes: ["C toolchains"],
7037
+ ecosystems: ["Compilers", "Language Tooling", "Unix"]
7038
+ },
7039
+ version: "POSIX lex / flex 2.6.4",
7040
+ logo: "https://dummyimage.com/32x32/DBCA00/000000.png&text=Lex",
7041
+ color: "#DBCA00",
7042
+ i18n: {
7043
+ en: {
7044
+ name: "Lex",
7045
+ description: "A lexical analyzer generator that turns regex rules into scanner code.",
7046
+ 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."
7047
+ },
7048
+ es: {
7049
+ name: "Lex",
7050
+ description: "Un generador de analizadores l\xE9xicos que convierte reglas regex en c\xF3digo de escaneo.",
7051
+ 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."
7052
+ },
7053
+ it: {
7054
+ name: "Lex",
7055
+ description: "Un generatore di analizzatori lessicali che trasforma regole regex in codice scanner.",
7056
+ 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."
7057
+ },
7058
+ fr: {
7059
+ name: "Lex",
7060
+ description: "Un g\xE9n\xE9rateur d'analyseurs lexicaux qui transforme des r\xE8gles regex en code de scanner.",
7061
+ 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."
7062
+ },
7063
+ de: {
7064
+ name: "Lex",
7065
+ description: "Ein Generator f\xFCr lexikalische Analysatoren, der Regex-Regeln in Scanner-Code \xFCbersetzt.",
7066
+ 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."
7067
+ },
7068
+ pt: {
7069
+ name: "Lex",
7070
+ description: "Um gerador de analisadores l\xE9xicos que converte regras regex em c\xF3digo de scanner.",
7071
+ 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."
7072
+ }
7073
+ }
7074
+ };
7075
+
6736
7076
  // src/languages/ligo.ts
6737
7077
  var ligo = {
6738
7078
  slug: "ligo",
@@ -6796,7 +7136,7 @@ var linkerscript = {
6796
7136
  ecosystems: ["Embedded systems", "Operating systems"]
6797
7137
  },
6798
7138
  version: "stable",
6799
- logo: "https://dummyimage.com/32x32/475569/ffffff.png&text=LD",
7139
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
6800
7140
  color: "#475569",
6801
7141
  i18n: {
6802
7142
  en: {
@@ -6995,7 +7335,7 @@ var lobster = {
6995
7335
  ecosystems: ["Games", "Interactive Graphics", "Language Experiments"]
6996
7336
  },
6997
7337
  version: "development snapshot",
6998
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=Lo",
7338
+ logo: "https://raw.githubusercontent.com/aardappel/lobster/master/docs/lobster.png",
6999
7339
  color: "#DC2626",
7000
7340
  i18n: {
7001
7341
  en: {
@@ -7282,6 +7622,7 @@ var mako = {
7282
7622
  // src/languages/markdown.ts
7283
7623
  var markdown = {
7284
7624
  slug: "markdown",
7625
+ aliases: ["md"],
7285
7626
  publishedDate: "2004-03-19",
7286
7627
  extensions: [".md", ".markdown", ".mdown", ".mkd"],
7287
7628
  author: "John Gruber / Aaron Swartz",
@@ -8562,6 +8903,7 @@ var oberon = {
8562
8903
  // src/languages/objective-c.ts
8563
8904
  var objectiveC = {
8564
8905
  slug: "objective-c",
8906
+ aliases: ["objc", "objective c"],
8565
8907
  publishedDate: "1984-01-01",
8566
8908
  extensions: [".m", ".mm"],
8567
8909
  author: "Brad Cox / Tom Love",
@@ -9216,7 +9558,7 @@ var plI = {
9216
9558
  ecosystems: ["Mainframe", "Enterprise", "Scientific Computing"]
9217
9559
  },
9218
9560
  version: "Enterprise PL/I 6.2",
9219
- logo: "https://dummyimage.com/32x32/1F2937/ffffff.png&text=PL1",
9561
+ logo: "https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
9220
9562
  color: "#1F2937",
9221
9563
  i18n: {
9222
9564
  en: {
@@ -9511,7 +9853,7 @@ var postscript = {
9511
9853
  ecosystems: ["Print", "PDF"]
9512
9854
  },
9513
9855
  version: "PostScript 3",
9514
- logo: "https://dummyimage.com/32x32/EC1C24/ffffff.png&text=PS",
9856
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_postscript.svg",
9515
9857
  color: "#EC1C24",
9516
9858
  i18n: {
9517
9859
  en: {
@@ -9559,7 +9901,7 @@ var powerquery = {
9559
9901
  ecosystems: ["Microsoft Power BI", "Excel", "Azure Data Factory", "Microsoft Fabric"]
9560
9902
  },
9561
9903
  version: "Power Query M 2025",
9562
- logo: "https://dummyimage.com/32x32/F2C811/000000.png&text=PQ",
9904
+ logo: "https://upload.wikimedia.org/wikipedia/commons/c/cf/New_Power_BI_Logo.svg",
9563
9905
  color: "#F2C811",
9564
9906
  i18n: {
9565
9907
  en: {
@@ -9598,6 +9940,7 @@ var powerquery = {
9598
9940
  // src/languages/powershell.ts
9599
9941
  var powershell = {
9600
9942
  slug: "powershell",
9943
+ aliases: ["pwsh"],
9601
9944
  publishedDate: "2006-11-14",
9602
9945
  extensions: [".ps1", ".psm1", ".psd1", ".ps1xml"],
9603
9946
  author: "Microsoft",
@@ -9793,9 +10136,60 @@ var promql = {
9793
10136
  }
9794
10137
  };
9795
10138
 
10139
+ // src/languages/properties.ts
10140
+ var properties = {
10141
+ slug: "properties",
10142
+ aliases: ["java properties"],
10143
+ publishedDate: "1996-01-23",
10144
+ extensions: [".properties"],
10145
+ author: "Sun Microsystems",
10146
+ website: "https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html",
10147
+ paradigms: ["declarative", "configuration"],
10148
+ tooling: {
10149
+ runtimes: ["JVM"],
10150
+ ecosystems: ["JVM", "Configuration"]
10151
+ },
10152
+ version: "stable",
10153
+ logo: "https://cdn.simpleicons.org/openjdk/437291",
10154
+ color: "#2A6277",
10155
+ i18n: {
10156
+ en: {
10157
+ name: "Java Properties",
10158
+ description: "A simple key-value configuration format used across the Java ecosystem.",
10159
+ 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."
10160
+ },
10161
+ es: {
10162
+ name: "Java Properties",
10163
+ description: "Un formato simple de configuraci\xF3n clave-valor usado en todo el ecosistema Java.",
10164
+ 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."
10165
+ },
10166
+ it: {
10167
+ name: "Java Properties",
10168
+ description: "Un semplice formato di configurazione chiave-valore usato nell'ecosistema Java.",
10169
+ 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."
10170
+ },
10171
+ fr: {
10172
+ name: "Java Properties",
10173
+ description: "Un format simple de configuration cl\xE9-valeur utilis\xE9 dans tout l'\xE9cosyst\xE8me Java.",
10174
+ 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."
10175
+ },
10176
+ de: {
10177
+ name: "Java Properties",
10178
+ description: "Ein einfaches Schl\xFCssel-Wert-Konfigurationsformat aus dem Java-\xD6kosystem.",
10179
+ 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."
10180
+ },
10181
+ pt: {
10182
+ name: "Java Properties",
10183
+ description: "Um formato simples de configura\xE7\xE3o chave-valor usado em todo o ecossistema Java.",
10184
+ 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."
10185
+ }
10186
+ }
10187
+ };
10188
+
9796
10189
  // src/languages/protobuf.ts
9797
10190
  var protobuf = {
9798
10191
  slug: "protobuf",
10192
+ aliases: ["proto", "protocol buffers"],
9799
10193
  publishedDate: "2008-07-07",
9800
10194
  extensions: [".proto"],
9801
10195
  author: "Google",
@@ -9996,6 +10390,7 @@ var purescript = {
9996
10390
  // src/languages/python.ts
9997
10391
  var python = {
9998
10392
  slug: "python",
10393
+ aliases: ["py"],
9999
10394
  publishedDate: "1991-02-20",
10000
10395
  extensions: [".py", ".pyw"],
10001
10396
  author: "Guido van Rossum",
@@ -10295,6 +10690,7 @@ var racket = {
10295
10690
  // src/languages/raku.ts
10296
10691
  var raku = {
10297
10692
  slug: "raku",
10693
+ aliases: ["perl6", "perl 6"],
10298
10694
  publishedDate: "2015-12-25",
10299
10695
  extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"],
10300
10696
  author: "Raku Community",
@@ -10643,6 +11039,7 @@ var rescript = {
10643
11039
  // src/languages/restructuredtext.ts
10644
11040
  var restructuredtext = {
10645
11041
  slug: "restructuredtext",
11042
+ aliases: ["rst"],
10646
11043
  publishedDate: "2001-06-01",
10647
11044
  extensions: [".rst", ".rest"],
10648
11045
  author: "David Goodger / Docutils contributors",
@@ -10690,6 +11087,55 @@ var restructuredtext = {
10690
11087
  }
10691
11088
  };
10692
11089
 
11090
+ // src/languages/rexx.ts
11091
+ var rexx = {
11092
+ slug: "rexx",
11093
+ publishedDate: "1979-03-20",
11094
+ extensions: [".rexx", ".rex"],
11095
+ author: "Mike Cowlishaw / IBM",
11096
+ website: "https://www.rexxla.org",
11097
+ paradigms: ["imperative", "procedural", "scripting"],
11098
+ tooling: {
11099
+ runtimes: ["z/OS", "ooRexx", "Regina REXX"],
11100
+ ecosystems: ["Mainframe", "Scripting"]
11101
+ },
11102
+ version: "ANSI X3.274-1996",
11103
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_rexx.svg",
11104
+ color: "#D90E09",
11105
+ i18n: {
11106
+ en: {
11107
+ name: "REXX",
11108
+ description: "A readable IBM scripting language for mainframe automation and system glue.",
11109
+ 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."
11110
+ },
11111
+ es: {
11112
+ name: "REXX",
11113
+ description: "Un lenguaje de scripting legible de IBM para automatizaci\xF3n de mainframes.",
11114
+ 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."
11115
+ },
11116
+ it: {
11117
+ name: "REXX",
11118
+ description: "Un linguaggio di scripting IBM leggibile per l'automazione dei mainframe.",
11119
+ 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."
11120
+ },
11121
+ fr: {
11122
+ name: "REXX",
11123
+ description: "Un langage de script IBM lisible pour l'automatisation des mainframes.",
11124
+ 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."
11125
+ },
11126
+ de: {
11127
+ name: "REXX",
11128
+ description: "Eine gut lesbare IBM-Skriptsprache f\xFCr Mainframe-Automatisierung.",
11129
+ 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."
11130
+ },
11131
+ pt: {
11132
+ name: "REXX",
11133
+ description: "Uma linguagem de script leg\xEDvel da IBM para automa\xE7\xE3o de mainframes.",
11134
+ 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."
11135
+ }
11136
+ }
11137
+ };
11138
+
10693
11139
  // src/languages/roc.ts
10694
11140
  var roc = {
10695
11141
  slug: "roc",
@@ -10791,6 +11237,7 @@ var rpg = {
10791
11237
  // src/languages/ruby.ts
10792
11238
  var ruby = {
10793
11239
  slug: "ruby",
11240
+ aliases: ["rb"],
10794
11241
  publishedDate: "1995-12-21",
10795
11242
  extensions: [".rb", ".rbw", ".rake", ".gemspec", "Gemfile", "Rakefile", "config.ru"],
10796
11243
  author: "Yukihiro Matsumoto",
@@ -11138,6 +11585,7 @@ var self = {
11138
11585
  // src/languages/simula.ts
11139
11586
  var simula = {
11140
11587
  slug: "simula",
11588
+ status: "historical",
11141
11589
  publishedDate: "1962-01-01",
11142
11590
  extensions: [".sim", ".simula"],
11143
11591
  author: "Ole-Johan Dahl and Kristen Nygaard",
@@ -11335,6 +11783,7 @@ var snakemake = {
11335
11783
  // src/languages/snobol.ts
11336
11784
  var snobol = {
11337
11785
  slug: "snobol",
11786
+ status: "historical",
11338
11787
  publishedDate: "1962-01-01",
11339
11788
  extensions: [".sno", ".snobol"],
11340
11789
  author: "David J. Farber, Ralph Griswold, and Ivan P. Polonsky",
@@ -11493,7 +11942,7 @@ var spark = {
11493
11942
  ecosystems: ["Ada", "Embedded", "Safety-critical software"]
11494
11943
  },
11495
11944
  version: "SPARK Community 2021",
11496
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=SP",
11945
+ logo: "https://avatars.githubusercontent.com/u/7767877?v=4",
11497
11946
  color: "#DC2626",
11498
11947
  i18n: {
11499
11948
  en: {
@@ -11640,7 +12089,7 @@ var spss = {
11640
12089
  ecosystems: ["Statistics", "Data Analysis", "Social Sciences", "Business Intelligence"]
11641
12090
  },
11642
12091
  version: "29.0",
11643
- logo: "https://dummyimage.com/32x32/052FAD/ffffff.png&text=SPSS",
12092
+ logo: "https://upload.wikimedia.org/wikipedia/commons/e/ea/SPSS_logo.svg",
11644
12093
  color: "#052FAD",
11645
12094
  i18n: {
11646
12095
  en: {
@@ -11734,7 +12183,7 @@ var squirrel = {
11734
12183
  ecosystems: ["Game Development", "Embedded Scripting", "Valve Source Engine"]
11735
12184
  },
11736
12185
  version: "3.2",
11737
- logo: "https://dummyimage.com/32x32/CC4A00/ffffff.png&text=SQ",
12186
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_squirrel.svg",
11738
12187
  color: "#CC4A00",
11739
12188
  i18n: {
11740
12189
  en: {
@@ -12268,6 +12717,7 @@ var tcsh = {
12268
12717
  // src/languages/tex.ts
12269
12718
  var tex = {
12270
12719
  slug: "tex",
12720
+ aliases: ["latex"],
12271
12721
  publishedDate: "1978-01-01",
12272
12722
  extensions: [".tex", ".sty", ".cls", ".dtx", ".ins", ".ltx"],
12273
12723
  author: "Donald Knuth",
@@ -12712,6 +13162,7 @@ var twig = {
12712
13162
  // src/languages/typescript.ts
12713
13163
  var typescript = {
12714
13164
  slug: "typescript",
13165
+ aliases: ["ts"],
12715
13166
  publishedDate: "2012-10-01",
12716
13167
  extensions: [".ts", ".tsx", ".mts", ".cts"],
12717
13168
  author: "Anders Hejlsberg / Microsoft",
@@ -12962,6 +13413,7 @@ var vala = {
12962
13413
  // src/languages/vale.ts
12963
13414
  var vale = {
12964
13415
  slug: "vale",
13416
+ status: "experimental",
12965
13417
  publishedDate: "2018-01-01",
12966
13418
  extensions: [".vale"],
12967
13419
  author: "Evan Ovadia",
@@ -12972,7 +13424,7 @@ var vale = {
12972
13424
  ecosystems: ["Native applications", "Systems programming"]
12973
13425
  },
12974
13426
  version: "experimental",
12975
- logo: "https://dummyimage.com/32x32/059669/ffffff.png&text=Va",
13427
+ logo: "https://avatars.githubusercontent.com/u/67560249?v=4",
12976
13428
  color: "#059669",
12977
13429
  i18n: {
12978
13430
  en: {
@@ -13020,7 +13472,7 @@ var vba = {
13020
13472
  ecosystems: ["Microsoft Office", "Excel", "Access", "Word", "Outlook"]
13021
13473
  },
13022
13474
  version: "VBA 7.1",
13023
- logo: "https://dummyimage.com/32x32/217346/ffffff.png&text=VBA",
13475
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_vba.svg",
13024
13476
  color: "#217346",
13025
13477
  i18n: {
13026
13478
  en: {
@@ -13056,6 +13508,56 @@ var vba = {
13056
13508
  }
13057
13509
  };
13058
13510
 
13511
+ // src/languages/vbscript.ts
13512
+ var vbscript = {
13513
+ slug: "vbscript",
13514
+ status: "legacy",
13515
+ publishedDate: "1996-08-01",
13516
+ extensions: [".vbs", ".vbe"],
13517
+ author: "Microsoft",
13518
+ website: "https://learn.microsoft.com/en-us/previous-versions/t0aew7h6(v=vs.85)",
13519
+ paradigms: ["imperative", "object-based", "scripting"],
13520
+ tooling: {
13521
+ runtimes: ["Windows Script Host", "Classic ASP", "Internet Explorer"],
13522
+ ecosystems: ["Windows", "Scripting"]
13523
+ },
13524
+ version: "5.8",
13525
+ logo: "https://dummyimage.com/32x32/15DCDC/000000.png&text=VBS",
13526
+ color: "#15DCDC",
13527
+ i18n: {
13528
+ en: {
13529
+ name: "VBScript",
13530
+ description: "A lightweight Visual Basic dialect for Windows automation and Classic ASP.",
13531
+ 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."
13532
+ },
13533
+ es: {
13534
+ name: "VBScript",
13535
+ description: "Un dialecto ligero de Visual Basic para automatizaci\xF3n de Windows y ASP cl\xE1sico.",
13536
+ 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."
13537
+ },
13538
+ it: {
13539
+ name: "VBScript",
13540
+ description: "Un dialetto leggero di Visual Basic per automazione Windows e ASP classico.",
13541
+ 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."
13542
+ },
13543
+ fr: {
13544
+ name: "VBScript",
13545
+ description: "Un dialecte l\xE9ger de Visual Basic pour l'automatisation Windows et l'ASP classique.",
13546
+ 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."
13547
+ },
13548
+ de: {
13549
+ name: "VBScript",
13550
+ description: "Ein leichter Visual-Basic-Dialekt f\xFCr Windows-Automatisierung und Classic ASP.",
13551
+ 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."
13552
+ },
13553
+ pt: {
13554
+ name: "VBScript",
13555
+ description: "Um dialeto leve de Visual Basic para automa\xE7\xE3o do Windows e ASP cl\xE1ssico.",
13556
+ 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."
13557
+ }
13558
+ }
13559
+ };
13560
+
13059
13561
  // src/languages/velocity.ts
13060
13562
  var velocity = {
13061
13563
  slug: "velocity",
@@ -13168,7 +13670,7 @@ var verse = {
13168
13670
  ecosystems: ["Unreal Engine", "Fortnite Creator"]
13169
13671
  },
13170
13672
  version: "UEFN Verse",
13171
- logo: "https://dummyimage.com/32x32/111827/ffffff.png&text=Ve",
13673
+ logo: "https://cdn.simpleicons.org/epicgames",
13172
13674
  color: "#111827",
13173
13675
  i18n: {
13174
13676
  en: {
@@ -13254,9 +13756,61 @@ var vhdl = {
13254
13756
  }
13255
13757
  };
13256
13758
 
13759
+ // src/languages/vimscript.ts
13760
+ var vimscript = {
13761
+ slug: "vimscript",
13762
+ aliases: ["vim", "vim script", "viml"],
13763
+ publishedDate: "1991-11-02",
13764
+ extensions: [".vim", ".vimrc", ".gvimrc"],
13765
+ author: "Bram Moolenaar",
13766
+ website: "https://www.vim.org",
13767
+ paradigms: ["imperative", "scripting"],
13768
+ tooling: {
13769
+ runtimes: ["Vim", "Neovim"],
13770
+ packageManagers: ["vim-plug", "lazy.nvim", "packer.nvim"],
13771
+ ecosystems: ["Text Editors", "Scripting"]
13772
+ },
13773
+ version: "Vim 9.1",
13774
+ logo: "https://cdn.simpleicons.org/vim/019733",
13775
+ color: "#019733",
13776
+ i18n: {
13777
+ en: {
13778
+ name: "Vim script",
13779
+ description: "The scripting language built into the Vim editor for configuration & plugins.",
13780
+ 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."
13781
+ },
13782
+ es: {
13783
+ name: "Vim script",
13784
+ description: "El lenguaje de scripting integrado en el editor Vim para configuraci\xF3n y plugins.",
13785
+ 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."
13786
+ },
13787
+ it: {
13788
+ name: "Vim script",
13789
+ description: "Il linguaggio di scripting integrato nell'editor Vim per configurazione e plugin.",
13790
+ 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."
13791
+ },
13792
+ fr: {
13793
+ name: "Vim script",
13794
+ description: "Le langage de script int\xE9gr\xE9 \xE0 l'\xE9diteur Vim pour la configuration et les plugins.",
13795
+ 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."
13796
+ },
13797
+ de: {
13798
+ name: "Vim script",
13799
+ description: "Die im Vim-Editor eingebaute Skriptsprache f\xFCr Konfiguration und Plugins.",
13800
+ 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."
13801
+ },
13802
+ pt: {
13803
+ name: "Vim script",
13804
+ description: "A linguagem de script embutida no editor Vim para configura\xE7\xE3o e plugins.",
13805
+ 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."
13806
+ }
13807
+ }
13808
+ };
13809
+
13257
13810
  // src/languages/visual-basic.ts
13258
13811
  var visualBasic = {
13259
13812
  slug: "visual-basic",
13813
+ aliases: ["vb", "vb.net"],
13260
13814
  publishedDate: "2001-02-13",
13261
13815
  extensions: [".vb"],
13262
13816
  author: "Microsoft",
@@ -13456,6 +14010,7 @@ var wdl = {
13456
14010
  // src/languages/webassembly.ts
13457
14011
  var webassembly = {
13458
14012
  slug: "webassembly",
14013
+ aliases: ["wasm", "wat"],
13459
14014
  publishedDate: "2017-03-07",
13460
14015
  extensions: [".wasm", ".wat"],
13461
14016
  author: "W3C WebAssembly Community Group",
@@ -13844,6 +14399,58 @@ var xslt = {
13844
14399
  }
13845
14400
  };
13846
14401
 
14402
+ // src/languages/yacc.ts
14403
+ var yacc = {
14404
+ slug: "yacc",
14405
+ aliases: ["bison"],
14406
+ publishedDate: "1973-01-01",
14407
+ extensions: [".y", ".yacc"],
14408
+ author: "Stephen C. Johnson (Bell Labs)",
14409
+ website: "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html",
14410
+ paradigms: ["declarative", "generator"],
14411
+ tooling: {
14412
+ runtimes: ["C toolchains"],
14413
+ ecosystems: ["Compilers", "Language Tooling", "Unix"]
14414
+ },
14415
+ version: "POSIX yacc / Bison 3.8.2",
14416
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
14417
+ color: "#4B6C4B",
14418
+ i18n: {
14419
+ en: {
14420
+ name: "Yacc",
14421
+ description: "A parser generator that turns context-free grammars into LALR parser code.",
14422
+ 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.'
14423
+ },
14424
+ es: {
14425
+ name: "Yacc",
14426
+ description: "Un generador de parsers que convierte gram\xE1ticas libres de contexto en parsers LALR.",
14427
+ 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.'
14428
+ },
14429
+ it: {
14430
+ name: "Yacc",
14431
+ description: "Un generatore di parser che trasforma grammatiche libere dal contesto in parser LALR.",
14432
+ 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.
14433
+
14434
+ 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.`
14435
+ },
14436
+ fr: {
14437
+ name: "Yacc",
14438
+ description: "Un g\xE9n\xE9rateur de parseurs qui transforme des grammaires hors contexte en parseurs LALR.",
14439
+ 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."
14440
+ },
14441
+ de: {
14442
+ name: "Yacc",
14443
+ description: "Ein Parser-Generator, der kontextfreie Grammatiken in LALR-Parser-Code \xFCbersetzt.",
14444
+ 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.'
14445
+ },
14446
+ pt: {
14447
+ name: "Yacc",
14448
+ description: "Um gerador de parsers que converte gram\xE1ticas livres de contexto em parsers LALR.",
14449
+ 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.'
14450
+ }
14451
+ }
14452
+ };
14453
+
13847
14454
  // src/languages/yaml.ts
13848
14455
  var yaml = {
13849
14456
  slug: "yaml",
@@ -14146,31 +14753,31 @@ var languages = [
14146
14753
  agda,
14147
14754
  algol,
14148
14755
  ampl,
14756
+ angelscript,
14149
14757
  ante,
14150
14758
  antlr,
14151
14759
  apex,
14152
14760
  apl,
14153
14761
  applescript,
14154
- arduino,
14155
14762
  aql,
14763
+ arduino,
14156
14764
  asciidoc,
14157
14765
  asp,
14158
14766
  assembly,
14159
14767
  assemblyscript,
14160
- angelscript,
14161
14768
  astro,
14162
14769
  austral,
14163
14770
  autohotkey,
14164
14771
  avroIdl,
14165
14772
  awk,
14166
14773
  ballerina,
14167
- basic,
14168
14774
  bash,
14775
+ basic,
14169
14776
  batch,
14170
14777
  bazel,
14171
14778
  bcpl,
14172
- bicep,
14173
14779
  bibtex,
14780
+ bicep,
14174
14781
  blade,
14175
14782
  bosque,
14176
14783
  bqn,
@@ -14189,8 +14796,8 @@ var languages = [
14189
14796
  coldfusion,
14190
14797
  coq,
14191
14798
  cpp,
14192
- crystal,
14193
14799
  cql,
14800
+ crystal,
14194
14801
  csharp,
14195
14802
  css,
14196
14803
  cuda,
@@ -14212,6 +14819,7 @@ var languages = [
14212
14819
  ejs,
14213
14820
  elixir,
14214
14821
  elm,
14822
+ emacsLisp,
14215
14823
  erb,
14216
14824
  erlang,
14217
14825
  factor,
@@ -14222,17 +14830,17 @@ var languages = [
14222
14830
  flux,
14223
14831
  forth,
14224
14832
  fortran,
14225
- freemarker,
14226
14833
  fql,
14834
+ freemarker,
14227
14835
  fsharp,
14228
14836
  fstar,
14229
- gdscript,
14230
14837
  gcode,
14838
+ gdscript,
14231
14839
  gettext,
14232
14840
  git,
14233
14841
  gleam,
14234
- gml,
14235
14842
  glsl,
14843
+ gml,
14236
14844
  go,
14237
14845
  gradle,
14238
14846
  grain,
@@ -14259,8 +14867,10 @@ var languages = [
14259
14867
  janet,
14260
14868
  java,
14261
14869
  javascript,
14870
+ jcl,
14262
14871
  jinja,
14263
14872
  jmespath,
14873
+ jq,
14264
14874
  json,
14265
14875
  json5,
14266
14876
  jsonata,
@@ -14276,9 +14886,10 @@ var languages = [
14276
14886
  kql,
14277
14887
  lean,
14278
14888
  less,
14889
+ lex,
14279
14890
  ligo,
14280
- liquid,
14281
14891
  linkerscript,
14892
+ liquid,
14282
14893
  lisp,
14283
14894
  llvmIr,
14284
14895
  lobster,
@@ -14293,13 +14904,13 @@ var languages = [
14293
14904
  matlab,
14294
14905
  maxima,
14295
14906
  mdx,
14907
+ mercury,
14296
14908
  mermaid,
14297
14909
  meson,
14298
- mercury,
14299
14910
  metal,
14300
14911
  modelica,
14301
- mojo,
14302
14912
  modula2,
14913
+ mojo,
14303
14914
  moonbit,
14304
14915
  move,
14305
14916
  mumps,
@@ -14312,10 +14923,10 @@ var languages = [
14312
14923
  nix,
14313
14924
  nunjucks,
14314
14925
  nushell,
14926
+ oberon,
14315
14927
  objectiveC,
14316
14928
  ocaml,
14317
14929
  octave,
14318
- oberon,
14319
14930
  odin,
14320
14931
  openapi,
14321
14932
  opencl,
@@ -14325,8 +14936,8 @@ var languages = [
14325
14936
  perl,
14326
14937
  php,
14327
14938
  pineScript,
14328
- plI,
14329
14939
  pkl,
14940
+ plI,
14330
14941
  plantuml,
14331
14942
  plpgsql,
14332
14943
  plsql,
@@ -14338,24 +14949,26 @@ var languages = [
14338
14949
  processing,
14339
14950
  prolog,
14340
14951
  promql,
14952
+ properties,
14341
14953
  protobuf,
14342
14954
  pug,
14343
14955
  puppet,
14344
14956
  purescript,
14345
14957
  python,
14346
- qml,
14347
14958
  qmake,
14959
+ qml,
14348
14960
  qsharp,
14349
14961
  r,
14350
14962
  racket,
14351
14963
  raku,
14352
14964
  razor,
14965
+ reasonml,
14353
14966
  rebol,
14354
14967
  red,
14355
- reasonml,
14356
14968
  rego,
14357
14969
  rescript,
14358
14970
  restructuredtext,
14971
+ rexx,
14359
14972
  roc,
14360
14973
  rpg,
14361
14974
  ruby,
@@ -14372,8 +14985,8 @@ var languages = [
14372
14985
  snobol,
14373
14986
  solidity,
14374
14987
  soql,
14375
- sparql,
14376
14988
  spark,
14989
+ sparql,
14377
14990
  spl,
14378
14991
  spss,
14379
14992
  sql,
@@ -14402,17 +15015,19 @@ var languages = [
14402
15015
  unison,
14403
15016
  v,
14404
15017
  vala,
14405
- vba,
14406
15018
  vale,
15019
+ vba,
15020
+ vbscript,
14407
15021
  velocity,
14408
15022
  verilog,
14409
15023
  verse,
14410
15024
  vhdl,
15025
+ vimscript,
14411
15026
  visualBasic,
14412
15027
  vue,
14413
15028
  vyper,
14414
- webassembly,
14415
15029
  wdl,
15030
+ webassembly,
14416
15031
  wgsl,
14417
15032
  wren,
14418
15033
  xaml,
@@ -14420,6 +15035,7 @@ var languages = [
14420
15035
  xpath,
14421
15036
  xquery,
14422
15037
  xslt,
15038
+ yacc,
14423
15039
  yaml,
14424
15040
  yara,
14425
15041
  zeek,
@@ -14428,38 +15044,17 @@ var languages = [
14428
15044
  zsh
14429
15045
  ];
14430
15046
 
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
15047
  // src/domain/detection/detect.ts
14459
15048
  var detectLanguages = (filename) => {
14460
15049
  return detectMatchingEntries(languages, filename);
14461
15050
  };
14462
15051
  var detectLanguage = (filename) => detectLanguages(filename).at(0);
15052
+ var detectLanguageByShebang = (content) => {
15053
+ const slug = detectLanguageSlugByShebang(content);
15054
+ return slug ? languages.find((language) => language.slug === slug) : void 0;
15055
+ };
14463
15056
 
14464
15057
  exports.detectLanguage = detectLanguage;
15058
+ exports.detectLanguageByShebang = detectLanguageByShebang;
15059
+ exports.detectLanguageSlugByShebang = detectLanguageSlugByShebang;
14465
15060
  exports.detectLanguages = detectLanguages;