diff --git a/src/plugins/shikiCodeblocks.desktop/components/Code.tsx b/src/plugins/shikiCodeblocks.desktop/components/Code.tsx index 5c924f8e9..a4667d490 100644 --- a/src/plugins/shikiCodeblocks.desktop/components/Code.tsx +++ b/src/plugins/shikiCodeblocks.desktop/components/Code.tsx @@ -16,9 +16,8 @@ * along with this program. If not, see . */ -import { cl } from "@plugins/shikiCodeblocks.desktop/utils/misc"; +import { cl, hljs } from "@plugins/shikiCodeblocks.desktop/utils/misc"; import type { IThemedToken } from "@vap/shiki"; -import { hljs } from "@webpack/common"; import { JSX } from "react"; import { ThemeBase } from "./Highlighter"; diff --git a/src/plugins/shikiCodeblocks.desktop/utils/misc.ts b/src/plugins/shikiCodeblocks.desktop/utils/misc.ts index 1b2fd27c5..e499e98b9 100644 --- a/src/plugins/shikiCodeblocks.desktop/utils/misc.ts +++ b/src/plugins/shikiCodeblocks.desktop/utils/misc.ts @@ -20,10 +20,15 @@ import { resolveLang } from "@plugins/shikiCodeblocks.desktop/api/languages"; import { HighlighterProps } from "@plugins/shikiCodeblocks.desktop/components/Highlighter"; import { HljsSetting } from "@plugins/shikiCodeblocks.desktop/types"; import { classNameFactory } from "@utils/css"; -import { hljs } from "@webpack/common"; +import { DefaultExtractAndLoadChunksRegex, extractAndLoadChunks, findByPropsLazy, proxyLazyWebpack } from "@webpack"; export const cl = classNameFactory("vc-shiki-"); +export const hljs: typeof import("highlight.js").default = proxyLazyWebpack(() => { + extractAndLoadChunks(["codeBlock:{react("], new RegExp(`*hljs*.+?${DefaultExtractAndLoadChunksRegex.source}`)); + return findByPropsLazy("highlight", "registerLanguage"); +}); + export const shouldUseHljs = ({ lang, tryHljs, diff --git a/src/webpack/common/utils.ts b/src/webpack/common/utils.ts index b9f2ffca9..078bb51d5 100644 --- a/src/webpack/common/utils.ts +++ b/src/webpack/common/utils.ts @@ -46,8 +46,6 @@ export const Constants: t.Constants = mapMangledModuleLazy('ME:"/users/@me"', { export const RestAPI: t.RestAPI = findLazy(m => typeof m === "object" && m.del && m.put); export const moment: typeof import("moment") = findByPropsLazy("parseTwoDigitYear"); -export const hljs: typeof import("highlight.js").default = findLazy(m => m.default?.highlight && m.default?.registerLanguage)?.default; - export const useDrag = findByCodeLazy("useDrag::spec.begin was deprecated"); // you cant make a better finder i love that they remove display names sm export const useDrop = findByCodeLazy(".disconnectDropTarget()", ".dropTargetOptions=");