From 7ecc17e8a65097ac6a8bb08e4d0979a5828aeef5 Mon Sep 17 00:00:00 2001 From: ngc2207 Date: Wed, 8 Jan 2025 15:28:05 +0800 Subject: [PATCH] fix: update highlighter initialization to use async/await for improved performance --- code-editor/src/App.tsx | 8 ++++---- code-editor/src/lib/shiki.ts | 12 ++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/code-editor/src/App.tsx b/code-editor/src/App.tsx index 9c42e08..242ec69 100644 --- a/code-editor/src/App.tsx +++ b/code-editor/src/App.tsx @@ -55,8 +55,8 @@ function App() { defaultLanguage={file.language} defaultValue={file.value} options={{ automaticLayout: true, minimap: { enabled: false } }} - beforeMount={(monaco: Monaco) => { - shikiToMonaco(highlighter, monaco); + beforeMount={async (monaco: Monaco) => { + shikiToMonaco(await highlighter, monaco); }} /> @@ -67,8 +67,8 @@ function App() { original={file.value} modified={file.value} options={{ automaticLayout: true, minimap: { enabled: false } }} - beforeMount={(monaco: Monaco) => { - shikiToMonaco(highlighter, monaco); + beforeMount={async (monaco: Monaco) => { + shikiToMonaco(await highlighter, monaco); }} /> diff --git a/code-editor/src/lib/shiki.ts b/code-editor/src/lib/shiki.ts index c57cc31..305b82d 100644 --- a/code-editor/src/lib/shiki.ts +++ b/code-editor/src/lib/shiki.ts @@ -10,7 +10,11 @@ const SUPPORTED_EDITOR_LANGUAGES_ID = Object.values( SUPPORTED_EDITOR_LANGUAGES_CONFIG ).map((language: { id: string }) => language.id); -export const highlighter = await createHighlighter({ - themes: SUPPORTED_EDITOR_THEMES_ID, - langs: SUPPORTED_EDITOR_LANGUAGES_ID, -}); +async function initHighlighter() { + return await createHighlighter({ + themes: SUPPORTED_EDITOR_THEMES_ID, + langs: SUPPORTED_EDITOR_LANGUAGES_ID, + }); +} + +export const highlighter = initHighlighter();