From 1f417fb4e62268fde81392182a9012873df262fc Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Tue, 4 Mar 2025 20:29:21 +0800 Subject: [PATCH] feat(shiki): improve Shiki highlighter initialization with dynamic theme and language support --- src/lib/shiki.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/lib/shiki.ts b/src/lib/shiki.ts index 81f1d47..cd6795c 100644 --- a/src/lib/shiki.ts +++ b/src/lib/shiki.ts @@ -1,12 +1,23 @@ +import { MonacoTheme } from "@/types/monaco-theme"; import { createHighlighter, Highlighter } from "shiki"; +import { EditorLanguage } from "@/types/editor-language"; +// Get all values from the ProgrammingLanguage and Theme enums +const themes = Object.values(MonacoTheme); +const languages = Object.values(EditorLanguage); + +// Use lazy initialization for highlighter let highlighter: Highlighter; async function initializeHighlighter() { - highlighter = await createHighlighter({ - themes: ["github-light-default", "github-dark-default"], - langs: ["c"], - }); + try { + highlighter = await createHighlighter({ + themes: themes, // Use all values from the Theme enum + langs: languages, // Use all values from the ProgrammingLanguage enum + }); + } catch (error) { + console.error("Error initializing highlighter:", error); + } } initializeHighlighter();