1- // Keep all imports at the top
2- import cLanguage from 'shiki/langs/c.mjs' ;
3- import coffeeScriptLanguage from 'shiki/langs/coffeescript.mjs' ;
4- import cPlusPlusLanguage from 'shiki/langs/cpp.mjs' ;
5- import diffLanguage from 'shiki/langs/diff.mjs' ;
6- import dockerLanguage from 'shiki/langs/docker.mjs' ;
7- import httpLanguage from 'shiki/langs/http.mjs' ;
8- import iniLanguage from 'shiki/langs/ini.mjs' ;
9- import javaScriptLanguage from 'shiki/langs/javascript.mjs' ;
10- import jsonLanguage from 'shiki/langs/json.mjs' ;
11- import powershellLanguage from 'shiki/langs/powershell.mjs' ;
12- import shellScriptLanguage from 'shiki/langs/shellscript.mjs' ;
13- import shellSessionLanguage from 'shiki/langs/shellsession.mjs' ;
14- import typeScriptLanguage from 'shiki/langs/typescript.mjs' ;
15- import yamlLanguage from 'shiki/langs/yaml.mjs' ;
1+ import { bundledLanguagesInfo } from 'shiki/langs' ;
162
173import createHighlighter , { getLanguageByName } from '#rs/highlighter.mjs' ;
184
@@ -37,7 +23,10 @@ async function getEngine({ wasm = false }) {
3723
3824 const { createJavaScriptRegexEngine } =
3925 await import ( '@shikijs/engine-javascript' ) ;
40- return createJavaScriptRegexEngine ( ) ;
26+
27+ // Not every bundled grammar compiles under the JavaScript engine,
28+ // so skip the patterns it cannot handle instead of throwing.
29+ return createJavaScriptRegexEngine ( { forgiving : true } ) ;
4130}
4231
4332/**
@@ -55,24 +44,13 @@ async function getTransformers({ twoslash = false, twoslashOptions }) {
5544 return transformers ;
5645}
5746
47+ // Every language, since this is meant for SSR-ed highlighting :-)
5848export const LANGS = [
59- ...cLanguage ,
60- ...coffeeScriptLanguage ,
61- ...cPlusPlusLanguage ,
62- ...diffLanguage ,
63- ...dockerLanguage ,
64- ...httpLanguage ,
65- ...iniLanguage ,
66- {
67- ...javaScriptLanguage [ 0 ] ,
68- aliases : javaScriptLanguage [ 0 ] . aliases . concat ( 'cjs' , 'mjs' ) ,
69- } ,
70- ...jsonLanguage ,
71- ...powershellLanguage ,
72- ...shellScriptLanguage ,
73- ...shellSessionLanguage ,
74- ...typeScriptLanguage ,
75- ...yamlLanguage ,
49+ ...new Set (
50+ (
51+ await Promise . all ( bundledLanguagesInfo . map ( language => language . import ( ) ) )
52+ ) . flatMap ( language => language . default )
53+ ) ,
7654] ;
7755
7856export const getLanguageDisplayName = language =>
0 commit comments