@openclaw/diffs 2026.9.1-beta.1 → 2026.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/viewer-runtime.js +60 -60
- package/dist/index.js +18 -16
- package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/editor.js +97 -24
- package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +2 -1
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +2 -1
- package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/selection.js +1 -1
- package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.js +6 -3
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.mjs +22 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/package.json +4 -4
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/{engine-compile-CMRQUZTL.d.mts → engine-compile-Bdn9ihA2.d.mts} +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/index.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-oniguruma/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-frappe.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-latte.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-macchiato.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-mocha.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-dragon.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-lotus.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-wave.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/monokai.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/red.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine-dawn.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine-moon.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-dark.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-light.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.mjs +2 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/types/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.d.mts +4 -7
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.mjs +3 -19
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.d.mts +5 -6
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.mjs +7 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/core-CaxrMD1A.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/core.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/index.d.mts +3 -9
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/index.mjs +3 -24
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/actionscript.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/actionscript.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk1.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk1.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk2.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk2.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/as3.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/as3.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chapel.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chapel.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chpl.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chpl.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/justfile.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/justfile.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/nsis.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/nsis.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/org.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/org.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/pwsh.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/pwsh.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/rbs.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/rbs.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ruby-signature.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ruby-signature.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/smithy.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/smithy.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-B38xGbib.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-bundle-full-B4n9xYHw.d.mts +13 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/{langs-bundle-full-4noeO3oH.mjs → langs-bundle-full-xQVO1Cek.mjs} +48 -5
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs.d.mts +2 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/{themes-NeZbxnKu.d.mts → themes-BKdFAJ1v.d.mts} +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/themes.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/types.d.mts +3 -3
- package/node_modules/@pierre/diffs/node_modules/shiki/package.json +10 -10
- package/node_modules/@pierre/diffs/package.json +1 -1
- package/node_modules/typebox/build/format/email.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +19 -1
- package/node_modules/typebox/build/format/json_pointer.d.mts +2 -2
- package/node_modules/typebox/build/format/json_pointer.mjs +2 -2
- package/node_modules/typebox/build/format/json_pointer_uri_fragment.d.mts +2 -2
- package/node_modules/typebox/build/format/json_pointer_uri_fragment.mjs +2 -2
- package/node_modules/typebox/build/format/relative_json_pointer.d.mts +2 -2
- package/node_modules/typebox/build/format/relative_json_pointer.mjs +2 -2
- package/node_modules/typebox/build/system/memory/assign.mjs +2 -1
- package/node_modules/typebox/build/system/memory/create.mjs +3 -4
- package/node_modules/typebox/build/system/memory/discard.mjs +2 -2
- package/node_modules/typebox/build/system/memory/freeze.d.mts +4 -0
- package/node_modules/typebox/build/system/memory/freeze.mjs +6 -0
- package/node_modules/typebox/build/system/memory/update.mjs +3 -2
- package/node_modules/typebox/package.json +1 -1
- package/package.json +6 -6
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/LICENSE +0 -22
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/README.md +0 -7
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c-query.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c-query.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/1c.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/abap.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/abap.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/actionscript-3.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/actionscript-3.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ada.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ada.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/adoc.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/adoc.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-expression.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-expression.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-html.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-html.mjs +0 -16
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-style.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-style.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-template.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-inline-template.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-let-declaration.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-let-declaration.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template-blocks.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template-blocks.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-template.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-ts.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/angular-ts.mjs +0 -18
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apache.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apache.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apex.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apex.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/apl.mjs +0 -16
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/applescript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/applescript.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ara.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ara.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asciidoc.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asciidoc.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asm.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/asm.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/astro.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/astro.mjs +0 -18
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/awk.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/awk.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ballerina.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ballerina.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bash.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bash.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bat.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bat.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/batch.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/batch.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/be.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/be.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/beancount.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/beancount.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/berry.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/berry.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bibtex.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bibtex.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bicep.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bicep.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird2.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bird2.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/blade.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/blade.mjs +0 -20
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bsl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/bsl.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c3.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/c3.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cadence.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cadence.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cairo.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cairo.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cdc.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cdc.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cjs.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cjs.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clarity.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clarity.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clj.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clj.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clojure.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/clojure.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/closure-templates.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/closure-templates.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmake.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmake.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmd.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cmd.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cobol.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cobol.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeowners.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeowners.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/codeql.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffee.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffee.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffeescript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coffeescript.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/common-lisp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/common-lisp.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/console.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/console.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coq.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/coq.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp-macro.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp-macro.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cpp.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cql.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/crystal.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/crystal.mjs +0 -18
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cs.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cs.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csharp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csharp.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/css.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/css.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csv.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/csv.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cts.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cts.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cue.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cue.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cypher.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/cypher.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/d.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/d.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dart.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dart.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dax.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dax.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/desktop.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/desktop.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/diff.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/diff.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/docker.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/docker.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dockerfile.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dockerfile.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dotenv.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dotenv.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dream-maker.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/dream-maker.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/edge.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/edge.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elisp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elisp.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elixir.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elixir.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elm.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/elm.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/emacs-lisp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erb.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erb.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erl.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erlang.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/erlang.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-css.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-css.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-glsl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-glsl.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-html.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-html.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-sql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-sql.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-xml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/es-tag-xml.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f03.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f03.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f08.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f08.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f18.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f18.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f77.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f77.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f90.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f90.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f95.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/f95.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fennel.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fennel.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fish.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fish.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fluent.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fluent.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/for.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/for.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-fixed-form.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-fixed-form.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-free-form.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fortran-free-form.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fs.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fs.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsharp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsharp.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/fsl.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ftl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ftl.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gd.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gd.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdresource.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdresource.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdscript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdscript.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdshader.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gdshader.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/genie.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/genie.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gherkin.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gherkin.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-commit.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-commit.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-rebase.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/git-rebase.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gjs.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gjs.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gleam.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gleam.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-js.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-js.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-ts.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glimmer-ts.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glsl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/glsl.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gn.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gn.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gnuplot.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gnuplot.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/go.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/go.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gql.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/graphql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/graphql.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/groovy.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/groovy.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gts.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/gts.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hack.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hack.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haml.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/handlebars.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/handlebars.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haskell.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haskell.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haxe.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/haxe.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hbs.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hbs.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hcl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hcl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hjson.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hjson.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hlsl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hlsl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hs.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hs.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html-derivative.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html-derivative.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/html.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/http.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/http.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hurl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hurl.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hxml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hxml.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hy.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/hy.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/imba.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/imba.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/index.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/index.mjs +0 -353
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ini.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ini.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jade.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jade.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/java.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/java.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/javascript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/javascript.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja-html.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja-html.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jinja.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jison.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jison.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jl.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/js.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/js.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json5.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/json5.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonc.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonc.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonnet.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsonnet.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jssm.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jssm.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsx.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/jsx.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/julia.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/julia.mjs +0 -16
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/just.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/just.mjs +0 -18
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kdl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kdl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kotlin.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kotlin.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kql.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kt.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kt.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kts.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kts.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kusto.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/kusto.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/latex.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/latex.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean4.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lean4.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/less.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/less.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/liquid.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/liquid.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lisp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lisp.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lit.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lit.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/llvm.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/llvm.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/log.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/log.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/logo.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/logo.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lua.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/lua.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/luau.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/luau.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/make.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/make.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/makefile.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/makefile.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-nix.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-nix.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-vue.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown-vue.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/markdown.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/marko.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/marko.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/matlab.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/matlab.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbt.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbt.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbti.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mbti.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/md.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/md.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdc.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdc.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdx.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mdx.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mediawiki.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mediawiki.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mermaid.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mermaid.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mips.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mips.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mipsasm.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mipsasm.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mjs.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mjs.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mmd.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mmd.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mojo.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mojo.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/moonbit.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/moonbit.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/move.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/move.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mts.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/mts.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nar.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nar.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/narrat.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/narrat.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow-groovy.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nextflow.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nf.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nf.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nginx.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nginx.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nim.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nim.mjs +0 -20
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nix.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nix.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nu.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nu.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nushell.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/nushell.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objc.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objc.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-c.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-c.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-cpp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/objective-cpp.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ocaml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ocaml.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/odin.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/odin.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/openscad.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/openscad.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pascal.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pascal.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl.mjs +0 -16
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl6.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/perl6.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/php.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/php.mjs +0 -18
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pkl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pkl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/plsql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/plsql.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/po.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/po.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/polar.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/polar.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/postcss.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/postcss.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pot.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pot.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/potx.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/potx.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powerquery.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powerquery.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powershell.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/powershell.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prisma.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prisma.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prolog.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/prolog.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/properties.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/properties.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/proto.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/proto.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/protobuf.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/protobuf.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps1.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ps1.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pug.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/pug.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/puppet.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/puppet.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/purescript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/purescript.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/py.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/py.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/python.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/python.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ql.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qml.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qmldir.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qmldir.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qss.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/qss.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/r.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/r.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/racket.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/racket.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/raku.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/raku.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/razor.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/razor.mjs +0 -10
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rb.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rb.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/reg.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/reg.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regex.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regex.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regexp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/regexp.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rel.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rel.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/riscv.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/riscv.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ron.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ron.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rosmsg.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rosmsg.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rs.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rs.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rst.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rst.mjs +0 -22
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ruby.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ruby.mjs +0 -30
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rust.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/rust.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sas.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sas.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sass.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sass.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scad.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scad.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scala.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scala.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scheme.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scheme.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scss.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/scss.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sdbl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sdbl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sh.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sh.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shader.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shader.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shaderlab.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shaderlab.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shell.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shell.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellscript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellscript.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellsession.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/shellsession.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/smalltalk.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/smalltalk.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/solidity.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/solidity.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/soy.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/soy.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sparql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sparql.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/spl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/spl.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/splunk.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/splunk.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/sql.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ssh-config.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ssh-config.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stata.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stata.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/styl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/styl.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stylus.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/stylus.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surql.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surrealql.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/surrealql.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/svelte.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/svelte.mjs +0 -14
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/swift.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/swift.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/system-verilog.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/system-verilog.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/systemd.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/systemd.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talon.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talon.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talonscript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/talonscript.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tasl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tasl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tcl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tcl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/templ.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/templ.mjs +0 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/terraform.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/terraform.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tex.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tex.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tf.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tf.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tfvars.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tfvars.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/toml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/toml.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tres.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tres.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts-tags.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts-tags.mjs +0 -18
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/ts.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tscn.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tscn.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsp.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsp.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsv.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsv.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsx.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/tsx.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/turtle.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/turtle.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/twig.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/twig.mjs +0 -18
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typ.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typ.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typescript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typescript.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typespec.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typespec.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typst.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/typst.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/v.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/v.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vala.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vala.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vb.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vb.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/verilog.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/verilog.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vhdl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vhdl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vim.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vim.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/viml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/viml.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vimscript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vimscript.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-directives.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-directives.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-html.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-html.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-interpolations.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-interpolations.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-vine.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue-vine.mjs +0 -18
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vue.mjs +0 -26
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vy.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vy.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vyper.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/vyper.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wasm.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wasm.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wenyan.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wenyan.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wgsl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wgsl.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wiki.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wiki.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wikitext.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wikitext.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wit.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wit.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wl.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wolfram.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/wolfram.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xml.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xsl.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/xsl.mjs +0 -8
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yaml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yaml.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yml.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/yml.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zenscript.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zenscript.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zig.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zig.mjs +0 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zsh.d.mts +0 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/dist/zsh.mjs +0 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/langs/package.json +0 -387
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/core-BVVgDSdq.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-BVVgDSdq.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-bundle-full-WSWgUeqW.d.mts +0 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizer.js","names":["#isCleanedUp","#textDocument","#grammar","#highlighter","#ensureActiveTheme","#scheduleStatePrebuild","#tokenizerId","#backgroundJobId","#backgroundPrebuildEndLine","#backgroundPrebuild","#backgroundTokenize","#themeType","#matchBrackets","#ensureGrammar","#bracketIgnoredRanges","#buildStateStack","#stateStack","#tokenizeLineAt","#mediaQueryList","#resolveSystemThemeType","#emitThemeChange","#disposes","#tokenizeMaxLineLength","#setStyle","#onDeferTokenize","#onThemeChange","#debug","#colorMap","#setTheme","#themeName","#comparisonStateStack","#comparisonStateStackStart","#comparisonLineChanges","#scheduleBackgroundTokenize","#detachMessageListener","#shiftComparisonStateStack","#getPreviousEndState","#prebuildStateStack","#pendingPrebuildEndLine","#isStopped","#isPaused","#lastLine","#backgroundChangedLineRanges","#backgroundChangedRangeIndex","#postTokenizeMessage","#isMessageListenerAttached","#onMessage","#attachMessageListener","#cacheBracketIgnoredRanges"],"sources":["../../src/editor/tokenizer.ts"],"sourcesContent":["import { colorUtils } from '@pierre/theming/color';\nimport {\n EncodedTokenMetadata,\n type IGrammar,\n INITIAL,\n type StateStack,\n} from 'shiki/textmate';\n\nimport { DEFAULT_THEMES } from '../constants';\nimport type {\n BaseCodeOptions,\n DiffsHighlighter,\n HighlightedToken,\n RenderRange,\n} from '../types';\nimport type { TextDocument, TextDocumentChange } from './textDocument';\nimport { addEventListener, debounce, h } from './utils';\n\nconst TOKENIZE_TIME_LIMIT = 500;\nlet nextTokenizerId = 0;\n\nexport interface EditorTokenizerProps {\n highlighter: DiffsHighlighter;\n textDocument: TextDocument<unknown>;\n codeOptions: BaseCodeOptions;\n matchBrackets?: boolean;\n setStyle: (style: string) => void;\n onDeferTokenize: (\n lines: Map<number, Array<HighlightedToken>>,\n themeType: 'dark' | 'light'\n ) => void;\n // Fired after the active theme (light/dark mode or theme name) changes and the\n // new theme CSS has been applied. Lets the editor recompute overlay pieces\n // that captured a resolved theme color, e.g. rounded selection corner masks.\n onThemeChange?: () => void;\n __debug?: boolean;\n}\n\n/** Stoppable code tokenizer for the editor */\nexport class EditorTokenizer {\n #highlighter: DiffsHighlighter;\n #grammar: IGrammar | undefined;\n #mediaQueryList: MediaQueryList;\n #themeType: 'light' | 'dark' = 'dark';\n // The resolved name of the theme currently applied to the editor (e.g.\n // `github-light`). Tracked so `syncTheme` can detect a host-driven theme swap\n // even when the light/dark mode itself is unchanged.\n #themeName = '';\n #colorMap: string[];\n #textDocument: TextDocument<unknown>;\n #tokenizeMaxLineLength: number;\n #setStyle: EditorTokenizerProps['setStyle'];\n #onDeferTokenize: EditorTokenizerProps['onDeferTokenize'];\n #onThemeChange: EditorTokenizerProps['onThemeChange'];\n #matchBrackets: boolean;\n #debug: boolean;\n #disposes?: (() => void)[];\n #isCleanedUp = false;\n\n // state\n #stateStack: StateStack[] = [INITIAL]; // cached state stack by line index\n #comparisonStateStack: StateStack[] = [];\n #comparisonStateStackStart = 0;\n #comparisonLineChanges: NonNullable<\n TextDocumentChange['changedLineChanges']\n > = [];\n #lastLine: number = -1;\n #isStopped: boolean = true;\n #isPaused: boolean = false;\n #backgroundJobId: number = 0;\n #tokenizerId = ++nextTokenizerId;\n #backgroundPrebuildEndLine = -1;\n #pendingPrebuildEndLine = -1;\n #backgroundChangedLineRanges: readonly [number, number][] | undefined;\n #backgroundChangedRangeIndex: number = 0;\n #bracketIgnoredRanges: ([number, number][] | null | undefined)[] = [];\n #isMessageListenerAttached: boolean = false;\n\n #prebuildStateStack = debounce(async (renderRange?: RenderRange) => {\n // Drop work scheduled before cleanUp; a late timer must not call setTheme\n // on a highlighter that tests (or hosts) have already disposed.\n if (this.#isCleanedUp) {\n return;\n }\n const { startingLine = 0, totalLines = Infinity } = renderRange ?? {};\n const endLine = Math.min(\n totalLines === Infinity ? Infinity : startingLine + totalLines,\n this.#textDocument.lineCount\n );\n if (\n this.#grammar === undefined &&\n !isGrammarlessLanguage(this.#textDocument.languageId)\n ) {\n await this.#highlighter.loadLanguage(this.#textDocument.languageId);\n if (this.#isCleanedUp) {\n return;\n }\n this.#grammar = this.#highlighter.getLanguage(\n this.#textDocument.languageId\n );\n }\n this.#ensureActiveTheme();\n this.#scheduleStatePrebuild(endLine);\n }, 500);\n\n #onMessage = ({ data }: MessageEvent<unknown>) => {\n if (typeof data !== 'object' || data === null) {\n return;\n }\n const { type, tokenizerId, jobId } = data as {\n type?: unknown;\n tokenizerId?: unknown;\n jobId?: unknown;\n };\n if (\n type === 'tokenize' &&\n tokenizerId === this.#tokenizerId &&\n typeof jobId === 'number' &&\n jobId === this.#backgroundJobId\n ) {\n if (this.#backgroundPrebuildEndLine >= 0) {\n this.#backgroundPrebuild(jobId);\n } else {\n this.#backgroundTokenize(jobId);\n }\n }\n };\n\n get themeType(): 'light' | 'dark' {\n return this.#themeType;\n }\n\n getStringCommentRegexpRangesInLine(\n lineIndex: number\n ): [number, number][] | null {\n if (\n !this.#matchBrackets ||\n lineIndex < 0 ||\n lineIndex >= this.#textDocument.lineCount\n ) {\n return null;\n }\n this.#ensureGrammar();\n if (this.#grammar === undefined) {\n return null;\n }\n if (this.#bracketIgnoredRanges[lineIndex] === undefined) {\n this.#buildStateStack(lineIndex);\n const state = this.#stateStack[lineIndex] ?? INITIAL;\n const result = this.#tokenizeLineAt(lineIndex, state);\n this.#stateStack[lineIndex + 1] = result.state;\n }\n return this.#bracketIgnoredRanges[lineIndex] ?? null;\n }\n\n constructor({\n codeOptions,\n highlighter,\n textDocument,\n matchBrackets,\n setStyle,\n onDeferTokenize,\n onThemeChange,\n __debug,\n }: EditorTokenizerProps) {\n const {\n themeType: themeTypeOption = 'system',\n theme = DEFAULT_THEMES,\n tokenizeMaxLineLength = 1000,\n } = codeOptions;\n this.#mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n let themeType: 'light' | 'dark' | undefined;\n if (themeTypeOption === 'system') {\n // Prefer the host document's computed color-scheme (page CSS/classes can\n // force light/dark while the OS media query differs) over matchMedia.\n themeType = this.#resolveSystemThemeType();\n } else {\n themeType = themeTypeOption;\n }\n // Only track the document/system color scheme when the surface follows it\n // (`themeType: 'system'`). A surface pinned to an explicit 'dark'/'light'\n // theme keeps that theme regardless of the page, so re-tokenizing after an\n // edit must emit the same `--diffs-token-{theme}` variable the SSR markup\n // used; otherwise the edited tokens fall back to the default foreground.\n if (typeof theme !== 'string' && themeTypeOption === 'system') {\n const observer = new MutationObserver((mutations) => {\n for (const { type, attributeName } of mutations) {\n if (\n type === 'attributes' &&\n attributeName !== null &&\n (attributeName === 'class' || attributeName.startsWith('data-'))\n ) {\n const themeType = this.#resolveSystemThemeType();\n this.#emitThemeChange(theme[themeType], themeType);\n break;\n }\n }\n });\n observer.observe(document.documentElement, { attributes: true });\n observer.observe(document.body, { attributes: true });\n this.#disposes = [\n addEventListener(this.#mediaQueryList, 'change', () => {\n // Re-read computed color-scheme so a host-forced scheme still wins\n // when the OS preference changes underneath it.\n const themeType = this.#resolveSystemThemeType();\n this.#emitThemeChange(theme[themeType], themeType);\n }),\n () => observer.disconnect(),\n ];\n }\n this.#highlighter = highlighter;\n this.#textDocument = textDocument;\n this.#tokenizeMaxLineLength = tokenizeMaxLineLength;\n this.#setStyle = setStyle;\n this.#onDeferTokenize = onDeferTokenize;\n this.#onThemeChange = onThemeChange;\n this.#matchBrackets = matchBrackets !== false;\n this.#debug = __debug ?? false;\n this.#ensureGrammar();\n this.#colorMap = [];\n this.#setTheme(\n typeof theme === 'string' ? theme : theme[themeType],\n typeof theme === 'string' ? undefined : themeType\n );\n }\n\n // By default, diffs components support dual themes, but the tokenizer only renders\n // the preferred theme. When the theme type is changed, the tokenizer will re-tokenize the document.\n #emitThemeChange(themeName: string, themeType: 'light' | 'dark') {\n if (themeName === this.#themeName && themeType === this.#themeType) {\n return;\n }\n this.#setTheme(themeName, themeType);\n this.stopBackgroundTokenize();\n this.#stateStack = [INITIAL];\n this.#comparisonStateStack = [];\n this.#comparisonStateStackStart = 0;\n this.#comparisonLineChanges = [];\n if (this.#grammar !== undefined && this.#textDocument.lineCount > 0) {\n this.#scheduleBackgroundTokenize(0);\n }\n // The theme CSS is now applied, so overlay pieces that captured a resolved\n // theme color (e.g. rounded selection corner masks) can recompute against\n // the new colors instead of keeping the old light/dark value.\n this.#onThemeChange?.();\n }\n\n // Respect an explicit host color-scheme override. When the computed value\n // advertises support for both schemes, let the OS preference choose one.\n #resolveSystemThemeType(): 'light' | 'dark' {\n try {\n if (\n typeof document !== 'undefined' &&\n typeof getComputedStyle === 'function' &&\n document.body != null\n ) {\n const colorSchemes = getComputedStyle(document.body).colorScheme.split(\n /\\s+/\n );\n const supportsDark = colorSchemes.includes('dark');\n const supportsLight = colorSchemes.includes('light');\n // A single host-forced scheme wins. `light dark` only declares support\n // for both schemes, so the media query still selects the active one.\n if (supportsDark !== supportsLight) {\n return supportsDark ? 'dark' : 'light';\n }\n }\n } catch {\n // jsdom and similar harnesses may lack getComputedStyle or throw; fall\n // through to the OS media query.\n }\n return this.#mediaQueryList.matches ? 'dark' : 'light';\n }\n\n // Re-apply the editor's theme from the surface's current code options. Edit\n // mode reuses a single tokenizer across re-renders, so when the host swaps the\n // theme — a theme picker, a light/dark toggle, etc. — we must recompute the\n // active theme and re-tokenize. Without this the editor keeps rendering the\n // theme it captured when it first attached (stale line-highlight background\n // and token colors). System-driven changes are still handled by the\n // observers wired up in the constructor; this covers explicit `themeType`/\n // `theme` option changes that those observers don't see.\n syncTheme(codeOptions: BaseCodeOptions): void {\n const { themeType = 'system', theme = DEFAULT_THEMES } = codeOptions;\n // A single pinned theme does not follow the themeType option or system\n // scheme flips; its own classification stays authoritative.\n if (typeof theme === 'string') {\n const pinnedThemeType = this.#highlighter.getTheme(theme).type;\n if (theme === this.#themeName && pinnedThemeType === this.#themeType) {\n return;\n }\n this.#emitThemeChange(theme, pinnedThemeType);\n return;\n }\n const nextThemeType =\n themeType === 'system' ? this.#resolveSystemThemeType() : themeType;\n const nextThemeName = theme[nextThemeType];\n if (\n nextThemeType === this.#themeType &&\n nextThemeName === this.#themeName\n ) {\n return;\n }\n this.#emitThemeChange(nextThemeName, nextThemeType);\n }\n\n #setTheme(themeName: string, themeType?: 'light' | 'dark') {\n const { theme, colorMap } = this.#highlighter.setTheme(themeName);\n const { colors = {} } = this.#highlighter.getTheme(themeName);\n const selectionBackground = colors['editor.selectionBackground'];\n const themeLineHighlightBackground =\n colors['editor.lineHighlightBackground'];\n const lineHighlightBackground =\n themeLineHighlightBackground != null &&\n themeLineHighlightBackground.trim() !== '' &&\n !colorUtils.isFullyTransparent(themeLineHighlightBackground)\n ? themeLineHighlightBackground\n : undefined;\n // A usable theme background opts into the semantic active-line mix.\n // Missing backgrounds retain the resolved row color and rely on a border.\n const lineHighlightBorder =\n colors['editor.lineHighlightBorder'] ??\n (lineHighlightBackground == null\n ? 'color-mix(in lab, var(--diffs-bg) 70%, var(--diffs-fg))'\n : 'transparent');\n const activeLineSourceMix =\n lineHighlightBackground == null ? '100%' : '85%';\n const cursorForeground = colors['editorCursor.foreground'];\n const findMatchBackground = colors['editor.findMatchBackground'];\n const findMatchHighlightBackground =\n colors['editor.findMatchHighlightBackground'];\n const bracketMatchBackground = colors['editorBracketMatch.background'];\n const bracketMatchBorder = colors['editorBracketMatch.border'];\n const hintForeground = colors['editorHint.foreground'];\n const infoForeground = colors['editorInfo.foreground'];\n const warningForeground = colors['editorWarning.foreground'];\n const errorForeground = colors['editorError.foreground'];\n this.#setStyle(`:host {\n --diffs-editor-selection-bg: ${selectionBackground ?? 'var(--diffs-line-bg)'};\n --diffs-editor-line-highlight-border: ${lineHighlightBorder};\n --diffs-editor-active-line-source-mix: ${activeLineSourceMix};\n --diffs-editor-match-bg: ${findMatchBackground ?? 'initial'};\n --diffs-editor-match-highlight-bg: ${findMatchHighlightBackground ?? 'initial'};\n --diffs-editor-bracket-match-bg: ${bracketMatchBackground ?? 'initial'};\n --diffs-editor-bracket-match-border: ${bracketMatchBorder ?? 'initial'};\n --diffs-editor-cursor-fg: ${cursorForeground ?? 'initial'};\n --diffs-editor-hint-fg: ${hintForeground ?? 'initial'};\n --diffs-editor-info-fg: ${infoForeground ?? 'initial'};\n --diffs-editor-warning-fg: ${warningForeground ?? 'initial'};\n --diffs-editor-error-fg: ${errorForeground ?? 'initial'};\n }`);\n this.#themeName = themeName;\n this.#themeType = themeType ?? theme.type;\n this.#colorMap = colorMap;\n }\n\n // The shared highlighter is also used for dual-theme SSR (`themes: {dark,light}`),\n // which leaves its active theme on whichever pass finished last (usually light).\n // The tokenizer caches a single-theme colorMap from construction; if we tokenize\n // without re-activating that theme, grammar color indices are looked up in the\n // wrong map — property names resolve to a near-foreground gray while types and\n // comments (stable across maps) still look correct. Re-apply before every\n // tokenize path so a first edit after load matches a later file-switch re-attach.\n #ensureActiveTheme(): void {\n if (this.#themeName === '') {\n return;\n }\n const { colorMap } = this.#highlighter.setTheme(this.#themeName);\n this.#colorMap = colorMap;\n }\n\n cleanUp(): void {\n this.#isCleanedUp = true;\n this.stopBackgroundTokenize();\n this.#detachMessageListener();\n this.#disposes?.forEach((dispose) => dispose());\n this.#disposes = undefined;\n }\n\n // to use `tokenize`, call `prebuildStateStackMap` first to prebuild\n // the state stack map for the given render range.\n tokenize(\n change: TextDocumentChange,\n renderRange?: RenderRange,\n hostRealignsRows = false\n ): Map<number, Array<HighlightedToken>> {\n this.#ensureGrammar();\n this.#ensureActiveTheme();\n if (\n this.#grammar === undefined &&\n !isGrammarlessLanguage(this.#textDocument.languageId)\n ) {\n throw new Error(\n `Grammar for language \"${this.#textDocument.languageId}\" not loaded`\n );\n }\n\n if (this.#matchBrackets) {\n // Clear ignored token ranges for lines invalidated by the edit.\n this.#bracketIgnoredRanges.length = Math.min(\n this.#bracketIgnoredRanges.length,\n change.startLine\n );\n }\n\n const { lineCount } = this.#textDocument;\n const { startingLine = 0, totalLines = Infinity } = renderRange ?? {};\n const renderRangeEndLine =\n totalLines === Infinity\n ? lineCount\n : Math.min(startingLine + totalLines, lineCount);\n\n const dirtyStart = change.startLine;\n const viewStart = Math.max(startingLine, dirtyStart);\n const crossesRenderRangeEnd =\n renderRange !== undefined &&\n totalLines !== Infinity &&\n change.lineDelta > 0 &&\n dirtyStart < renderRangeEndLine &&\n change.endLine >= renderRangeEndLine;\n const canReuseCachedStates =\n change.lineDelta === 0 &&\n (change.changedLineChanges?.every(([, , lineDelta]) => lineDelta === 0) ??\n true);\n const canReuseShiftedStates =\n hostRealignsRows && change.lineDelta !== 0 && dirtyStart >= startingLine;\n const canCacheTokenizedStates =\n canReuseCachedStates ||\n renderRange === undefined ||\n dirtyStart >= viewStart;\n const changedLineRanges: readonly [number, number][] =\n change.changedLineRanges ?? [[dirtyStart, change.endLine]];\n this.#comparisonStateStack = [];\n this.#comparisonStateStackStart = 0;\n this.#comparisonLineChanges = [];\n let offscreenSyncEnd = -1;\n if (dirtyStart < viewStart) {\n for (const [rangeStart, rangeEnd] of changedLineRanges) {\n if (rangeStart < viewStart) {\n offscreenSyncEnd = Math.max(\n offscreenSyncEnd,\n Math.min(rangeEnd, viewStart - 1)\n );\n }\n }\n }\n const shouldFlushOffscreenLines =\n offscreenSyncEnd >= dirtyStart &&\n (canReuseCachedStates || change.lineDelta < 0);\n if (canReuseCachedStates) {\n this.#buildStateStack(dirtyStart);\n } else {\n this.#shiftComparisonStateStack(change);\n if (renderRange === undefined || dirtyStart >= viewStart) {\n this.#buildStateStack(viewStart);\n }\n }\n\n let changedRangeIndex = 0;\n let currentChangedRangeEnd = changedLineRanges[changedRangeIndex][1];\n let backgroundStartLine: number | undefined;\n let backgroundChangedRangeIndex = 0;\n let line = canReuseCachedStates\n ? changedLineRanges[changedRangeIndex][0]\n : viewStart;\n let settled = false;\n const dirtyLines: Map<number, Array<HighlightedToken>> = new Map();\n const offscreenDirtyLines:\n | Map<number, Array<HighlightedToken>>\n | undefined = shouldFlushOffscreenLines ? new Map() : undefined;\n if (offscreenDirtyLines !== undefined && !canReuseCachedStates) {\n const offscreenEnd = Math.min(\n offscreenSyncEnd + 1,\n viewStart,\n renderRangeEndLine\n );\n if (offscreenEnd > dirtyStart) {\n this.#buildStateStack(offscreenEnd);\n let offscreenLine = dirtyStart;\n let offscreenState = this.#stateStack[offscreenLine] ?? INITIAL;\n for (; offscreenLine < offscreenEnd; offscreenLine++) {\n const resolved = this.#tokenizeLineAt(offscreenLine, offscreenState);\n offscreenState = resolved.state;\n offscreenDirtyLines.set(offscreenLine, resolved.resolvedTokens);\n }\n this.#stateStack[offscreenEnd] = offscreenState;\n }\n }\n // Seed the loop's grammar state after the offscreen flush, not before it.\n // When a delete's removed lines reach the viewport's first line, the flush\n // rebuilds the cached state up to `line`; reading it earlier would capture\n // the truncated INITIAL state and color the viewport as if outside an open\n // construct (block comment, template literal) it is actually inside.\n let state = this.#stateStack[line] ?? INITIAL;\n for (; line < renderRangeEndLine; ) {\n const previousNextState = canReuseCachedStates\n ? this.#stateStack[line + 1]\n : canReuseShiftedStates\n ? this.#getPreviousEndState(line + 1)\n : undefined;\n if (canCacheTokenizedStates) {\n this.#stateStack[line] = state;\n }\n\n const { resolvedTokens, state: nextState } = this.#tokenizeLineAt(\n line,\n state\n );\n state = nextState;\n\n if (line >= viewStart) {\n dirtyLines.set(line, resolvedTokens);\n } else {\n offscreenDirtyLines?.set(line, resolvedTokens);\n }\n\n if (canCacheTokenizedStates) {\n this.#stateStack[line + 1] = state;\n }\n settled =\n line >= currentChangedRangeEnd &&\n (canReuseCachedStates || canReuseShiftedStates) &&\n previousNextState !== undefined &&\n state.equals(previousNextState);\n if (settled) {\n changedRangeIndex++;\n const nextRange = changedLineRanges[changedRangeIndex];\n if (nextRange === undefined) {\n break;\n }\n if (nextRange[0] >= renderRangeEndLine) {\n backgroundStartLine = nextRange[0];\n backgroundChangedRangeIndex = changedRangeIndex;\n break;\n }\n let nextState: StateStack | undefined = this.#stateStack[nextRange[0]];\n if (canReuseShiftedStates) {\n for (\n let stateLine = line + 2;\n stateLine <= nextRange[0];\n stateLine++\n ) {\n nextState = this.#getPreviousEndState(stateLine);\n if (nextState === undefined) {\n break;\n }\n this.#stateStack[stateLine] = nextState;\n }\n }\n if (nextState === undefined) {\n currentChangedRangeEnd = nextRange[1];\n line++;\n } else {\n line = nextRange[0];\n state = nextState;\n currentChangedRangeEnd = nextRange[1];\n }\n settled = false;\n continue;\n }\n line++;\n }\n\n if (canCacheTokenizedStates) {\n if (line < renderRangeEndLine) {\n this.#stateStack[line + 1] = state;\n } else {\n this.#stateStack[line] = state;\n }\n }\n\n if (settled && canReuseShiftedStates && backgroundStartLine === undefined) {\n for (let stateLine = line + 2; stateLine <= lineCount; stateLine++) {\n const previousState = this.#getPreviousEndState(stateLine);\n if (previousState === undefined) {\n break;\n }\n this.#stateStack[stateLine] = previousState;\n }\n this.#comparisonStateStack = [];\n this.#comparisonStateStackStart = 0;\n this.#comparisonLineChanges = [];\n }\n\n if (offscreenDirtyLines !== undefined && offscreenDirtyLines.size > 0) {\n this.#onDeferTokenize(offscreenDirtyLines, this.#themeType);\n }\n\n if (backgroundStartLine !== undefined) {\n this.#scheduleBackgroundTokenize(\n backgroundStartLine,\n changedLineRanges,\n backgroundChangedRangeIndex\n );\n } else if (!settled && line < lineCount) {\n const backgroundLine =\n crossesRenderRangeEnd && dirtyStart >= viewStart\n ? renderRangeEndLine\n : dirtyStart < viewStart && !canReuseCachedStates\n ? dirtyStart\n : line;\n this.#scheduleBackgroundTokenize(\n backgroundLine,\n changedLineRanges,\n changedRangeIndex\n );\n }\n\n return dirtyLines;\n }\n\n prebuildStateStack(renderRange?: RenderRange): void {\n this.#ensureGrammar();\n this.#prebuildStateStack(renderRange);\n }\n\n stopBackgroundTokenize(): void {\n this.#pendingPrebuildEndLine = -1;\n if (this.#isStopped) {\n return;\n }\n this.#isStopped = true;\n this.#isPaused = false;\n this.#lastLine = -1;\n this.#backgroundPrebuildEndLine = -1;\n this.#backgroundChangedLineRanges = undefined;\n this.#backgroundChangedRangeIndex = 0;\n this.#comparisonStateStack = [];\n this.#comparisonStateStackStart = 0;\n this.#comparisonLineChanges = [];\n this.#detachMessageListener();\n }\n\n pauseBackgroundTokenize(): void {\n if (this.#isStopped || this.#isPaused) {\n return;\n }\n if (this.#debug) {\n console.log('[diffs/editor] background tokenization paused', {\n jobId: this.#backgroundJobId,\n });\n }\n this.#isPaused = true;\n }\n\n resumeBackgroundTokenize(): void {\n if (\n this.#isStopped ||\n !this.#isPaused ||\n this.#grammar === undefined ||\n this.#lastLine < 0\n ) {\n return;\n }\n if (this.#debug) {\n console.log('[diffs/editor] background tokenization resumed', {\n jobId: this.#backgroundJobId,\n });\n }\n this.#isPaused = false;\n this.#postTokenizeMessage(this.#backgroundJobId);\n }\n\n #ensureGrammar(): void {\n if (\n this.#grammar === undefined &&\n !isGrammarlessLanguage(this.#textDocument.languageId) &&\n this.#highlighter\n .getLoadedLanguages()\n .includes(this.#textDocument.languageId)\n ) {\n this.#grammar = this.#highlighter.getLanguage(\n this.#textDocument.languageId\n );\n }\n }\n\n #attachMessageListener(): void {\n if (this.#isMessageListenerAttached) {\n return;\n }\n globalThis.addEventListener('message', this.#onMessage);\n this.#isMessageListenerAttached = true;\n }\n\n #detachMessageListener(): void {\n if (!this.#isMessageListenerAttached) {\n return;\n }\n globalThis.removeEventListener('message', this.#onMessage);\n this.#isMessageListenerAttached = false;\n }\n\n #postTokenizeMessage(jobId: number): void {\n // use `postMessage` instead of `setTimeout(fn, 0)` to avoid 4ms delay\n globalThis.postMessage({\n type: 'tokenize',\n tokenizerId: this.#tokenizerId,\n jobId,\n });\n }\n\n #scheduleBackgroundTokenize(\n startLine: number,\n changedLineRanges?: readonly [number, number][],\n changedRangeIndex = 0\n ): void {\n if (isGrammarlessLanguage(this.#textDocument.languageId)) {\n return;\n }\n\n const jobId = ++this.#backgroundJobId;\n\n if (this.#debug) {\n console.log('[diffs/editor] background tokenization scheduled', {\n jobId,\n startLine,\n changedLineRanges,\n changedRangeIndex,\n });\n }\n\n this.#isStopped = false;\n this.#isPaused = false;\n this.#lastLine = startLine;\n if (this.#backgroundPrebuildEndLine >= 0) {\n this.#pendingPrebuildEndLine = Math.max(\n this.#pendingPrebuildEndLine,\n this.#backgroundPrebuildEndLine\n );\n }\n this.#backgroundPrebuildEndLine = -1;\n this.#backgroundChangedLineRanges = changedLineRanges;\n this.#backgroundChangedRangeIndex = changedRangeIndex;\n this.#attachMessageListener();\n this.#postTokenizeMessage(jobId);\n }\n\n #scheduleStatePrebuild(endLine: number): void {\n if (this.#grammar === undefined || this.#stateStack.length > endLine) {\n return;\n }\n // Extend an active prebuild, or retain the target until the foreground\n // edit job reconverges and releases the state cache.\n if (!this.#isStopped) {\n if (this.#backgroundPrebuildEndLine >= 0) {\n this.#backgroundPrebuildEndLine = Math.max(\n this.#backgroundPrebuildEndLine,\n endLine\n );\n } else {\n this.#pendingPrebuildEndLine = Math.max(\n this.#pendingPrebuildEndLine,\n endLine\n );\n }\n return;\n }\n\n const jobId = ++this.#backgroundJobId;\n this.#isStopped = false;\n this.#isPaused = false;\n this.#lastLine = this.#stateStack.length - 1;\n this.#backgroundPrebuildEndLine = endLine;\n this.#pendingPrebuildEndLine = -1;\n this.#backgroundChangedLineRanges = undefined;\n this.#backgroundChangedRangeIndex = 0;\n this.#attachMessageListener();\n this.#postTokenizeMessage(jobId);\n }\n\n #tokenizeLineAt(\n line: number,\n state: StateStack\n ): { resolvedTokens: Array<HighlightedToken>; state: StateStack } {\n const lineText = this.#textDocument.getLineText(line);\n if (lineText.length > this.#tokenizeMaxLineLength) {\n console.warn(\n `[diffs] Line(${line}) too long to tokenize: ${lineText.length}`\n );\n this.#cacheBracketIgnoredRanges(line, null);\n return { resolvedTokens: [[0, '', lineText]], state };\n }\n if (\n this.#grammar === undefined ||\n lineText === '' ||\n lineText.trim() === ''\n ) {\n this.#cacheBracketIgnoredRanges(line, null);\n return { resolvedTokens: [[0, '', lineText]], state };\n }\n const result = tokenizeLine(\n this.#grammar,\n this.#colorMap,\n lineText,\n state,\n TOKENIZE_TIME_LIMIT,\n this.#matchBrackets\n );\n this.#cacheBracketIgnoredRanges(line, result.bracketIgnoredRanges);\n return {\n resolvedTokens: result.resolvedTokens,\n state: result.ruleStack,\n };\n }\n\n #cacheBracketIgnoredRanges(\n line: number,\n ranges: [number, number][] | null\n ): void {\n if (this.#matchBrackets) {\n this.#bracketIgnoredRanges[line] = ranges;\n }\n }\n\n // Preserve old end states as comparison-only sentinels, copying whichever\n // side of the edit is smaller. Index shifts are resolved lazily on lookup.\n #shiftComparisonStateStack(change: TextDocumentChange): void {\n const lineChanges =\n change.changedLineChanges ??\n ([[change.startLine, change.endLine, change.lineDelta]] as const);\n const comparisonStart = change.startLine + 1;\n const comparisonLength = this.#stateStack.length - comparisonStart;\n if (comparisonStart <= comparisonLength) {\n this.#comparisonStateStack = this.#stateStack;\n this.#comparisonStateStackStart = 0;\n this.#stateStack = this.#stateStack.slice(0, comparisonStart);\n } else {\n this.#comparisonStateStackStart = comparisonStart;\n this.#comparisonStateStack = this.#stateStack.slice(comparisonStart);\n this.#stateStack.length = Math.min(\n this.#stateStack.length,\n comparisonStart\n );\n }\n this.#comparisonLineChanges = lineChanges;\n }\n\n #getPreviousEndState(line: number): StateStack | undefined {\n let previousLine = line;\n for (\n let index = this.#comparisonLineChanges.length - 1;\n index >= 0;\n index--\n ) {\n const [startLine, endLine, lineDelta] =\n this.#comparisonLineChanges[index];\n if (lineDelta === 0) {\n continue;\n }\n if (previousLine > endLine) {\n previousLine -= lineDelta;\n } else if (previousLine > startLine) {\n return this.#stateStack[line];\n }\n }\n return (\n this.#comparisonStateStack[\n previousLine - this.#comparisonStateStackStart\n ] ?? this.#stateStack[line]\n );\n }\n\n #buildStateStack(endAt: number, timeBudget?: number): boolean {\n const boundedEndAt = Math.min(\n Math.max(0, endAt),\n this.#textDocument.lineCount\n );\n if (this.#stateStack.length > boundedEndAt || this.#grammar === undefined) {\n return true;\n }\n const startedAt = timeBudget === undefined ? 0 : performance.now();\n let line = this.#stateStack.length - 1;\n let state = this.#stateStack[line] ?? INITIAL;\n while (line < boundedEndAt) {\n this.#stateStack[line] = state;\n const lineText = this.#textDocument.getLineText(line);\n if (\n lineText.length <= this.#tokenizeMaxLineLength &&\n lineText !== '' &&\n lineText.trim() !== ''\n ) {\n const result = tokenizeLine(\n this.#grammar,\n this.#colorMap,\n lineText,\n state,\n TOKENIZE_TIME_LIMIT,\n this.#matchBrackets,\n false\n );\n this.#cacheBracketIgnoredRanges(line, result.bracketIgnoredRanges);\n state = result.ruleStack;\n } else {\n this.#cacheBracketIgnoredRanges(line, null);\n }\n line++;\n this.#stateStack[line] = state;\n if (\n timeBudget !== undefined &&\n performance.now() - startedAt > timeBudget\n ) {\n break;\n }\n }\n return line >= boundedEndAt;\n }\n\n #backgroundPrebuild(jobId: number): void {\n if (\n this.#isStopped ||\n this.#isPaused ||\n this.#grammar === undefined ||\n jobId !== this.#backgroundJobId\n ) {\n return;\n }\n\n this.#ensureActiveTheme();\n // State prebuilds intentionally omit rendered tokens and yield between\n // short chunks so a deep viewport does not monopolize the main thread.\n const complete = this.#buildStateStack(this.#backgroundPrebuildEndLine, 1);\n if (this.#isStopped || this.#isPaused || jobId !== this.#backgroundJobId) {\n return;\n }\n if (complete) {\n this.stopBackgroundTokenize();\n return;\n }\n this.#lastLine = this.#stateStack.length - 1;\n this.#postTokenizeMessage(jobId);\n }\n\n #backgroundTokenize(jobId: number) {\n if (\n this.#isStopped ||\n this.#isPaused ||\n this.#grammar === undefined ||\n jobId !== this.#backgroundJobId\n ) {\n return;\n }\n\n this.#ensureActiveTheme();\n\n const t = performance.now();\n const lines = new Map<number, Array<HighlightedToken>>();\n const totalLines = this.#textDocument.lineCount;\n const changedLineRanges = this.#backgroundChangedLineRanges;\n\n let line = this.#lastLine;\n let state = this.#stateStack[line] ?? INITIAL;\n let settled = false;\n let changedRangeIndex = this.#backgroundChangedRangeIndex;\n let currentChangedRangeEnd = changedLineRanges?.[changedRangeIndex]?.[1];\n for (; line < totalLines; ) {\n this.#stateStack[line] = state;\n\n const previousNextState =\n currentChangedRangeEnd !== undefined\n ? this.#getPreviousEndState(line + 1)\n : undefined;\n const lineText = this.#textDocument.getLineText(line);\n if (lineText.length > this.#tokenizeMaxLineLength) {\n console.warn(\n `[diffs] Line(${line}) too long to tokenize: ${lineText.length}`\n );\n lines.set(line, [[0, '', lineText]]);\n this.#cacheBracketIgnoredRanges(line, null);\n } else if (lineText === '' || lineText.trim() === '') {\n lines.set(line, [[0, '', lineText]]);\n this.#cacheBracketIgnoredRanges(line, null);\n } else {\n const ret = tokenizeLine(\n this.#grammar,\n this.#colorMap,\n lineText,\n state,\n TOKENIZE_TIME_LIMIT,\n this.#matchBrackets\n );\n lines.set(line, ret.resolvedTokens);\n this.#cacheBracketIgnoredRanges(line, ret.bracketIgnoredRanges);\n state = ret.ruleStack;\n }\n\n this.#stateStack[line + 1] = state;\n settled =\n currentChangedRangeEnd !== undefined &&\n line >= currentChangedRangeEnd &&\n previousNextState !== undefined &&\n state.equals(previousNextState);\n line++;\n if (settled) {\n changedRangeIndex++;\n const nextRange = changedLineRanges?.[changedRangeIndex];\n if (nextRange === undefined) {\n break;\n }\n currentChangedRangeEnd = nextRange[1];\n if (this.#stateStack[nextRange[0]] === undefined) {\n settled = false;\n } else {\n line = nextRange[0];\n state = this.#stateStack[line] ?? state;\n settled = false;\n continue;\n }\n }\n\n // limit the time of partial tokenize to 1ms\n if (performance.now() - t > 1) {\n break;\n }\n }\n\n this.#onDeferTokenize(lines, this.#themeType);\n if (this.#isStopped || this.#isPaused || jobId !== this.#backgroundJobId) {\n return;\n }\n\n if (settled || line >= totalLines) {\n const pendingPrebuildEndLine = this.#pendingPrebuildEndLine;\n this.stopBackgroundTokenize();\n if (pendingPrebuildEndLine >= 0) {\n this.#scheduleStatePrebuild(pendingPrebuildEndLine);\n }\n return;\n }\n\n this.#lastLine = line;\n this.#backgroundChangedRangeIndex = changedRangeIndex;\n this.#postTokenizeMessage(jobId);\n }\n}\n\nfunction tokenizeLine(\n grammar: IGrammar,\n colorMap: string[],\n lineText: string,\n stateStack: StateStack,\n timeLimit?: number,\n collectBracketIgnoredRanges = true,\n resolveTokens = true\n): {\n ruleStack: StateStack;\n resolvedTokens: Array<HighlightedToken>;\n bracketIgnoredRanges: [number, number][];\n} {\n const result = grammar.tokenizeLine2(lineText, stateStack, timeLimit);\n if (result.stoppedEarly) {\n console.warn(\n `[diffs] Time limit reached when tokenizing line: ${lineText.substring(0, 100)}`\n );\n }\n const rawTokens = result.tokens;\n const tokensLength = rawTokens.length / 2;\n const resolvedTokens: Array<HighlightedToken> = [];\n const bracketIgnoredRanges: [number, number][] = [];\n if (!resolveTokens && !collectBracketIgnoredRanges) {\n return {\n ruleStack: result.ruleStack,\n resolvedTokens,\n bracketIgnoredRanges,\n };\n }\n for (let j = 0; j < tokensLength; j++) {\n const offset = rawTokens[2 * j];\n const nextOffset =\n j + 1 < tokensLength ? rawTokens[2 * j + 2] : lineText.length;\n if (offset === nextOffset) {\n // should never reach here, skip if happens anyway\n continue;\n }\n const metadata = rawTokens[2 * j + 1];\n if (resolveTokens) {\n const fg = EncodedTokenMetadata.getForeground(metadata);\n resolvedTokens.push([\n offset,\n colorMap[fg],\n lineText.slice(offset, nextOffset),\n ]);\n }\n if (\n collectBracketIgnoredRanges &&\n EncodedTokenMetadata.getTokenType(metadata) > 0\n ) {\n bracketIgnoredRanges.push([offset, nextOffset]);\n }\n }\n return {\n ruleStack: result.ruleStack,\n resolvedTokens,\n bracketIgnoredRanges,\n };\n}\n\nexport function renderLineTokens(\n tokens: Array<HighlightedToken>\n): (HTMLElement | string)[] {\n return tokens.map(([char, fg, textContent]) => {\n if (char === 0 && fg === '') {\n if (textContent === '') {\n return h('br');\n }\n return textContent;\n }\n return h('span', {\n dataset: {\n char: char.toString(),\n },\n style: `color:${fg};`,\n textContent: textContent,\n });\n });\n}\n\n// Shiki special-cases `text` and `ansi` in codeToHast but does not expose grammars.\nfunction isGrammarlessLanguage(languageId: string): boolean {\n return languageId === 'text' || languageId === 'ansi';\n}\n"],"mappings":";;;;;AAkBA,MAAM,sBAAsB;AAC5B,IAAI,kBAAkB;;AAoBtB,IAAa,kBAAb,MAA6B;CAC3B;CACA;CACA;CACA,aAA+B;CAI/B,aAAa;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,eAAe;CAGf,cAA4B,CAAC,OAAO;CACpC,wBAAsC,CAAC;CACvC,6BAA6B;CAC7B,yBAEI,CAAC;CACL,YAAoB;CACpB,aAAsB;CACtB,YAAqB;CACrB,mBAA2B;CAC3B,eAAe,EAAE;CACjB,6BAA6B;CAC7B,0BAA0B;CAC1B;CACA,+BAAuC;CACvC,wBAAmE,CAAC;CACpE,6BAAsC;CAEtC,sBAAsB,SAAS,OAAO,gBAA8B;EAGlE,IAAI,KAAKA,cACP;EAEF,MAAM,EAAE,eAAe,GAAG,aAAa,aAAa,eAAe,CAAC;EACpE,MAAM,UAAU,KAAK,IACnB,eAAe,WAAW,WAAW,eAAe,YACpD,KAAKC,cAAc,SACrB;EACA,IACE,KAAKC,aAAa,KAAA,KAClB,CAAC,sBAAsB,KAAKD,cAAc,UAAU,GACpD;GACA,MAAM,KAAKE,aAAa,aAAa,KAAKF,cAAc,UAAU;GAClE,IAAI,KAAKD,cACP;GAEF,KAAKE,WAAW,KAAKC,aAAa,YAChC,KAAKF,cAAc,UACrB;EACF;EACA,KAAKG,mBAAmB;EACxB,KAAKC,uBAAuB,OAAO;CACrC,GAAG,GAAG;CAEN,cAAc,EAAE,WAAkC;EAChD,IAAI,OAAO,SAAS,YAAY,SAAS,MACvC;EAEF,MAAM,EAAE,MAAM,aAAa,UAAU;EAKrC,IACE,SAAS,cACT,gBAAgB,KAAKC,gBACrB,OAAO,UAAU,YACjB,UAAU,KAAKC,kBAEf,IAAI,KAAKC,8BAA8B,GACrC,KAAKC,oBAAoB,KAAK;OAE9B,KAAKC,oBAAoB,KAAK;CAGpC;CAEA,IAAI,YAA8B;EAChC,OAAO,KAAKC;CACd;CAEA,mCACE,WAC2B;EAC3B,IACE,CAAC,KAAKC,kBACN,YAAY,KACZ,aAAa,KAAKX,cAAc,WAEhC,OAAO;EAET,KAAKY,eAAe;EACpB,IAAI,KAAKX,aAAa,KAAA,GACpB,OAAO;EAET,IAAI,KAAKY,sBAAsB,eAAe,KAAA,GAAW;GACvD,KAAKC,iBAAiB,SAAS;GAC/B,MAAM,QAAQ,KAAKC,YAAY,cAAc;GAC7C,MAAM,SAAS,KAAKC,gBAAgB,WAAW,KAAK;GACpD,KAAKD,YAAY,YAAY,KAAK,OAAO;EAC3C;EACA,OAAO,KAAKF,sBAAsB,cAAc;CAClD;CAEA,YAAY,EACV,aACA,aACA,cACA,eACA,UACA,iBACA,eACA,WACuB;EACvB,MAAM,EACJ,WAAW,kBAAkB,UAC7B,QAAQ,gBACR,wBAAwB,QACtB;EACJ,KAAKI,kBAAkB,OAAO,WAAW,8BAA8B;EACvE,IAAI;EACJ,IAAI,oBAAoB,UAGtB,YAAY,KAAKC,wBAAwB;OAEzC,YAAY;EAOd,IAAI,OAAO,UAAU,YAAY,oBAAoB,UAAU;GAC7D,MAAM,WAAW,IAAI,kBAAkB,cAAc;IACnD,KAAK,MAAM,EAAE,MAAM,mBAAmB,WACpC,IACE,SAAS,gBACT,kBAAkB,SACjB,kBAAkB,WAAW,cAAc,WAAW,OAAO,IAC9D;KACA,MAAM,YAAY,KAAKA,wBAAwB;KAC/C,KAAKC,iBAAiB,MAAM,YAAY,SAAS;KACjD;IACF;GAEJ,CAAC;GACD,SAAS,QAAQ,SAAS,iBAAiB,EAAE,YAAY,KAAK,CAAC;GAC/D,SAAS,QAAQ,SAAS,MAAM,EAAE,YAAY,KAAK,CAAC;GACpD,KAAKC,YAAY,CACf,iBAAiB,KAAKH,iBAAiB,gBAAgB;IAGrD,MAAM,YAAY,KAAKC,wBAAwB;IAC/C,KAAKC,iBAAiB,MAAM,YAAY,SAAS;GACnD,CAAC,SACK,SAAS,WAAW,CAC5B;EACF;EACA,KAAKjB,eAAe;EACpB,KAAKF,gBAAgB;EACrB,KAAKqB,yBAAyB;EAC9B,KAAKC,YAAY;EACjB,KAAKC,mBAAmB;EACxB,KAAKC,iBAAiB;EACtB,KAAKb,iBAAiB,kBAAkB;EACxC,KAAKc,SAAS,WAAW;EACzB,KAAKb,eAAe;EACpB,KAAKc,YAAY,CAAC;EAClB,KAAKC,UACH,OAAO,UAAU,WAAW,QAAQ,MAAM,YAC1C,OAAO,UAAU,WAAW,KAAA,IAAY,SAC1C;CACF;CAIA,iBAAiB,WAAmB,WAA6B;EAC/D,IAAI,cAAc,KAAKC,cAAc,cAAc,KAAKlB,YACtD;EAEF,KAAKiB,UAAU,WAAW,SAAS;EACnC,KAAK,uBAAuB;EAC5B,KAAKZ,cAAc,CAAC,OAAO;EAC3B,KAAKc,wBAAwB,CAAC;EAC9B,KAAKC,6BAA6B;EAClC,KAAKC,yBAAyB,CAAC;EAC/B,IAAI,KAAK9B,aAAa,KAAA,KAAa,KAAKD,cAAc,YAAY,GAChE,KAAKgC,4BAA4B,CAAC;EAKpC,KAAKR,iBAAiB;CACxB;CAIA,0BAA4C;EAC1C,IAAI;GACF,IACE,OAAO,aAAa,eACpB,OAAO,qBAAqB,cAC5B,SAAS,QAAQ,MACjB;IACA,MAAM,eAAe,iBAAiB,SAAS,IAAI,CAAC,CAAC,YAAY,MAC/D,KACF;IACA,MAAM,eAAe,aAAa,SAAS,MAAM;IAIjD,IAAI,iBAHkB,aAAa,SAAS,OAGX,GAC/B,OAAO,eAAe,SAAS;GAEnC;EACF,QAAQ,CAGR;EACA,OAAO,KAAKP,gBAAgB,UAAU,SAAS;CACjD;CAUA,UAAU,aAAoC;EAC5C,MAAM,EAAE,YAAY,UAAU,QAAQ,mBAAmB;EAGzD,IAAI,OAAO,UAAU,UAAU;GAC7B,MAAM,kBAAkB,KAAKf,aAAa,SAAS,KAAK,CAAC,CAAC;GAC1D,IAAI,UAAU,KAAK0B,cAAc,oBAAoB,KAAKlB,YACxD;GAEF,KAAKS,iBAAiB,OAAO,eAAe;GAC5C;EACF;EACA,MAAM,gBACJ,cAAc,WAAW,KAAKD,wBAAwB,IAAI;EAC5D,MAAM,gBAAgB,MAAM;EAC5B,IACE,kBAAkB,KAAKR,cACvB,kBAAkB,KAAKkB,YAEvB;EAEF,KAAKT,iBAAiB,eAAe,aAAa;CACpD;CAEA,UAAU,WAAmB,WAA8B;EACzD,MAAM,EAAE,OAAO,aAAa,KAAKjB,aAAa,SAAS,SAAS;EAChE,MAAM,EAAE,SAAS,CAAC,MAAM,KAAKA,aAAa,SAAS,SAAS;EAC5D,MAAM,sBAAsB,OAAO;EACnC,MAAM,+BACJ,OAAO;EACT,MAAM,0BACJ,gCAAgC,QAChC,6BAA6B,KAAK,MAAM,MACxC,CAAC,WAAW,mBAAmB,4BAA4B,IACvD,+BACA,KAAA;EAGN,MAAM,sBACJ,OAAO,kCACN,2BAA2B,OACxB,4DACA;EACN,MAAM,sBACJ,2BAA2B,OAAO,SAAS;EAC7C,MAAM,mBAAmB,OAAO;EAChC,MAAM,sBAAsB,OAAO;EACnC,MAAM,+BACJ,OAAO;EACT,MAAM,yBAAyB,OAAO;EACtC,MAAM,qBAAqB,OAAO;EAClC,MAAM,iBAAiB,OAAO;EAC9B,MAAM,iBAAiB,OAAO;EAC9B,MAAM,oBAAoB,OAAO;EACjC,MAAM,kBAAkB,OAAO;EAC/B,KAAKoB,UAAU;qCACkB,uBAAuB,uBAAuB;8CACrC,oBAAoB;+CACnB,oBAAoB;iCAClC,uBAAuB,UAAU;2CACvB,gCAAgC,UAAU;yCAC5C,0BAA0B,UAAU;6CAChC,sBAAsB,UAAU;kCAC3C,oBAAoB,UAAU;gCAChC,kBAAkB,UAAU;gCAC5B,kBAAkB,UAAU;mCACzB,qBAAqB,UAAU;iCACjC,mBAAmB,UAAU;MACxD;EACF,KAAKM,aAAa;EAClB,KAAKlB,aAAa,aAAa,MAAM;EACrC,KAAKgB,YAAY;CACnB;CASA,qBAA2B;EACzB,IAAI,KAAKE,eAAe,IACtB;EAEF,MAAM,EAAE,aAAa,KAAK1B,aAAa,SAAS,KAAK0B,UAAU;EAC/D,KAAKF,YAAY;CACnB;CAEA,UAAgB;EACd,KAAK3B,eAAe;EACpB,KAAK,uBAAuB;EAC5B,KAAKkC,uBAAuB;EAC5B,KAAKb,WAAW,SAAS,YAAY,QAAQ,CAAC;EAC9C,KAAKA,YAAY,KAAA;CACnB;CAIA,SACE,QACA,aACA,mBAAmB,OACmB;EACtC,KAAKR,eAAe;EACpB,KAAKT,mBAAmB;EACxB,IACE,KAAKF,aAAa,KAAA,KAClB,CAAC,sBAAsB,KAAKD,cAAc,UAAU,GAEpD,MAAM,IAAI,MACR,yBAAyB,KAAKA,cAAc,WAAW,aACzD;EAGF,IAAI,KAAKW,gBAEP,KAAKE,sBAAsB,SAAS,KAAK,IACvC,KAAKA,sBAAsB,QAC3B,OAAO,SACT;EAGF,MAAM,EAAE,cAAc,KAAKb;EAC3B,MAAM,EAAE,eAAe,GAAG,aAAa,aAAa,eAAe,CAAC;EACpE,MAAM,qBACJ,eAAe,WACX,YACA,KAAK,IAAI,eAAe,YAAY,SAAS;EAEnD,MAAM,aAAa,OAAO;EAC1B,MAAM,YAAY,KAAK,IAAI,cAAc,UAAU;EACnD,MAAM,wBACJ,gBAAgB,KAAA,KAChB,eAAe,YACf,OAAO,YAAY,KACnB,aAAa,sBACb,OAAO,WAAW;EACpB,MAAM,uBACJ,OAAO,cAAc,MACpB,OAAO,oBAAoB,OAAO,KAAK,eAAe,cAAc,CAAC,KACpE;EACJ,MAAM,wBACJ,oBAAoB,OAAO,cAAc,KAAK,cAAc;EAC9D,MAAM,0BACJ,wBACA,gBAAgB,KAAA,KAChB,cAAc;EAChB,MAAM,oBACJ,OAAO,qBAAqB,CAAC,CAAC,YAAY,OAAO,OAAO,CAAC;EAC3D,KAAK6B,wBAAwB,CAAC;EAC9B,KAAKC,6BAA6B;EAClC,KAAKC,yBAAyB,CAAC;EAC/B,IAAI,mBAAmB;EACvB,IAAI,aAAa;QACV,MAAM,CAAC,YAAY,aAAa,mBACnC,IAAI,aAAa,WACf,mBAAmB,KAAK,IACtB,kBACA,KAAK,IAAI,UAAU,YAAY,CAAC,CAClC;EAAA;EAIN,MAAM,4BACJ,oBAAoB,eACnB,wBAAwB,OAAO,YAAY;EAC9C,IAAI,sBACF,KAAKjB,iBAAiB,UAAU;OAC3B;GACL,KAAKoB,2BAA2B,MAAM;GACtC,IAAI,gBAAgB,KAAA,KAAa,cAAc,WAC7C,KAAKpB,iBAAiB,SAAS;EAEnC;EAEA,IAAI,oBAAoB;EACxB,IAAI,yBAAyB,kBAAkB,kBAAkB,CAAC;EAClE,IAAI;EACJ,IAAI,8BAA8B;EAClC,IAAI,OAAO,uBACP,kBAAkB,kBAAkB,CAAC,KACrC;EACJ,IAAI,UAAU;EACd,MAAM,6BAAmD,IAAI,IAAI;EACjE,MAAM,sBAEU,4CAA4B,IAAI,IAAI,IAAI,KAAA;EACxD,IAAI,wBAAwB,KAAA,KAAa,CAAC,sBAAsB;GAC9D,MAAM,eAAe,KAAK,IACxB,mBAAmB,GACnB,WACA,kBACF;GACA,IAAI,eAAe,YAAY;IAC7B,KAAKA,iBAAiB,YAAY;IAClC,IAAI,gBAAgB;IACpB,IAAI,iBAAiB,KAAKC,YAAY,kBAAkB;IACxD,OAAO,gBAAgB,cAAc,iBAAiB;KACpD,MAAM,WAAW,KAAKC,gBAAgB,eAAe,cAAc;KACnE,iBAAiB,SAAS;KAC1B,oBAAoB,IAAI,eAAe,SAAS,cAAc;IAChE;IACA,KAAKD,YAAY,gBAAgB;GACnC;EACF;EAMA,IAAI,QAAQ,KAAKA,YAAY,SAAS;EACtC,OAAO,OAAO,qBAAsB;GAClC,MAAM,oBAAoB,uBACtB,KAAKA,YAAY,OAAO,KACxB,wBACE,KAAKoB,qBAAqB,OAAO,CAAC,IAClC,KAAA;GACN,IAAI,yBACF,KAAKpB,YAAY,QAAQ;GAG3B,MAAM,EAAE,gBAAgB,OAAO,cAAc,KAAKC,gBAChD,MACA,KACF;GACA,QAAQ;GAER,IAAI,QAAQ,WACV,WAAW,IAAI,MAAM,cAAc;QAEnC,qBAAqB,IAAI,MAAM,cAAc;GAG/C,IAAI,yBACF,KAAKD,YAAY,OAAO,KAAK;GAE/B,UACE,QAAQ,2BACP,wBAAwB,0BACzB,sBAAsB,KAAA,KACtB,MAAM,OAAO,iBAAiB;GAChC,IAAI,SAAS;IACX;IACA,MAAM,YAAY,kBAAkB;IACpC,IAAI,cAAc,KAAA,GAChB;IAEF,IAAI,UAAU,MAAM,oBAAoB;KACtC,sBAAsB,UAAU;KAChC,8BAA8B;KAC9B;IACF;IACA,IAAI,YAAoC,KAAKA,YAAY,UAAU;IACnE,IAAI,uBACF,KACE,IAAI,YAAY,OAAO,GACvB,aAAa,UAAU,IACvB,aACA;KACA,YAAY,KAAKoB,qBAAqB,SAAS;KAC/C,IAAI,cAAc,KAAA,GAChB;KAEF,KAAKpB,YAAY,aAAa;IAChC;IAEF,IAAI,cAAc,KAAA,GAAW;KAC3B,yBAAyB,UAAU;KACnC;IACF,OAAO;KACL,OAAO,UAAU;KACjB,QAAQ;KACR,yBAAyB,UAAU;IACrC;IACA,UAAU;IACV;GACF;GACA;EACF;EAEA,IAAI,yBACF,IAAI,OAAO,oBACT,KAAKA,YAAY,OAAO,KAAK;OAE7B,KAAKA,YAAY,QAAQ;EAI7B,IAAI,WAAW,yBAAyB,wBAAwB,KAAA,GAAW;GACzE,KAAK,IAAI,YAAY,OAAO,GAAG,aAAa,WAAW,aAAa;IAClE,MAAM,gBAAgB,KAAKoB,qBAAqB,SAAS;IACzD,IAAI,kBAAkB,KAAA,GACpB;IAEF,KAAKpB,YAAY,aAAa;GAChC;GACA,KAAKc,wBAAwB,CAAC;GAC9B,KAAKC,6BAA6B;GAClC,KAAKC,yBAAyB,CAAC;EACjC;EAEA,IAAI,wBAAwB,KAAA,KAAa,oBAAoB,OAAO,GAClE,KAAKR,iBAAiB,qBAAqB,KAAKb,UAAU;EAG5D,IAAI,wBAAwB,KAAA,GAC1B,KAAKsB,4BACH,qBACA,mBACA,2BACF;OACK,IAAI,CAAC,WAAW,OAAO,WAAW;GACvC,MAAM,iBACJ,yBAAyB,cAAc,YACnC,qBACA,aAAa,aAAa,CAAC,uBACzB,aACA;GACR,KAAKA,4BACH,gBACA,mBACA,iBACF;EACF;EAEA,OAAO;CACT;CAEA,mBAAmB,aAAiC;EAClD,KAAKpB,eAAe;EACpB,KAAKwB,oBAAoB,WAAW;CACtC;CAEA,yBAA+B;EAC7B,KAAKC,0BAA0B;EAC/B,IAAI,KAAKC,YACP;EAEF,KAAKA,aAAa;EAClB,KAAKC,YAAY;EACjB,KAAKC,YAAY;EACjB,KAAKjC,6BAA6B;EAClC,KAAKkC,+BAA+B,KAAA;EACpC,KAAKC,+BAA+B;EACpC,KAAKb,wBAAwB,CAAC;EAC9B,KAAKC,6BAA6B;EAClC,KAAKC,yBAAyB,CAAC;EAC/B,KAAKE,uBAAuB;CAC9B;CAEA,0BAAgC;EAC9B,IAAI,KAAKK,cAAc,KAAKC,WAC1B;EAEF,IAAI,KAAKd,QACP,QAAQ,IAAI,iDAAiD,EAC3D,OAAO,KAAKnB,iBACd,CAAC;EAEH,KAAKiC,YAAY;CACnB;CAEA,2BAAiC;EAC/B,IACE,KAAKD,cACL,CAAC,KAAKC,aACN,KAAKtC,aAAa,KAAA,KAClB,KAAKuC,YAAY,GAEjB;EAEF,IAAI,KAAKf,QACP,QAAQ,IAAI,kDAAkD,EAC5D,OAAO,KAAKnB,iBACd,CAAC;EAEH,KAAKiC,YAAY;EACjB,KAAKI,qBAAqB,KAAKrC,gBAAgB;CACjD;CAEA,iBAAuB;EACrB,IACE,KAAKL,aAAa,KAAA,KAClB,CAAC,sBAAsB,KAAKD,cAAc,UAAU,KACpD,KAAKE,aACF,mBAAmB,CAAC,CACpB,SAAS,KAAKF,cAAc,UAAU,GAEzC,KAAKC,WAAW,KAAKC,aAAa,YAChC,KAAKF,cAAc,UACrB;CAEJ;CAEA,yBAA+B;EAC7B,IAAI,KAAK4C,4BACP;EAEF,WAAW,iBAAiB,WAAW,KAAKC,UAAU;EACtD,KAAKD,6BAA6B;CACpC;CAEA,yBAA+B;EAC7B,IAAI,CAAC,KAAKA,4BACR;EAEF,WAAW,oBAAoB,WAAW,KAAKC,UAAU;EACzD,KAAKD,6BAA6B;CACpC;CAEA,qBAAqB,OAAqB;EAExC,WAAW,YAAY;GACrB,MAAM;GACN,aAAa,KAAKvC;GAClB;EACF,CAAC;CACH;CAEA,4BACE,WACA,mBACA,oBAAoB,GACd;EACN,IAAI,sBAAsB,KAAKL,cAAc,UAAU,GACrD;EAGF,MAAM,QAAQ,EAAE,KAAKM;EAErB,IAAI,KAAKmB,QACP,QAAQ,IAAI,oDAAoD;GAC9D;GACA;GACA;GACA;EACF,CAAC;EAGH,KAAKa,aAAa;EAClB,KAAKC,YAAY;EACjB,KAAKC,YAAY;EACjB,IAAI,KAAKjC,8BAA8B,GACrC,KAAK8B,0BAA0B,KAAK,IAClC,KAAKA,yBACL,KAAK9B,0BACP;EAEF,KAAKA,6BAA6B;EAClC,KAAKkC,+BAA+B;EACpC,KAAKC,+BAA+B;EACpC,KAAKI,uBAAuB;EAC5B,KAAKH,qBAAqB,KAAK;CACjC;CAEA,uBAAuB,SAAuB;EAC5C,IAAI,KAAK1C,aAAa,KAAA,KAAa,KAAKc,YAAY,SAAS,SAC3D;EAIF,IAAI,CAAC,KAAKuB,YAAY;GACpB,IAAI,KAAK/B,8BAA8B,GACrC,KAAKA,6BAA6B,KAAK,IACrC,KAAKA,4BACL,OACF;QAEA,KAAK8B,0BAA0B,KAAK,IAClC,KAAKA,yBACL,OACF;GAEF;EACF;EAEA,MAAM,QAAQ,EAAE,KAAK/B;EACrB,KAAKgC,aAAa;EAClB,KAAKC,YAAY;EACjB,KAAKC,YAAY,KAAKzB,YAAY,SAAS;EAC3C,KAAKR,6BAA6B;EAClC,KAAK8B,0BAA0B;EAC/B,KAAKI,+BAA+B,KAAA;EACpC,KAAKC,+BAA+B;EACpC,KAAKI,uBAAuB;EAC5B,KAAKH,qBAAqB,KAAK;CACjC;CAEA,gBACE,MACA,OACgE;EAChE,MAAM,WAAW,KAAK3C,cAAc,YAAY,IAAI;EACpD,IAAI,SAAS,SAAS,KAAKqB,wBAAwB;GACjD,QAAQ,KACN,gBAAgB,KAAK,0BAA0B,SAAS,QAC1D;GACA,KAAK0B,2BAA2B,MAAM,IAAI;GAC1C,OAAO;IAAE,gBAAgB,CAAC;KAAC;KAAG;KAAI;IAAQ,CAAC;IAAG;GAAM;EACtD;EACA,IACE,KAAK9C,aAAa,KAAA,KAClB,aAAa,MACb,SAAS,KAAK,MAAM,IACpB;GACA,KAAK8C,2BAA2B,MAAM,IAAI;GAC1C,OAAO;IAAE,gBAAgB,CAAC;KAAC;KAAG;KAAI;IAAQ,CAAC;IAAG;GAAM;EACtD;EACA,MAAM,SAAS,aACb,KAAK9C,UACL,KAAKyB,WACL,UACA,OACA,qBACA,KAAKf,cACP;EACA,KAAKoC,2BAA2B,MAAM,OAAO,oBAAoB;EACjE,OAAO;GACL,gBAAgB,OAAO;GACvB,OAAO,OAAO;EAChB;CACF;CAEA,2BACE,MACA,QACM;EACN,IAAI,KAAKpC,gBACP,KAAKE,sBAAsB,QAAQ;CAEvC;CAIA,2BAA2B,QAAkC;EAC3D,MAAM,cACJ,OAAO,sBACN,CAAC;GAAC,OAAO;GAAW,OAAO;GAAS,OAAO;EAAS,CAAC;EACxD,MAAM,kBAAkB,OAAO,YAAY;EAE3C,IAAI,mBADqB,KAAKE,YAAY,SAAS,iBACV;GACvC,KAAKc,wBAAwB,KAAKd;GAClC,KAAKe,6BAA6B;GAClC,KAAKf,cAAc,KAAKA,YAAY,MAAM,GAAG,eAAe;EAC9D,OAAO;GACL,KAAKe,6BAA6B;GAClC,KAAKD,wBAAwB,KAAKd,YAAY,MAAM,eAAe;GACnE,KAAKA,YAAY,SAAS,KAAK,IAC7B,KAAKA,YAAY,QACjB,eACF;EACF;EACA,KAAKgB,yBAAyB;CAChC;CAEA,qBAAqB,MAAsC;EACzD,IAAI,eAAe;EACnB,KACE,IAAI,QAAQ,KAAKA,uBAAuB,SAAS,GACjD,SAAS,GACT,SACA;GACA,MAAM,CAAC,WAAW,SAAS,aACzB,KAAKA,uBAAuB;GAC9B,IAAI,cAAc,GAChB;GAEF,IAAI,eAAe,SACjB,gBAAgB;QACX,IAAI,eAAe,WACxB,OAAO,KAAKhB,YAAY;EAE5B;EACA,OACE,KAAKc,sBACH,eAAe,KAAKC,+BACjB,KAAKf,YAAY;CAE1B;CAEA,iBAAiB,OAAe,YAA8B;EAC5D,MAAM,eAAe,KAAK,IACxB,KAAK,IAAI,GAAG,KAAK,GACjB,KAAKf,cAAc,SACrB;EACA,IAAI,KAAKe,YAAY,SAAS,gBAAgB,KAAKd,aAAa,KAAA,GAC9D,OAAO;EAET,MAAM,YAAY,eAAe,KAAA,IAAY,IAAI,YAAY,IAAI;EACjE,IAAI,OAAO,KAAKc,YAAY,SAAS;EACrC,IAAI,QAAQ,KAAKA,YAAY,SAAS;EACtC,OAAO,OAAO,cAAc;GAC1B,KAAKA,YAAY,QAAQ;GACzB,MAAM,WAAW,KAAKf,cAAc,YAAY,IAAI;GACpD,IACE,SAAS,UAAU,KAAKqB,0BACxB,aAAa,MACb,SAAS,KAAK,MAAM,IACpB;IACA,MAAM,SAAS,aACb,KAAKpB,UACL,KAAKyB,WACL,UACA,OACA,qBACA,KAAKf,gBACL,KACF;IACA,KAAKoC,2BAA2B,MAAM,OAAO,oBAAoB;IACjE,QAAQ,OAAO;GACjB,OACE,KAAKA,2BAA2B,MAAM,IAAI;GAE5C;GACA,KAAKhC,YAAY,QAAQ;GACzB,IACE,eAAe,KAAA,KACf,YAAY,IAAI,IAAI,YAAY,YAEhC;EAEJ;EACA,OAAO,QAAQ;CACjB;CAEA,oBAAoB,OAAqB;EACvC,IACE,KAAKuB,cACL,KAAKC,aACL,KAAKtC,aAAa,KAAA,KAClB,UAAU,KAAKK,kBAEf;EAGF,KAAKH,mBAAmB;EAGxB,MAAM,WAAW,KAAKW,iBAAiB,KAAKP,4BAA4B,CAAC;EACzE,IAAI,KAAK+B,cAAc,KAAKC,aAAa,UAAU,KAAKjC,kBACtD;EAEF,IAAI,UAAU;GACZ,KAAK,uBAAuB;GAC5B;EACF;EACA,KAAKkC,YAAY,KAAKzB,YAAY,SAAS;EAC3C,KAAK4B,qBAAqB,KAAK;CACjC;CAEA,oBAAoB,OAAe;EACjC,IACE,KAAKL,cACL,KAAKC,aACL,KAAKtC,aAAa,KAAA,KAClB,UAAU,KAAKK,kBAEf;EAGF,KAAKH,mBAAmB;EAExB,MAAM,IAAI,YAAY,IAAI;EAC1B,MAAM,wBAAQ,IAAI,IAAqC;EACvD,MAAM,aAAa,KAAKH,cAAc;EACtC,MAAM,oBAAoB,KAAKyC;EAE/B,IAAI,OAAO,KAAKD;EAChB,IAAI,QAAQ,KAAKzB,YAAY,SAAS;EACtC,IAAI,UAAU;EACd,IAAI,oBAAoB,KAAK2B;EAC7B,IAAI,yBAAyB,oBAAoB,kBAAkB,GAAG;EACtE,OAAO,OAAO,aAAc;GAC1B,KAAK3B,YAAY,QAAQ;GAEzB,MAAM,oBACJ,2BAA2B,KAAA,IACvB,KAAKoB,qBAAqB,OAAO,CAAC,IAClC,KAAA;GACN,MAAM,WAAW,KAAKnC,cAAc,YAAY,IAAI;GACpD,IAAI,SAAS,SAAS,KAAKqB,wBAAwB;IACjD,QAAQ,KACN,gBAAgB,KAAK,0BAA0B,SAAS,QAC1D;IACA,MAAM,IAAI,MAAM,CAAC;KAAC;KAAG;KAAI;IAAQ,CAAC,CAAC;IACnC,KAAK0B,2BAA2B,MAAM,IAAI;GAC5C,OAAO,IAAI,aAAa,MAAM,SAAS,KAAK,MAAM,IAAI;IACpD,MAAM,IAAI,MAAM,CAAC;KAAC;KAAG;KAAI;IAAQ,CAAC,CAAC;IACnC,KAAKA,2BAA2B,MAAM,IAAI;GAC5C,OAAO;IACL,MAAM,MAAM,aACV,KAAK9C,UACL,KAAKyB,WACL,UACA,OACA,qBACA,KAAKf,cACP;IACA,MAAM,IAAI,MAAM,IAAI,cAAc;IAClC,KAAKoC,2BAA2B,MAAM,IAAI,oBAAoB;IAC9D,QAAQ,IAAI;GACd;GAEA,KAAKhC,YAAY,OAAO,KAAK;GAC7B,UACE,2BAA2B,KAAA,KAC3B,QAAQ,0BACR,sBAAsB,KAAA,KACtB,MAAM,OAAO,iBAAiB;GAChC;GACA,IAAI,SAAS;IACX;IACA,MAAM,YAAY,oBAAoB;IACtC,IAAI,cAAc,KAAA,GAChB;IAEF,yBAAyB,UAAU;IACnC,IAAI,KAAKA,YAAY,UAAU,QAAQ,KAAA,GACrC,UAAU;SACL;KACL,OAAO,UAAU;KACjB,QAAQ,KAAKA,YAAY,SAAS;KAClC,UAAU;KACV;IACF;GACF;GAGA,IAAI,YAAY,IAAI,IAAI,IAAI,GAC1B;EAEJ;EAEA,KAAKQ,iBAAiB,OAAO,KAAKb,UAAU;EAC5C,IAAI,KAAK4B,cAAc,KAAKC,aAAa,UAAU,KAAKjC,kBACtD;EAGF,IAAI,WAAW,QAAQ,YAAY;GACjC,MAAM,yBAAyB,KAAK+B;GACpC,KAAK,uBAAuB;GAC5B,IAAI,0BAA0B,GAC5B,KAAKjC,uBAAuB,sBAAsB;GAEpD;EACF;EAEA,KAAKoC,YAAY;EACjB,KAAKE,+BAA+B;EACpC,KAAKC,qBAAqB,KAAK;CACjC;AACF;AAEA,SAAS,aACP,SACA,UACA,UACA,YACA,WACA,8BAA8B,MAC9B,gBAAgB,MAKhB;CACA,MAAM,SAAS,QAAQ,cAAc,UAAU,YAAY,SAAS;CACpE,IAAI,OAAO,cACT,QAAQ,KACN,oDAAoD,SAAS,UAAU,GAAG,GAAG,GAC/E;CAEF,MAAM,YAAY,OAAO;CACzB,MAAM,eAAe,UAAU,SAAS;CACxC,MAAM,iBAA0C,CAAC;CACjD,MAAM,uBAA2C,CAAC;CAClD,IAAI,CAAC,iBAAiB,CAAC,6BACrB,OAAO;EACL,WAAW,OAAO;EAClB;EACA;CACF;CAEF,KAAK,IAAI,IAAI,GAAG,IAAI,cAAc,KAAK;EACrC,MAAM,SAAS,UAAU,IAAI;EAC7B,MAAM,aACJ,IAAI,IAAI,eAAe,UAAU,IAAI,IAAI,KAAK,SAAS;EACzD,IAAI,WAAW,YAEb;EAEF,MAAM,WAAW,UAAU,IAAI,IAAI;EACnC,IAAI,eAAe;GACjB,MAAM,KAAK,qBAAqB,cAAc,QAAQ;GACtD,eAAe,KAAK;IAClB;IACA,SAAS;IACT,SAAS,MAAM,QAAQ,UAAU;GACnC,CAAC;EACH;EACA,IACE,+BACA,qBAAqB,aAAa,QAAQ,IAAI,GAE9C,qBAAqB,KAAK,CAAC,QAAQ,UAAU,CAAC;CAElD;CACA,OAAO;EACL,WAAW,OAAO;EAClB;EACA;CACF;AACF;AAEA,SAAgB,iBACd,QAC0B;CAC1B,OAAO,OAAO,KAAK,CAAC,MAAM,IAAI,iBAAiB;EAC7C,IAAI,SAAS,KAAK,OAAO,IAAI;GAC3B,IAAI,gBAAgB,IAClB,OAAO,EAAE,IAAI;GAEf,OAAO;EACT;EACA,OAAO,EAAE,QAAQ;GACf,SAAS,EACP,MAAM,KAAK,SAAS,EACtB;GACA,OAAO,SAAS,GAAG;GACN;EACf,CAAC;CACH,CAAC;AACH;AAGA,SAAS,sBAAsB,YAA6B;CAC1D,OAAO,eAAe,UAAU,eAAe;AACjD"}
|
|
1
|
+
{"version":3,"file":"tokenizer.js","names":["#isCleanedUp","#textDocument","#grammar","#highlighter","#ensureActiveTheme","#scheduleStatePrebuild","#tokenizerId","#backgroundJobId","#backgroundPrebuildEndLine","#backgroundPrebuild","#backgroundTokenize","#themeType","#matchBrackets","#ensureGrammar","#bracketIgnoredRanges","#buildStateStack","#stateStack","#tokenizeLineAt","#mediaQueryList","#resolveSystemThemeType","#emitThemeChange","#disposes","#tokenizeMaxLineLength","#setStyle","#onDeferTokenize","#onThemeChange","#debug","#colorMap","#setTheme","#themeName","#comparisonStateStack","#comparisonStateStackStart","#comparisonLineChanges","#scheduleBackgroundTokenize","#detachMessageListener","#shiftComparisonStateStack","#getPreviousEndState","#prebuildStateStack","#pendingPrebuildEndLine","#isStopped","#isPaused","#lastLine","#backgroundChangedLineRanges","#backgroundChangedRangeIndex","#postTokenizeMessage","#isMessageListenerAttached","#onMessage","#attachMessageListener","#cacheBracketIgnoredRanges"],"sources":["../../src/editor/tokenizer.ts"],"sourcesContent":["import { colorUtils } from '@pierre/theming/color';\nimport {\n EncodedTokenMetadata,\n type IGrammar,\n INITIAL,\n type StateStack,\n} from 'shiki/textmate';\n\nimport { DEFAULT_THEMES } from '../constants';\nimport type {\n BaseCodeOptions,\n DiffsHighlighter,\n HighlightedToken,\n RenderRange,\n} from '../types';\nimport type { TextDocument, TextDocumentChange } from './textDocument';\nimport { addEventListener, debounce, h } from './utils';\n\nconst TOKENIZE_TIME_LIMIT = 500;\nlet nextTokenizerId = 0;\n\nexport interface EditorTokenizerProps {\n highlighter: DiffsHighlighter;\n textDocument: TextDocument<unknown>;\n codeOptions: BaseCodeOptions;\n matchBrackets?: boolean;\n setStyle: (style: string) => void;\n onDeferTokenize: (\n lines: Map<number, Array<HighlightedToken>>,\n themeType: 'dark' | 'light'\n ) => void;\n // Fired after the active theme (light/dark mode or theme name) changes and the\n // new theme CSS has been applied. Lets the editor recompute overlay pieces\n // that captured a resolved theme color, e.g. rounded selection corner masks.\n onThemeChange?: () => void;\n __debug?: boolean;\n}\n\n/** Stoppable code tokenizer for the editor */\nexport class EditorTokenizer {\n #highlighter: DiffsHighlighter;\n #grammar: IGrammar | undefined;\n #mediaQueryList: MediaQueryList;\n #themeType: 'light' | 'dark' = 'dark';\n // The resolved name of the theme currently applied to the editor (e.g.\n // `github-light`). Tracked so `syncTheme` can detect a host-driven theme swap\n // even when the light/dark mode itself is unchanged.\n #themeName = '';\n #colorMap: string[];\n #textDocument: TextDocument<unknown>;\n #tokenizeMaxLineLength: number;\n #setStyle: EditorTokenizerProps['setStyle'];\n #onDeferTokenize: EditorTokenizerProps['onDeferTokenize'];\n #onThemeChange: EditorTokenizerProps['onThemeChange'];\n #matchBrackets: boolean;\n #debug: boolean;\n #disposes?: (() => void)[];\n #isCleanedUp = false;\n\n // state\n #stateStack: StateStack[] = [INITIAL]; // cached state stack by line index\n #comparisonStateStack: StateStack[] = [];\n #comparisonStateStackStart = 0;\n #comparisonLineChanges: NonNullable<\n TextDocumentChange['changedLineChanges']\n > = [];\n #lastLine: number = -1;\n #isStopped: boolean = true;\n #isPaused: boolean = false;\n #backgroundJobId: number = 0;\n #tokenizerId = ++nextTokenizerId;\n #backgroundPrebuildEndLine = -1;\n #pendingPrebuildEndLine = -1;\n #backgroundChangedLineRanges: readonly [number, number][] | undefined;\n #backgroundChangedRangeIndex: number = 0;\n #bracketIgnoredRanges: ([number, number][] | null | undefined)[] = [];\n #isMessageListenerAttached: boolean = false;\n\n #prebuildStateStack = debounce(async (renderRange?: RenderRange) => {\n // Drop work scheduled before cleanUp; a late timer must not call setTheme\n // on a highlighter that tests (or hosts) have already disposed.\n if (this.#isCleanedUp) {\n return;\n }\n const { startingLine = 0, totalLines = Infinity } = renderRange ?? {};\n const endLine = Math.min(\n totalLines === Infinity ? Infinity : startingLine + totalLines,\n this.#textDocument.lineCount\n );\n if (\n this.#grammar === undefined &&\n !isGrammarlessLanguage(this.#textDocument.languageId)\n ) {\n await this.#highlighter.loadLanguage(this.#textDocument.languageId);\n if (this.#isCleanedUp) {\n return;\n }\n this.#grammar = this.#highlighter.getLanguage(\n this.#textDocument.languageId\n );\n }\n this.#ensureActiveTheme();\n this.#scheduleStatePrebuild(endLine);\n }, 500);\n\n #onMessage = ({ data }: MessageEvent<unknown>) => {\n if (typeof data !== 'object' || data === null) {\n return;\n }\n const { type, tokenizerId, jobId } = data as {\n type?: unknown;\n tokenizerId?: unknown;\n jobId?: unknown;\n };\n if (\n type === 'tokenize' &&\n tokenizerId === this.#tokenizerId &&\n typeof jobId === 'number' &&\n jobId === this.#backgroundJobId\n ) {\n if (this.#backgroundPrebuildEndLine >= 0) {\n this.#backgroundPrebuild(jobId);\n } else {\n this.#backgroundTokenize(jobId);\n }\n }\n };\n\n get themeType(): 'light' | 'dark' {\n return this.#themeType;\n }\n\n getStringCommentRegexpRangesInLine(\n lineIndex: number\n ): [number, number][] | null {\n if (\n !this.#matchBrackets ||\n lineIndex < 0 ||\n lineIndex >= this.#textDocument.lineCount\n ) {\n return null;\n }\n this.#ensureGrammar();\n if (this.#grammar === undefined) {\n return null;\n }\n if (this.#bracketIgnoredRanges[lineIndex] === undefined) {\n this.#buildStateStack(lineIndex);\n const state = this.#stateStack[lineIndex] ?? INITIAL;\n const result = this.#tokenizeLineAt(lineIndex, state);\n this.#stateStack[lineIndex + 1] = result.state;\n }\n return this.#bracketIgnoredRanges[lineIndex] ?? null;\n }\n\n constructor({\n codeOptions,\n highlighter,\n textDocument,\n matchBrackets,\n setStyle,\n onDeferTokenize,\n onThemeChange,\n __debug,\n }: EditorTokenizerProps) {\n const {\n themeType: themeTypeOption = 'system',\n theme = DEFAULT_THEMES,\n tokenizeMaxLineLength = 1000,\n } = codeOptions;\n this.#mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n let themeType: 'light' | 'dark' | undefined;\n if (themeTypeOption === 'system') {\n // Prefer the host document's computed color-scheme (page CSS/classes can\n // force light/dark while the OS media query differs) over matchMedia.\n themeType = this.#resolveSystemThemeType();\n } else {\n themeType = themeTypeOption;\n }\n // Only track the document/system color scheme when the surface follows it\n // (`themeType: 'system'`). A surface pinned to an explicit 'dark'/'light'\n // theme keeps that theme regardless of the page, so re-tokenizing after an\n // edit must emit the same `--diffs-token-{theme}` variable the SSR markup\n // used; otherwise the edited tokens fall back to the default foreground.\n if (typeof theme !== 'string' && themeTypeOption === 'system') {\n const observer = new MutationObserver((mutations) => {\n for (const { type, attributeName } of mutations) {\n if (\n type === 'attributes' &&\n attributeName !== null &&\n (attributeName === 'class' || attributeName.startsWith('data-'))\n ) {\n const themeType = this.#resolveSystemThemeType();\n this.#emitThemeChange(theme[themeType], themeType);\n break;\n }\n }\n });\n observer.observe(document.documentElement, { attributes: true });\n observer.observe(document.body, { attributes: true });\n this.#disposes = [\n addEventListener(this.#mediaQueryList, 'change', () => {\n // Re-read computed color-scheme so a host-forced scheme still wins\n // when the OS preference changes underneath it.\n const themeType = this.#resolveSystemThemeType();\n this.#emitThemeChange(theme[themeType], themeType);\n }),\n () => observer.disconnect(),\n ];\n }\n this.#highlighter = highlighter;\n this.#textDocument = textDocument;\n this.#tokenizeMaxLineLength = tokenizeMaxLineLength;\n this.#setStyle = setStyle;\n this.#onDeferTokenize = onDeferTokenize;\n this.#onThemeChange = onThemeChange;\n this.#matchBrackets = matchBrackets !== false;\n this.#debug = __debug ?? false;\n this.#ensureGrammar();\n this.#colorMap = [];\n this.#setTheme(\n typeof theme === 'string' ? theme : theme[themeType],\n typeof theme === 'string' ? undefined : themeType\n );\n }\n\n // By default, diffs components support dual themes, but the tokenizer only renders\n // the preferred theme. When the theme type is changed, the tokenizer will re-tokenize the document.\n #emitThemeChange(themeName: string, themeType: 'light' | 'dark') {\n if (themeName === this.#themeName && themeType === this.#themeType) {\n return;\n }\n this.#setTheme(themeName, themeType);\n this.stopBackgroundTokenize();\n this.#stateStack = [INITIAL];\n this.#comparisonStateStack = [];\n this.#comparisonStateStackStart = 0;\n this.#comparisonLineChanges = [];\n if (this.#grammar !== undefined && this.#textDocument.lineCount > 0) {\n this.#scheduleBackgroundTokenize(0);\n }\n // The theme CSS is now applied, so overlay pieces that captured a resolved\n // theme color (e.g. rounded selection corner masks) can recompute against\n // the new colors instead of keeping the old light/dark value.\n this.#onThemeChange?.();\n }\n\n // Respect an explicit host color-scheme override. When the computed value\n // advertises support for both schemes, let the OS preference choose one.\n #resolveSystemThemeType(): 'light' | 'dark' {\n try {\n if (\n typeof document !== 'undefined' &&\n typeof getComputedStyle === 'function' &&\n document.body != null\n ) {\n const colorSchemes = getComputedStyle(document.body).colorScheme.split(\n /\\s+/\n );\n const supportsDark = colorSchemes.includes('dark');\n const supportsLight = colorSchemes.includes('light');\n // A single host-forced scheme wins. `light dark` only declares support\n // for both schemes, so the media query still selects the active one.\n if (supportsDark !== supportsLight) {\n return supportsDark ? 'dark' : 'light';\n }\n }\n } catch {\n // jsdom and similar harnesses may lack getComputedStyle or throw; fall\n // through to the OS media query.\n }\n return this.#mediaQueryList.matches ? 'dark' : 'light';\n }\n\n // Re-apply the editor's theme from the surface's current code options. Edit\n // mode reuses a single tokenizer across re-renders, so when the host swaps the\n // theme — a theme picker, a light/dark toggle, etc. — we must recompute the\n // active theme and re-tokenize. Without this the editor keeps rendering the\n // theme it captured when it first attached (stale line-highlight background\n // and token colors). System-driven changes are still handled by the\n // observers wired up in the constructor; this covers explicit `themeType`/\n // `theme` option changes that those observers don't see.\n syncTheme(codeOptions: BaseCodeOptions): void {\n const { themeType = 'system', theme = DEFAULT_THEMES } = codeOptions;\n // A single pinned theme does not follow the themeType option or system\n // scheme flips; its own classification stays authoritative.\n if (typeof theme === 'string') {\n const pinnedThemeType = this.#highlighter.getTheme(theme).type;\n if (theme === this.#themeName && pinnedThemeType === this.#themeType) {\n return;\n }\n this.#emitThemeChange(theme, pinnedThemeType);\n return;\n }\n const nextThemeType =\n themeType === 'system' ? this.#resolveSystemThemeType() : themeType;\n const nextThemeName = theme[nextThemeType];\n if (\n nextThemeType === this.#themeType &&\n nextThemeName === this.#themeName\n ) {\n return;\n }\n this.#emitThemeChange(nextThemeName, nextThemeType);\n }\n\n #setTheme(themeName: string, themeType?: 'light' | 'dark') {\n const { theme, colorMap } = this.#highlighter.setTheme(themeName);\n const { colors = {} } = this.#highlighter.getTheme(themeName);\n const selectionBackground = colors['editor.selectionBackground'];\n const themeLineHighlightBackground =\n colors['editor.lineHighlightBackground'];\n const lineHighlightBackground =\n themeLineHighlightBackground != null &&\n themeLineHighlightBackground.trim() !== '' &&\n !colorUtils.isFullyTransparent(themeLineHighlightBackground)\n ? themeLineHighlightBackground\n : undefined;\n // A usable theme background opts into the semantic active-line mix.\n // Missing backgrounds retain the resolved row color and rely on a border.\n const lineHighlightBorder =\n colors['editor.lineHighlightBorder'] ??\n (lineHighlightBackground == null\n ? 'color-mix(in lab, var(--diffs-bg) 70%, var(--diffs-fg))'\n : 'transparent');\n const activeLineSourceMix =\n lineHighlightBackground == null ? '100%' : '85%';\n const cursorForeground = colors['editorCursor.foreground'];\n const findMatchBackground = colors['editor.findMatchBackground'];\n const findMatchHighlightBackground =\n colors['editor.findMatchHighlightBackground'];\n const bracketMatchBackground = colors['editorBracketMatch.background'];\n const bracketMatchBorder = colors['editorBracketMatch.border'];\n const hintForeground = colors['editorHint.foreground'];\n const infoForeground = colors['editorInfo.foreground'];\n const warningForeground = colors['editorWarning.foreground'];\n const errorForeground = colors['editorError.foreground'];\n this.#setStyle(`:host {\n --diffs-editor-selection-bg: ${selectionBackground ?? 'var(--diffs-line-bg)'};\n --diffs-editor-line-highlight-border: ${lineHighlightBorder};\n --diffs-editor-active-line-source-mix: ${activeLineSourceMix};\n --diffs-editor-match-bg: ${findMatchBackground ?? 'initial'};\n --diffs-editor-match-highlight-bg: ${findMatchHighlightBackground ?? 'initial'};\n --diffs-editor-bracket-match-bg: ${bracketMatchBackground ?? 'initial'};\n --diffs-editor-bracket-match-border: ${bracketMatchBorder ?? 'initial'};\n --diffs-editor-cursor-fg: ${cursorForeground ?? 'initial'};\n --diffs-editor-hint-fg: ${hintForeground ?? 'initial'};\n --diffs-editor-info-fg: ${infoForeground ?? 'initial'};\n --diffs-editor-warning-fg: ${warningForeground ?? 'initial'};\n --diffs-editor-error-fg: ${errorForeground ?? 'initial'};\n }`);\n this.#themeName = themeName;\n this.#themeType = themeType ?? theme.type;\n this.#colorMap = colorMap;\n }\n\n // The shared highlighter is also used for dual-theme SSR (`themes: {dark,light}`),\n // which leaves its active theme on whichever pass finished last (usually light).\n // The tokenizer caches a single-theme colorMap from construction; if we tokenize\n // without re-activating that theme, grammar color indices are looked up in the\n // wrong map — property names resolve to a near-foreground gray while types and\n // comments (stable across maps) still look correct. Re-apply before every\n // tokenize path so a first edit after load matches a later file-switch re-attach.\n #ensureActiveTheme(): void {\n if (this.#themeName === '') {\n return;\n }\n const { colorMap } = this.#highlighter.setTheme(this.#themeName);\n this.#colorMap = colorMap;\n }\n\n cleanUp(): void {\n this.#isCleanedUp = true;\n this.stopBackgroundTokenize();\n this.#detachMessageListener();\n this.#disposes?.forEach((dispose) => dispose());\n this.#disposes = undefined;\n }\n\n // to use `tokenize`, call `prebuildStateStackMap` first to prebuild\n // the state stack map for the given render range.\n tokenize(\n change: TextDocumentChange,\n renderRange?: RenderRange,\n hostRealignsRows = false\n ): Map<number, Array<HighlightedToken>> {\n this.#ensureGrammar();\n this.#ensureActiveTheme();\n if (\n this.#grammar === undefined &&\n !isGrammarlessLanguage(this.#textDocument.languageId)\n ) {\n throw new Error(\n `Grammar for language \"${this.#textDocument.languageId}\" not loaded`\n );\n }\n\n const { lineCount } = this.#textDocument;\n const { startingLine = 0, totalLines = Infinity } = renderRange ?? {};\n const renderRangeEndLine =\n totalLines === Infinity\n ? lineCount\n : Math.min(startingLine + totalLines, lineCount);\n\n const dirtyStart = change.startLine;\n const viewStart = Math.max(startingLine, dirtyStart);\n const crossesRenderRangeEnd =\n renderRange !== undefined &&\n totalLines !== Infinity &&\n change.lineDelta > 0 &&\n dirtyStart < renderRangeEndLine &&\n change.endLine >= renderRangeEndLine;\n const canReuseCachedStates =\n change.lineDelta === 0 &&\n (change.changedLineChanges?.every(([, , lineDelta]) => lineDelta === 0) ??\n true);\n if (this.#matchBrackets && !canReuseCachedStates) {\n // Structural edits shift cache indexes, so only the untouched prefix is\n // safe. Same-line edits overwrite every range they re-tokenize and can\n // retain the untouched suffix once grammar state reconverges.\n this.#bracketIgnoredRanges.length = Math.min(\n this.#bracketIgnoredRanges.length,\n change.startLine\n );\n }\n const canReuseShiftedStates =\n hostRealignsRows && change.lineDelta !== 0 && dirtyStart >= startingLine;\n const canCacheTokenizedStates =\n canReuseCachedStates ||\n renderRange === undefined ||\n dirtyStart >= viewStart;\n const changedLineRanges: readonly [number, number][] =\n change.changedLineRanges ?? [[dirtyStart, change.endLine]];\n this.#comparisonStateStack = [];\n this.#comparisonStateStackStart = 0;\n this.#comparisonLineChanges = [];\n let offscreenSyncEnd = -1;\n if (dirtyStart < viewStart) {\n for (const [rangeStart, rangeEnd] of changedLineRanges) {\n if (rangeStart < viewStart) {\n offscreenSyncEnd = Math.max(\n offscreenSyncEnd,\n Math.min(rangeEnd, viewStart - 1)\n );\n }\n }\n }\n const shouldFlushOffscreenLines =\n offscreenSyncEnd >= dirtyStart &&\n (canReuseCachedStates || change.lineDelta < 0);\n if (canReuseCachedStates) {\n this.#buildStateStack(dirtyStart);\n } else {\n this.#shiftComparisonStateStack(change);\n if (renderRange === undefined || dirtyStart >= viewStart) {\n this.#buildStateStack(viewStart);\n }\n }\n\n let changedRangeIndex = 0;\n let currentChangedRangeEnd = changedLineRanges[changedRangeIndex][1];\n let backgroundStartLine: number | undefined;\n let backgroundChangedRangeIndex = 0;\n let line = canReuseCachedStates\n ? changedLineRanges[changedRangeIndex][0]\n : viewStart;\n let settled = false;\n const dirtyLines: Map<number, Array<HighlightedToken>> = new Map();\n const offscreenDirtyLines:\n | Map<number, Array<HighlightedToken>>\n | undefined = shouldFlushOffscreenLines ? new Map() : undefined;\n if (offscreenDirtyLines !== undefined && !canReuseCachedStates) {\n const offscreenEnd = Math.min(\n offscreenSyncEnd + 1,\n viewStart,\n renderRangeEndLine\n );\n if (offscreenEnd > dirtyStart) {\n this.#buildStateStack(offscreenEnd);\n let offscreenLine = dirtyStart;\n let offscreenState = this.#stateStack[offscreenLine] ?? INITIAL;\n for (; offscreenLine < offscreenEnd; offscreenLine++) {\n const resolved = this.#tokenizeLineAt(offscreenLine, offscreenState);\n offscreenState = resolved.state;\n offscreenDirtyLines.set(offscreenLine, resolved.resolvedTokens);\n }\n this.#stateStack[offscreenEnd] = offscreenState;\n }\n }\n // Seed the loop's grammar state after the offscreen flush, not before it.\n // When a delete's removed lines reach the viewport's first line, the flush\n // rebuilds the cached state up to `line`; reading it earlier would capture\n // the truncated INITIAL state and color the viewport as if outside an open\n // construct (block comment, template literal) it is actually inside.\n let state = this.#stateStack[line] ?? INITIAL;\n for (; line < renderRangeEndLine; ) {\n const previousNextState = canReuseCachedStates\n ? this.#stateStack[line + 1]\n : canReuseShiftedStates\n ? this.#getPreviousEndState(line + 1)\n : undefined;\n if (canCacheTokenizedStates) {\n this.#stateStack[line] = state;\n }\n\n const { resolvedTokens, state: nextState } = this.#tokenizeLineAt(\n line,\n state\n );\n state = nextState;\n\n if (line >= viewStart) {\n dirtyLines.set(line, resolvedTokens);\n } else {\n offscreenDirtyLines?.set(line, resolvedTokens);\n }\n\n if (canCacheTokenizedStates) {\n this.#stateStack[line + 1] = state;\n }\n settled =\n line >= currentChangedRangeEnd &&\n (canReuseCachedStates || canReuseShiftedStates) &&\n previousNextState !== undefined &&\n state.equals(previousNextState);\n if (settled) {\n changedRangeIndex++;\n const nextRange = changedLineRanges[changedRangeIndex];\n if (nextRange === undefined) {\n break;\n }\n if (nextRange[0] >= renderRangeEndLine) {\n backgroundStartLine = nextRange[0];\n backgroundChangedRangeIndex = changedRangeIndex;\n break;\n }\n let nextState: StateStack | undefined = this.#stateStack[nextRange[0]];\n if (canReuseShiftedStates) {\n for (\n let stateLine = line + 2;\n stateLine <= nextRange[0];\n stateLine++\n ) {\n nextState = this.#getPreviousEndState(stateLine);\n if (nextState === undefined) {\n break;\n }\n this.#stateStack[stateLine] = nextState;\n }\n }\n if (nextState === undefined) {\n currentChangedRangeEnd = nextRange[1];\n line++;\n } else {\n line = nextRange[0];\n state = nextState;\n currentChangedRangeEnd = nextRange[1];\n }\n settled = false;\n continue;\n }\n line++;\n }\n\n if (canCacheTokenizedStates) {\n if (line < renderRangeEndLine) {\n this.#stateStack[line + 1] = state;\n } else {\n this.#stateStack[line] = state;\n }\n }\n\n if (settled && canReuseShiftedStates && backgroundStartLine === undefined) {\n for (let stateLine = line + 2; stateLine <= lineCount; stateLine++) {\n const previousState = this.#getPreviousEndState(stateLine);\n if (previousState === undefined) {\n break;\n }\n this.#stateStack[stateLine] = previousState;\n }\n this.#comparisonStateStack = [];\n this.#comparisonStateStackStart = 0;\n this.#comparisonLineChanges = [];\n }\n\n if (offscreenDirtyLines !== undefined && offscreenDirtyLines.size > 0) {\n this.#onDeferTokenize(offscreenDirtyLines, this.#themeType);\n }\n\n if (backgroundStartLine !== undefined) {\n if (this.#matchBrackets && canReuseCachedStates) {\n this.#bracketIgnoredRanges.length = Math.min(\n this.#bracketIgnoredRanges.length,\n backgroundStartLine\n );\n }\n this.#scheduleBackgroundTokenize(\n backgroundStartLine,\n changedLineRanges,\n backgroundChangedRangeIndex\n );\n } else if (!settled && line < lineCount) {\n const backgroundLine =\n crossesRenderRangeEnd && dirtyStart >= viewStart\n ? renderRangeEndLine\n : dirtyStart < viewStart && !canReuseCachedStates\n ? dirtyStart\n : line;\n if (this.#matchBrackets && canReuseCachedStates) {\n this.#bracketIgnoredRanges.length = Math.min(\n this.#bracketIgnoredRanges.length,\n backgroundLine\n );\n }\n this.#scheduleBackgroundTokenize(\n backgroundLine,\n changedLineRanges,\n changedRangeIndex\n );\n }\n\n return dirtyLines;\n }\n\n prebuildStateStack(renderRange?: RenderRange): void {\n this.#ensureGrammar();\n this.#prebuildStateStack(renderRange);\n }\n\n stopBackgroundTokenize(): void {\n this.#pendingPrebuildEndLine = -1;\n if (this.#isStopped) {\n return;\n }\n this.#isStopped = true;\n this.#isPaused = false;\n this.#lastLine = -1;\n this.#backgroundPrebuildEndLine = -1;\n this.#backgroundChangedLineRanges = undefined;\n this.#backgroundChangedRangeIndex = 0;\n this.#comparisonStateStack = [];\n this.#comparisonStateStackStart = 0;\n this.#comparisonLineChanges = [];\n this.#detachMessageListener();\n }\n\n pauseBackgroundTokenize(): void {\n if (this.#isStopped || this.#isPaused) {\n return;\n }\n if (this.#debug) {\n console.log('[diffs/editor] background tokenization paused', {\n jobId: this.#backgroundJobId,\n });\n }\n this.#isPaused = true;\n }\n\n resumeBackgroundTokenize(): void {\n if (\n this.#isStopped ||\n !this.#isPaused ||\n this.#grammar === undefined ||\n this.#lastLine < 0\n ) {\n return;\n }\n if (this.#debug) {\n console.log('[diffs/editor] background tokenization resumed', {\n jobId: this.#backgroundJobId,\n });\n }\n this.#isPaused = false;\n this.#postTokenizeMessage(this.#backgroundJobId);\n }\n\n #ensureGrammar(): void {\n if (\n this.#grammar === undefined &&\n !isGrammarlessLanguage(this.#textDocument.languageId) &&\n this.#highlighter\n .getLoadedLanguages()\n .includes(this.#textDocument.languageId)\n ) {\n this.#grammar = this.#highlighter.getLanguage(\n this.#textDocument.languageId\n );\n }\n }\n\n #attachMessageListener(): void {\n if (this.#isMessageListenerAttached) {\n return;\n }\n globalThis.addEventListener('message', this.#onMessage);\n this.#isMessageListenerAttached = true;\n }\n\n #detachMessageListener(): void {\n if (!this.#isMessageListenerAttached) {\n return;\n }\n globalThis.removeEventListener('message', this.#onMessage);\n this.#isMessageListenerAttached = false;\n }\n\n #postTokenizeMessage(jobId: number): void {\n // use `postMessage` instead of `setTimeout(fn, 0)` to avoid 4ms delay\n globalThis.postMessage({\n type: 'tokenize',\n tokenizerId: this.#tokenizerId,\n jobId,\n });\n }\n\n #scheduleBackgroundTokenize(\n startLine: number,\n changedLineRanges?: readonly [number, number][],\n changedRangeIndex = 0\n ): void {\n if (isGrammarlessLanguage(this.#textDocument.languageId)) {\n return;\n }\n\n const jobId = ++this.#backgroundJobId;\n\n if (this.#debug) {\n console.log('[diffs/editor] background tokenization scheduled', {\n jobId,\n startLine,\n changedLineRanges,\n changedRangeIndex,\n });\n }\n\n this.#isStopped = false;\n this.#isPaused = false;\n this.#lastLine = startLine;\n if (this.#backgroundPrebuildEndLine >= 0) {\n this.#pendingPrebuildEndLine = Math.max(\n this.#pendingPrebuildEndLine,\n this.#backgroundPrebuildEndLine\n );\n }\n this.#backgroundPrebuildEndLine = -1;\n this.#backgroundChangedLineRanges = changedLineRanges;\n this.#backgroundChangedRangeIndex = changedRangeIndex;\n this.#attachMessageListener();\n this.#postTokenizeMessage(jobId);\n }\n\n #scheduleStatePrebuild(endLine: number): void {\n if (this.#grammar === undefined || this.#stateStack.length > endLine) {\n return;\n }\n // Extend an active prebuild, or retain the target until the foreground\n // edit job reconverges and releases the state cache.\n if (!this.#isStopped) {\n if (this.#backgroundPrebuildEndLine >= 0) {\n this.#backgroundPrebuildEndLine = Math.max(\n this.#backgroundPrebuildEndLine,\n endLine\n );\n } else {\n this.#pendingPrebuildEndLine = Math.max(\n this.#pendingPrebuildEndLine,\n endLine\n );\n }\n return;\n }\n\n const jobId = ++this.#backgroundJobId;\n this.#isStopped = false;\n this.#isPaused = false;\n this.#lastLine = this.#stateStack.length - 1;\n this.#backgroundPrebuildEndLine = endLine;\n this.#pendingPrebuildEndLine = -1;\n this.#backgroundChangedLineRanges = undefined;\n this.#backgroundChangedRangeIndex = 0;\n this.#attachMessageListener();\n this.#postTokenizeMessage(jobId);\n }\n\n #tokenizeLineAt(\n line: number,\n state: StateStack\n ): { resolvedTokens: Array<HighlightedToken>; state: StateStack } {\n const lineText = this.#textDocument.getLineText(line);\n if (lineText.length > this.#tokenizeMaxLineLength) {\n console.warn(\n `[diffs] Line(${line}) too long to tokenize: ${lineText.length}`\n );\n this.#cacheBracketIgnoredRanges(line, null);\n return { resolvedTokens: [[0, '', lineText]], state };\n }\n if (\n this.#grammar === undefined ||\n lineText === '' ||\n lineText.trim() === ''\n ) {\n this.#cacheBracketIgnoredRanges(line, null);\n return { resolvedTokens: [[0, '', lineText]], state };\n }\n const result = tokenizeLine(\n this.#grammar,\n this.#colorMap,\n lineText,\n state,\n TOKENIZE_TIME_LIMIT,\n this.#matchBrackets\n );\n this.#cacheBracketIgnoredRanges(line, result.bracketIgnoredRanges);\n return {\n resolvedTokens: result.resolvedTokens,\n state: result.ruleStack,\n };\n }\n\n #cacheBracketIgnoredRanges(\n line: number,\n ranges: [number, number][] | null\n ): void {\n if (this.#matchBrackets) {\n this.#bracketIgnoredRanges[line] = ranges;\n }\n }\n\n // Preserve old end states as comparison-only sentinels, copying whichever\n // side of the edit is smaller. Index shifts are resolved lazily on lookup.\n #shiftComparisonStateStack(change: TextDocumentChange): void {\n const lineChanges =\n change.changedLineChanges ??\n ([[change.startLine, change.endLine, change.lineDelta]] as const);\n const comparisonStart = change.startLine + 1;\n const comparisonLength = this.#stateStack.length - comparisonStart;\n if (comparisonStart <= comparisonLength) {\n this.#comparisonStateStack = this.#stateStack;\n this.#comparisonStateStackStart = 0;\n this.#stateStack = this.#stateStack.slice(0, comparisonStart);\n } else {\n this.#comparisonStateStackStart = comparisonStart;\n this.#comparisonStateStack = this.#stateStack.slice(comparisonStart);\n this.#stateStack.length = Math.min(\n this.#stateStack.length,\n comparisonStart\n );\n }\n this.#comparisonLineChanges = lineChanges;\n }\n\n #getPreviousEndState(line: number): StateStack | undefined {\n let previousLine = line;\n for (\n let index = this.#comparisonLineChanges.length - 1;\n index >= 0;\n index--\n ) {\n const [startLine, endLine, lineDelta] =\n this.#comparisonLineChanges[index];\n if (lineDelta === 0) {\n continue;\n }\n if (previousLine > endLine) {\n previousLine -= lineDelta;\n } else if (previousLine > startLine) {\n return this.#stateStack[line];\n }\n }\n return (\n this.#comparisonStateStack[\n previousLine - this.#comparisonStateStackStart\n ] ?? this.#stateStack[line]\n );\n }\n\n #buildStateStack(endAt: number, timeBudget?: number): boolean {\n const boundedEndAt = Math.min(\n Math.max(0, endAt),\n this.#textDocument.lineCount\n );\n if (this.#stateStack.length > boundedEndAt || this.#grammar === undefined) {\n return true;\n }\n const startedAt = timeBudget === undefined ? 0 : performance.now();\n let line = this.#stateStack.length - 1;\n let state = this.#stateStack[line] ?? INITIAL;\n while (line < boundedEndAt) {\n this.#stateStack[line] = state;\n const lineText = this.#textDocument.getLineText(line);\n if (\n lineText.length <= this.#tokenizeMaxLineLength &&\n lineText !== '' &&\n lineText.trim() !== ''\n ) {\n const result = tokenizeLine(\n this.#grammar,\n this.#colorMap,\n lineText,\n state,\n TOKENIZE_TIME_LIMIT,\n this.#matchBrackets,\n false\n );\n this.#cacheBracketIgnoredRanges(line, result.bracketIgnoredRanges);\n state = result.ruleStack;\n } else {\n this.#cacheBracketIgnoredRanges(line, null);\n }\n line++;\n this.#stateStack[line] = state;\n if (\n timeBudget !== undefined &&\n performance.now() - startedAt > timeBudget\n ) {\n break;\n }\n }\n return line >= boundedEndAt;\n }\n\n #backgroundPrebuild(jobId: number): void {\n if (\n this.#isStopped ||\n this.#isPaused ||\n this.#grammar === undefined ||\n jobId !== this.#backgroundJobId\n ) {\n return;\n }\n\n this.#ensureActiveTheme();\n // State prebuilds intentionally omit rendered tokens and yield between\n // short chunks so a deep viewport does not monopolize the main thread.\n const complete = this.#buildStateStack(this.#backgroundPrebuildEndLine, 1);\n if (this.#isStopped || this.#isPaused || jobId !== this.#backgroundJobId) {\n return;\n }\n if (complete) {\n this.stopBackgroundTokenize();\n return;\n }\n this.#lastLine = this.#stateStack.length - 1;\n this.#postTokenizeMessage(jobId);\n }\n\n #backgroundTokenize(jobId: number) {\n if (\n this.#isStopped ||\n this.#isPaused ||\n this.#grammar === undefined ||\n jobId !== this.#backgroundJobId\n ) {\n return;\n }\n\n this.#ensureActiveTheme();\n\n const t = performance.now();\n const lines = new Map<number, Array<HighlightedToken>>();\n const totalLines = this.#textDocument.lineCount;\n const changedLineRanges = this.#backgroundChangedLineRanges;\n\n let line = this.#lastLine;\n let state = this.#stateStack[line] ?? INITIAL;\n let settled = false;\n let changedRangeIndex = this.#backgroundChangedRangeIndex;\n let currentChangedRangeEnd = changedLineRanges?.[changedRangeIndex]?.[1];\n for (; line < totalLines; ) {\n this.#stateStack[line] = state;\n\n const previousNextState =\n currentChangedRangeEnd !== undefined\n ? this.#getPreviousEndState(line + 1)\n : undefined;\n const lineText = this.#textDocument.getLineText(line);\n if (lineText.length > this.#tokenizeMaxLineLength) {\n console.warn(\n `[diffs] Line(${line}) too long to tokenize: ${lineText.length}`\n );\n lines.set(line, [[0, '', lineText]]);\n this.#cacheBracketIgnoredRanges(line, null);\n } else if (lineText === '' || lineText.trim() === '') {\n lines.set(line, [[0, '', lineText]]);\n this.#cacheBracketIgnoredRanges(line, null);\n } else {\n const ret = tokenizeLine(\n this.#grammar,\n this.#colorMap,\n lineText,\n state,\n TOKENIZE_TIME_LIMIT,\n this.#matchBrackets\n );\n lines.set(line, ret.resolvedTokens);\n this.#cacheBracketIgnoredRanges(line, ret.bracketIgnoredRanges);\n state = ret.ruleStack;\n }\n\n this.#stateStack[line + 1] = state;\n settled =\n currentChangedRangeEnd !== undefined &&\n line >= currentChangedRangeEnd &&\n previousNextState !== undefined &&\n state.equals(previousNextState);\n line++;\n if (settled) {\n changedRangeIndex++;\n const nextRange = changedLineRanges?.[changedRangeIndex];\n if (nextRange === undefined) {\n break;\n }\n currentChangedRangeEnd = nextRange[1];\n if (this.#stateStack[nextRange[0]] === undefined) {\n settled = false;\n } else {\n line = nextRange[0];\n state = this.#stateStack[line] ?? state;\n settled = false;\n continue;\n }\n }\n\n // limit the time of partial tokenize to 1ms\n if (performance.now() - t > 1) {\n break;\n }\n }\n\n this.#onDeferTokenize(lines, this.#themeType);\n if (this.#isStopped || this.#isPaused || jobId !== this.#backgroundJobId) {\n return;\n }\n\n if (settled || line >= totalLines) {\n const pendingPrebuildEndLine = this.#pendingPrebuildEndLine;\n this.stopBackgroundTokenize();\n if (pendingPrebuildEndLine >= 0) {\n this.#scheduleStatePrebuild(pendingPrebuildEndLine);\n }\n return;\n }\n\n this.#lastLine = line;\n this.#backgroundChangedRangeIndex = changedRangeIndex;\n this.#postTokenizeMessage(jobId);\n }\n}\n\nfunction tokenizeLine(\n grammar: IGrammar,\n colorMap: string[],\n lineText: string,\n stateStack: StateStack,\n timeLimit?: number,\n collectBracketIgnoredRanges = true,\n resolveTokens = true\n): {\n ruleStack: StateStack;\n resolvedTokens: Array<HighlightedToken>;\n bracketIgnoredRanges: [number, number][];\n} {\n const result = grammar.tokenizeLine2(lineText, stateStack, timeLimit);\n if (result.stoppedEarly) {\n console.warn(\n `[diffs] Time limit reached when tokenizing line: ${lineText.substring(0, 100)}`\n );\n }\n const rawTokens = result.tokens;\n const tokensLength = rawTokens.length / 2;\n const resolvedTokens: Array<HighlightedToken> = [];\n const bracketIgnoredRanges: [number, number][] = [];\n if (!resolveTokens && !collectBracketIgnoredRanges) {\n return {\n ruleStack: result.ruleStack,\n resolvedTokens,\n bracketIgnoredRanges,\n };\n }\n for (let j = 0; j < tokensLength; j++) {\n const offset = rawTokens[2 * j];\n const nextOffset =\n j + 1 < tokensLength ? rawTokens[2 * j + 2] : lineText.length;\n if (offset === nextOffset) {\n // should never reach here, skip if happens anyway\n continue;\n }\n const metadata = rawTokens[2 * j + 1];\n if (resolveTokens) {\n const fg = EncodedTokenMetadata.getForeground(metadata);\n resolvedTokens.push([\n offset,\n colorMap[fg],\n lineText.slice(offset, nextOffset),\n ]);\n }\n if (\n collectBracketIgnoredRanges &&\n EncodedTokenMetadata.getTokenType(metadata) > 0\n ) {\n bracketIgnoredRanges.push([offset, nextOffset]);\n }\n }\n return {\n ruleStack: result.ruleStack,\n resolvedTokens,\n bracketIgnoredRanges,\n };\n}\n\nexport function renderLineTokens(\n tokens: Array<HighlightedToken>\n): (HTMLElement | string)[] {\n return tokens.map(([char, fg, textContent]) => {\n if (char === 0 && fg === '') {\n if (textContent === '') {\n return h('br');\n }\n return textContent;\n }\n return h('span', {\n dataset: {\n char: char.toString(),\n },\n style: `color:${fg};`,\n textContent: textContent,\n });\n });\n}\n\n// Shiki special-cases `text` and `ansi` in codeToHast but does not expose grammars.\nfunction isGrammarlessLanguage(languageId: string): boolean {\n return languageId === 'text' || languageId === 'ansi';\n}\n"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { ShikiError, applyColorReplacements, codeToTokensWithThemes, createShiki
|
|
|
3
3
|
import { toHtml } from "hast-util-to-html";
|
|
4
4
|
import { Element, Root } from "hast";
|
|
5
5
|
export * from "@shikijs/types";
|
|
6
|
-
|
|
7
6
|
//#region src/constructors/bundle-factory.d.ts
|
|
8
7
|
/**
|
|
9
8
|
* Create a `createHighlighter` function with bundled themes, languages, and engine.
|
|
@@ -26,6 +26,7 @@ const RE_LANG_ATTR = /:?lang=["']([^"']+)["']/g;
|
|
|
26
26
|
const RE_CODE_FENCE = /(?:```|~~~)([\w-]+)/g;
|
|
27
27
|
const RE_LATEX_BEGIN = /\\begin\{([\w-]+)\}/g;
|
|
28
28
|
const RE_SCRIPT_LANG = /<script\s+(?:type|lang)=["']([^"']+)["']/gi;
|
|
29
|
+
const RE_FRONTMATTER = /^\s*---\r?\n[\s\S]*?\r?\n---(?:\r?\n|\s*$)/;
|
|
29
30
|
/**
|
|
30
31
|
* Creates a converter between index and position in a code block.
|
|
31
32
|
*
|
|
@@ -100,6 +101,7 @@ function guessEmbeddedLanguages(code, _lang, highlighter) {
|
|
|
100
101
|
const lang = fullType.includes("/") ? fullType.split("/").pop() : fullType;
|
|
101
102
|
if (lang) langs.add(lang);
|
|
102
103
|
}
|
|
104
|
+
if (RE_FRONTMATTER.test(code)) langs.add("yaml");
|
|
103
105
|
if (!highlighter) return [...langs];
|
|
104
106
|
const bundle = highlighter.getBundledLanguages();
|
|
105
107
|
return [...langs].filter((l) => l && bundle[l]);
|
|
@@ -130,6 +132,16 @@ function splitToken(token, offsets) {
|
|
|
130
132
|
});
|
|
131
133
|
return tokens;
|
|
132
134
|
}
|
|
135
|
+
function findFirstBreakpointAfter(breakpoints, offset) {
|
|
136
|
+
let start = 0;
|
|
137
|
+
let end = breakpoints.length;
|
|
138
|
+
while (start < end) {
|
|
139
|
+
const middle = start + (end - start >> 1);
|
|
140
|
+
if (breakpoints[middle] <= offset) start = middle + 1;
|
|
141
|
+
else end = middle;
|
|
142
|
+
}
|
|
143
|
+
return start;
|
|
144
|
+
}
|
|
133
145
|
/**
|
|
134
146
|
* Split 2D tokens array by given breakpoints.
|
|
135
147
|
*/
|
|
@@ -138,8 +150,13 @@ function splitTokens(tokens, breakpoints) {
|
|
|
138
150
|
if (!sorted.length) return tokens;
|
|
139
151
|
return tokens.map((line) => {
|
|
140
152
|
return line.flatMap((token) => {
|
|
141
|
-
const
|
|
142
|
-
|
|
153
|
+
const tokenEnd = token.offset + token.content.length;
|
|
154
|
+
const start = findFirstBreakpointAfter(sorted, token.offset);
|
|
155
|
+
let end = start;
|
|
156
|
+
while (end < sorted.length && sorted[end] < tokenEnd) end++;
|
|
157
|
+
if (start === end) return token;
|
|
158
|
+
const breakpointsInToken = sorted.slice(start, end);
|
|
159
|
+
for (let index = 0; index < breakpointsInToken.length; index++) breakpointsInToken[index] -= token.offset;
|
|
143
160
|
return splitToken(token, breakpointsInToken);
|
|
144
161
|
});
|
|
145
162
|
});
|
|
@@ -164,7 +181,9 @@ function flatTokenVariants(merged, variantsOrder, cssVariablePrefix, defaultColo
|
|
|
164
181
|
const lightIndex = variantsOrder.findIndex((t) => t === "light");
|
|
165
182
|
const darkIndex = variantsOrder.findIndex((t) => t === "dark");
|
|
166
183
|
if (lightIndex === -1 || darkIndex === -1) throw new ShikiError$1("When using `defaultColor: \"light-dark()\"`, you must provide both `light` and `dark` themes");
|
|
167
|
-
|
|
184
|
+
const lightValue = styles[lightIndex][key] || "inherit";
|
|
185
|
+
const darkValue = styles[darkIndex][key] || "inherit";
|
|
186
|
+
mergedStyles[key] = `light-dark(${lightValue}, ${darkValue})`;
|
|
168
187
|
if (colorsRendering === "css-vars") mergedStyles[varKey(idx, key)] = value;
|
|
169
188
|
} else mergedStyles[key] = value;
|
|
170
189
|
else if (colorsRendering === "css-vars") mergedStyles[varKey(idx, key)] = value;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shikijs/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.3
|
|
4
|
+
"version": "4.4.3",
|
|
5
5
|
"description": "Core of Shiki",
|
|
6
6
|
"author": "Pine Wu <octref@gmail.com>; Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@shikijs/vscode-textmate": "^10.0.2",
|
|
50
|
-
"@types/hast": "^3.0.
|
|
50
|
+
"@types/hast": "^3.0.5",
|
|
51
51
|
"hast-util-to-html": "^9.0.5",
|
|
52
|
-
"@shikijs/primitive": "4.3
|
|
53
|
-
"@shikijs/types": "4.3
|
|
52
|
+
"@shikijs/primitive": "4.4.3",
|
|
53
|
+
"@shikijs/types": "4.4.3"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"build": "tsdown",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ToRegExpOptions } from "oniguruma-to-es";
|
|
2
2
|
import { PatternScanner, RegexEngine, RegexEngineString } from "@shikijs/types";
|
|
3
3
|
import { IOnigMatch } from "@shikijs/vscode-textmate";
|
|
4
|
-
|
|
5
4
|
//#region src/scanner.d.ts
|
|
6
5
|
interface JavaScriptRegexScannerOptions {
|
|
7
6
|
/**
|
package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as createJavaScriptRegexEngine, r as defaultJavaScriptRegexConstructor, t as JavaScriptRegexEngineOptions } from "./engine-compile-
|
|
1
|
+
import { n as createJavaScriptRegexEngine, r as defaultJavaScriptRegexConstructor, t as JavaScriptRegexEngineOptions } from "./engine-compile-Bdn9ihA2.mjs";
|
|
2
2
|
export { JavaScriptRegexEngineOptions, createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as JavaScriptScanner, i as JavaScriptRegexScannerOptions, n as createJavaScriptRegexEngine, r as defaultJavaScriptRegexConstructor, t as JavaScriptRegexEngineOptions } from "./engine-compile-
|
|
1
|
+
import { a as JavaScriptScanner, i as JavaScriptRegexScannerOptions, n as createJavaScriptRegexEngine, r as defaultJavaScriptRegexConstructor, t as JavaScriptRegexEngineOptions } from "./engine-compile-Bdn9ihA2.mjs";
|
|
2
2
|
import { createJavaScriptRawEngine } from "./engine-raw.mjs";
|
|
3
3
|
export { JavaScriptRegexEngineOptions, JavaScriptRegexScannerOptions, JavaScriptScanner, createJavaScriptRawEngine, createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shikijs/engine-javascript",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.3
|
|
4
|
+
"version": "4.4.3",
|
|
5
5
|
"description": "Engine for Shiki using JavaScript's native RegExp",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@shikijs/vscode-textmate": "^10.0.2",
|
|
35
35
|
"oniguruma-to-es": "^4.3.6",
|
|
36
|
-
"@shikijs/types": "4.3
|
|
36
|
+
"@shikijs/types": "4.4.3"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "tsdown",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shikijs/engine-oniguruma",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.3
|
|
4
|
+
"version": "4.4.3",
|
|
5
5
|
"description": "Engine for Shiki using Oniguruma RegExp engine in WebAssembly",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@shikijs/vscode-textmate": "^10.0.2",
|
|
36
|
-
"@shikijs/types": "4.3
|
|
36
|
+
"@shikijs/types": "4.4.3"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"vscode-oniguruma": "1.7.0"
|
|
@@ -2,7 +2,6 @@ import { CodeToTokensBaseOptions, CodeToTokensWithThemesOptions, Grammar, Gramma
|
|
|
2
2
|
import { IOnigLib, IRawTheme, Registry as Registry$1, RegistryOptions, StateStack } from "@shikijs/vscode-textmate";
|
|
3
3
|
import { Root } from "hast";
|
|
4
4
|
export * from "@shikijs/types";
|
|
5
|
-
|
|
6
5
|
//#region src/constructors/async.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* Get the minimal shiki primitive instance.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shikijs/primitive",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.3
|
|
4
|
+
"version": "4.4.3",
|
|
5
5
|
"description": "Tokenizer primitives of Shiki",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@shikijs/vscode-textmate": "^10.0.2",
|
|
48
|
-
"@types/hast": "^3.0.
|
|
49
|
-
"@shikijs/types": "4.3
|
|
48
|
+
"@types/hast": "^3.0.5",
|
|
49
|
+
"@shikijs/types": "4.4.3"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"build": "tsdown",
|