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