@pierre/diffs 1.5.2 → 1.6.0
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/README.md +4 -3
- package/dist/components/CodeView.d.ts +3 -2
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +24 -19
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +31 -9
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +176 -90
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +32 -9
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +225 -131
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/FileStream.d.ts +6 -4
- package/dist/components/FileStream.d.ts.map +1 -1
- package/dist/components/FileStream.js +49 -36
- package/dist/components/FileStream.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts +14 -4
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/UnresolvedFile.js +35 -16
- package/dist/components/UnresolvedFile.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +3 -2
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +28 -20
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +3 -2
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +31 -24
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/constants.d.ts +4 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/editor/editor.d.ts +2 -1
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +5 -1
- package/dist/editor/editor.js.map +1 -1
- package/dist/editor/platform.d.ts +1 -1
- package/dist/editor/platform.js +5 -4
- package/dist/editor/platform.js.map +1 -1
- package/dist/editor/selection.d.ts +2 -2
- package/dist/editor/selection.d.ts.map +1 -1
- package/dist/editor/selection.js +31 -6
- package/dist/editor/selection.js.map +1 -1
- package/dist/editor/tokenizer.d.ts +6 -4
- package/dist/editor/tokenizer.d.ts.map +1 -1
- package/dist/editor/tokenizer.js +25 -470
- package/dist/editor/tokenizer.js.map +1 -1
- package/dist/highlighter/DiffsEditorTokenizer.d.ts +16 -0
- package/dist/highlighter/DiffsEditorTokenizer.d.ts.map +1 -0
- package/dist/highlighter/DiffsEditorTokenizer.js +0 -0
- package/dist/highlighter/DiffsHighlighter.d.ts +41 -0
- package/dist/highlighter/DiffsHighlighter.d.ts.map +1 -0
- package/dist/highlighter/DiffsHighlighter.js +39 -0
- package/dist/highlighter/DiffsHighlighter.js.map +1 -0
- package/dist/highlighter/backends/highlights.d.ts +26 -0
- package/dist/highlighter/backends/highlights.d.ts.map +1 -0
- package/dist/highlighter/backends/highlights.js +71 -0
- package/dist/highlighter/backends/highlights.js.map +1 -0
- package/dist/highlighter/backends/shiki.d.ts +27 -0
- package/dist/highlighter/backends/shiki.d.ts.map +1 -0
- package/dist/highlighter/backends/shiki.js +107 -0
- package/dist/highlighter/backends/shiki.js.map +1 -0
- package/dist/highlighter/highlighterType.d.ts +13 -0
- package/dist/highlighter/highlighterType.d.ts.map +1 -0
- package/dist/highlighter/highlighterType.js +32 -0
- package/dist/highlighter/highlighterType.js.map +1 -0
- package/dist/highlighter/highlights-editor.d.ts +24 -0
- package/dist/highlighter/highlights-editor.d.ts.map +1 -0
- package/dist/highlighter/highlights-editor.js +166 -0
- package/dist/highlighter/highlights-editor.js.map +1 -0
- package/dist/highlighter/highlights-stream.d.ts +20 -0
- package/dist/highlighter/highlights-stream.d.ts.map +1 -0
- package/dist/highlighter/highlights-stream.js +93 -0
- package/dist/highlighter/highlights-stream.js.map +1 -0
- package/dist/highlighter/languages/areLanguagesAttached.d.ts +2 -1
- package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
- package/dist/highlighter/languages/areLanguagesAttached.js +4 -6
- package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
- package/dist/highlighter/languages/attachResolvedLanguages.d.ts +6 -1
- package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/attachResolvedLanguages.js +6 -11
- package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
- package/dist/highlighter/languages/constants.d.ts +1 -1
- package/dist/highlighter/languages/getResolvedLanguages.d.ts +1 -1
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +1 -1
- package/dist/highlighter/languages/resolveLanguage.d.ts +1 -1
- package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/resolveLanguage.js +19 -16
- package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
- package/dist/highlighter/languages/resolveLanguages.d.ts +1 -1
- package/dist/highlighter/shared_highlighter.d.ts +24 -9
- package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
- package/dist/highlighter/shared_highlighter.js +59 -47
- package/dist/highlighter/shared_highlighter.js.map +1 -1
- package/dist/highlighter/shiki-editor.d.ts +25 -0
- package/dist/highlighter/shiki-editor.d.ts.map +1 -0
- package/dist/highlighter/shiki-editor.js +483 -0
- package/dist/highlighter/shiki-editor.js.map +1 -0
- package/dist/highlighter/shiki-stream.d.ts +20 -0
- package/dist/highlighter/shiki-stream.d.ts.map +1 -0
- package/dist/highlighter/shiki-stream.js +60 -0
- package/dist/highlighter/shiki-stream.js.map +1 -0
- package/dist/highlighter/stream-tokenizer.d.ts +40 -0
- package/dist/highlighter/stream-tokenizer.d.ts.map +1 -0
- package/dist/highlighter/stream-tokenizer.js +70 -0
- package/dist/highlighter/stream-tokenizer.js.map +1 -0
- package/dist/highlighter/themes/areThemesAttached.d.ts +3 -2
- package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
- package/dist/highlighter/themes/areThemesAttached.js +5 -4
- package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
- package/dist/highlighter/themes/attachResolvedThemes.d.ts +5 -2
- package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/attachResolvedThemes.js +4 -16
- package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts +3 -1
- package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/cleanUpResolvedThemes.js +8 -5
- package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/createCSSVariablesTheme.d.ts +7 -0
- package/dist/highlighter/themes/createCSSVariablesTheme.d.ts.map +1 -0
- package/dist/highlighter/themes/createCSSVariablesTheme.js +89 -0
- package/dist/highlighter/themes/createCSSVariablesTheme.js.map +1 -0
- package/dist/highlighter/themes/createCachedLoader.d.ts +5 -0
- package/dist/highlighter/themes/createCachedLoader.d.ts.map +1 -0
- package/dist/highlighter/themes/createCachedLoader.js +15 -0
- package/dist/highlighter/themes/createCachedLoader.js.map +1 -0
- package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts +3 -2
- package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/getResolvedOrResolveTheme.js +4 -4
- package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
- package/dist/highlighter/themes/getResolvedThemes.d.ts +3 -2
- package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/getResolvedThemes.js +4 -3
- package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/hasResolvedThemes.d.ts +2 -2
- package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/hasResolvedThemes.js +4 -3
- package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +3 -3
- package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
- package/dist/highlighter/themes/registerCustomTheme.d.ts +9 -4
- package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/registerCustomTheme.js +8 -16
- package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
- package/dist/highlighter/themes/resolveTheme.d.ts +3 -2
- package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/resolveTheme.js +4 -7
- package/dist/highlighter/themes/resolveTheme.js.map +1 -1
- package/dist/highlighter/themes/resolveThemes.d.ts +3 -2
- package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/resolveThemes.js +4 -7
- package/dist/highlighter/themes/resolveThemes.js.map +1 -1
- package/dist/highlighter/themes/themeResolver.d.ts +10 -4
- package/dist/highlighter/themes/themeResolver.d.ts.map +1 -1
- package/dist/highlighter/themes/themeResolver.js +141 -2
- package/dist/highlighter/themes/themeResolver.js.map +1 -1
- package/dist/highlighter/themes/types.d.ts +23 -0
- package/dist/highlighter/themes/types.d.ts.map +1 -0
- package/dist/highlighter/themes/types.js +0 -0
- package/dist/highlighter/tokenizer-types.d.ts +35 -0
- package/dist/highlighter/tokenizer-types.d.ts.map +1 -0
- package/dist/highlighter/tokenizer-types.js +0 -0
- package/dist/highlighter/types.d.ts +55 -0
- package/dist/highlighter/types.d.ts.map +1 -0
- package/dist/highlighter/types.js +0 -0
- package/dist/index.d.ts +22 -13
- package/dist/index.js +21 -18
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +2 -2
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +9 -1
- package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -1
- package/dist/react/CodeView.d.ts +4 -3
- package/dist/react/CodeView.d.ts.map +1 -1
- package/dist/react/CodeView.js +47 -38
- package/dist/react/CodeView.js.map +1 -1
- package/dist/react/File.js +3 -3
- package/dist/react/File.js.map +1 -1
- package/dist/react/FileDiff.js +3 -3
- package/dist/react/FileDiff.js.map +1 -1
- package/dist/react/MultiFileDiff.js +2 -2
- package/dist/react/MultiFileDiff.js.map +1 -1
- package/dist/react/PatchDiff.js +3 -3
- package/dist/react/PatchDiff.js.map +1 -1
- package/dist/react/UnresolvedFile.js +2 -2
- package/dist/react/UnresolvedFile.js.map +1 -1
- package/dist/react/index.d.ts +9 -4
- package/dist/react/types.d.ts +4 -2
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.js +1 -1
- package/dist/react/utils/renderDiffChildren.js.map +1 -1
- package/dist/react/utils/renderFileChildren.js +1 -1
- package/dist/react/utils/renderFileChildren.js.map +1 -1
- package/dist/react/utils/useFileDiffInstance.d.ts +1 -0
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +29 -24
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/react/utils/useFileInstance.d.ts +2 -0
- package/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileInstance.js +38 -28
- package/dist/react/utils/useFileInstance.js.map +1 -1
- package/dist/react/utils/useForceUpdate.d.ts +5 -0
- package/dist/react/utils/useForceUpdate.d.ts.map +1 -0
- package/dist/react/utils/useForceUpdate.js +27 -0
- package/dist/react/utils/useForceUpdate.js.map +1 -0
- package/dist/react/utils/useNextRenderData.d.ts +9 -0
- package/dist/react/utils/useNextRenderData.d.ts.map +1 -0
- package/dist/react/utils/useNextRenderData.js +9 -0
- package/dist/react/utils/useNextRenderData.js.map +1 -0
- package/dist/react/utils/useUnresolvedFileInstance.d.ts +1 -0
- package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useUnresolvedFileInstance.js +26 -11
- package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +4 -2
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +82 -43
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +6 -2
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +77 -43
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -1
- package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
- package/dist/shiki-stream/index.d.ts +3 -3
- package/dist/shiki-stream/index.js +1 -2
- package/dist/shiki-stream/stream.d.ts +4 -4
- package/dist/shiki-stream/stream.d.ts.map +1 -1
- package/dist/shiki-stream/stream.js +20 -9
- package/dist/shiki-stream/stream.js.map +1 -1
- package/dist/shiki-stream/types.d.ts +7 -38
- package/dist/shiki-stream/types.d.ts.map +1 -1
- package/dist/ssr/index.d.ts +7 -2
- package/dist/ssr/renderHTML.js +2 -2
- package/dist/ssr/renderHTML.js.map +1 -1
- package/dist/style.js +1 -1
- package/dist/style.js.map +1 -1
- package/dist/types.d.ts +20 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/canUseWASM.d.ts +13 -0
- package/dist/utils/canUseWASM.d.ts.map +1 -0
- package/dist/utils/canUseWASM.js +59 -0
- package/dist/utils/canUseWASM.js.map +1 -0
- package/dist/utils/createSpanNodeFromToken.d.ts +3 -2
- package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
- package/dist/utils/createSpanNodeFromToken.js +4 -5
- package/dist/utils/createSpanNodeFromToken.js.map +1 -1
- package/dist/utils/cssWrappers.d.ts.map +1 -1
- package/dist/utils/cssWrappers.js +12 -0
- package/dist/utils/cssWrappers.js.map +1 -1
- package/dist/utils/getCodeViewItemRenderData.d.ts +10 -0
- package/dist/utils/getCodeViewItemRenderData.d.ts.map +1 -0
- package/dist/utils/getCodeViewItemRenderData.js +19 -0
- package/dist/utils/getCodeViewItemRenderData.js.map +1 -0
- package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
- package/dist/utils/getHighlighterOptions.js +3 -2
- package/dist/utils/getHighlighterOptions.js.map +1 -1
- package/dist/utils/getHighlighterThemeStyles.d.ts +2 -1
- package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
- package/dist/utils/getHighlighterThemeStyles.js +13 -3
- package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
- package/dist/utils/getTokenOptions.d.ts +7 -0
- package/dist/utils/getTokenOptions.d.ts.map +1 -0
- package/dist/utils/getTokenOptions.js +16 -0
- package/dist/utils/getTokenOptions.js.map +1 -0
- package/dist/utils/hastToHtml.d.ts +10 -0
- package/dist/utils/hastToHtml.d.ts.map +1 -0
- package/dist/utils/hastToHtml.js +125 -0
- package/dist/utils/hastToHtml.js.map +1 -0
- package/dist/utils/hydratePartialDiff.js +4 -0
- package/dist/utils/hydratePartialDiff.js.map +1 -1
- package/dist/utils/parseDiffDecorations.d.ts +2 -1
- package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.js +2 -0
- package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +24 -4
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.d.ts +3 -2
- package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.js +33 -48
- package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
- package/dist/utils/renderFileWithHighlighter.d.ts +3 -2
- package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderFileWithHighlighter.js +10 -26
- package/dist/utils/renderFileWithHighlighter.js.map +1 -1
- package/dist/utils/renderTokenLines.d.ts +22 -0
- package/dist/utils/renderTokenLines.d.ts.map +1 -0
- package/dist/utils/renderTokenLines.js +250 -0
- package/dist/utils/renderTokenLines.js.map +1 -0
- package/dist/utils/resolvePreferredHighlighter.d.ts +13 -0
- package/dist/utils/resolvePreferredHighlighter.d.ts.map +1 -0
- package/dist/utils/resolvePreferredHighlighter.js +11 -0
- package/dist/utils/resolvePreferredHighlighter.js.map +1 -0
- package/dist/utils/resolveRegion.js +20 -10
- package/dist/utils/resolveRegion.js.map +1 -1
- package/dist/utils/setDeferredArrayItem.d.ts +5 -0
- package/dist/utils/setDeferredArrayItem.d.ts.map +1 -0
- package/dist/utils/setDeferredArrayItem.js +39 -0
- package/dist/utils/setDeferredArrayItem.js.map +1 -0
- package/dist/utils/tokenStyle.d.ts +11 -0
- package/dist/utils/tokenStyle.d.ts.map +1 -0
- package/dist/utils/tokenStyle.js +32 -0
- package/dist/utils/tokenStyle.js.map +1 -0
- package/dist/utils/tokensToHtml.d.ts +11 -0
- package/dist/utils/tokensToHtml.d.ts.map +1 -0
- package/dist/utils/tokensToHtml.js +48 -0
- package/dist/utils/tokensToHtml.js.map +1 -0
- package/dist/utils/updateDiffHunks.d.ts +2 -2
- package/dist/utils/updateDiffHunks.d.ts.map +1 -1
- package/dist/utils/updateDiffHunks.js +7 -3
- package/dist/utils/updateDiffHunks.js.map +1 -1
- package/dist/utils/wrapTokenFragments.js.map +1 -1
- package/dist/worker/WorkerPoolManager.d.ts +14 -2
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +155 -67
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/hastLinesTransport.d.ts +14 -0
- package/dist/worker/hastLinesTransport.d.ts.map +1 -0
- package/dist/worker/hastLinesTransport.js +156 -0
- package/dist/worker/hastLinesTransport.js.map +1 -0
- package/dist/worker/highlights-CpZm9DAR.js +317 -0
- package/dist/worker/highlights-CpZm9DAR.js.map +1 -0
- package/dist/worker/index.d.ts +1 -1
- package/dist/worker/shiki-Ci4cdHsM.js +697 -0
- package/dist/worker/shiki-Ci4cdHsM.js.map +1 -0
- package/dist/worker/stream-tokenizer-DK9xp5M5.js +427 -0
- package/dist/worker/stream-tokenizer-DK9xp5M5.js.map +1 -0
- package/dist/worker/types.d.ts +16 -3
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +41 -13337
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +681 -349
- package/dist/worker/worker.js.map +1 -1
- package/dist/worker/workerMessage.d.ts +24 -0
- package/dist/worker/workerMessage.d.ts.map +1 -0
- package/dist/worker/workerMessage.js +0 -0
- package/package.json +5 -3
- package/dist/highlighter/themes/constants.d.ts +0 -5
- package/dist/highlighter/themes/constants.d.ts.map +0 -1
- package/dist/highlighter/themes/constants.js +0 -6
- package/dist/highlighter/themes/constants.js.map +0 -1
- package/dist/highlighter/themes/themeResolution.d.ts +0 -7
- package/dist/highlighter/themes/themeResolution.d.ts.map +0 -1
- package/dist/highlighter/themes/themeResolution.js +0 -21
- package/dist/highlighter/themes/themeResolution.js.map +0 -1
- package/dist/shiki-stream/tokenizer.d.ts +0 -23
- package/dist/shiki-stream/tokenizer.d.ts.map +0 -1
- package/dist/shiki-stream/tokenizer.js +0 -72
- package/dist/shiki-stream/tokenizer.js.map +0 -1
- package/dist/utils/createTransformerWithState.d.ts +0 -12
- package/dist/utils/createTransformerWithState.d.ts.map +0 -1
- package/dist/utils/createTransformerWithState.js +0 -89
- package/dist/utils/createTransformerWithState.js.map +0 -1
- package/dist/worker/wasm-B9ZqxnKj.js +0 -8
- package/dist/worker/wasm-B9ZqxnKj.js.map +0 -1
|
@@ -1,70 +1,82 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { attachResolvedLanguages } from "./languages/attachResolvedLanguages.js";
|
|
1
|
+
import { HighlighterDisposedError, acquireHighlighterType, getHighlighterType, releaseHighlighterType, resolveHighlighterType } from "./highlighterType.js";
|
|
3
2
|
import { cleanUpResolvedLanguages } from "./languages/cleanUpResolvedLanguages.js";
|
|
4
|
-
import { getResolvedOrResolveLanguage } from "./languages/getResolvedOrResolveLanguage.js";
|
|
5
3
|
import { areThemesAttached } from "./themes/areThemesAttached.js";
|
|
6
|
-
import { themeResolver } from "./themes/themeResolver.js";
|
|
7
|
-
import { attachResolvedThemes } from "./themes/attachResolvedThemes.js";
|
|
8
4
|
import { cleanUpResolvedThemes } from "./themes/cleanUpResolvedThemes.js";
|
|
9
|
-
import { getResolvedOrResolveTheme } from "./themes/getResolvedOrResolveTheme.js";
|
|
10
|
-
import { createHighlighter, createJavaScriptRegexEngine, createOnigurumaEngine } from "shiki";
|
|
11
|
-
import { pierreThemes } from "@pierre/theming/themes";
|
|
12
5
|
//#region src/highlighter/shared_highlighter.ts
|
|
13
6
|
let highlighter;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Creates an instance the caller must dispose. Defaults to the active type
|
|
9
|
+
* or DEFAULT_HIGHLIGHTER; rejects if a different type is already active.
|
|
10
|
+
*/
|
|
11
|
+
async function createHighlighter(type) {
|
|
12
|
+
const resolvedType = resolveHighlighterType(type);
|
|
13
|
+
acquireHighlighterType(resolvedType);
|
|
14
|
+
try {
|
|
15
|
+
if (resolvedType === "highlights") {
|
|
16
|
+
const { HighlightsHighlighter } = await import("./backends/highlights.js");
|
|
17
|
+
return new HighlightsHighlighter();
|
|
18
|
+
}
|
|
19
|
+
const { ShikiHighlighter } = await import("./backends/shiki.js");
|
|
20
|
+
return await ShikiHighlighter.create(resolvedType);
|
|
21
|
+
} finally {
|
|
22
|
+
releaseHighlighterType();
|
|
28
23
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
}
|
|
25
|
+
async function getSharedHighlighter({ themes, langs, preferredHighlighter }) {
|
|
26
|
+
dropDisposedHighlighter();
|
|
27
|
+
const cached = highlighter ??= createHighlighter(getHighlighterType() ?? preferredHighlighter);
|
|
28
|
+
let instance;
|
|
29
|
+
try {
|
|
30
|
+
instance = await cached;
|
|
31
|
+
} catch (error) {
|
|
32
|
+
if (highlighter === cached) highlighter = void 0;
|
|
33
|
+
throw error;
|
|
34
34
|
}
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
attachResolvedThemes(themes, instance);
|
|
39
|
-
})]);
|
|
35
|
+
if (highlighter === cached) highlighter = instance;
|
|
36
|
+
await Promise.all([instance.themeResolver.resolveThemes(themes), instance.loadLanguages(langs)]);
|
|
37
|
+
if (instance.isDisposed) throw new HighlighterDisposedError();
|
|
40
38
|
return instance;
|
|
41
39
|
}
|
|
42
|
-
function
|
|
43
|
-
|
|
40
|
+
function dropDisposedHighlighter() {
|
|
41
|
+
if (highlighter != null && !("then" in highlighter) && highlighter.isDisposed) highlighter = void 0;
|
|
42
|
+
}
|
|
43
|
+
function isHighlighterLoaded() {
|
|
44
|
+
dropDisposedHighlighter();
|
|
45
|
+
return highlighter != null && !("then" in highlighter);
|
|
44
46
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Returns undefined if the theme or language is not loaded.
|
|
49
|
+
*/
|
|
50
|
+
function getHighlighterIfLoaded({ theme, lang, langs } = {}) {
|
|
51
|
+
dropDisposedHighlighter();
|
|
52
|
+
const instance = highlighter;
|
|
53
|
+
if (instance == null || "then" in instance || theme != null && !areThemesAttached(theme, instance) || (lang != null || langs != null) && !instance.hasLoadedLanguages([...lang != null ? [lang] : [], ...langs ?? []])) return;
|
|
54
|
+
return instance;
|
|
49
55
|
}
|
|
50
|
-
function isHighlighterLoading(
|
|
51
|
-
return
|
|
56
|
+
function isHighlighterLoading() {
|
|
57
|
+
return highlighter != null && "then" in highlighter;
|
|
52
58
|
}
|
|
53
|
-
function isHighlighterNull(
|
|
54
|
-
|
|
59
|
+
function isHighlighterNull() {
|
|
60
|
+
dropDisposedHighlighter();
|
|
61
|
+
return highlighter == null;
|
|
55
62
|
}
|
|
56
63
|
async function preloadHighlighter(options) {
|
|
57
64
|
await getSharedHighlighter(options);
|
|
58
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Disposes an already loaded shared instance synchronously and clears caches.
|
|
68
|
+
* Instances from createHighlighter() must be disposed separately before
|
|
69
|
+
* switching types.
|
|
70
|
+
*/
|
|
59
71
|
async function disposeHighlighter() {
|
|
60
|
-
|
|
61
|
-
|
|
72
|
+
const cached = highlighter;
|
|
73
|
+
highlighter = void 0;
|
|
62
74
|
cleanUpResolvedLanguages();
|
|
63
75
|
cleanUpResolvedThemes();
|
|
64
|
-
|
|
76
|
+
if (cached != null && "then" in cached) (await cached.catch(() => void 0))?.dispose();
|
|
77
|
+
else cached?.dispose();
|
|
65
78
|
}
|
|
66
|
-
for (const descriptor of pierreThemes.getThemes()) themeResolver.registerThemeIfAbsent(descriptor.name, descriptor.load);
|
|
67
79
|
//#endregion
|
|
68
|
-
export { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter };
|
|
80
|
+
export { HighlighterDisposedError, createHighlighter, disposeHighlighter, getHighlighterIfLoaded, getHighlighterType, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter };
|
|
69
81
|
|
|
70
82
|
//# sourceMappingURL=shared_highlighter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared_highlighter.js","names":[],"sources":["../../src/highlighter/shared_highlighter.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"shared_highlighter.js","names":[],"sources":["../../src/highlighter/shared_highlighter.ts"],"sourcesContent":["import type {\n DiffsHighlighter,\n DiffsThemeNames,\n HighlighterTypes,\n SupportedLanguages,\n ThemesType,\n} from '../types';\nimport {\n acquireHighlighterType,\n getHighlighterType,\n HighlighterDisposedError,\n releaseHighlighterType,\n resolveHighlighterType,\n} from './highlighterType';\nimport { cleanUpResolvedLanguages } from './languages/cleanUpResolvedLanguages';\nimport { areThemesAttached } from './themes/areThemesAttached';\nimport { cleanUpResolvedThemes } from './themes/cleanUpResolvedThemes';\n\nexport {\n getHighlighterType,\n HighlighterDisposedError,\n} from './highlighterType';\n\nlet highlighter: DiffsHighlighter | Promise<DiffsHighlighter> | undefined;\n\nexport interface HighlighterOptions {\n themes: DiffsThemeNames[];\n langs: SupportedLanguages[];\n preferredHighlighter?: HighlighterTypes;\n}\n\n/**\n * Creates an instance the caller must dispose. Defaults to the active type\n * or DEFAULT_HIGHLIGHTER; rejects if a different type is already active.\n */\nexport async function createHighlighter(\n type?: HighlighterTypes\n): Promise<DiffsHighlighter> {\n const resolvedType = resolveHighlighterType(type);\n // Reserve the type before importing to prevent concurrent backend loads.\n acquireHighlighterType(resolvedType);\n try {\n if (resolvedType === 'highlights') {\n const { HighlightsHighlighter } = await import('./backends/highlights');\n return new HighlightsHighlighter();\n }\n const { ShikiHighlighter } = await import('./backends/shiki');\n return await ShikiHighlighter.create(resolvedType);\n } finally {\n releaseHighlighterType();\n }\n}\n\nexport async function getSharedHighlighter({\n themes,\n langs,\n preferredHighlighter,\n}: HighlighterOptions): Promise<DiffsHighlighter> {\n dropDisposedHighlighter();\n const cached = (highlighter ??= createHighlighter(\n getHighlighterType() ?? preferredHighlighter\n ));\n let instance: DiffsHighlighter;\n try {\n instance = await cached;\n } catch (error) {\n // Allow retries without clearing a newer request.\n if (highlighter === cached) {\n highlighter = undefined;\n }\n throw error;\n }\n if (highlighter === cached) {\n highlighter = instance;\n }\n await Promise.all([\n instance.themeResolver.resolveThemes(themes),\n instance.loadLanguages(langs),\n ]);\n // disposeHighlighter() may run while themes and languages load.\n if (instance.isDisposed) {\n throw new HighlighterDisposedError();\n }\n return instance;\n}\n\n// Direct dispose() calls leave the shared reference pointing to a dead instance.\nfunction dropDisposedHighlighter(): void {\n if (\n highlighter != null &&\n !('then' in highlighter) &&\n highlighter.isDisposed\n ) {\n highlighter = undefined;\n }\n}\n\nexport function isHighlighterLoaded(): boolean {\n dropDisposedHighlighter();\n return highlighter != null && !('then' in highlighter);\n}\n\ninterface GetHighlighterIfLoadedProps {\n theme?: DiffsThemeNames | ThemesType;\n lang?: SupportedLanguages;\n langs?: SupportedLanguages[];\n}\n\n/**\n * Returns undefined if the theme or language is not loaded.\n */\nexport function getHighlighterIfLoaded({\n theme,\n lang,\n langs,\n}: GetHighlighterIfLoadedProps = {}): DiffsHighlighter | undefined {\n dropDisposedHighlighter();\n const instance = highlighter;\n if (\n instance == null ||\n 'then' in instance ||\n (theme != null && !areThemesAttached(theme, instance)) ||\n ((lang != null || langs != null) &&\n !instance.hasLoadedLanguages([\n ...(lang != null ? [lang] : []),\n ...(langs ?? []),\n ]))\n ) {\n return undefined;\n }\n return instance;\n}\n\nexport function isHighlighterLoading(): boolean {\n return highlighter != null && 'then' in highlighter;\n}\n\nexport function isHighlighterNull(): boolean {\n dropDisposedHighlighter();\n return highlighter == null;\n}\n\nexport async function preloadHighlighter(\n options: HighlighterOptions\n): Promise<void> {\n await getSharedHighlighter(options);\n}\n\n/**\n * Disposes an already loaded shared instance synchronously and clears caches.\n * Instances from createHighlighter() must be disposed separately before\n * switching types.\n */\nexport async function disposeHighlighter(): Promise<void> {\n const cached = highlighter;\n highlighter = undefined;\n cleanUpResolvedLanguages();\n cleanUpResolvedThemes();\n if (cached != null && 'then' in cached) {\n // A failed initialization has nothing to dispose.\n (await cached.catch(() => undefined))?.dispose();\n } else {\n cached?.dispose();\n }\n}\n"],"mappings":";;;;;AAuBA,IAAI;;;;;AAYJ,eAAsB,kBACpB,MAC2B;CAC3B,MAAM,eAAe,uBAAuB,IAAI;CAEhD,uBAAuB,YAAY;CACnC,IAAI;EACF,IAAI,iBAAiB,cAAc;GACjC,MAAM,EAAE,0BAA0B,MAAM,OAAO;GAC/C,OAAO,IAAI,sBAAsB;EACnC;EACA,MAAM,EAAE,qBAAqB,MAAM,OAAO;EAC1C,OAAO,MAAM,iBAAiB,OAAO,YAAY;CACnD,UAAU;EACR,uBAAuB;CACzB;AACF;AAEA,eAAsB,qBAAqB,EACzC,QACA,OACA,wBACgD;CAChD,wBAAwB;CACxB,MAAM,SAAU,gBAAgB,kBAC9B,mBAAmB,KAAK,oBAC1B;CACA,IAAI;CACJ,IAAI;EACF,WAAW,MAAM;CACnB,SAAS,OAAO;EAEd,IAAI,gBAAgB,QAClB,cAAc,KAAA;EAEhB,MAAM;CACR;CACA,IAAI,gBAAgB,QAClB,cAAc;CAEhB,MAAM,QAAQ,IAAI,CAChB,SAAS,cAAc,cAAc,MAAM,GAC3C,SAAS,cAAc,KAAK,CAC9B,CAAC;CAED,IAAI,SAAS,YACX,MAAM,IAAI,yBAAyB;CAErC,OAAO;AACT;AAGA,SAAS,0BAAgC;CACvC,IACE,eAAe,QACf,EAAE,UAAU,gBACZ,YAAY,YAEZ,cAAc,KAAA;AAElB;AAEA,SAAgB,sBAA+B;CAC7C,wBAAwB;CACxB,OAAO,eAAe,QAAQ,EAAE,UAAU;AAC5C;;;;AAWA,SAAgB,uBAAuB,EACrC,OACA,MACA,UAC+B,CAAC,GAAiC;CACjE,wBAAwB;CACxB,MAAM,WAAW;CACjB,IACE,YAAY,QACZ,UAAU,YACT,SAAS,QAAQ,CAAC,kBAAkB,OAAO,QAAQ,MAClD,QAAQ,QAAQ,SAAS,SACzB,CAAC,SAAS,mBAAmB,CAC3B,GAAI,QAAQ,OAAO,CAAC,IAAI,IAAI,CAAC,GAC7B,GAAI,SAAS,CAAC,CAChB,CAAC,GAEH;CAEF,OAAO;AACT;AAEA,SAAgB,uBAAgC;CAC9C,OAAO,eAAe,QAAQ,UAAU;AAC1C;AAEA,SAAgB,oBAA6B;CAC3C,wBAAwB;CACxB,OAAO,eAAe;AACxB;AAEA,eAAsB,mBACpB,SACe;CACf,MAAM,qBAAqB,OAAO;AACpC;;;;;;AAOA,eAAsB,qBAAoC;CACxD,MAAM,SAAS;CACf,cAAc,KAAA;CACd,yBAAyB;CACzB,sBAAsB;CACtB,IAAI,UAAU,QAAQ,UAAU,QAE9B,CAAC,MAAM,OAAO,YAAY,KAAA,CAAS,EAAA,EAAI,QAAQ;MAE/C,QAAQ,QAAQ;AAEpB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DiffsEditorTokenizer } from "./DiffsEditorTokenizer.js";
|
|
2
|
+
import { DiffsEditorTokenizerOptions } from "./tokenizer-types.js";
|
|
3
|
+
import { DiffsHighlighter } from "./DiffsHighlighter.js";
|
|
4
|
+
import "./types.js";
|
|
5
|
+
import { HighlightedToken, RenderRange } from "../types.js";
|
|
6
|
+
import { TextDocumentChange } from "../editor/textDocument.js";
|
|
7
|
+
import { HighlighterCore } from "shiki/core";
|
|
8
|
+
//#region src/highlighter/shiki-editor.d.ts
|
|
9
|
+
/** TextMate state caching and background work for a single editable document. */
|
|
10
|
+
declare class ShikiEditorTokenizer implements DiffsEditorTokenizer {
|
|
11
|
+
#private;
|
|
12
|
+
private readonly backend?;
|
|
13
|
+
getStringCommentRegexpRangesInLine(lineIndex: number): [number, number][] | null;
|
|
14
|
+
constructor(highlighter: HighlighterCore, options: DiffsEditorTokenizerOptions, backend?: Pick<DiffsHighlighter, 'getTheme' | 'loadLanguages'> | undefined);
|
|
15
|
+
setTheme(themeName: string): void;
|
|
16
|
+
dispose(): void;
|
|
17
|
+
tokenize(change: TextDocumentChange, renderRange?: RenderRange, hostRealignsRows?: boolean): Map<number, Array<HighlightedToken>>;
|
|
18
|
+
prebuildStateStack(renderRange?: RenderRange): void;
|
|
19
|
+
stopBackgroundTokenize(): void;
|
|
20
|
+
pauseBackgroundTokenize(): void;
|
|
21
|
+
resumeBackgroundTokenize(): void;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { ShikiEditorTokenizer };
|
|
25
|
+
//# sourceMappingURL=shiki-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shiki-editor.d.ts","names":[],"sources":["../../src/highlighter/shiki-editor.ts"],"mappings":";;;;;;;;;cAoBa,gCAAgC;;mBAwGxB;EA1BnB,mCACE;EAsBF,YACE,aAAa,iBACb,SAAS,6BACQ,UAAU,KACzB;EAiBJ,SAAS;EA0BT;EAOA,SACE,QAAQ,oBACR,cAAc,aACd,6BACC,YAAY,MAAM;EAwOrB,mBAAmB,cAAc;EAKjC;EAiBA;EAYA"}
|