| @@ -1,79 +1,68 @@ | ||
| 1 | -import type { Lang as LangShiki } from 'shiki'; | |
| 1 | +import { Lang as LangShiki } from 'shiki'; | |
| 2 | 2 | import defaultLanguages from '../defaultLanguages.json'; |
| 3 | -import type { Lang } from '../types'; | |
| 3 | +import { Lang } from '../types'; | |
| 4 | 4 | |
| 5 | 5 | export const codeAliases = { |
| 6 | - 'actionscript-3': ['as3'], | |
| 7 | - bat: ['batch'], | |
| 8 | - berry: ['be'], | |
| 9 | - cadence: ['cdc'], | |
| 10 | - clojure: ['clj'], | |
| 11 | - codeql: ['ql'], | |
| 12 | - cpp: ['arduino'], | |
| 13 | - csharp: ['c#', 'cs'], | |
| 14 | - cypher: ['cql'], | |
| 15 | - docker: ['dockerfile'], | |
| 16 | - erlang: ['erl'], | |
| 17 | - fsharp: ['f#', 'fs'], | |
| 18 | - gjs: ['glimmer-js'], | |
| 19 | - gts: ['glimmer-ts'], | |
| 20 | - haskell: ['hs'], | |
| 21 | - handlebars: ['hbs'], | |
| 22 | - ini: ['properties'], | |
| 23 | - java: ['javafx'], | |
| 24 | - javascript: ['jscript', 'js'], | |
| 25 | - jssm: ['fsl'], | |
| 26 | - kusto: ['kql'], | |
| 27 | - make: ['makefile'], | |
| 28 | - markdown: ['md'], | |
| 29 | - matlab: ['matlabkey'], | |
| 30 | - narrat: ['nar'], | |
| 31 | - nextflow: ['nf'], | |
| 32 | - 'objective-c': ['objc'], | |
| 33 | - pascal: ['delphi'], | |
| 34 | - powershell: ['ps', 'ps1'], | |
| 35 | - pug: ['jade'], | |
| 36 | - python: ['py'], | |
| 37 | - raku: ['perl6'], | |
| 38 | - ruby: ['rb'], | |
| 39 | - rust: ['rs'], | |
| 40 | - shaderlab: ['shader'], | |
| 41 | - shellscript: ['shell', 'sh', 'git-commit', 'git-rebase'], | |
| 42 | - sellsession: ['console'], | |
| 43 | - stylus: ['styl'], | |
| 44 | - typescript: ['ts'], | |
| 45 | - vb: ['cmd'], | |
| 46 | - viml: ['vim', 'vimscript'], | |
| 47 | - vyper: ['vy'], | |
| 48 | - wenyan: ['文言'], | |
| 49 | - xml: ['coldfusion'], | |
| 50 | - yaml: ['yml'], | |
| 6 | + 'actionscript-3': ['as3'], | |
| 7 | + bat: ['batch'], | |
| 8 | + berry: ['be'], | |
| 9 | + cadence: ['cdc'], | |
| 10 | + clojure: ['clj'], | |
| 11 | + codeql: ['ql'], | |
| 12 | + cpp: ['arduino'], | |
| 13 | + csharp: ['c#', 'cs'], | |
| 14 | + erlang: ['erl'], | |
| 15 | + fsharp: ['f#'], | |
| 16 | + haskell: ['hs'], | |
| 17 | + handlebars: ['hbs'], | |
| 18 | + 'html-ruby-erb': ['erb'], | |
| 19 | + java: ['javafx'], | |
| 20 | + javascript: ['jscript', 'js'], | |
| 21 | + jssm: ['fsl'], | |
| 22 | + make: ['makefile'], | |
| 23 | + markdown: ['md'], | |
| 24 | + matlab: ['matlabkey'], | |
| 25 | + 'objective-c': ['objc'], | |
| 26 | + pascal: ['delphi'], | |
| 27 | + powershell: ['ps', 'ps1'], | |
| 28 | + pug: ['jade'], | |
| 29 | + python: ['py'], | |
| 30 | + raku: ['perl6'], | |
| 31 | + ruby: ['rb'], | |
| 32 | + rust: ['rs'], | |
| 33 | + shaderlab: ['shader'], | |
| 34 | + shellscript: ['shell', 'bash', 'sh', 'zsh'], | |
| 35 | + stylus: ['styl'], | |
| 36 | + typescript: ['ts'], | |
| 37 | + vb: ['cmd'], | |
| 38 | + viml: ['vim', 'vimscript'], | |
| 39 | + wenyan: ['文言'], | |
| 40 | + xml: ['coldfusion'], | |
| 41 | + yaml: ['yml'], | |
| 51 | 42 | }; |
| 52 | 43 | |
| 53 | 44 | export const getMainAlias = ( |
| 54 | - languageAltName: string | undefined, | |
| 45 | + languageAltName: string | undefined, | |
| 55 | 46 | ): string | undefined => { |
| 56 | - if (!languageAltName) return; | |
| 57 | - return Object.keys(codeAliases).find((key) => | |
| 58 | - codeAliases[key as keyof typeof codeAliases].includes(languageAltName), | |
| 59 | - ); | |
| 47 | + if (!languageAltName) return; | |
| 48 | + return Object.keys(codeAliases).find((key) => | |
| 49 | + codeAliases[key as keyof typeof codeAliases].includes(languageAltName), | |
| 50 | + ); | |
| 60 | 51 | }; |
| 61 | 52 | |
| 62 | 53 | export const removeAliases = ( |
| 63 | - langs: typeof defaultLanguages, | |
| 54 | + langs: typeof defaultLanguages, | |
| 64 | 55 | ): Partial<typeof defaultLanguages> => { |
| 65 | - const aliasesToRemove = Object.values(codeAliases).flat(); | |
| 66 | - return Object.keys(langs).reduce( | |
| 67 | - (acc, key) => { | |
| 68 | - if (!aliasesToRemove.includes(key)) { | |
| 69 | - // @ts-expect-error | |
| 70 | - acc[key as Lang] = langs[key as Lang]; | |
| 71 | - } | |
| 72 | - return acc; | |
| 73 | - }, | |
| 74 | - {} as Partial<typeof defaultLanguages>, | |
| 75 | - ); | |
| 56 | + const aliasesToRemove = Object.values(codeAliases).flat(); | |
| 57 | + return Object.keys(langs).reduce((acc, key) => { | |
| 58 | + if (!aliasesToRemove.includes(key)) { | |
| 59 | + // eslint-disable-next-line @typescript-eslint/ban-ts-comment | |
| 60 | + // @ts-ignore | |
| 61 | + acc[key as Lang] = langs[key as Lang]; | |
| 62 | + } | |
| 63 | + return acc; | |
| 64 | + }, {} as Partial<typeof defaultLanguages>); | |
| 76 | 65 | }; |
| 77 | 66 | |
| 78 | 67 | export const languages = removeAliases(defaultLanguages); |
| 79 | 68 | |
| @@ -78,7 +67,7 @@ | ||
| 78 | 67 | export const languages = removeAliases(defaultLanguages); |
| 79 | 68 | |
| 80 | 69 | /** Get the language shown in the editor, which could differ from the front */ |
| 81 | 70 | export const getEditorLanguage = (language: string): LangShiki => { |
| 82 | - if (language === 'ansi') return 'shellscript'; | |
| 83 | - return language as LangShiki; | |
| 71 | + if (language === 'ansi') return 'shellscript'; | |
| 72 | + return language as LangShiki; | |
| 84 | 73 | }; |