diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2024-02-02 15:05:18 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-02 15:05:18 +0900 |
| commit | 9e1145df813a49bcf603f5e1830018eac8c4864d (patch) | |
| tree | 21c23057a038ce5601bc53fb18c3da724bfb44fd /packages/frontend/src/scripts/code-highlighter.ts | |
| parent | refactor(frontend): `os.popup()`の`props`の型チェックを有効化 (#13... (diff) | |
| download | sharkey-9e1145df813a49bcf603f5e1830018eac8c4864d.tar.gz sharkey-9e1145df813a49bcf603f5e1830018eac8c4864d.tar.bz2 sharkey-9e1145df813a49bcf603f5e1830018eac8c4864d.zip | |
enhance(frontend): shiki v1に移行 (#13138)
* enhance(frontend): shiki v1に移行
* optimize chunks, エラーを握りつぶす
* wasmを分離
* バンドルサイズの警告の最小値を650kBに引き上げ
* optimize
Diffstat (limited to 'packages/frontend/src/scripts/code-highlighter.ts')
| -rw-r--r-- | packages/frontend/src/scripts/code-highlighter.ts | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/packages/frontend/src/scripts/code-highlighter.ts b/packages/frontend/src/scripts/code-highlighter.ts index 957669122e..bc05ec94d5 100644 --- a/packages/frontend/src/scripts/code-highlighter.ts +++ b/packages/frontend/src/scripts/code-highlighter.ts @@ -1,7 +1,6 @@ -import { setWasm, setCDN, Highlighter, getHighlighter as _getHighlighter } from 'shiki'; - -setWasm('/assets/shiki/dist/onig.wasm'); -setCDN('/assets/shiki/'); +import { getHighlighterCore, loadWasm } from 'shiki/core'; +import darkPlus from 'shiki/themes/dark-plus.mjs'; +import type { Highlighter, LanguageRegistration } from 'shiki'; let _highlighter: Highlighter | null = null; @@ -13,16 +12,19 @@ export async function getHighlighter(): Promise<Highlighter> { } export async function initHighlighter() { - const highlighter = await _getHighlighter({ - theme: 'dark-plus', - langs: ['js'], - }); + const aiScriptGrammar = await import('aiscript-vscode/aiscript/syntaxes/aiscript.tmLanguage.json'); + + await loadWasm(import('shiki/onig.wasm?init')); - await highlighter.loadLanguage({ - path: 'languages/aiscript.tmLanguage.json', - id: 'aiscript', - scopeName: 'source.aiscript', - aliases: ['is', 'ais'], + const highlighter = await getHighlighterCore({ + themes: [darkPlus], + langs: [ + import('shiki/langs/javascript.mjs'), + { + aliases: ['is', 'ais'], + ...aiScriptGrammar.default, + } as unknown as LanguageRegistration, + ], }); _highlighter = highlighter; |