code-languages 1.31.2 → 1.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +56 -46
  2. package/dist/api.cjs +532 -107
  3. package/dist/api.d.cts +1 -1
  4. package/dist/api.d.ts +1 -1
  5. package/dist/api.js +532 -107
  6. package/dist/detect-slugs.cjs +50 -39
  7. package/dist/detect-slugs.d.cts +1 -1
  8. package/dist/detect-slugs.d.ts +1 -1
  9. package/dist/detect-slugs.js +50 -39
  10. package/dist/detect.cjs +352 -44
  11. package/dist/detect.js +352 -44
  12. package/dist/index.cjs +599 -152
  13. package/dist/index.d.cts +458 -172
  14. package/dist/index.d.ts +458 -172
  15. package/dist/index.js +555 -108
  16. package/dist/{language-registry-BaICPFq_.d.cts → language-registry-BWMgasX6.d.cts} +109 -79
  17. package/dist/{language-registry-BaICPFq_.d.ts → language-registry-BWMgasX6.d.ts} +109 -79
  18. package/dist/languages/algol.cjs +32 -0
  19. package/dist/languages/algol.d.cts +29 -0
  20. package/dist/languages/algol.d.ts +29 -0
  21. package/dist/languages/algol.js +30 -0
  22. package/dist/languages/ante.cjs +33 -0
  23. package/dist/languages/ante.d.cts +30 -0
  24. package/dist/languages/ante.d.ts +30 -0
  25. package/dist/languages/ante.js +31 -0
  26. package/dist/languages/astro.cjs +1 -1
  27. package/dist/languages/astro.js +1 -1
  28. package/dist/languages/austral.cjs +32 -0
  29. package/dist/languages/austral.d.cts +29 -0
  30. package/dist/languages/austral.d.ts +29 -0
  31. package/dist/languages/austral.js +30 -0
  32. package/dist/languages/bcpl.cjs +32 -0
  33. package/dist/languages/bcpl.d.cts +29 -0
  34. package/dist/languages/bcpl.d.ts +29 -0
  35. package/dist/languages/bcpl.js +30 -0
  36. package/dist/languages/bosque.cjs +32 -0
  37. package/dist/languages/bosque.d.cts +29 -0
  38. package/dist/languages/bosque.d.ts +29 -0
  39. package/dist/languages/bosque.js +30 -0
  40. package/dist/languages/bqn.cjs +32 -0
  41. package/dist/languages/bqn.d.cts +29 -0
  42. package/dist/languages/bqn.d.ts +29 -0
  43. package/dist/languages/bqn.js +30 -0
  44. package/dist/languages/curry.cjs +33 -0
  45. package/dist/languages/curry.d.cts +30 -0
  46. package/dist/languages/curry.d.ts +30 -0
  47. package/dist/languages/curry.js +31 -0
  48. package/dist/languages/dart.cjs +1 -1
  49. package/dist/languages/dart.js +1 -1
  50. package/dist/languages/elixir.cjs +1 -1
  51. package/dist/languages/elixir.js +1 -1
  52. package/dist/languages/factor.cjs +33 -0
  53. package/dist/languages/factor.d.cts +30 -0
  54. package/dist/languages/factor.d.ts +30 -0
  55. package/dist/languages/factor.js +31 -0
  56. package/dist/languages/io.cjs +32 -0
  57. package/dist/languages/io.d.cts +29 -0
  58. package/dist/languages/io.d.ts +29 -0
  59. package/dist/languages/io.js +30 -0
  60. package/dist/languages/koka.cjs +33 -0
  61. package/dist/languages/koka.d.cts +30 -0
  62. package/dist/languages/koka.d.ts +30 -0
  63. package/dist/languages/koka.js +31 -0
  64. package/dist/languages/luau.cjs +1 -1
  65. package/dist/languages/luau.js +1 -1
  66. package/dist/languages/nickel.cjs +1 -1
  67. package/dist/languages/nickel.js +1 -1
  68. package/dist/languages/plantuml.cjs +1 -1
  69. package/dist/languages/plantuml.js +1 -1
  70. package/dist/languages/razor.cjs +1 -1
  71. package/dist/languages/razor.js +1 -1
  72. package/dist/languages/rego.cjs +1 -1
  73. package/dist/languages/rego.js +1 -1
  74. package/dist/languages/scala.cjs +1 -1
  75. package/dist/languages/scala.js +1 -1
  76. package/dist/languages/svelte.cjs +1 -1
  77. package/dist/languages/svelte.js +1 -1
  78. package/package.json +756 -646
@@ -6,6 +6,8 @@ var languageIndex = [
6
6
  { slug: "actionscript", extensions: [".as"] },
7
7
  { slug: "ada", extensions: [".adb", ".ads", ".ada"] },
8
8
  { slug: "agda", extensions: [".agda", ".lagda", ".lagda.md", ".lagda.rst", ".lagda.tex"] },
9
+ { slug: "algol", extensions: [".alg", ".algol"] },
10
+ { slug: "ante", extensions: [".ante"] },
9
11
  { slug: "antlr", extensions: [".g4"] },
10
12
  { slug: "apex", extensions: [".cls", ".trigger"] },
11
13
  { slug: "apl", extensions: [".apl", ".dyalog"] },
@@ -13,40 +15,42 @@ var languageIndex = [
13
15
  { slug: "arduino", extensions: [".ino", ".pde"] },
14
16
  { slug: "asciidoc", extensions: [".adoc", ".asciidoc", ".asc"] },
15
17
  { slug: "asp", extensions: [".asp", ".aspx", ".ascx", ".ashx", ".asmx", ".master"] },
16
- { slug: "astro", extensions: [".astro"] },
17
18
  { slug: "assembly", extensions: [".asm", ".s", ".S", ".inc"] },
18
- { slug: "awk", extensions: [".awk"] },
19
+ { slug: "astro", extensions: [".astro"] },
20
+ { slug: "austral", extensions: [".aum", ".aui"] },
19
21
  { slug: "autohotkey", extensions: [".ahk", ".ah2"] },
22
+ { slug: "awk", extensions: [".awk"] },
20
23
  { slug: "ballerina", extensions: [".bal"] },
21
24
  {
22
25
  slug: "bash",
23
26
  extensions: [".sh", ".bash", ".bashrc", ".bash_profile", ".bash_login", ".profile"]
24
27
  },
25
28
  { slug: "batch", extensions: [".bat", ".cmd"] },
26
- {
27
- slug: "bazel",
28
- extensions: ["BUILD.bazel", "WORKSPACE", "WORKSPACE.bazel", "MODULE.bazel"]
29
- },
29
+ { slug: "bazel", extensions: ["BUILD.bazel", "WORKSPACE", "WORKSPACE.bazel", "MODULE.bazel"] },
30
+ { slug: "bcpl", extensions: [".bcpl"] },
30
31
  { slug: "bicep", extensions: [".bicep", ".bicepparam"] },
31
32
  { slug: "blade", extensions: [".blade.php"] },
33
+ { slug: "bosque", extensions: [".bsq"] },
34
+ { slug: "bqn", extensions: [".bqn"] },
32
35
  { slug: "c", extensions: [".c", ".h"] },
33
36
  { slug: "cairo", extensions: [".cairo"] },
34
37
  { slug: "carbon", extensions: [".carbon"] },
35
38
  { slug: "chapel", extensions: [".chpl"] },
36
39
  { slug: "circom", extensions: [".circom"] },
37
- { slug: "cmake", extensions: ["CMakeLists.txt", ".cmake"] },
38
40
  { slug: "clojure", extensions: [".clj", ".cljs", ".cljc", ".edn", ".bb"] },
41
+ { slug: "cmake", extensions: ["CMakeLists.txt", ".cmake"] },
42
+ { slug: "cobol", extensions: [".cob", ".cbl", ".cobol", ".cpy"] },
39
43
  { slug: "coffeescript", extensions: [".coffee", ".litcoffee", ".cson"] },
40
44
  { slug: "coldfusion", extensions: [".cfm", ".cfml", ".cfc"] },
41
- { slug: "cobol", extensions: [".cob", ".cbl", ".cobol", ".cpy"] },
42
45
  { slug: "coq", extensions: [".v"] },
43
46
  { slug: "cpp", extensions: [".cpp", ".cc", ".cxx", ".h", ".hpp", ".hh", ".hxx"] },
44
- { slug: "cypher", extensions: [".cypher", ".cyp"] },
45
- { slug: "csharp", extensions: [".cs", ".csx"] },
46
47
  { slug: "crystal", extensions: [".cr"] },
48
+ { slug: "csharp", extensions: [".cs", ".csx"] },
47
49
  { slug: "css", extensions: [".css"] },
48
- { slug: "cue", extensions: [".cue"] },
49
50
  { slug: "cuda", extensions: [".cu", ".cuh"] },
51
+ { slug: "cue", extensions: [".cue"] },
52
+ { slug: "curry", extensions: [".curry", ".lcurry"] },
53
+ { slug: "cypher", extensions: [".cypher", ".cyp"] },
50
54
  { slug: "cython", extensions: [".pyx", ".pxd", ".pxi"] },
51
55
  { slug: "d", extensions: [".d", ".di"] },
52
56
  { slug: "dafny", extensions: [".dfy"] },
@@ -54,9 +58,9 @@ var languageIndex = [
54
58
  { slug: "dhall", extensions: [".dhall"] },
55
59
  { slug: "dita", extensions: [".dita", ".ditamap", ".ditaval"] },
56
60
  { slug: "dockerfile", extensions: ["Dockerfile", ".dockerfile"] },
57
- { slug: "ejs", extensions: [".ejs"] },
58
- { slug: "eiffel", extensions: [".e"] },
59
61
  { slug: "earthly", extensions: ["Earthfile"] },
62
+ { slug: "eiffel", extensions: [".e"] },
63
+ { slug: "ejs", extensions: [".ejs"] },
60
64
  { slug: "elixir", extensions: [".ex", ".exs", ".eex", ".leex", ".heex"] },
61
65
  { slug: "elm", extensions: [".elm"] },
62
66
  { slug: "erb", extensions: [".erb", ".rhtml", ".html.erb"] },
@@ -64,56 +68,59 @@ var languageIndex = [
64
68
  slug: "erlang",
65
69
  extensions: [".erl", ".hrl", ".app.src", ".escript", ".xrl", ".yrl", "rebar.config"]
66
70
  },
67
- { slug: "fish", extensions: [".fish"] },
71
+ { slug: "factor", extensions: [".factor"] },
68
72
  { slug: "fennel", extensions: [".fnl"] },
73
+ { slug: "fish", extensions: [".fish"] },
69
74
  { slug: "flux", extensions: [".flux"] },
70
- { slug: "freemarker", extensions: [".ftl", ".ftlh", ".ftlx"] },
75
+ { slug: "forth", extensions: [".fs", ".fth", ".forth", ".4th"] },
71
76
  {
72
77
  slug: "fortran",
73
78
  extensions: [".f", ".for", ".ftn", ".f90", ".f95", ".f03", ".f08", ".f18", ".f23"]
74
79
  },
75
- { slug: "forth", extensions: [".fs", ".fth", ".forth", ".4th"] },
80
+ { slug: "freemarker", extensions: [".ftl", ".ftlh", ".ftlx"] },
76
81
  { slug: "fsharp", extensions: [".fs", ".fsi", ".fsx", ".fsscript"] },
77
82
  { slug: "fstar", extensions: [".fst", ".fsti"] },
78
83
  { slug: "gdscript", extensions: [".gd"] },
79
84
  { slug: "git", extensions: [".git", ".gitignore", ".gitattributes", ".gitmodules", ".gitkeep"] },
80
85
  { slug: "gleam", extensions: [".gleam"] },
81
- { slug: "go", extensions: [".go"] },
82
- { slug: "grain", extensions: [".gr"] },
83
- { slug: "gradle", extensions: [".gradle", ".gradle.kts"] },
84
86
  {
85
87
  slug: "glsl",
86
88
  extensions: [".glsl", ".vert", ".frag", ".geom", ".tesc", ".tese", ".comp", ".vs", ".fs"]
87
89
  },
90
+ { slug: "go", extensions: [".go"] },
91
+ { slug: "gradle", extensions: [".gradle", ".gradle.kts"] },
92
+ { slug: "grain", extensions: [".gr"] },
88
93
  { slug: "graphql", extensions: [".graphql", ".gql", ".graphqls"] },
89
94
  { slug: "groovy", extensions: [".groovy", ".gvy", ".gy", ".gsh"] },
90
- { slug: "handlebars", extensions: [".hbs", ".handlebars"] },
91
95
  { slug: "hack", extensions: [".hack", ".hh", ".hhi"] },
92
96
  { slug: "haml", extensions: [".haml"] },
97
+ { slug: "handlebars", extensions: [".hbs", ".handlebars"] },
93
98
  { slug: "hare", extensions: [".ha"] },
94
- { slug: "hocon", extensions: [".hocon"] },
95
99
  { slug: "haskell", extensions: [".hs", ".lhs", ".hsc", ".hs-boot", ".hsig", ".cabal"] },
96
100
  { slug: "haxe", extensions: [".hx", ".hxml"] },
97
101
  { slug: "hcl", extensions: [".hcl", ".tf", ".tfvars", ".pkr.hcl", ".nomad"] },
98
102
  { slug: "hlsl", extensions: [".hlsl", ".fx", ".fxh", ".hlsli"] },
103
+ { slug: "hocon", extensions: [".hocon"] },
99
104
  { slug: "html", extensions: [".html", ".htm"] },
100
105
  { slug: "hy", extensions: [".hy"] },
101
106
  { slug: "idris", extensions: [".idr", ".lidr", ".ipkg"] },
102
107
  { slug: "ini", extensions: [".ini"] },
108
+ { slug: "io", extensions: [".io"] },
103
109
  { slug: "isabelle", extensions: [".thy"] },
110
+ { slug: "janet", extensions: [".janet", ".jdn"] },
104
111
  { slug: "java", extensions: [".java"] },
105
112
  { slug: "javascript", extensions: [".js", ".mjs", ".cjs", ".jsx"] },
106
- { slug: "janet", extensions: [".janet", ".jdn"] },
107
113
  { slug: "jinja", extensions: [".jinja", ".jinja2", ".j2"] },
108
114
  { slug: "json", extensions: [".json"] },
109
115
  { slug: "json5", extensions: [".json5"] },
110
116
  { slug: "jsonc", extensions: [".jsonc", ".code-workspace"] },
111
117
  { slug: "jsonnet", extensions: [".jsonnet", ".libsonnet"] },
112
- { slug: "jupyter-notebook", extensions: [".ipynb"] },
113
118
  { slug: "julia", extensions: [".jl"] },
119
+ { slug: "jupyter-notebook", extensions: [".ipynb"] },
114
120
  { slug: "just", extensions: ["justfile", "Justfile", ".just"] },
115
121
  { slug: "kcl", extensions: [".k", ".kcl"] },
116
122
  { slug: "kdl", extensions: [".kdl"] },
123
+ { slug: "koka", extensions: [".kk"] },
117
124
  { slug: "kotlin", extensions: [".kt", ".kts"] },
118
125
  { slug: "lean", extensions: [".lean"] },
119
126
  { slug: "less", extensions: [".less"] },
@@ -122,36 +129,35 @@ var languageIndex = [
122
129
  { slug: "llvm-ir", extensions: [".ll", ".bc"] },
123
130
  { slug: "lua", extensions: [".lua", ".rockspec"] },
124
131
  { slug: "luau", extensions: [".luau"] },
125
- { slug: "mako", extensions: [".mako", ".mao"] },
126
132
  { slug: "makefile", extensions: ["Makefile", "makefile", "GNUmakefile", ".mk", ".mak"] },
133
+ { slug: "mako", extensions: [".mako", ".mao"] },
134
+ { slug: "markdown", extensions: [".md", ".markdown", ".mdown", ".mkd"] },
127
135
  { slug: "mathematica", extensions: [".wl", ".wls", ".nb"] },
128
136
  { slug: "matlab", extensions: [".m", ".mlx"] },
129
- { slug: "markdown", extensions: [".md", ".markdown", ".mdown", ".mkd"] },
130
137
  { slug: "mdx", extensions: [".mdx"] },
131
138
  { slug: "mermaid", extensions: [".mmd", ".mermaid"] },
132
139
  { slug: "meson", extensions: ["meson.build", "meson_options.txt", "meson.options", ".wrap"] },
133
140
  { slug: "metal", extensions: [".metal"] },
134
- { slug: "mustache", extensions: [".mustache", ".mst"] },
135
- { slug: "move", extensions: [".move"] },
136
141
  { slug: "mojo", extensions: [".mojo"] },
137
142
  { slug: "moonbit", extensions: [".mbt"] },
138
- { slug: "svn", extensions: [".svn", "svnserve.conf"] },
143
+ { slug: "move", extensions: [".move"] },
144
+ { slug: "mustache", extensions: [".mustache", ".mst"] },
139
145
  { slug: "nginx", extensions: ["nginx.conf", ".nginx", ".conf"] },
140
146
  { slug: "nickel", extensions: [".ncl"] },
141
- { slug: "nunjucks", extensions: [".njk", ".nunjucks"] },
142
- { slug: "nushell", extensions: [".nu"] },
143
147
  { slug: "nim", extensions: [".nim", ".nims", ".nimble"] },
144
148
  { slug: "nix", extensions: [".nix"] },
145
- { slug: "ocaml", extensions: [".ml", ".mli", ".mll", ".mly", ".mlt", ".eliom", ".eliomi"] },
149
+ { slug: "nunjucks", extensions: [".njk", ".nunjucks"] },
150
+ { slug: "nushell", extensions: [".nu"] },
146
151
  { slug: "objective-c", extensions: [".m", ".mm"] },
152
+ { slug: "ocaml", extensions: [".ml", ".mli", ".mll", ".mly", ".mlt", ".eliom", ".eliomi"] },
147
153
  { slug: "odin", extensions: [".odin"] },
148
- { slug: "opencl", extensions: [".cl", ".clh"] },
149
154
  { slug: "openapi", extensions: [".openapi.json", ".openapi.yaml", ".openapi.yml"] },
155
+ { slug: "opencl", extensions: [".cl", ".clh"] },
150
156
  { slug: "pascal", extensions: [".pas", ".pp", ".inc", ".lpr", ".dpr", ".dfm"] },
151
- { slug: "pkl", extensions: [".pkl"] },
152
157
  { slug: "perl", extensions: [".pl", ".pm", ".pod", ".t", ".psgi"] },
153
158
  { slug: "php", extensions: [".php", ".phtml", ".php3", ".php4", ".php5", ".phps"] },
154
159
  { slug: "pine-script", extensions: [".pine"] },
160
+ { slug: "pkl", extensions: [".pkl"] },
155
161
  { slug: "plantuml", extensions: [".puml", ".plantuml", ".iuml"] },
156
162
  { slug: "plsql", extensions: [".pls", ".pks", ".pkb", ".plsql"] },
157
163
  { slug: "pony", extensions: [".pony"] },
@@ -166,8 +172,8 @@ var languageIndex = [
166
172
  { slug: "qml", extensions: [".qml", ".qmltypes", ".qmlproject"] },
167
173
  { slug: "qsharp", extensions: [".qs"] },
168
174
  { slug: "r", extensions: [".r", ".R", ".rmd", ".Rmd", ".qmd", ".Rprofile"] },
169
- { slug: "raku", extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"] },
170
175
  { slug: "racket", extensions: [".rkt", ".rktd", ".rktl", ".scrbl"] },
176
+ { slug: "raku", extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"] },
171
177
  { slug: "razor", extensions: [".cshtml", ".razor"] },
172
178
  { slug: "reasonml", extensions: [".re", ".rei"] },
173
179
  { slug: "rego", extensions: [".rego"] },
@@ -180,8 +186,8 @@ var languageIndex = [
180
186
  { slug: "rust", extensions: [".rs"] },
181
187
  { slug: "sas", extensions: [".sas"] },
182
188
  { slug: "scala", extensions: [".scala", ".sc"] },
183
- { slug: "scss", extensions: [".scss", ".sass"] },
184
189
  { slug: "scheme", extensions: [".scm", ".ss", ".sld", ".sls"] },
190
+ { slug: "scss", extensions: [".scss", ".sass"] },
185
191
  { slug: "smalltalk", extensions: [".st"] },
186
192
  { slug: "smarty", extensions: [".tpl", ".smarty"] },
187
193
  { slug: "solidity", extensions: [".sol"] },
@@ -191,8 +197,9 @@ var languageIndex = [
191
197
  { slug: "starlark", extensions: [".bzl", ".star", ".sky"] },
192
198
  { slug: "stata", extensions: [".do", ".ado", ".mata"] },
193
199
  { slug: "stylus", extensions: [".styl"] },
194
- { slug: "svg", extensions: [".svg", ".svgz"] },
195
200
  { slug: "svelte", extensions: [".svelte"] },
201
+ { slug: "svg", extensions: [".svg", ".svgz"] },
202
+ { slug: "svn", extensions: [".svn", "svnserve.conf"] },
196
203
  { slug: "swift", extensions: [".swift"] },
197
204
  { slug: "tcl", extensions: [".tcl", ".tm", ".test"] },
198
205
  { slug: "tex", extensions: [".tex", ".sty", ".cls", ".dtx", ".ins", ".ltx"] },
@@ -244,9 +251,13 @@ var detectMatchingEntries = (entries, filename) => {
244
251
  if (!basename) {
245
252
  return [];
246
253
  }
247
- return entries.filter(
248
- (entry) => entry.extensions.some((extension) => matchesExtension(basename, extension))
249
- );
254
+ return entries.map((entry, index) => ({
255
+ entry,
256
+ index,
257
+ matchLength: Math.max(
258
+ ...entry.extensions.filter((extension) => matchesExtension(basename, extension)).map((extension) => extension.length)
259
+ )
260
+ })).filter(({ matchLength }) => Number.isFinite(matchLength)).sort((first, second) => second.matchLength - first.matchLength || first.index - second.index).map(({ entry }) => entry);
250
261
  };
251
262
 
252
263
  // src/detect-slugs.ts
@@ -1,4 +1,4 @@
1
- import { L as LanguageSlug } from './language-registry-BaICPFq_.cjs';
1
+ import { L as LanguageSlug } from './language-registry-BWMgasX6.cjs';
2
2
 
3
3
  interface ProjectLanguageDetection {
4
4
  /** Detected language slug. */
@@ -1,4 +1,4 @@
1
- import { L as LanguageSlug } from './language-registry-BaICPFq_.js';
1
+ import { L as LanguageSlug } from './language-registry-BWMgasX6.js';
2
2
 
3
3
  interface ProjectLanguageDetection {
4
4
  /** Detected language slug. */
@@ -4,6 +4,8 @@ var languageIndex = [
4
4
  { slug: "actionscript", extensions: [".as"] },
5
5
  { slug: "ada", extensions: [".adb", ".ads", ".ada"] },
6
6
  { slug: "agda", extensions: [".agda", ".lagda", ".lagda.md", ".lagda.rst", ".lagda.tex"] },
7
+ { slug: "algol", extensions: [".alg", ".algol"] },
8
+ { slug: "ante", extensions: [".ante"] },
7
9
  { slug: "antlr", extensions: [".g4"] },
8
10
  { slug: "apex", extensions: [".cls", ".trigger"] },
9
11
  { slug: "apl", extensions: [".apl", ".dyalog"] },
@@ -11,40 +13,42 @@ var languageIndex = [
11
13
  { slug: "arduino", extensions: [".ino", ".pde"] },
12
14
  { slug: "asciidoc", extensions: [".adoc", ".asciidoc", ".asc"] },
13
15
  { slug: "asp", extensions: [".asp", ".aspx", ".ascx", ".ashx", ".asmx", ".master"] },
14
- { slug: "astro", extensions: [".astro"] },
15
16
  { slug: "assembly", extensions: [".asm", ".s", ".S", ".inc"] },
16
- { slug: "awk", extensions: [".awk"] },
17
+ { slug: "astro", extensions: [".astro"] },
18
+ { slug: "austral", extensions: [".aum", ".aui"] },
17
19
  { slug: "autohotkey", extensions: [".ahk", ".ah2"] },
20
+ { slug: "awk", extensions: [".awk"] },
18
21
  { slug: "ballerina", extensions: [".bal"] },
19
22
  {
20
23
  slug: "bash",
21
24
  extensions: [".sh", ".bash", ".bashrc", ".bash_profile", ".bash_login", ".profile"]
22
25
  },
23
26
  { slug: "batch", extensions: [".bat", ".cmd"] },
24
- {
25
- slug: "bazel",
26
- extensions: ["BUILD.bazel", "WORKSPACE", "WORKSPACE.bazel", "MODULE.bazel"]
27
- },
27
+ { slug: "bazel", extensions: ["BUILD.bazel", "WORKSPACE", "WORKSPACE.bazel", "MODULE.bazel"] },
28
+ { slug: "bcpl", extensions: [".bcpl"] },
28
29
  { slug: "bicep", extensions: [".bicep", ".bicepparam"] },
29
30
  { slug: "blade", extensions: [".blade.php"] },
31
+ { slug: "bosque", extensions: [".bsq"] },
32
+ { slug: "bqn", extensions: [".bqn"] },
30
33
  { slug: "c", extensions: [".c", ".h"] },
31
34
  { slug: "cairo", extensions: [".cairo"] },
32
35
  { slug: "carbon", extensions: [".carbon"] },
33
36
  { slug: "chapel", extensions: [".chpl"] },
34
37
  { slug: "circom", extensions: [".circom"] },
35
- { slug: "cmake", extensions: ["CMakeLists.txt", ".cmake"] },
36
38
  { slug: "clojure", extensions: [".clj", ".cljs", ".cljc", ".edn", ".bb"] },
39
+ { slug: "cmake", extensions: ["CMakeLists.txt", ".cmake"] },
40
+ { slug: "cobol", extensions: [".cob", ".cbl", ".cobol", ".cpy"] },
37
41
  { slug: "coffeescript", extensions: [".coffee", ".litcoffee", ".cson"] },
38
42
  { slug: "coldfusion", extensions: [".cfm", ".cfml", ".cfc"] },
39
- { slug: "cobol", extensions: [".cob", ".cbl", ".cobol", ".cpy"] },
40
43
  { slug: "coq", extensions: [".v"] },
41
44
  { slug: "cpp", extensions: [".cpp", ".cc", ".cxx", ".h", ".hpp", ".hh", ".hxx"] },
42
- { slug: "cypher", extensions: [".cypher", ".cyp"] },
43
- { slug: "csharp", extensions: [".cs", ".csx"] },
44
45
  { slug: "crystal", extensions: [".cr"] },
46
+ { slug: "csharp", extensions: [".cs", ".csx"] },
45
47
  { slug: "css", extensions: [".css"] },
46
- { slug: "cue", extensions: [".cue"] },
47
48
  { slug: "cuda", extensions: [".cu", ".cuh"] },
49
+ { slug: "cue", extensions: [".cue"] },
50
+ { slug: "curry", extensions: [".curry", ".lcurry"] },
51
+ { slug: "cypher", extensions: [".cypher", ".cyp"] },
48
52
  { slug: "cython", extensions: [".pyx", ".pxd", ".pxi"] },
49
53
  { slug: "d", extensions: [".d", ".di"] },
50
54
  { slug: "dafny", extensions: [".dfy"] },
@@ -52,9 +56,9 @@ var languageIndex = [
52
56
  { slug: "dhall", extensions: [".dhall"] },
53
57
  { slug: "dita", extensions: [".dita", ".ditamap", ".ditaval"] },
54
58
  { slug: "dockerfile", extensions: ["Dockerfile", ".dockerfile"] },
55
- { slug: "ejs", extensions: [".ejs"] },
56
- { slug: "eiffel", extensions: [".e"] },
57
59
  { slug: "earthly", extensions: ["Earthfile"] },
60
+ { slug: "eiffel", extensions: [".e"] },
61
+ { slug: "ejs", extensions: [".ejs"] },
58
62
  { slug: "elixir", extensions: [".ex", ".exs", ".eex", ".leex", ".heex"] },
59
63
  { slug: "elm", extensions: [".elm"] },
60
64
  { slug: "erb", extensions: [".erb", ".rhtml", ".html.erb"] },
@@ -62,56 +66,59 @@ var languageIndex = [
62
66
  slug: "erlang",
63
67
  extensions: [".erl", ".hrl", ".app.src", ".escript", ".xrl", ".yrl", "rebar.config"]
64
68
  },
65
- { slug: "fish", extensions: [".fish"] },
69
+ { slug: "factor", extensions: [".factor"] },
66
70
  { slug: "fennel", extensions: [".fnl"] },
71
+ { slug: "fish", extensions: [".fish"] },
67
72
  { slug: "flux", extensions: [".flux"] },
68
- { slug: "freemarker", extensions: [".ftl", ".ftlh", ".ftlx"] },
73
+ { slug: "forth", extensions: [".fs", ".fth", ".forth", ".4th"] },
69
74
  {
70
75
  slug: "fortran",
71
76
  extensions: [".f", ".for", ".ftn", ".f90", ".f95", ".f03", ".f08", ".f18", ".f23"]
72
77
  },
73
- { slug: "forth", extensions: [".fs", ".fth", ".forth", ".4th"] },
78
+ { slug: "freemarker", extensions: [".ftl", ".ftlh", ".ftlx"] },
74
79
  { slug: "fsharp", extensions: [".fs", ".fsi", ".fsx", ".fsscript"] },
75
80
  { slug: "fstar", extensions: [".fst", ".fsti"] },
76
81
  { slug: "gdscript", extensions: [".gd"] },
77
82
  { slug: "git", extensions: [".git", ".gitignore", ".gitattributes", ".gitmodules", ".gitkeep"] },
78
83
  { slug: "gleam", extensions: [".gleam"] },
79
- { slug: "go", extensions: [".go"] },
80
- { slug: "grain", extensions: [".gr"] },
81
- { slug: "gradle", extensions: [".gradle", ".gradle.kts"] },
82
84
  {
83
85
  slug: "glsl",
84
86
  extensions: [".glsl", ".vert", ".frag", ".geom", ".tesc", ".tese", ".comp", ".vs", ".fs"]
85
87
  },
88
+ { slug: "go", extensions: [".go"] },
89
+ { slug: "gradle", extensions: [".gradle", ".gradle.kts"] },
90
+ { slug: "grain", extensions: [".gr"] },
86
91
  { slug: "graphql", extensions: [".graphql", ".gql", ".graphqls"] },
87
92
  { slug: "groovy", extensions: [".groovy", ".gvy", ".gy", ".gsh"] },
88
- { slug: "handlebars", extensions: [".hbs", ".handlebars"] },
89
93
  { slug: "hack", extensions: [".hack", ".hh", ".hhi"] },
90
94
  { slug: "haml", extensions: [".haml"] },
95
+ { slug: "handlebars", extensions: [".hbs", ".handlebars"] },
91
96
  { slug: "hare", extensions: [".ha"] },
92
- { slug: "hocon", extensions: [".hocon"] },
93
97
  { slug: "haskell", extensions: [".hs", ".lhs", ".hsc", ".hs-boot", ".hsig", ".cabal"] },
94
98
  { slug: "haxe", extensions: [".hx", ".hxml"] },
95
99
  { slug: "hcl", extensions: [".hcl", ".tf", ".tfvars", ".pkr.hcl", ".nomad"] },
96
100
  { slug: "hlsl", extensions: [".hlsl", ".fx", ".fxh", ".hlsli"] },
101
+ { slug: "hocon", extensions: [".hocon"] },
97
102
  { slug: "html", extensions: [".html", ".htm"] },
98
103
  { slug: "hy", extensions: [".hy"] },
99
104
  { slug: "idris", extensions: [".idr", ".lidr", ".ipkg"] },
100
105
  { slug: "ini", extensions: [".ini"] },
106
+ { slug: "io", extensions: [".io"] },
101
107
  { slug: "isabelle", extensions: [".thy"] },
108
+ { slug: "janet", extensions: [".janet", ".jdn"] },
102
109
  { slug: "java", extensions: [".java"] },
103
110
  { slug: "javascript", extensions: [".js", ".mjs", ".cjs", ".jsx"] },
104
- { slug: "janet", extensions: [".janet", ".jdn"] },
105
111
  { slug: "jinja", extensions: [".jinja", ".jinja2", ".j2"] },
106
112
  { slug: "json", extensions: [".json"] },
107
113
  { slug: "json5", extensions: [".json5"] },
108
114
  { slug: "jsonc", extensions: [".jsonc", ".code-workspace"] },
109
115
  { slug: "jsonnet", extensions: [".jsonnet", ".libsonnet"] },
110
- { slug: "jupyter-notebook", extensions: [".ipynb"] },
111
116
  { slug: "julia", extensions: [".jl"] },
117
+ { slug: "jupyter-notebook", extensions: [".ipynb"] },
112
118
  { slug: "just", extensions: ["justfile", "Justfile", ".just"] },
113
119
  { slug: "kcl", extensions: [".k", ".kcl"] },
114
120
  { slug: "kdl", extensions: [".kdl"] },
121
+ { slug: "koka", extensions: [".kk"] },
115
122
  { slug: "kotlin", extensions: [".kt", ".kts"] },
116
123
  { slug: "lean", extensions: [".lean"] },
117
124
  { slug: "less", extensions: [".less"] },
@@ -120,36 +127,35 @@ var languageIndex = [
120
127
  { slug: "llvm-ir", extensions: [".ll", ".bc"] },
121
128
  { slug: "lua", extensions: [".lua", ".rockspec"] },
122
129
  { slug: "luau", extensions: [".luau"] },
123
- { slug: "mako", extensions: [".mako", ".mao"] },
124
130
  { slug: "makefile", extensions: ["Makefile", "makefile", "GNUmakefile", ".mk", ".mak"] },
131
+ { slug: "mako", extensions: [".mako", ".mao"] },
132
+ { slug: "markdown", extensions: [".md", ".markdown", ".mdown", ".mkd"] },
125
133
  { slug: "mathematica", extensions: [".wl", ".wls", ".nb"] },
126
134
  { slug: "matlab", extensions: [".m", ".mlx"] },
127
- { slug: "markdown", extensions: [".md", ".markdown", ".mdown", ".mkd"] },
128
135
  { slug: "mdx", extensions: [".mdx"] },
129
136
  { slug: "mermaid", extensions: [".mmd", ".mermaid"] },
130
137
  { slug: "meson", extensions: ["meson.build", "meson_options.txt", "meson.options", ".wrap"] },
131
138
  { slug: "metal", extensions: [".metal"] },
132
- { slug: "mustache", extensions: [".mustache", ".mst"] },
133
- { slug: "move", extensions: [".move"] },
134
139
  { slug: "mojo", extensions: [".mojo"] },
135
140
  { slug: "moonbit", extensions: [".mbt"] },
136
- { slug: "svn", extensions: [".svn", "svnserve.conf"] },
141
+ { slug: "move", extensions: [".move"] },
142
+ { slug: "mustache", extensions: [".mustache", ".mst"] },
137
143
  { slug: "nginx", extensions: ["nginx.conf", ".nginx", ".conf"] },
138
144
  { slug: "nickel", extensions: [".ncl"] },
139
- { slug: "nunjucks", extensions: [".njk", ".nunjucks"] },
140
- { slug: "nushell", extensions: [".nu"] },
141
145
  { slug: "nim", extensions: [".nim", ".nims", ".nimble"] },
142
146
  { slug: "nix", extensions: [".nix"] },
143
- { slug: "ocaml", extensions: [".ml", ".mli", ".mll", ".mly", ".mlt", ".eliom", ".eliomi"] },
147
+ { slug: "nunjucks", extensions: [".njk", ".nunjucks"] },
148
+ { slug: "nushell", extensions: [".nu"] },
144
149
  { slug: "objective-c", extensions: [".m", ".mm"] },
150
+ { slug: "ocaml", extensions: [".ml", ".mli", ".mll", ".mly", ".mlt", ".eliom", ".eliomi"] },
145
151
  { slug: "odin", extensions: [".odin"] },
146
- { slug: "opencl", extensions: [".cl", ".clh"] },
147
152
  { slug: "openapi", extensions: [".openapi.json", ".openapi.yaml", ".openapi.yml"] },
153
+ { slug: "opencl", extensions: [".cl", ".clh"] },
148
154
  { slug: "pascal", extensions: [".pas", ".pp", ".inc", ".lpr", ".dpr", ".dfm"] },
149
- { slug: "pkl", extensions: [".pkl"] },
150
155
  { slug: "perl", extensions: [".pl", ".pm", ".pod", ".t", ".psgi"] },
151
156
  { slug: "php", extensions: [".php", ".phtml", ".php3", ".php4", ".php5", ".phps"] },
152
157
  { slug: "pine-script", extensions: [".pine"] },
158
+ { slug: "pkl", extensions: [".pkl"] },
153
159
  { slug: "plantuml", extensions: [".puml", ".plantuml", ".iuml"] },
154
160
  { slug: "plsql", extensions: [".pls", ".pks", ".pkb", ".plsql"] },
155
161
  { slug: "pony", extensions: [".pony"] },
@@ -164,8 +170,8 @@ var languageIndex = [
164
170
  { slug: "qml", extensions: [".qml", ".qmltypes", ".qmlproject"] },
165
171
  { slug: "qsharp", extensions: [".qs"] },
166
172
  { slug: "r", extensions: [".r", ".R", ".rmd", ".Rmd", ".qmd", ".Rprofile"] },
167
- { slug: "raku", extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"] },
168
173
  { slug: "racket", extensions: [".rkt", ".rktd", ".rktl", ".scrbl"] },
174
+ { slug: "raku", extensions: [".raku", ".rakumod", ".rakudoc", ".rakutest", ".p6", ".pm6"] },
169
175
  { slug: "razor", extensions: [".cshtml", ".razor"] },
170
176
  { slug: "reasonml", extensions: [".re", ".rei"] },
171
177
  { slug: "rego", extensions: [".rego"] },
@@ -178,8 +184,8 @@ var languageIndex = [
178
184
  { slug: "rust", extensions: [".rs"] },
179
185
  { slug: "sas", extensions: [".sas"] },
180
186
  { slug: "scala", extensions: [".scala", ".sc"] },
181
- { slug: "scss", extensions: [".scss", ".sass"] },
182
187
  { slug: "scheme", extensions: [".scm", ".ss", ".sld", ".sls"] },
188
+ { slug: "scss", extensions: [".scss", ".sass"] },
183
189
  { slug: "smalltalk", extensions: [".st"] },
184
190
  { slug: "smarty", extensions: [".tpl", ".smarty"] },
185
191
  { slug: "solidity", extensions: [".sol"] },
@@ -189,8 +195,9 @@ var languageIndex = [
189
195
  { slug: "starlark", extensions: [".bzl", ".star", ".sky"] },
190
196
  { slug: "stata", extensions: [".do", ".ado", ".mata"] },
191
197
  { slug: "stylus", extensions: [".styl"] },
192
- { slug: "svg", extensions: [".svg", ".svgz"] },
193
198
  { slug: "svelte", extensions: [".svelte"] },
199
+ { slug: "svg", extensions: [".svg", ".svgz"] },
200
+ { slug: "svn", extensions: [".svn", "svnserve.conf"] },
194
201
  { slug: "swift", extensions: [".swift"] },
195
202
  { slug: "tcl", extensions: [".tcl", ".tm", ".test"] },
196
203
  { slug: "tex", extensions: [".tex", ".sty", ".cls", ".dtx", ".ins", ".ltx"] },
@@ -242,9 +249,13 @@ var detectMatchingEntries = (entries, filename) => {
242
249
  if (!basename) {
243
250
  return [];
244
251
  }
245
- return entries.filter(
246
- (entry) => entry.extensions.some((extension) => matchesExtension(basename, extension))
247
- );
252
+ return entries.map((entry, index) => ({
253
+ entry,
254
+ index,
255
+ matchLength: Math.max(
256
+ ...entry.extensions.filter((extension) => matchesExtension(basename, extension)).map((extension) => extension.length)
257
+ )
258
+ })).filter(({ matchLength }) => Number.isFinite(matchLength)).sort((first, second) => second.matchLength - first.matchLength || first.index - second.index).map(({ entry }) => entry);
248
259
  };
249
260
 
250
261
  // src/detect-slugs.ts