@@ -12,10 +12,10 @@ import {
1212} from "react" ;
1313import {
1414 type BundledLanguage ,
15- bundledLanguages ,
1615 type BundledTheme ,
16+ bundledLanguages ,
1717 createHighlighter ,
18- SpecialLanguage ,
18+ type SpecialLanguage ,
1919} from "shiki" ;
2020import { createJavaScriptRegexEngine } from "shiki/engine/javascript" ;
2121import { ShikiThemeContext } from "../index" ;
@@ -49,13 +49,12 @@ class HighlighterManager {
4949 private readonly loadedLanguages : Set < BundledLanguage > = new Set ( ) ;
5050 private initializationPromise : Promise < void > | null = null ;
5151
52-
5352 private isLanguageSupported ( language : string ) : language is BundledLanguage {
5453 return Object . hasOwn ( bundledLanguages , language ) ;
5554 }
5655
5756 private getFallbackLanguage ( ) : SpecialLanguage {
58- return ' text' ;
57+ return " text" ;
5958 }
6059
6160 private async ensureHighlightersInitialized (
@@ -78,7 +77,8 @@ class HighlighterManager {
7877
7978 // Check if we need to load the language
8079 const isLanguageSupported = this . isLanguageSupported ( language ) ;
81- const needsLanguageLoad = ! this . loadedLanguages . has ( language ) && isLanguageSupported ;
80+ const needsLanguageLoad =
81+ ! this . loadedLanguages . has ( language ) && isLanguageSupported ;
8282
8383 // Create or recreate light highlighter if needed
8484 if ( needsLightRecreation ) {
@@ -100,12 +100,19 @@ class HighlighterManager {
100100 if ( needsDarkRecreation ) {
101101 // If recreating dark highlighter, load all previously loaded languages plus the new one
102102 const langsToLoad = needsLanguageLoad
103- ? [ ...this . loadedLanguages ] . concat ( isLanguageSupported ? [ language ] : [ ] )
103+ ? [ ...this . loadedLanguages ] . concat (
104+ isLanguageSupported ? [ language ] : [ ]
105+ )
104106 : Array . from ( this . loadedLanguages ) ;
105107
106108 this . darkHighlighter = await createHighlighter ( {
107109 themes : [ darkTheme ] ,
108- langs : langsToLoad . length > 0 ? langsToLoad : isLanguageSupported ? [ language ] : [ ] ,
110+ langs :
111+ langsToLoad . length > 0
112+ ? langsToLoad
113+ : isLanguageSupported
114+ ? [ language ]
115+ : [ ] ,
109116 engine : jsEngine ,
110117 } ) ;
111118 this . darkTheme = darkTheme ;
@@ -120,7 +127,6 @@ class HighlighterManager {
120127 }
121128 }
122129
123-
124130 async highlightCode (
125131 code : string ,
126132 language : BundledLanguage ,
@@ -138,12 +144,13 @@ class HighlighterManager {
138144 ) ;
139145 await this . initializationPromise ;
140146 this . initializationPromise = null ;
141-
147+
142148 const [ lightTheme , darkTheme ] = themes ;
143149
144- const lang = this . isLanguageSupported ( language ) ? language : this . getFallbackLanguage ( ) ;
150+ const lang = this . isLanguageSupported ( language )
151+ ? language
152+ : this . getFallbackLanguage ( ) ;
145153
146-
147154 const light = this . lightHighlighter ?. codeToHtml ( code , {
148155 lang,
149156 theme : lightTheme ,
@@ -153,14 +160,14 @@ class HighlighterManager {
153160 lang,
154161 theme : darkTheme ,
155162 } ) ;
156-
157-
163+
158164 const addPreClass = ( html : string ) => {
159- if ( ! preClassName ) return html ;
165+ if ( ! preClassName ) {
166+ return html ;
167+ }
160168 return html . replace ( PRE_TAG_REGEX , `<pre class="${ preClassName } "$1` ) ;
161169 } ;
162170
163-
164171 return [
165172 removePreBackground ( addPreClass ( light ) ) ,
166173 removePreBackground ( addPreClass ( dark ) ) ,
0 commit comments