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.js CHANGED
@@ -1,3 +1,127 @@
1
+ // src/domain/detection/match.ts
2
+ var pathSegmentPattern = /[/\\]/;
3
+ var indexCache = /* @__PURE__ */ new WeakMap();
4
+ var getBasename = (filename) => {
5
+ const parts = filename.trim().split(pathSegmentPattern);
6
+ return parts.at(-1).toLowerCase();
7
+ };
8
+ var addIndexKey = (index, key, match) => {
9
+ const matches = index.get(key);
10
+ if (matches) {
11
+ matches.push(match);
12
+ } else {
13
+ index.set(key, [match]);
14
+ }
15
+ };
16
+ var buildDetectionIndex = (entries) => {
17
+ const index = /* @__PURE__ */ new Map();
18
+ entries.forEach((entry, entryIndex) => {
19
+ for (const extension of entry.extensions) {
20
+ const normalizedExtension = extension.toLowerCase();
21
+ const match = { entry, index: entryIndex, matchLength: extension.length };
22
+ if (normalizedExtension.startsWith(".")) {
23
+ addIndexKey(index, normalizedExtension, match);
24
+ } else {
25
+ addIndexKey(index, normalizedExtension, match);
26
+ addIndexKey(index, `.${normalizedExtension}`, match);
27
+ }
28
+ }
29
+ });
30
+ return index;
31
+ };
32
+ var getDetectionIndex = (entries) => {
33
+ let index = indexCache.get(entries);
34
+ if (!index) {
35
+ index = buildDetectionIndex(entries);
36
+ indexCache.set(entries, index);
37
+ }
38
+ return index;
39
+ };
40
+ var getLookupKeys = (basename) => {
41
+ const keys = [basename];
42
+ for (let position = basename.indexOf("."); position !== -1; position = basename.indexOf(".", position + 1)) {
43
+ const suffix = basename.slice(position);
44
+ if (suffix !== basename) {
45
+ keys.push(suffix);
46
+ }
47
+ }
48
+ return keys;
49
+ };
50
+ var detectMatchingEntries = (entries, filename) => {
51
+ const basename = getBasename(filename);
52
+ if (!basename) {
53
+ return [];
54
+ }
55
+ const index = getDetectionIndex(entries);
56
+ const bestMatches = /* @__PURE__ */ new Map();
57
+ for (const key of getLookupKeys(basename)) {
58
+ for (const match of index.get(key) ?? []) {
59
+ const existing = bestMatches.get(match.index);
60
+ if (!existing || match.matchLength > existing.matchLength) {
61
+ bestMatches.set(match.index, match);
62
+ }
63
+ }
64
+ }
65
+ return [...bestMatches.values()].sort((first, second) => second.matchLength - first.matchLength || first.index - second.index).map(({ entry }) => entry);
66
+ };
67
+
68
+ // src/domain/detection/shebang.ts
69
+ var SHEBANG_INTERPRETERS = {
70
+ awk: "awk",
71
+ bash: "bash",
72
+ bun: "javascript",
73
+ crystal: "crystal",
74
+ csh: "tcsh",
75
+ dash: "bash",
76
+ deno: "typescript",
77
+ elixir: "elixir",
78
+ escript: "erlang",
79
+ expect: "tcl",
80
+ fish: "fish",
81
+ gawk: "awk",
82
+ groovy: "groovy",
83
+ guile: "scheme",
84
+ janet: "janet",
85
+ julia: "julia",
86
+ ksh: "bash",
87
+ lua: "lua",
88
+ mawk: "awk",
89
+ nawk: "awk",
90
+ node: "javascript",
91
+ nodejs: "javascript",
92
+ nu: "nushell",
93
+ osascript: "applescript",
94
+ perl: "perl",
95
+ php: "php",
96
+ pwsh: "powershell",
97
+ python: "python",
98
+ racket: "racket",
99
+ raku: "raku",
100
+ rscript: "r",
101
+ ruby: "ruby",
102
+ scala: "scala",
103
+ sh: "bash",
104
+ tclsh: "tcl",
105
+ tcsh: "tcsh",
106
+ wish: "tcl",
107
+ zsh: "zsh"
108
+ };
109
+ var trailingVersionPattern = /[-.]?\d[\d.]*$/;
110
+ var lookupInterpreter = (interpreter) => SHEBANG_INTERPRETERS[interpreter] ?? SHEBANG_INTERPRETERS[interpreter.replace(trailingVersionPattern, "")];
111
+ var detectLanguageSlugByShebang = (content) => {
112
+ if (!content.startsWith("#!")) {
113
+ return void 0;
114
+ }
115
+ const newlineIndex = content.search(/\r?\n/);
116
+ const firstLine = newlineIndex === -1 ? content : content.slice(0, newlineIndex);
117
+ const parts = firstLine.slice(2).trim().split(/\s+/);
118
+ let interpreter = parts[0]?.split("/").at(-1)?.toLowerCase();
119
+ if (interpreter === "env") {
120
+ interpreter = parts.slice(1).find((argument) => !argument.startsWith("-"))?.split("/").at(-1)?.toLowerCase();
121
+ }
122
+ return interpreter ? lookupInterpreter(interpreter) : void 0;
123
+ };
124
+
1
125
  // src/languages/abap.ts
2
126
  var abap = {
3
127
  slug: "abap",
@@ -50,6 +174,7 @@ var abap = {
50
174
  // src/languages/actionscript.ts
51
175
  var actionscript = {
52
176
  slug: "actionscript",
177
+ status: "legacy",
53
178
  publishedDate: "1998-01-01",
54
179
  extensions: [".as"],
55
180
  author: "Gary Grossman / Macromedia",
@@ -199,6 +324,7 @@ var agda = {
199
324
  // src/languages/algol.ts
200
325
  var algol = {
201
326
  slug: "algol",
327
+ status: "historical",
202
328
  publishedDate: "1958-01-01",
203
329
  extensions: [".alg", ".algol"],
204
330
  author: "ACM-GAMM committee",
@@ -346,6 +472,7 @@ var angelscript = {
346
472
  // src/languages/ante.ts
347
473
  var ante = {
348
474
  slug: "ante",
475
+ status: "experimental",
349
476
  publishedDate: "2019-01-01",
350
477
  extensions: [".ante"],
351
478
  author: "Evan Haas",
@@ -793,6 +920,7 @@ var asp = {
793
920
  // src/languages/assembly.ts
794
921
  var assembly = {
795
922
  slug: "assembly",
923
+ aliases: ["asm"],
796
924
  publishedDate: "1949-01-01",
797
925
  extensions: [".asm", ".s", ".S", ".inc"],
798
926
  author: "Machine architecture vendors and assembler implementers",
@@ -942,6 +1070,7 @@ var astro = {
942
1070
  // src/languages/austral.ts
943
1071
  var austral = {
944
1072
  slug: "austral",
1073
+ status: "experimental",
945
1074
  publishedDate: "2021-01-01",
946
1075
  extensions: [".aum", ".aui"],
947
1076
  author: "Fernando Borretti",
@@ -952,7 +1081,7 @@ var austral = {
952
1081
  ecosystems: ["Systems Programming", "Memory Safety", "Research"]
953
1082
  },
954
1083
  version: "0.1.0",
955
- logo: "https://dummyimage.com/32x32/0F766E/ffffff.png&text=Au",
1084
+ logo: "https://avatars.githubusercontent.com/u/17337956?v=4",
956
1085
  color: "#0F766E",
957
1086
  i18n: {
958
1087
  en: {
@@ -1383,6 +1512,7 @@ var bazel = {
1383
1512
  // src/languages/bcpl.ts
1384
1513
  var bcpl = {
1385
1514
  slug: "bcpl",
1515
+ status: "historical",
1386
1516
  publishedDate: "1967-01-01",
1387
1517
  extensions: [".bcpl"],
1388
1518
  author: "Martin Richards",
@@ -1442,7 +1572,7 @@ var bibtex = {
1442
1572
  ecosystems: ["TeX", "LaTeX", "Academic publishing"]
1443
1573
  },
1444
1574
  version: "stable",
1445
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Bi",
1575
+ logo: "https://upload.wikimedia.org/wikipedia/commons/9/92/LaTeX_logo.svg",
1446
1576
  color: "#2563EB",
1447
1577
  i18n: {
1448
1578
  en: {
@@ -1581,6 +1711,7 @@ var blade = {
1581
1711
  // src/languages/bosque.ts
1582
1712
  var bosque = {
1583
1713
  slug: "bosque",
1714
+ status: "experimental",
1584
1715
  publishedDate: "2019-04-15",
1585
1716
  extensions: [".bsq"],
1586
1717
  author: "Microsoft Research",
@@ -1877,6 +2008,7 @@ var capnproto = {
1877
2008
  // src/languages/carbon.ts
1878
2009
  var carbon = {
1879
2010
  slug: "carbon",
2011
+ status: "experimental",
1880
2012
  publishedDate: "2022-07-19",
1881
2013
  extensions: [".carbon"],
1882
2014
  author: "Carbon Language Project",
@@ -2324,6 +2456,7 @@ var coldfusion = {
2324
2456
  // src/languages/coq.ts
2325
2457
  var coq = {
2326
2458
  slug: "coq",
2459
+ aliases: ["rocq"],
2327
2460
  publishedDate: "1989-01-01",
2328
2461
  extensions: [".v"],
2329
2462
  author: "INRIA / Rocq Prover Development Team",
@@ -2374,6 +2507,7 @@ var coq = {
2374
2507
  // src/languages/cpp.ts
2375
2508
  var cpp = {
2376
2509
  slug: "cpp",
2510
+ aliases: ["c++", "cplusplus"],
2377
2511
  publishedDate: "1985-10-01",
2378
2512
  extensions: [".cpp", ".cc", ".cxx", ".h", ".hpp", ".hh", ".hxx"],
2379
2513
  author: "Bjarne Stroustrup",
@@ -2523,6 +2657,7 @@ var crystal = {
2523
2657
  // src/languages/csharp.ts
2524
2658
  var csharp = {
2525
2659
  slug: "csharp",
2660
+ aliases: ["c#", "cs"],
2526
2661
  publishedDate: "2000-06-26",
2527
2662
  extensions: [".cs", ".csx"],
2528
2663
  author: "Anders Hejlsberg / Microsoft",
@@ -3031,7 +3166,7 @@ var dax = {
3031
3166
  ]
3032
3167
  },
3033
3168
  version: "DAX 2025",
3034
- logo: "https://dummyimage.com/32x32/F2C811/000000.png&text=DAX",
3169
+ logo: "https://upload.wikimedia.org/wikipedia/commons/c/cf/New_Power_BI_Logo.svg",
3035
3170
  color: "#F2C811",
3036
3171
  i18n: {
3037
3172
  en: {
@@ -3170,6 +3305,7 @@ var dita = {
3170
3305
  // src/languages/dockerfile.ts
3171
3306
  var dockerfile = {
3172
3307
  slug: "dockerfile",
3308
+ aliases: ["docker"],
3173
3309
  publishedDate: "2013-03-20",
3174
3310
  extensions: ["Dockerfile", ".dockerfile"],
3175
3311
  author: "Docker, Inc.",
@@ -3563,6 +3699,57 @@ var elm = {
3563
3699
  }
3564
3700
  };
3565
3701
 
3702
+ // src/languages/emacs-lisp.ts
3703
+ var emacsLisp = {
3704
+ slug: "emacs-lisp",
3705
+ aliases: ["elisp"],
3706
+ publishedDate: "1985-03-20",
3707
+ extensions: [".el"],
3708
+ author: "Richard Stallman / GNU Project",
3709
+ website: "https://www.gnu.org/software/emacs/manual/elisp.html",
3710
+ paradigms: ["functional", "imperative", "meta-programming", "scripting"],
3711
+ tooling: {
3712
+ runtimes: ["GNU Emacs"],
3713
+ packageManagers: ["package.el", "ELPA", "MELPA"],
3714
+ ecosystems: ["Text Editors", "Scripting"]
3715
+ },
3716
+ version: "Emacs 30.1",
3717
+ logo: "https://cdn.simpleicons.org/gnuemacs/7F5AB6",
3718
+ color: "#7F5AB6",
3719
+ i18n: {
3720
+ en: {
3721
+ name: "Emacs Lisp",
3722
+ description: "The Lisp dialect used to implement and extend the GNU Emacs editor.",
3723
+ 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."
3724
+ },
3725
+ es: {
3726
+ name: "Emacs Lisp",
3727
+ description: "El dialecto de Lisp usado para implementar y extender el editor GNU Emacs.",
3728
+ 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."
3729
+ },
3730
+ it: {
3731
+ name: "Emacs Lisp",
3732
+ description: "Il dialetto Lisp usato per implementare ed estendere l'editor GNU Emacs.",
3733
+ 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."
3734
+ },
3735
+ fr: {
3736
+ name: "Emacs Lisp",
3737
+ description: "Le dialecte Lisp utilis\xE9 pour impl\xE9menter et \xE9tendre l'\xE9diteur GNU Emacs.",
3738
+ 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."
3739
+ },
3740
+ de: {
3741
+ name: "Emacs Lisp",
3742
+ description: "Der Lisp-Dialekt, mit dem der GNU-Emacs-Editor implementiert und erweitert wird.",
3743
+ 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."
3744
+ },
3745
+ pt: {
3746
+ name: "Emacs Lisp",
3747
+ description: "O dialeto de Lisp usado para implementar e estender o editor GNU Emacs.",
3748
+ 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."
3749
+ }
3750
+ }
3751
+ };
3752
+
3566
3753
  // src/languages/erb.ts
3567
3754
  var erb = {
3568
3755
  slug: "erb",
@@ -3716,6 +3903,7 @@ var factor = {
3716
3903
  // src/languages/fe.ts
3717
3904
  var fe = {
3718
3905
  slug: "fe",
3906
+ status: "experimental",
3719
3907
  publishedDate: "2020-10-08",
3720
3908
  extensions: [".fe"],
3721
3909
  author: "Ethereum Foundation contributors",
@@ -4161,6 +4349,7 @@ var freemarker = {
4161
4349
  // src/languages/fsharp.ts
4162
4350
  var fsharp = {
4163
4351
  slug: "fsharp",
4352
+ aliases: ["f#"],
4164
4353
  publishedDate: "2005-05-01",
4165
4354
  extensions: [".fs", ".fsi", ".fsx", ".fsscript"],
4166
4355
  author: "Don Syme / Microsoft Research",
@@ -4271,7 +4460,7 @@ var gcode = {
4271
4460
  ecosystems: ["CNC machining", "Additive manufacturing"]
4272
4461
  },
4273
4462
  version: "RS-274",
4274
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=G",
4463
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_gcode.svg",
4275
4464
  color: "#DC2626",
4276
4465
  i18n: {
4277
4466
  en: {
@@ -4370,7 +4559,7 @@ var gettext = {
4370
4559
  ecosystems: ["Internationalization", "Localization"]
4371
4560
  },
4372
4561
  version: "stable",
4373
- logo: "https://dummyimage.com/32x32/7C3AED/ffffff.png&text=PO",
4562
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
4374
4563
  color: "#7C3AED",
4375
4564
  i18n: {
4376
4565
  en: {
@@ -4607,6 +4796,7 @@ var gml = {
4607
4796
  // src/languages/go.ts
4608
4797
  var go = {
4609
4798
  slug: "go",
4799
+ aliases: ["golang"],
4610
4800
  publishedDate: "2012-03-28",
4611
4801
  extensions: [".go"],
4612
4802
  author: "Robert Griesemer, Rob Pike, Ken Thompson / Google",
@@ -5656,7 +5846,7 @@ var io = {
5656
5846
  ecosystems: ["Scripting", "Prototype Programming", "Language Exploration"]
5657
5847
  },
5658
5848
  version: "2017.09.06",
5659
- logo: "https://dummyimage.com/32x32/2563EB/ffffff.png&text=Io",
5849
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_io.svg",
5660
5850
  color: "#2563EB",
5661
5851
  i18n: {
5662
5852
  en: {
@@ -5844,6 +6034,7 @@ var java = {
5844
6034
  // src/languages/javascript.ts
5845
6035
  var javascript = {
5846
6036
  slug: "javascript",
6037
+ aliases: ["js", "ecmascript"],
5847
6038
  publishedDate: "1995-12-04",
5848
6039
  extensions: [".js", ".mjs", ".cjs", ".jsx"],
5849
6040
  author: "Brendan Eich / Netscape",
@@ -5891,6 +6082,55 @@ var javascript = {
5891
6082
  }
5892
6083
  };
5893
6084
 
6085
+ // src/languages/jcl.ts
6086
+ var jcl = {
6087
+ slug: "jcl",
6088
+ publishedDate: "1964-04-07",
6089
+ extensions: [".jcl"],
6090
+ author: "IBM",
6091
+ website: "https://www.ibm.com/docs/en/zos/3.1.0?topic=zos-mvs-jcl-reference",
6092
+ paradigms: ["declarative", "batch"],
6093
+ tooling: {
6094
+ runtimes: ["z/OS", "MVS", "JES2", "JES3"],
6095
+ ecosystems: ["Mainframe", "Batch Processing"]
6096
+ },
6097
+ version: "z/OS 3.1",
6098
+ logo: "https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
6099
+ color: "#1F70C1",
6100
+ i18n: {
6101
+ en: {
6102
+ name: "JCL",
6103
+ description: "IBM Job Control Language for describing batch jobs on z/OS mainframes.",
6104
+ 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."
6105
+ },
6106
+ es: {
6107
+ name: "JCL",
6108
+ description: "El Job Control Language de IBM para describir trabajos batch en mainframes z/OS.",
6109
+ 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."
6110
+ },
6111
+ it: {
6112
+ name: "JCL",
6113
+ description: "Il Job Control Language di IBM per descrivere job batch sui mainframe z/OS.",
6114
+ 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."
6115
+ },
6116
+ fr: {
6117
+ name: "JCL",
6118
+ description: "Le Job Control Language d'IBM pour d\xE9crire les travaux batch sur mainframes z/OS.",
6119
+ 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."
6120
+ },
6121
+ de: {
6122
+ name: "JCL",
6123
+ description: "IBMs Job Control Language zur Beschreibung von Batch-Jobs auf z/OS-Mainframes.",
6124
+ 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."
6125
+ },
6126
+ pt: {
6127
+ name: "JCL",
6128
+ description: "A Job Control Language da IBM para descrever jobs batch em mainframes z/OS.",
6129
+ 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."
6130
+ }
6131
+ }
6132
+ };
6133
+
5894
6134
  // src/languages/jinja.ts
5895
6135
  var jinja = {
5896
6136
  slug: "jinja",
@@ -5990,6 +6230,55 @@ var jmespath = {
5990
6230
  }
5991
6231
  };
5992
6232
 
6233
+ // src/languages/jq.ts
6234
+ var jq = {
6235
+ slug: "jq",
6236
+ publishedDate: "2012-10-21",
6237
+ extensions: [".jq"],
6238
+ author: "Stephen Dolan",
6239
+ website: "https://jqlang.org",
6240
+ paradigms: ["functional", "declarative", "query"],
6241
+ tooling: {
6242
+ runtimes: ["jq CLI"],
6243
+ ecosystems: ["Data Processing", "DevOps", "Scripting"]
6244
+ },
6245
+ version: "1.8.1",
6246
+ logo: "https://avatars.githubusercontent.com/u/125535133?v=4",
6247
+ color: "#C7254E",
6248
+ i18n: {
6249
+ en: {
6250
+ name: "jq",
6251
+ description: "A functional filter language for slicing, transforming, and querying JSON.",
6252
+ 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."
6253
+ },
6254
+ es: {
6255
+ name: "jq",
6256
+ description: "Un lenguaje funcional de filtros para cortar, transformar y consultar JSON.",
6257
+ 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."
6258
+ },
6259
+ it: {
6260
+ name: "jq",
6261
+ description: "Un linguaggio funzionale di filtri per tagliare, trasformare e interrogare JSON.",
6262
+ 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."
6263
+ },
6264
+ fr: {
6265
+ name: "jq",
6266
+ description: "Un langage fonctionnel de filtres pour d\xE9couper, transformer et interroger du JSON.",
6267
+ 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."
6268
+ },
6269
+ de: {
6270
+ name: "jq",
6271
+ description: "Eine funktionale Filtersprache zum Zerlegen, Transformieren und Abfragen von JSON.",
6272
+ 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."
6273
+ },
6274
+ pt: {
6275
+ name: "jq",
6276
+ description: "Uma linguagem funcional de filtros para fatiar, transformar e consultar JSON.",
6277
+ 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."
6278
+ }
6279
+ }
6280
+ };
6281
+
5993
6282
  // src/languages/json.ts
5994
6283
  var json = {
5995
6284
  slug: "json",
@@ -6535,6 +6824,7 @@ var koka = {
6535
6824
  // src/languages/kotlin.ts
6536
6825
  var kotlin = {
6537
6826
  slug: "kotlin",
6827
+ aliases: ["kt"],
6538
6828
  publishedDate: "2016-02-15",
6539
6829
  extensions: [".kt", ".kts"],
6540
6830
  author: "JetBrains",
@@ -6731,6 +7021,56 @@ var less = {
6731
7021
  }
6732
7022
  };
6733
7023
 
7024
+ // src/languages/lex.ts
7025
+ var lex = {
7026
+ slug: "lex",
7027
+ aliases: ["flex"],
7028
+ publishedDate: "1975-07-01",
7029
+ extensions: [".l", ".lex"],
7030
+ author: "Mike Lesk / Eric Schmidt (Bell Labs)",
7031
+ website: "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/lex.html",
7032
+ paradigms: ["declarative", "generator"],
7033
+ tooling: {
7034
+ runtimes: ["C toolchains"],
7035
+ ecosystems: ["Compilers", "Language Tooling", "Unix"]
7036
+ },
7037
+ version: "POSIX lex / flex 2.6.4",
7038
+ logo: "https://dummyimage.com/32x32/DBCA00/000000.png&text=Lex",
7039
+ color: "#DBCA00",
7040
+ i18n: {
7041
+ en: {
7042
+ name: "Lex",
7043
+ description: "A lexical analyzer generator that turns regex rules into scanner code.",
7044
+ 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."
7045
+ },
7046
+ es: {
7047
+ name: "Lex",
7048
+ description: "Un generador de analizadores l\xE9xicos que convierte reglas regex en c\xF3digo de escaneo.",
7049
+ 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."
7050
+ },
7051
+ it: {
7052
+ name: "Lex",
7053
+ description: "Un generatore di analizzatori lessicali che trasforma regole regex in codice scanner.",
7054
+ 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."
7055
+ },
7056
+ fr: {
7057
+ name: "Lex",
7058
+ description: "Un g\xE9n\xE9rateur d'analyseurs lexicaux qui transforme des r\xE8gles regex en code de scanner.",
7059
+ 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."
7060
+ },
7061
+ de: {
7062
+ name: "Lex",
7063
+ description: "Ein Generator f\xFCr lexikalische Analysatoren, der Regex-Regeln in Scanner-Code \xFCbersetzt.",
7064
+ 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."
7065
+ },
7066
+ pt: {
7067
+ name: "Lex",
7068
+ description: "Um gerador de analisadores l\xE9xicos que converte regras regex em c\xF3digo de scanner.",
7069
+ 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."
7070
+ }
7071
+ }
7072
+ };
7073
+
6734
7074
  // src/languages/ligo.ts
6735
7075
  var ligo = {
6736
7076
  slug: "ligo",
@@ -6794,7 +7134,7 @@ var linkerscript = {
6794
7134
  ecosystems: ["Embedded systems", "Operating systems"]
6795
7135
  },
6796
7136
  version: "stable",
6797
- logo: "https://dummyimage.com/32x32/475569/ffffff.png&text=LD",
7137
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
6798
7138
  color: "#475569",
6799
7139
  i18n: {
6800
7140
  en: {
@@ -6993,7 +7333,7 @@ var lobster = {
6993
7333
  ecosystems: ["Games", "Interactive Graphics", "Language Experiments"]
6994
7334
  },
6995
7335
  version: "development snapshot",
6996
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=Lo",
7336
+ logo: "https://raw.githubusercontent.com/aardappel/lobster/master/docs/lobster.png",
6997
7337
  color: "#DC2626",
6998
7338
  i18n: {
6999
7339
  en: {
@@ -7280,6 +7620,7 @@ var mako = {
7280
7620
  // src/languages/markdown.ts
7281
7621
  var markdown = {
7282
7622
  slug: "markdown",
7623
+ aliases: ["md"],
7283
7624
  publishedDate: "2004-03-19",
7284
7625
  extensions: [".md", ".markdown", ".mdown", ".mkd"],
7285
7626
  author: "John Gruber / Aaron Swartz",
@@ -8560,6 +8901,7 @@ var oberon = {
8560
8901
  // src/languages/objective-c.ts
8561
8902
  var objectiveC = {
8562
8903
  slug: "objective-c",
8904
+ aliases: ["objc", "objective c"],
8563
8905
  publishedDate: "1984-01-01",
8564
8906
  extensions: [".m", ".mm"],
8565
8907
  author: "Brad Cox / Tom Love",
@@ -9214,7 +9556,7 @@ var plI = {
9214
9556
  ecosystems: ["Mainframe", "Enterprise", "Scientific Computing"]
9215
9557
  },
9216
9558
  version: "Enterprise PL/I 6.2",
9217
- logo: "https://dummyimage.com/32x32/1F2937/ffffff.png&text=PL1",
9559
+ logo: "https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
9218
9560
  color: "#1F2937",
9219
9561
  i18n: {
9220
9562
  en: {
@@ -9509,7 +9851,7 @@ var postscript = {
9509
9851
  ecosystems: ["Print", "PDF"]
9510
9852
  },
9511
9853
  version: "PostScript 3",
9512
- logo: "https://dummyimage.com/32x32/EC1C24/ffffff.png&text=PS",
9854
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_postscript.svg",
9513
9855
  color: "#EC1C24",
9514
9856
  i18n: {
9515
9857
  en: {
@@ -9557,7 +9899,7 @@ var powerquery = {
9557
9899
  ecosystems: ["Microsoft Power BI", "Excel", "Azure Data Factory", "Microsoft Fabric"]
9558
9900
  },
9559
9901
  version: "Power Query M 2025",
9560
- logo: "https://dummyimage.com/32x32/F2C811/000000.png&text=PQ",
9902
+ logo: "https://upload.wikimedia.org/wikipedia/commons/c/cf/New_Power_BI_Logo.svg",
9561
9903
  color: "#F2C811",
9562
9904
  i18n: {
9563
9905
  en: {
@@ -9596,6 +9938,7 @@ var powerquery = {
9596
9938
  // src/languages/powershell.ts
9597
9939
  var powershell = {
9598
9940
  slug: "powershell",
9941
+ aliases: ["pwsh"],
9599
9942
  publishedDate: "2006-11-14",
9600
9943
  extensions: [".ps1", ".psm1", ".psd1", ".ps1xml"],
9601
9944
  author: "Microsoft",
@@ -9791,9 +10134,60 @@ var promql = {
9791
10134
  }
9792
10135
  };
9793
10136
 
10137
+ // src/languages/properties.ts
10138
+ var properties = {
10139
+ slug: "properties",
10140
+ aliases: ["java properties"],
10141
+ publishedDate: "1996-01-23",
10142
+ extensions: [".properties"],
10143
+ author: "Sun Microsystems",
10144
+ website: "https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html",
10145
+ paradigms: ["declarative", "configuration"],
10146
+ tooling: {
10147
+ runtimes: ["JVM"],
10148
+ ecosystems: ["JVM", "Configuration"]
10149
+ },
10150
+ version: "stable",
10151
+ logo: "https://cdn.simpleicons.org/openjdk/437291",
10152
+ color: "#2A6277",
10153
+ i18n: {
10154
+ en: {
10155
+ name: "Java Properties",
10156
+ description: "A simple key-value configuration format used across the Java ecosystem.",
10157
+ 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."
10158
+ },
10159
+ es: {
10160
+ name: "Java Properties",
10161
+ description: "Un formato simple de configuraci\xF3n clave-valor usado en todo el ecosistema Java.",
10162
+ 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."
10163
+ },
10164
+ it: {
10165
+ name: "Java Properties",
10166
+ description: "Un semplice formato di configurazione chiave-valore usato nell'ecosistema Java.",
10167
+ 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."
10168
+ },
10169
+ fr: {
10170
+ name: "Java Properties",
10171
+ description: "Un format simple de configuration cl\xE9-valeur utilis\xE9 dans tout l'\xE9cosyst\xE8me Java.",
10172
+ 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."
10173
+ },
10174
+ de: {
10175
+ name: "Java Properties",
10176
+ description: "Ein einfaches Schl\xFCssel-Wert-Konfigurationsformat aus dem Java-\xD6kosystem.",
10177
+ 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."
10178
+ },
10179
+ pt: {
10180
+ name: "Java Properties",
10181
+ description: "Um formato simples de configura\xE7\xE3o chave-valor usado em todo o ecossistema Java.",
10182
+ 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."
10183
+ }
10184
+ }
10185
+ };
10186
+
9794
10187
  // src/languages/protobuf.ts
9795
10188
  var protobuf = {
9796
10189
  slug: "protobuf",
10190
+ aliases: ["proto", "protocol buffers"],
9797
10191
  publishedDate: "2008-07-07",
9798
10192
  extensions: [".proto"],
9799
10193
  author: "Google",
@@ -9994,6 +10388,7 @@ var purescript = {
9994
10388
  // src/languages/python.ts
9995
10389
  var python = {
9996
10390
  slug: "python",
10391
+ aliases: ["py"],
9997
10392
  publishedDate: "1991-02-20",
9998
10393
  extensions: [".py", ".pyw"],
9999
10394
  author: "Guido van Rossum",
@@ -10293,6 +10688,7 @@ var racket = {
10293
10688
  // src/languages/raku.ts
10294
10689
  var raku = {
10295
10690
  slug: "raku",
10691
+ aliases: ["perl6", "perl 6"],
10296
10692
  publishedDate: "2015-12-25",
10297
10693
  extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"],
10298
10694
  author: "Raku Community",
@@ -10641,6 +11037,7 @@ var rescript = {
10641
11037
  // src/languages/restructuredtext.ts
10642
11038
  var restructuredtext = {
10643
11039
  slug: "restructuredtext",
11040
+ aliases: ["rst"],
10644
11041
  publishedDate: "2001-06-01",
10645
11042
  extensions: [".rst", ".rest"],
10646
11043
  author: "David Goodger / Docutils contributors",
@@ -10688,6 +11085,55 @@ var restructuredtext = {
10688
11085
  }
10689
11086
  };
10690
11087
 
11088
+ // src/languages/rexx.ts
11089
+ var rexx = {
11090
+ slug: "rexx",
11091
+ publishedDate: "1979-03-20",
11092
+ extensions: [".rexx", ".rex"],
11093
+ author: "Mike Cowlishaw / IBM",
11094
+ website: "https://www.rexxla.org",
11095
+ paradigms: ["imperative", "procedural", "scripting"],
11096
+ tooling: {
11097
+ runtimes: ["z/OS", "ooRexx", "Regina REXX"],
11098
+ ecosystems: ["Mainframe", "Scripting"]
11099
+ },
11100
+ version: "ANSI X3.274-1996",
11101
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_rexx.svg",
11102
+ color: "#D90E09",
11103
+ i18n: {
11104
+ en: {
11105
+ name: "REXX",
11106
+ description: "A readable IBM scripting language for mainframe automation and system glue.",
11107
+ 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."
11108
+ },
11109
+ es: {
11110
+ name: "REXX",
11111
+ description: "Un lenguaje de scripting legible de IBM para automatizaci\xF3n de mainframes.",
11112
+ 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."
11113
+ },
11114
+ it: {
11115
+ name: "REXX",
11116
+ description: "Un linguaggio di scripting IBM leggibile per l'automazione dei mainframe.",
11117
+ 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."
11118
+ },
11119
+ fr: {
11120
+ name: "REXX",
11121
+ description: "Un langage de script IBM lisible pour l'automatisation des mainframes.",
11122
+ 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."
11123
+ },
11124
+ de: {
11125
+ name: "REXX",
11126
+ description: "Eine gut lesbare IBM-Skriptsprache f\xFCr Mainframe-Automatisierung.",
11127
+ 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."
11128
+ },
11129
+ pt: {
11130
+ name: "REXX",
11131
+ description: "Uma linguagem de script leg\xEDvel da IBM para automa\xE7\xE3o de mainframes.",
11132
+ 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."
11133
+ }
11134
+ }
11135
+ };
11136
+
10691
11137
  // src/languages/roc.ts
10692
11138
  var roc = {
10693
11139
  slug: "roc",
@@ -10789,6 +11235,7 @@ var rpg = {
10789
11235
  // src/languages/ruby.ts
10790
11236
  var ruby = {
10791
11237
  slug: "ruby",
11238
+ aliases: ["rb"],
10792
11239
  publishedDate: "1995-12-21",
10793
11240
  extensions: [".rb", ".rbw", ".rake", ".gemspec", "Gemfile", "Rakefile", "config.ru"],
10794
11241
  author: "Yukihiro Matsumoto",
@@ -11136,6 +11583,7 @@ var self = {
11136
11583
  // src/languages/simula.ts
11137
11584
  var simula = {
11138
11585
  slug: "simula",
11586
+ status: "historical",
11139
11587
  publishedDate: "1962-01-01",
11140
11588
  extensions: [".sim", ".simula"],
11141
11589
  author: "Ole-Johan Dahl and Kristen Nygaard",
@@ -11333,6 +11781,7 @@ var snakemake = {
11333
11781
  // src/languages/snobol.ts
11334
11782
  var snobol = {
11335
11783
  slug: "snobol",
11784
+ status: "historical",
11336
11785
  publishedDate: "1962-01-01",
11337
11786
  extensions: [".sno", ".snobol"],
11338
11787
  author: "David J. Farber, Ralph Griswold, and Ivan P. Polonsky",
@@ -11491,7 +11940,7 @@ var spark = {
11491
11940
  ecosystems: ["Ada", "Embedded", "Safety-critical software"]
11492
11941
  },
11493
11942
  version: "SPARK Community 2021",
11494
- logo: "https://dummyimage.com/32x32/DC2626/ffffff.png&text=SP",
11943
+ logo: "https://avatars.githubusercontent.com/u/7767877?v=4",
11495
11944
  color: "#DC2626",
11496
11945
  i18n: {
11497
11946
  en: {
@@ -11638,7 +12087,7 @@ var spss = {
11638
12087
  ecosystems: ["Statistics", "Data Analysis", "Social Sciences", "Business Intelligence"]
11639
12088
  },
11640
12089
  version: "29.0",
11641
- logo: "https://dummyimage.com/32x32/052FAD/ffffff.png&text=SPSS",
12090
+ logo: "https://upload.wikimedia.org/wikipedia/commons/e/ea/SPSS_logo.svg",
11642
12091
  color: "#052FAD",
11643
12092
  i18n: {
11644
12093
  en: {
@@ -11732,7 +12181,7 @@ var squirrel = {
11732
12181
  ecosystems: ["Game Development", "Embedded Scripting", "Valve Source Engine"]
11733
12182
  },
11734
12183
  version: "3.2",
11735
- logo: "https://dummyimage.com/32x32/CC4A00/ffffff.png&text=SQ",
12184
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_squirrel.svg",
11736
12185
  color: "#CC4A00",
11737
12186
  i18n: {
11738
12187
  en: {
@@ -12266,6 +12715,7 @@ var tcsh = {
12266
12715
  // src/languages/tex.ts
12267
12716
  var tex = {
12268
12717
  slug: "tex",
12718
+ aliases: ["latex"],
12269
12719
  publishedDate: "1978-01-01",
12270
12720
  extensions: [".tex", ".sty", ".cls", ".dtx", ".ins", ".ltx"],
12271
12721
  author: "Donald Knuth",
@@ -12710,6 +13160,7 @@ var twig = {
12710
13160
  // src/languages/typescript.ts
12711
13161
  var typescript = {
12712
13162
  slug: "typescript",
13163
+ aliases: ["ts"],
12713
13164
  publishedDate: "2012-10-01",
12714
13165
  extensions: [".ts", ".tsx", ".mts", ".cts"],
12715
13166
  author: "Anders Hejlsberg / Microsoft",
@@ -12960,6 +13411,7 @@ var vala = {
12960
13411
  // src/languages/vale.ts
12961
13412
  var vale = {
12962
13413
  slug: "vale",
13414
+ status: "experimental",
12963
13415
  publishedDate: "2018-01-01",
12964
13416
  extensions: [".vale"],
12965
13417
  author: "Evan Ovadia",
@@ -12970,7 +13422,7 @@ var vale = {
12970
13422
  ecosystems: ["Native applications", "Systems programming"]
12971
13423
  },
12972
13424
  version: "experimental",
12973
- logo: "https://dummyimage.com/32x32/059669/ffffff.png&text=Va",
13425
+ logo: "https://avatars.githubusercontent.com/u/67560249?v=4",
12974
13426
  color: "#059669",
12975
13427
  i18n: {
12976
13428
  en: {
@@ -13018,7 +13470,7 @@ var vba = {
13018
13470
  ecosystems: ["Microsoft Office", "Excel", "Access", "Word", "Outlook"]
13019
13471
  },
13020
13472
  version: "VBA 7.1",
13021
- logo: "https://dummyimage.com/32x32/217346/ffffff.png&text=VBA",
13473
+ logo: "https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_vba.svg",
13022
13474
  color: "#217346",
13023
13475
  i18n: {
13024
13476
  en: {
@@ -13054,6 +13506,56 @@ var vba = {
13054
13506
  }
13055
13507
  };
13056
13508
 
13509
+ // src/languages/vbscript.ts
13510
+ var vbscript = {
13511
+ slug: "vbscript",
13512
+ status: "legacy",
13513
+ publishedDate: "1996-08-01",
13514
+ extensions: [".vbs", ".vbe"],
13515
+ author: "Microsoft",
13516
+ website: "https://learn.microsoft.com/en-us/previous-versions/t0aew7h6(v=vs.85)",
13517
+ paradigms: ["imperative", "object-based", "scripting"],
13518
+ tooling: {
13519
+ runtimes: ["Windows Script Host", "Classic ASP", "Internet Explorer"],
13520
+ ecosystems: ["Windows", "Scripting"]
13521
+ },
13522
+ version: "5.8",
13523
+ logo: "https://dummyimage.com/32x32/15DCDC/000000.png&text=VBS",
13524
+ color: "#15DCDC",
13525
+ i18n: {
13526
+ en: {
13527
+ name: "VBScript",
13528
+ description: "A lightweight Visual Basic dialect for Windows automation and Classic ASP.",
13529
+ 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."
13530
+ },
13531
+ es: {
13532
+ name: "VBScript",
13533
+ description: "Un dialecto ligero de Visual Basic para automatizaci\xF3n de Windows y ASP cl\xE1sico.",
13534
+ 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."
13535
+ },
13536
+ it: {
13537
+ name: "VBScript",
13538
+ description: "Un dialetto leggero di Visual Basic per automazione Windows e ASP classico.",
13539
+ 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."
13540
+ },
13541
+ fr: {
13542
+ name: "VBScript",
13543
+ description: "Un dialecte l\xE9ger de Visual Basic pour l'automatisation Windows et l'ASP classique.",
13544
+ 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."
13545
+ },
13546
+ de: {
13547
+ name: "VBScript",
13548
+ description: "Ein leichter Visual-Basic-Dialekt f\xFCr Windows-Automatisierung und Classic ASP.",
13549
+ 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."
13550
+ },
13551
+ pt: {
13552
+ name: "VBScript",
13553
+ description: "Um dialeto leve de Visual Basic para automa\xE7\xE3o do Windows e ASP cl\xE1ssico.",
13554
+ 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."
13555
+ }
13556
+ }
13557
+ };
13558
+
13057
13559
  // src/languages/velocity.ts
13058
13560
  var velocity = {
13059
13561
  slug: "velocity",
@@ -13166,7 +13668,7 @@ var verse = {
13166
13668
  ecosystems: ["Unreal Engine", "Fortnite Creator"]
13167
13669
  },
13168
13670
  version: "UEFN Verse",
13169
- logo: "https://dummyimage.com/32x32/111827/ffffff.png&text=Ve",
13671
+ logo: "https://cdn.simpleicons.org/epicgames",
13170
13672
  color: "#111827",
13171
13673
  i18n: {
13172
13674
  en: {
@@ -13252,9 +13754,61 @@ var vhdl = {
13252
13754
  }
13253
13755
  };
13254
13756
 
13757
+ // src/languages/vimscript.ts
13758
+ var vimscript = {
13759
+ slug: "vimscript",
13760
+ aliases: ["vim", "vim script", "viml"],
13761
+ publishedDate: "1991-11-02",
13762
+ extensions: [".vim", ".vimrc", ".gvimrc"],
13763
+ author: "Bram Moolenaar",
13764
+ website: "https://www.vim.org",
13765
+ paradigms: ["imperative", "scripting"],
13766
+ tooling: {
13767
+ runtimes: ["Vim", "Neovim"],
13768
+ packageManagers: ["vim-plug", "lazy.nvim", "packer.nvim"],
13769
+ ecosystems: ["Text Editors", "Scripting"]
13770
+ },
13771
+ version: "Vim 9.1",
13772
+ logo: "https://cdn.simpleicons.org/vim/019733",
13773
+ color: "#019733",
13774
+ i18n: {
13775
+ en: {
13776
+ name: "Vim script",
13777
+ description: "The scripting language built into the Vim editor for configuration & plugins.",
13778
+ 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."
13779
+ },
13780
+ es: {
13781
+ name: "Vim script",
13782
+ description: "El lenguaje de scripting integrado en el editor Vim para configuraci\xF3n y plugins.",
13783
+ 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."
13784
+ },
13785
+ it: {
13786
+ name: "Vim script",
13787
+ description: "Il linguaggio di scripting integrato nell'editor Vim per configurazione e plugin.",
13788
+ 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."
13789
+ },
13790
+ fr: {
13791
+ name: "Vim script",
13792
+ description: "Le langage de script int\xE9gr\xE9 \xE0 l'\xE9diteur Vim pour la configuration et les plugins.",
13793
+ 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."
13794
+ },
13795
+ de: {
13796
+ name: "Vim script",
13797
+ description: "Die im Vim-Editor eingebaute Skriptsprache f\xFCr Konfiguration und Plugins.",
13798
+ 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."
13799
+ },
13800
+ pt: {
13801
+ name: "Vim script",
13802
+ description: "A linguagem de script embutida no editor Vim para configura\xE7\xE3o e plugins.",
13803
+ 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."
13804
+ }
13805
+ }
13806
+ };
13807
+
13255
13808
  // src/languages/visual-basic.ts
13256
13809
  var visualBasic = {
13257
13810
  slug: "visual-basic",
13811
+ aliases: ["vb", "vb.net"],
13258
13812
  publishedDate: "2001-02-13",
13259
13813
  extensions: [".vb"],
13260
13814
  author: "Microsoft",
@@ -13454,6 +14008,7 @@ var wdl = {
13454
14008
  // src/languages/webassembly.ts
13455
14009
  var webassembly = {
13456
14010
  slug: "webassembly",
14011
+ aliases: ["wasm", "wat"],
13457
14012
  publishedDate: "2017-03-07",
13458
14013
  extensions: [".wasm", ".wat"],
13459
14014
  author: "W3C WebAssembly Community Group",
@@ -13842,6 +14397,58 @@ var xslt = {
13842
14397
  }
13843
14398
  };
13844
14399
 
14400
+ // src/languages/yacc.ts
14401
+ var yacc = {
14402
+ slug: "yacc",
14403
+ aliases: ["bison"],
14404
+ publishedDate: "1973-01-01",
14405
+ extensions: [".y", ".yacc"],
14406
+ author: "Stephen C. Johnson (Bell Labs)",
14407
+ website: "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html",
14408
+ paradigms: ["declarative", "generator"],
14409
+ tooling: {
14410
+ runtimes: ["C toolchains"],
14411
+ ecosystems: ["Compilers", "Language Tooling", "Unix"]
14412
+ },
14413
+ version: "POSIX yacc / Bison 3.8.2",
14414
+ logo: "https://cdn.simpleicons.org/gnu/A42E2B",
14415
+ color: "#4B6C4B",
14416
+ i18n: {
14417
+ en: {
14418
+ name: "Yacc",
14419
+ description: "A parser generator that turns context-free grammars into LALR parser code.",
14420
+ 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.'
14421
+ },
14422
+ es: {
14423
+ name: "Yacc",
14424
+ description: "Un generador de parsers que convierte gram\xE1ticas libres de contexto en parsers LALR.",
14425
+ 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.'
14426
+ },
14427
+ it: {
14428
+ name: "Yacc",
14429
+ description: "Un generatore di parser che trasforma grammatiche libere dal contesto in parser LALR.",
14430
+ 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.
14431
+
14432
+ 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.`
14433
+ },
14434
+ fr: {
14435
+ name: "Yacc",
14436
+ description: "Un g\xE9n\xE9rateur de parseurs qui transforme des grammaires hors contexte en parseurs LALR.",
14437
+ 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."
14438
+ },
14439
+ de: {
14440
+ name: "Yacc",
14441
+ description: "Ein Parser-Generator, der kontextfreie Grammatiken in LALR-Parser-Code \xFCbersetzt.",
14442
+ 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.'
14443
+ },
14444
+ pt: {
14445
+ name: "Yacc",
14446
+ description: "Um gerador de parsers que converte gram\xE1ticas livres de contexto em parsers LALR.",
14447
+ 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.'
14448
+ }
14449
+ }
14450
+ };
14451
+
13845
14452
  // src/languages/yaml.ts
13846
14453
  var yaml = {
13847
14454
  slug: "yaml",
@@ -14144,31 +14751,31 @@ var languages = [
14144
14751
  agda,
14145
14752
  algol,
14146
14753
  ampl,
14754
+ angelscript,
14147
14755
  ante,
14148
14756
  antlr,
14149
14757
  apex,
14150
14758
  apl,
14151
14759
  applescript,
14152
- arduino,
14153
14760
  aql,
14761
+ arduino,
14154
14762
  asciidoc,
14155
14763
  asp,
14156
14764
  assembly,
14157
14765
  assemblyscript,
14158
- angelscript,
14159
14766
  astro,
14160
14767
  austral,
14161
14768
  autohotkey,
14162
14769
  avroIdl,
14163
14770
  awk,
14164
14771
  ballerina,
14165
- basic,
14166
14772
  bash,
14773
+ basic,
14167
14774
  batch,
14168
14775
  bazel,
14169
14776
  bcpl,
14170
- bicep,
14171
14777
  bibtex,
14778
+ bicep,
14172
14779
  blade,
14173
14780
  bosque,
14174
14781
  bqn,
@@ -14187,8 +14794,8 @@ var languages = [
14187
14794
  coldfusion,
14188
14795
  coq,
14189
14796
  cpp,
14190
- crystal,
14191
14797
  cql,
14798
+ crystal,
14192
14799
  csharp,
14193
14800
  css,
14194
14801
  cuda,
@@ -14210,6 +14817,7 @@ var languages = [
14210
14817
  ejs,
14211
14818
  elixir,
14212
14819
  elm,
14820
+ emacsLisp,
14213
14821
  erb,
14214
14822
  erlang,
14215
14823
  factor,
@@ -14220,17 +14828,17 @@ var languages = [
14220
14828
  flux,
14221
14829
  forth,
14222
14830
  fortran,
14223
- freemarker,
14224
14831
  fql,
14832
+ freemarker,
14225
14833
  fsharp,
14226
14834
  fstar,
14227
- gdscript,
14228
14835
  gcode,
14836
+ gdscript,
14229
14837
  gettext,
14230
14838
  git,
14231
14839
  gleam,
14232
- gml,
14233
14840
  glsl,
14841
+ gml,
14234
14842
  go,
14235
14843
  gradle,
14236
14844
  grain,
@@ -14257,8 +14865,10 @@ var languages = [
14257
14865
  janet,
14258
14866
  java,
14259
14867
  javascript,
14868
+ jcl,
14260
14869
  jinja,
14261
14870
  jmespath,
14871
+ jq,
14262
14872
  json,
14263
14873
  json5,
14264
14874
  jsonata,
@@ -14274,9 +14884,10 @@ var languages = [
14274
14884
  kql,
14275
14885
  lean,
14276
14886
  less,
14887
+ lex,
14277
14888
  ligo,
14278
- liquid,
14279
14889
  linkerscript,
14890
+ liquid,
14280
14891
  lisp,
14281
14892
  llvmIr,
14282
14893
  lobster,
@@ -14291,13 +14902,13 @@ var languages = [
14291
14902
  matlab,
14292
14903
  maxima,
14293
14904
  mdx,
14905
+ mercury,
14294
14906
  mermaid,
14295
14907
  meson,
14296
- mercury,
14297
14908
  metal,
14298
14909
  modelica,
14299
- mojo,
14300
14910
  modula2,
14911
+ mojo,
14301
14912
  moonbit,
14302
14913
  move,
14303
14914
  mumps,
@@ -14310,10 +14921,10 @@ var languages = [
14310
14921
  nix,
14311
14922
  nunjucks,
14312
14923
  nushell,
14924
+ oberon,
14313
14925
  objectiveC,
14314
14926
  ocaml,
14315
14927
  octave,
14316
- oberon,
14317
14928
  odin,
14318
14929
  openapi,
14319
14930
  opencl,
@@ -14323,8 +14934,8 @@ var languages = [
14323
14934
  perl,
14324
14935
  php,
14325
14936
  pineScript,
14326
- plI,
14327
14937
  pkl,
14938
+ plI,
14328
14939
  plantuml,
14329
14940
  plpgsql,
14330
14941
  plsql,
@@ -14336,24 +14947,26 @@ var languages = [
14336
14947
  processing,
14337
14948
  prolog,
14338
14949
  promql,
14950
+ properties,
14339
14951
  protobuf,
14340
14952
  pug,
14341
14953
  puppet,
14342
14954
  purescript,
14343
14955
  python,
14344
- qml,
14345
14956
  qmake,
14957
+ qml,
14346
14958
  qsharp,
14347
14959
  r,
14348
14960
  racket,
14349
14961
  raku,
14350
14962
  razor,
14963
+ reasonml,
14351
14964
  rebol,
14352
14965
  red,
14353
- reasonml,
14354
14966
  rego,
14355
14967
  rescript,
14356
14968
  restructuredtext,
14969
+ rexx,
14357
14970
  roc,
14358
14971
  rpg,
14359
14972
  ruby,
@@ -14370,8 +14983,8 @@ var languages = [
14370
14983
  snobol,
14371
14984
  solidity,
14372
14985
  soql,
14373
- sparql,
14374
14986
  spark,
14987
+ sparql,
14375
14988
  spl,
14376
14989
  spss,
14377
14990
  sql,
@@ -14400,17 +15013,19 @@ var languages = [
14400
15013
  unison,
14401
15014
  v,
14402
15015
  vala,
14403
- vba,
14404
15016
  vale,
15017
+ vba,
15018
+ vbscript,
14405
15019
  velocity,
14406
15020
  verilog,
14407
15021
  verse,
14408
15022
  vhdl,
15023
+ vimscript,
14409
15024
  visualBasic,
14410
15025
  vue,
14411
15026
  vyper,
14412
- webassembly,
14413
15027
  wdl,
15028
+ webassembly,
14414
15029
  wgsl,
14415
15030
  wren,
14416
15031
  xaml,
@@ -14418,6 +15033,7 @@ var languages = [
14418
15033
  xpath,
14419
15034
  xquery,
14420
15035
  xslt,
15036
+ yacc,
14421
15037
  yaml,
14422
15038
  yara,
14423
15039
  zeek,
@@ -14426,37 +15042,14 @@ var languages = [
14426
15042
  zsh
14427
15043
  ];
14428
15044
 
14429
- // src/domain/detection/match.ts
14430
- var pathSegmentPattern = /[/\\]/;
14431
- var getBasename = (filename) => {
14432
- const parts = filename.trim().split(pathSegmentPattern);
14433
- return parts.at(-1).toLowerCase();
14434
- };
14435
- var matchesExtension = (basename, extension) => {
14436
- const normalizedExtension = extension.toLowerCase();
14437
- if (normalizedExtension.startsWith(".")) {
14438
- return basename.endsWith(normalizedExtension);
14439
- }
14440
- return basename === normalizedExtension || basename.endsWith(`.${normalizedExtension}`);
14441
- };
14442
- var detectMatchingEntries = (entries, filename) => {
14443
- const basename = getBasename(filename);
14444
- if (!basename) {
14445
- return [];
14446
- }
14447
- return entries.map((entry, index) => ({
14448
- entry,
14449
- index,
14450
- matchLength: Math.max(
14451
- ...entry.extensions.filter((extension) => matchesExtension(basename, extension)).map((extension) => extension.length)
14452
- )
14453
- })).filter(({ matchLength }) => Number.isFinite(matchLength)).sort((first, second) => second.matchLength - first.matchLength || first.index - second.index).map(({ entry }) => entry);
14454
- };
14455
-
14456
15045
  // src/domain/detection/detect.ts
14457
15046
  var detectLanguages = (filename) => {
14458
15047
  return detectMatchingEntries(languages, filename);
14459
15048
  };
14460
15049
  var detectLanguage = (filename) => detectLanguages(filename).at(0);
15050
+ var detectLanguageByShebang = (content) => {
15051
+ const slug = detectLanguageSlugByShebang(content);
15052
+ return slug ? languages.find((language) => language.slug === slug) : void 0;
15053
+ };
14461
15054
 
14462
- export { detectLanguage, detectLanguages };
15055
+ export { detectLanguage, detectLanguageByShebang, detectLanguageSlugByShebang, detectLanguages };