Skip to content

Commit f5e55b4

Browse files
committed
Improve file type selector
1 parent 2c50872 commit f5e55b4

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

web/src/lib/components/files/FileTypeSelect.svelte

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,23 @@
11
<script lang="ts" module>
2-
import { type BundledLanguage, bundledLanguages, type SpecialLanguage } from "shiki";
2+
import { type BundledLanguage, bundledLanguagesInfo, type SpecialLanguage } from "shiki";
33
4-
const languageKeys = [...Object.keys(bundledLanguages), "text", "ansi", "plaintext", "txt"] as BundledLanguage | SpecialLanguage[];
4+
type LanguageOption = {
5+
id: string;
6+
name: string;
7+
aliases: string[];
8+
};
9+
10+
const languages: LanguageOption[] = [
11+
{ id: "plaintext", name: "Plain Text", aliases: ["txt"] },
12+
...bundledLanguagesInfo.map((info) => {
13+
return {
14+
id: info.id,
15+
name: info.name,
16+
aliases: info.aliases || [],
17+
};
18+
}),
19+
];
20+
languages.sort((a, b) => a.name.localeCompare(b.name));
521
</script>
622

723
<script lang="ts">
@@ -44,12 +60,13 @@
4460
</Select.Group>
4561
{/if}
4662
<Select.Group class="flex grow flex-col gap-1 overflow-y-auto">
47-
{#each languageKeys as langKey (langKey)}
63+
{#each languages as lang (lang.id)}
4864
<Select.Item
49-
value={langKey}
50-
class="cursor-default rounded-sm px-2 py-1 text-sm data-highlighted:bg-neutral-3 data-selected:bg-primary data-selected:text-white"
65+
value={lang.id}
66+
class="group flex cursor-default flex-col rounded-sm px-2 py-1 text-sm data-highlighted:bg-neutral-3 data-selected:bg-primary data-selected:text-white"
5167
>
52-
{langKey}
68+
{lang.name}
69+
<span class="text-sm font-light text-em-med group-data-selected:text-white/80">{lang.aliases.join(", ")}</span>
5370
</Select.Item>
5471
{/each}
5572
</Select.Group>

0 commit comments

Comments
 (0)