forks/sorcery
git clone https://git.gae.moe/forks/sorcery
0c80b85
grace-patches
1/** file → grammar classification, shared by highlighting and the per-language file listing */ 2 3import languages from "./languages.json" with { type :"json" }; 4 5const filenames = new Map ( Object . entries ( languages . filenames )); 6const aliases = new Map ( Object . entries ( languages . aliases )); 7 8/** mirrors detect() in src/grammar_manifest.rs: by file name, then by extension */ 9export function detectLanguage ( path :string ) :string | null { 10const name = path . split ( / [/\\] / ). at ( - 1 ) ! . toLowerCase (); 11return filenames . get ( name ) ?? aliases . get ( name ) ?? aliases . get ( name . split ( "." ). at ( - 1 ) ! ) ?? null ; 12} 13 14/** mirrors group() in src/languages.rs; keep them in sync */ 15export const languageGroup = ( grammar :string ) => grammar === "tsx" ?"typescript" :grammar ;