Skip to content

Commit 0e810b9

Browse files
committed
fix: lazy load shiki langauge and theme bundles
1 parent fc4a0cb commit 0e810b9

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

playgrounds/app/src/components/Editor.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import {
4444
Setter,
4545
Show,
4646
} from 'solid-js'
47+
import type { HighlighterGeneric } from 'shiki'
4748
import { createHighlighter, bundledThemes, bundledLanguages } from 'shiki'
4849
import { ShikiMagicMove } from 'shiki-magic-move/solid'
4950
import { AnimationFrameConfig, SnippetSettings } from '~/types'
@@ -106,14 +107,15 @@ export default function Editor(props: EditorProps) {
106107
const [isShowingGifDialog, setIsShowingGifDialog] = createSignal(false)
107108
const [title, setTitle] = createSignal(props.snippetSettings.title)
108109
const [isSaving, setIsSaving] = createSignal(false)
110+
const [highlighter, setHighlighter] = createSignal<HighlighterGeneric<any, any> | undefined>()
109111

110-
const [highlighter] = createResource(async () => {
111-
const newHighlighter = await createHighlighter({
112-
themes: Object.keys(bundledThemes),
113-
langs: Object.keys(bundledLanguages),
112+
createEffect(() => {
113+
createHighlighter({
114+
themes: [props.snippetSettings.theme],
115+
langs: [props.snippetSettings.language],
116+
}).then(newHighlighter => {
117+
setHighlighter(newHighlighter)
114118
})
115-
116-
return newHighlighter
117119
})
118120

119121
createEffect(() => {

0 commit comments

Comments
 (0)