@pierre/diffs 1.3.0-beta.1 → 1.3.0-beta.11
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 +15 -15
- package/dist/components/CodeView.d.ts +103 -15
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +335 -51
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +12 -8
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +103 -40
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +82 -36
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +382 -96
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/FileStream.d.ts +0 -1
- package/dist/components/FileStream.d.ts.map +1 -1
- package/dist/components/FileStream.js +10 -7
- package/dist/components/FileStream.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts +3 -3
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/UnresolvedFile.js +8 -6
- package/dist/components/UnresolvedFile.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +8 -4
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +118 -44
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +36 -9
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +371 -120
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/Virtualizer.d.ts +4 -1
- package/dist/components/Virtualizer.d.ts.map +1 -1
- package/dist/components/Virtualizer.js +47 -29
- package/dist/components/Virtualizer.js.map +1 -1
- package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
- package/dist/components/web-components.d.ts.map +1 -1
- package/dist/components/web-components.js +2 -3
- package/dist/components/web-components.js.map +1 -1
- package/dist/constants.d.ts +5 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +5 -2
- package/dist/constants.js.map +1 -1
- package/dist/editor/command.d.ts +3 -2
- package/dist/editor/command.d.ts.map +1 -1
- package/dist/editor/command.js +29 -6
- package/dist/editor/command.js.map +1 -1
- package/dist/editor/editStack.d.ts +12 -2
- package/dist/editor/editStack.d.ts.map +1 -1
- package/dist/editor/editStack.js +57 -16
- package/dist/editor/editStack.js.map +1 -1
- package/dist/editor/editor.d.ts +91 -8
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +1951 -709
- package/dist/editor/editor.js.map +1 -1
- package/dist/editor/editor2.js +6 -0
- package/dist/editor/editor2.js.map +1 -0
- package/dist/editor/index.d.ts +4 -2
- package/dist/editor/index.js +1 -2
- package/dist/editor/languages.d.ts +26 -0
- package/dist/editor/languages.d.ts.map +1 -0
- package/dist/editor/languages.js +363 -0
- package/dist/editor/languages.js.map +1 -0
- package/dist/editor/lineAnnotations.d.ts +2 -1
- package/dist/editor/lineAnnotations.d.ts.map +1 -1
- package/dist/editor/lineAnnotations.js +193 -13
- package/dist/editor/lineAnnotations.js.map +1 -1
- package/dist/editor/marker.d.ts +38 -0
- package/dist/editor/marker.d.ts.map +1 -0
- package/dist/editor/marker.js +245 -0
- package/dist/editor/marker.js.map +1 -0
- package/dist/editor/matchBrackets.d.ts +9 -0
- package/dist/editor/matchBrackets.d.ts.map +1 -0
- package/dist/editor/matchBrackets.js +138 -0
- package/dist/editor/matchBrackets.js.map +1 -0
- package/dist/editor/pieceTable.d.ts +15 -7
- package/dist/editor/pieceTable.d.ts.map +1 -1
- package/dist/editor/pieceTable.js +306 -190
- package/dist/editor/pieceTable.js.map +1 -1
- package/dist/editor/platform.d.ts +8 -1
- package/dist/editor/platform.d.ts.map +1 -1
- package/dist/editor/platform.js +18 -5
- package/dist/editor/platform.js.map +1 -1
- package/dist/editor/popover.d.ts +65 -0
- package/dist/editor/popover.d.ts.map +1 -0
- package/dist/editor/popover.js +191 -0
- package/dist/editor/popover.js.map +1 -0
- package/dist/editor/searchPanel.d.ts +17 -7
- package/dist/editor/searchPanel.d.ts.map +1 -1
- package/dist/editor/searchPanel.js +268 -169
- package/dist/editor/searchPanel.js.map +1 -1
- package/dist/editor/selection.d.ts +101 -16
- package/dist/editor/selection.d.ts.map +1 -1
- package/dist/editor/selection.js +863 -137
- package/dist/editor/selection.js.map +1 -1
- package/dist/editor/selectionAction.d.ts +46 -0
- package/dist/editor/selectionAction.d.ts.map +1 -0
- package/dist/editor/selectionAction.js +64 -0
- package/dist/editor/selectionAction.js.map +1 -0
- package/dist/editor/sprite.d.ts +8 -0
- package/dist/editor/sprite.d.ts.map +1 -0
- package/dist/editor/sprite.js +45 -0
- package/dist/editor/sprite.js.map +1 -0
- package/dist/editor/stateStorage.d.ts +15 -0
- package/dist/editor/stateStorage.d.ts.map +1 -0
- package/dist/editor/stateStorage.js +65 -0
- package/dist/editor/stateStorage.js.map +1 -0
- package/dist/editor/textDocument.d.ts +21 -83
- package/dist/editor/textDocument.d.ts.map +1 -1
- package/dist/editor/textDocument.js +117 -48
- package/dist/editor/textDocument.js.map +1 -1
- package/dist/editor/textMeasure.d.ts +31 -2
- package/dist/editor/textMeasure.d.ts.map +1 -1
- package/dist/editor/textMeasure.js +122 -21
- package/dist/editor/textMeasure.js.map +1 -1
- package/dist/editor/{tokenzier.d.ts → tokenizer.d.ts} +16 -12
- package/dist/editor/tokenizer.d.ts.map +1 -0
- package/dist/editor/tokenizer.js +518 -0
- package/dist/editor/tokenizer.js.map +1 -0
- package/dist/editor/utils.d.ts +6 -1
- package/dist/editor/utils.d.ts.map +1 -1
- package/dist/editor/utils.js +34 -3
- package/dist/editor/utils.js.map +1 -1
- package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
- package/dist/highlighter/languages/areLanguagesAttached.js +1 -2
- package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
- package/dist/highlighter/languages/attachResolvedLanguages.d.ts +0 -2
- package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/attachResolvedLanguages.js +1 -2
- package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
- package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/cleanUpResolvedLanguages.js +1 -2
- package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -1
- package/dist/highlighter/languages/constants.d.ts +0 -1
- package/dist/highlighter/languages/constants.d.ts.map +1 -1
- package/dist/highlighter/languages/constants.js +1 -1
- package/dist/highlighter/languages/constants.js.map +1 -1
- package/dist/highlighter/languages/getResolvedLanguages.d.ts +0 -2
- package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/getResolvedLanguages.js +1 -2
- package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -1
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +0 -2
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +1 -2
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -1
- package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/hasResolvedLanguages.js +1 -2
- package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -1
- package/dist/highlighter/languages/registerCustomLanguage.d.ts +0 -1
- package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/registerCustomLanguage.js +1 -2
- package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -1
- package/dist/highlighter/languages/resolveLanguage.d.ts +0 -2
- package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/resolveLanguage.js +4 -5
- package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
- package/dist/highlighter/languages/resolveLanguages.d.ts +0 -2
- package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/resolveLanguages.js +1 -2
- package/dist/highlighter/languages/resolveLanguages.js.map +1 -1
- package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
- package/dist/highlighter/shared_highlighter.js +6 -33
- package/dist/highlighter/shared_highlighter.js.map +1 -1
- package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
- package/dist/highlighter/themes/areThemesAttached.js +1 -2
- package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
- package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/attachResolvedThemes.js +5 -5
- package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/cleanUpResolvedThemes.js +4 -4
- package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/constants.d.ts +1 -7
- package/dist/highlighter/themes/constants.d.ts.map +1 -1
- package/dist/highlighter/themes/constants.js +2 -5
- package/dist/highlighter/themes/constants.js.map +1 -1
- package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/getResolvedOrResolveTheme.js +3 -4
- package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
- package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/getResolvedThemes.js +3 -10
- package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/hasResolvedThemes.js +3 -5
- 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 +2 -3
- package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
- package/dist/highlighter/themes/registerCustomTheme.d.ts +5 -3
- package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/registerCustomTheme.js +16 -7
- package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
- package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/resolveTheme.js +7 -29
- package/dist/highlighter/themes/resolveTheme.js.map +1 -1
- package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/resolveThemes.js +6 -14
- package/dist/highlighter/themes/resolveThemes.js.map +1 -1
- package/dist/highlighter/themes/themeResolution.d.ts +8 -0
- package/dist/highlighter/themes/themeResolution.d.ts.map +1 -0
- package/dist/highlighter/themes/themeResolution.js +21 -0
- package/dist/highlighter/themes/themeResolution.js.map +1 -0
- package/dist/highlighter/themes/themeResolver.d.ts +8 -0
- package/dist/highlighter/themes/themeResolver.d.ts.map +1 -0
- package/dist/highlighter/themes/themeResolver.js +7 -0
- package/dist/highlighter/themes/themeResolver.js.map +1 -0
- package/dist/index.d.ts +16 -14
- package/dist/index.js +13 -12
- package/dist/managers/InteractionManager.d.ts +20 -2
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +159 -83
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/managers/ResizeManager.d.ts +10 -2
- package/dist/managers/ResizeManager.d.ts.map +1 -1
- package/dist/managers/ResizeManager.js +35 -15
- package/dist/managers/ResizeManager.js.map +1 -1
- package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
- package/dist/managers/ScrollSyncManager.js +1 -1
- package/dist/managers/ScrollSyncManager.js.map +1 -1
- package/dist/managers/UniversalRenderingManager.d.ts +2 -1
- package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
- package/dist/managers/UniversalRenderingManager.js +8 -3
- package/dist/managers/UniversalRenderingManager.js.map +1 -1
- package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +228 -0
- package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts +84 -0
- package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts.map +1 -0
- package/dist/react/CodeView.d.ts +26 -2
- package/dist/react/CodeView.d.ts.map +1 -1
- package/dist/react/CodeView.js +90 -30
- package/dist/react/CodeView.js.map +1 -1
- package/dist/react/EditContext.d.ts +15 -0
- package/dist/react/EditContext.d.ts.map +1 -0
- package/dist/react/EditContext.js +23 -0
- package/dist/react/EditContext.js.map +1 -0
- package/dist/react/File.d.ts +1 -0
- package/dist/react/File.d.ts.map +1 -1
- package/dist/react/File.js +4 -6
- package/dist/react/File.js.map +1 -1
- package/dist/react/FileDiff.d.ts +1 -0
- package/dist/react/FileDiff.d.ts.map +1 -1
- package/dist/react/FileDiff.js +4 -6
- package/dist/react/FileDiff.js.map +1 -1
- package/dist/react/MultiFileDiff.d.ts +4 -4
- package/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/dist/react/MultiFileDiff.js +4 -6
- package/dist/react/MultiFileDiff.js.map +1 -1
- package/dist/react/PatchDiff.d.ts +1 -0
- package/dist/react/PatchDiff.d.ts.map +1 -1
- package/dist/react/PatchDiff.js +4 -6
- package/dist/react/PatchDiff.js.map +1 -1
- package/dist/react/UnresolvedFile.d.ts +2 -1
- package/dist/react/UnresolvedFile.d.ts.map +1 -1
- package/dist/react/UnresolvedFile.js +4 -6
- package/dist/react/UnresolvedFile.js.map +1 -1
- package/dist/react/Virtualizer.d.ts.map +1 -1
- package/dist/react/Virtualizer.js +2 -5
- package/dist/react/Virtualizer.js.map +1 -1
- package/dist/react/WorkerPoolContext.d.ts +0 -1
- package/dist/react/WorkerPoolContext.d.ts.map +1 -1
- package/dist/react/WorkerPoolContext.js +2 -5
- package/dist/react/WorkerPoolContext.js.map +1 -1
- package/dist/react/constants.d.ts.map +1 -1
- package/dist/react/constants.js +1 -1
- package/dist/react/constants.js.map +1 -1
- package/dist/react/index.d.ts +3 -3
- package/dist/react/index.js +2 -3
- package/dist/react/jsx.d.ts +0 -1
- package/dist/react/jsx.d.ts.map +1 -1
- package/dist/react/types.d.ts +2 -0
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/types.js +1 -0
- package/dist/react/utils/renderDiffChildren.d.ts +2 -0
- package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.js +18 -11
- package/dist/react/utils/renderDiffChildren.js.map +1 -1
- package/dist/react/utils/renderFileChildren.d.ts +2 -0
- package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
- package/dist/react/utils/renderFileChildren.js +18 -11
- package/dist/react/utils/renderFileChildren.js.map +1 -1
- package/dist/react/utils/templateRender.d.ts.map +1 -1
- package/dist/react/utils/templateRender.js +1 -2
- package/dist/react/utils/templateRender.js.map +1 -1
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +10 -18
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileInstance.js +3 -7
- package/dist/react/utils/useFileInstance.js.map +1 -1
- package/dist/react/utils/useStableCallback.d.ts.map +1 -1
- package/dist/react/utils/useStableCallback.js +1 -2
- package/dist/react/utils/useStableCallback.js.map +1 -1
- package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useUnresolvedFileInstance.js +10 -11
- package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +30 -4
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +313 -45
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +7 -6
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +113 -56
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +1 -2
- package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -2
- package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
- package/dist/shiki-stream/index.js +1 -2
- package/dist/shiki-stream/stream.d.ts +0 -1
- package/dist/shiki-stream/stream.d.ts.map +1 -1
- package/dist/shiki-stream/stream.js +1 -2
- package/dist/shiki-stream/stream.js.map +1 -1
- package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
- package/dist/shiki-stream/tokenizer.js +1 -1
- package/dist/shiki-stream/tokenizer.js.map +1 -1
- package/dist/shiki-stream/types.d.ts +0 -1
- package/dist/shiki-stream/types.d.ts.map +1 -1
- package/dist/sprite.d.ts.map +1 -1
- package/dist/sprite.js +1 -1
- package/dist/ssr/FileDiffReact.d.ts.map +1 -1
- package/dist/ssr/FileDiffReact.js +4 -7
- package/dist/ssr/FileDiffReact.js.map +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/ssr/index.js +1 -2
- package/dist/ssr/preloadDiffs.d.ts +12 -11
- package/dist/ssr/preloadDiffs.d.ts.map +1 -1
- package/dist/ssr/preloadDiffs.js +16 -9
- package/dist/ssr/preloadDiffs.js.map +1 -1
- package/dist/ssr/preloadFile.d.ts.map +1 -1
- package/dist/ssr/preloadFile.js +1 -2
- package/dist/ssr/preloadFile.js.map +1 -1
- package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
- package/dist/ssr/preloadPatchFile.js +2 -3
- package/dist/ssr/preloadPatchFile.js.map +1 -1
- package/dist/ssr/renderHTML.d.ts +1 -1
- package/dist/ssr/renderHTML.d.ts.map +1 -1
- package/dist/ssr/renderHTML.js +1 -2
- package/dist/ssr/renderHTML.js.map +1 -1
- package/dist/string-import.d.ts +4 -0
- package/dist/string-import.d.ts.map +1 -1
- package/dist/style.js +3 -3
- package/dist/style.js.map +1 -1
- package/dist/types.d.ts +278 -31
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/applyLineTextWithNewline.d.ts +5 -0
- package/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
- package/dist/utils/applyLineTextWithNewline.js +11 -0
- package/dist/utils/applyLineTextWithNewline.js.map +1 -0
- package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
- package/dist/utils/areDiffLineAnnotationsEqual.js +1 -1
- package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
- package/dist/utils/areDiffRenderOptionsEqual.d.ts.map +1 -1
- package/dist/utils/areDiffRenderOptionsEqual.js +1 -2
- package/dist/utils/areDiffRenderOptionsEqual.js.map +1 -1
- package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -1
- package/dist/utils/areDiffTargetsEqual.js +1 -1
- package/dist/utils/areDiffTargetsEqual.js.map +1 -1
- package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -1
- package/dist/utils/areFileRenderOptionsEqual.js +1 -2
- package/dist/utils/areFileRenderOptionsEqual.js.map +1 -1
- package/dist/utils/areFilesEqual.d.ts.map +1 -1
- package/dist/utils/areFilesEqual.js +1 -1
- package/dist/utils/areFilesEqual.js.map +1 -1
- package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
- package/dist/utils/areHunkDataEqual.js +2 -2
- package/dist/utils/areHunkDataEqual.js.map +1 -1
- package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
- package/dist/utils/areLineAnnotationsEqual.js +1 -1
- package/dist/utils/areLineAnnotationsEqual.js.map +1 -1
- package/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
- package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
- package/dist/utils/areManagedSnapshotsEqual.js +6 -1
- package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
- package/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -1
- package/dist/utils/areMergeConflictActionsEqual.js +1 -1
- package/dist/utils/areMergeConflictActionsEqual.js.map +1 -1
- package/dist/utils/areObjectsEqual.d.ts.map +1 -1
- package/dist/utils/areObjectsEqual.js +1 -1
- package/dist/utils/areObjectsEqual.js.map +1 -1
- package/dist/utils/areOptionsEqual.d.ts +0 -2
- package/dist/utils/areOptionsEqual.d.ts.map +1 -1
- package/dist/utils/areOptionsEqual.js +1 -2
- package/dist/utils/areOptionsEqual.js.map +1 -1
- package/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
- package/dist/utils/arePrePropertiesEqual.js +1 -1
- package/dist/utils/arePrePropertiesEqual.js.map +1 -1
- package/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
- package/dist/utils/areRenderRangesEqual.js +1 -1
- package/dist/utils/areRenderRangesEqual.js.map +1 -1
- package/dist/utils/areSelectionPointsEqual.d.ts.map +1 -1
- package/dist/utils/areSelectionPointsEqual.js +1 -1
- package/dist/utils/areSelectionPointsEqual.js.map +1 -1
- package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
- package/dist/utils/areSelectionsEqual.js +1 -1
- package/dist/utils/areSelectionsEqual.js.map +1 -1
- package/dist/utils/areThemesEqual.d.ts.map +1 -1
- package/dist/utils/areThemesEqual.js +1 -1
- package/dist/utils/areThemesEqual.js.map +1 -1
- package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
- package/dist/utils/areVirtualWindowSpecsEqual.js +1 -1
- package/dist/utils/areVirtualWindowSpecsEqual.js.map +1 -1
- package/dist/utils/areWorkerStatsEqual.d.ts +0 -2
- package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
- package/dist/utils/areWorkerStatsEqual.js +1 -1
- package/dist/utils/areWorkerStatsEqual.js.map +1 -1
- package/dist/utils/awaitWithTimeout.d.ts +5 -0
- package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
- package/dist/utils/awaitWithTimeout.js +15 -0
- package/dist/utils/awaitWithTimeout.js.map +1 -0
- package/dist/utils/cleanLastNewline.d.ts.map +1 -1
- package/dist/utils/cleanLastNewline.js +1 -1
- package/dist/utils/cleanLastNewline.js.map +1 -1
- package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
- package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
- package/dist/utils/cloneFileDiffMetadata.js +16 -0
- package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
- package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
- package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
- package/dist/utils/computeEstimatedDiffHeights.js +18 -23
- package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
- package/dist/utils/computeFileOffsets.d.ts +9 -1
- package/dist/utils/computeFileOffsets.d.ts.map +1 -1
- package/dist/utils/computeFileOffsets.js +51 -4
- package/dist/utils/computeFileOffsets.js.map +1 -1
- package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
- package/dist/utils/computeVirtualFileMetrics.js +1 -2
- package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
- package/dist/utils/createAnnotationElement.d.ts +1 -1
- package/dist/utils/createAnnotationElement.d.ts.map +1 -1
- package/dist/utils/createAnnotationElement.js +1 -2
- package/dist/utils/createAnnotationElement.js.map +1 -1
- package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
- package/dist/utils/createAnnotationWrapperNode.js +1 -1
- package/dist/utils/createAnnotationWrapperNode.js.map +1 -1
- package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
- package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
- package/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
- package/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
- package/dist/utils/createContentColumn.d.ts +1 -1
- package/dist/utils/createContentColumn.d.ts.map +1 -1
- package/dist/utils/createContentColumn.js +1 -2
- package/dist/utils/createContentColumn.js.map +1 -1
- package/dist/utils/createEmptyRowBuffer.d.ts +1 -1
- package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
- package/dist/utils/createEmptyRowBuffer.js +1 -2
- package/dist/utils/createEmptyRowBuffer.js.map +1 -1
- package/dist/utils/createFileHeaderElement.d.ts +1 -1
- package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
- package/dist/utils/createFileHeaderElement.js +6 -3
- package/dist/utils/createFileHeaderElement.js.map +1 -1
- package/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -1
- package/dist/utils/createGutterUtilityContentNode.js +1 -1
- package/dist/utils/createGutterUtilityContentNode.js.map +1 -1
- package/dist/utils/createGutterUtilityElement.d.ts +1 -1
- package/dist/utils/createGutterUtilityElement.d.ts.map +1 -1
- package/dist/utils/createGutterUtilityElement.js +1 -2
- package/dist/utils/createGutterUtilityElement.js.map +1 -1
- package/dist/utils/createNoNewlineElement.d.ts +1 -1
- package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
- package/dist/utils/createNoNewlineElement.js +1 -2
- package/dist/utils/createNoNewlineElement.js.map +1 -1
- package/dist/utils/createPreElement.d.ts +1 -1
- package/dist/utils/createPreElement.d.ts.map +1 -1
- package/dist/utils/createPreElement.js +1 -3
- package/dist/utils/createPreElement.js.map +1 -1
- package/dist/utils/createRowNodes.d.ts.map +1 -1
- package/dist/utils/createRowNodes.js +1 -1
- package/dist/utils/createRowNodes.js.map +1 -1
- package/dist/utils/createSeparator.d.ts +1 -1
- package/dist/utils/createSeparator.d.ts.map +1 -1
- package/dist/utils/createSeparator.js +1 -2
- package/dist/utils/createSeparator.js.map +1 -1
- package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
- package/dist/utils/createSpanNodeFromToken.js +1 -2
- package/dist/utils/createSpanNodeFromToken.js.map +1 -1
- package/dist/utils/createStyleElement.d.ts +1 -1
- package/dist/utils/createStyleElement.d.ts.map +1 -1
- package/dist/utils/createStyleElement.js +1 -2
- package/dist/utils/createStyleElement.js.map +1 -1
- package/dist/utils/createTransformerWithState.d.ts.map +1 -1
- package/dist/utils/createTransformerWithState.js +1 -2
- package/dist/utils/createTransformerWithState.js.map +1 -1
- package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
- package/dist/utils/createUnsafeCSSStyleNode.js +1 -2
- package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -1
- package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
- package/dist/utils/createWindowFromScrollPosition.js +5 -5
- package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
- package/dist/utils/cssWrappers.d.ts.map +1 -1
- package/dist/utils/cssWrappers.js +2 -3
- package/dist/utils/cssWrappers.js.map +1 -1
- package/dist/utils/detachString.d.ts.map +1 -1
- package/dist/utils/detachString.js +1 -1
- package/dist/utils/detachString.js.map +1 -1
- package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
- package/dist/utils/diffAcceptRejectHunk.js +1 -2
- package/dist/utils/diffAcceptRejectHunk.js.map +1 -1
- package/dist/utils/editSessionHunks.d.ts +84 -0
- package/dist/utils/editSessionHunks.d.ts.map +1 -0
- package/dist/utils/editSessionHunks.js +366 -0
- package/dist/utils/editSessionHunks.js.map +1 -0
- package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
- package/dist/utils/formatCSSVariablePrefix.js +1 -1
- package/dist/utils/formatCSSVariablePrefix.js.map +1 -1
- package/dist/utils/getDiffFileInput.d.ts +14 -0
- package/dist/utils/getDiffFileInput.d.ts.map +1 -0
- package/dist/utils/getDiffFileInput.js +24 -0
- package/dist/utils/getDiffFileInput.js.map +1 -0
- package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
- package/dist/utils/getDiffHunksRendererOptions.js +2 -1
- package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
- package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
- package/dist/utils/getFileRendererOptions.js +1 -1
- package/dist/utils/getFileRendererOptions.js.map +1 -1
- package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
- package/dist/utils/getFiletypeFromFileName.js +3 -1
- package/dist/utils/getFiletypeFromFileName.js.map +1 -1
- package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
- package/dist/utils/getHighlighterOptions.js +1 -2
- package/dist/utils/getHighlighterOptions.js.map +1 -1
- package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
- package/dist/utils/getHighlighterThemeStyles.js +17 -14
- package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
- package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
- package/dist/utils/getHunkSeparatorSlotName.js +1 -1
- package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
- package/dist/utils/getIconForType.d.ts.map +1 -1
- package/dist/utils/getIconForType.js +1 -1
- package/dist/utils/getIconForType.js.map +1 -1
- package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
- package/dist/utils/getLineAnnotationName.js +1 -1
- package/dist/utils/getLineAnnotationName.js.map +1 -1
- package/dist/utils/getLineEndingType.d.ts.map +1 -1
- package/dist/utils/getLineEndingType.js +1 -1
- package/dist/utils/getLineEndingType.js.map +1 -1
- package/dist/utils/getLineNodes.d.ts +1 -1
- package/dist/utils/getLineNodes.d.ts.map +1 -1
- package/dist/utils/getLineNodes.js +1 -1
- package/dist/utils/getLineNodes.js.map +1 -1
- package/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -1
- package/dist/utils/getMergeConflictActionSlotName.js +1 -1
- package/dist/utils/getMergeConflictActionSlotName.js.map +1 -1
- package/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -1
- package/dist/utils/getMergeConflictLineTypes.js +1 -2
- package/dist/utils/getMergeConflictLineTypes.js.map +1 -1
- package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
- package/dist/utils/getOrCreateCodeNode.js +1 -1
- package/dist/utils/getOrCreateCodeNode.js.map +1 -1
- package/dist/utils/getSingularPatch.d.ts.map +1 -1
- package/dist/utils/getSingularPatch.js +1 -2
- package/dist/utils/getSingularPatch.js.map +1 -1
- package/dist/utils/getThemes.d.ts.map +1 -1
- package/dist/utils/getThemes.js +1 -2
- package/dist/utils/getThemes.js.map +1 -1
- package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
- package/dist/utils/getTotalLineCountFromHunks.js +1 -1
- package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
- package/dist/utils/hast_utils.d.ts +1 -1
- package/dist/utils/hast_utils.d.ts.map +1 -1
- package/dist/utils/hast_utils.js +1 -1
- package/dist/utils/hast_utils.js.map +1 -1
- package/dist/utils/hostTheme.d.ts.map +1 -1
- package/dist/utils/hostTheme.js +1 -2
- package/dist/utils/hostTheme.js.map +1 -1
- package/dist/utils/hydratePartialDiff.d.ts +10 -0
- package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
- package/dist/utils/hydratePartialDiff.js +140 -0
- package/dist/utils/hydratePartialDiff.js.map +1 -0
- package/dist/utils/includesFileAnnotations.d.ts +17 -0
- package/dist/utils/includesFileAnnotations.d.ts.map +1 -0
- package/dist/utils/includesFileAnnotations.js +19 -0
- package/dist/utils/includesFileAnnotations.js.map +1 -0
- package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
- package/dist/utils/isDefaultRenderRange.js +1 -1
- package/dist/utils/isDefaultRenderRange.js.map +1 -1
- package/dist/utils/isDiffPlainText.d.ts.map +1 -1
- package/dist/utils/isDiffPlainText.js +1 -2
- package/dist/utils/isDiffPlainText.js.map +1 -1
- package/dist/utils/isFilePlainText.d.ts.map +1 -1
- package/dist/utils/isFilePlainText.js +1 -2
- package/dist/utils/isFilePlainText.js.map +1 -1
- package/dist/utils/isGutterUtilityPath.d.ts +5 -0
- package/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
- package/dist/utils/isGutterUtilityPath.js +12 -0
- package/dist/utils/isGutterUtilityPath.js.map +1 -0
- package/dist/utils/isStyleNode.d.ts.map +1 -1
- package/dist/utils/isStyleNode.js +1 -1
- package/dist/utils/isStyleNode.js.map +1 -1
- package/dist/utils/isWorkerContext.d.ts.map +1 -1
- package/dist/utils/isWorkerContext.js +1 -1
- package/dist/utils/isWorkerContext.js.map +1 -1
- package/dist/utils/iterateOverDiff.d.ts.map +1 -1
- package/dist/utils/iterateOverDiff.js +178 -214
- package/dist/utils/iterateOverDiff.js.map +1 -1
- package/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
- package/dist/utils/normalizeDiffResolution.js +1 -1
- package/dist/utils/normalizeDiffResolution.js.map +1 -1
- package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
- package/dist/utils/parseDiffDecorations.js +1 -2
- package/dist/utils/parseDiffDecorations.js.map +1 -1
- package/dist/utils/parseDiffFromFile.d.ts +1 -2
- package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
- package/dist/utils/parseDiffFromFile.js +27 -7
- package/dist/utils/parseDiffFromFile.js.map +1 -1
- package/dist/utils/parseLineType.d.ts.map +1 -1
- package/dist/utils/parseLineType.js +1 -1
- package/dist/utils/parseLineType.js.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.js +5 -5
- package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +101 -11
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/prefersReducedMotion.d.ts.map +1 -1
- package/dist/utils/prefersReducedMotion.js +1 -1
- package/dist/utils/prefersReducedMotion.js.map +1 -1
- package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
- package/dist/utils/prerenderHTMLIfNecessary.js +1 -1
- package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -1
- package/dist/utils/processLine.d.ts +1 -1
- package/dist/utils/processLine.d.ts.map +1 -1
- package/dist/utils/processLine.js +1 -2
- package/dist/utils/processLine.js.map +1 -1
- package/dist/utils/realignChangeContent.d.ts +28 -0
- package/dist/utils/realignChangeContent.d.ts.map +1 -0
- package/dist/utils/realignChangeContent.js +142 -0
- package/dist/utils/realignChangeContent.js.map +1 -0
- package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.js +9 -8
- package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
- package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderFileWithHighlighter.js +5 -4
- package/dist/utils/renderFileWithHighlighter.js.map +1 -1
- package/dist/utils/resolveConflict.d.ts.map +1 -1
- package/dist/utils/resolveConflict.js +1 -2
- package/dist/utils/resolveConflict.js.map +1 -1
- package/dist/utils/resolveRegion.d.ts.map +1 -1
- package/dist/utils/resolveRegion.js +1 -1
- package/dist/utils/resolveRegion.js.map +1 -1
- package/dist/utils/roundToDevicePixel.d.ts.map +1 -1
- package/dist/utils/roundToDevicePixel.js +1 -1
- package/dist/utils/roundToDevicePixel.js.map +1 -1
- package/dist/utils/scrollbarGutter.d.ts.map +1 -1
- package/dist/utils/scrollbarGutter.js +1 -2
- package/dist/utils/scrollbarGutter.js.map +1 -1
- package/dist/utils/setLanguageOverride.d.ts.map +1 -1
- package/dist/utils/setLanguageOverride.js +1 -1
- package/dist/utils/setLanguageOverride.js.map +1 -1
- package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
- package/dist/utils/setWrapperNodeProps.js +1 -2
- package/dist/utils/setWrapperNodeProps.js.map +1 -1
- package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
- package/dist/utils/shouldUseTokenTransformer.js +1 -1
- package/dist/utils/shouldUseTokenTransformer.js.map +1 -1
- package/dist/utils/splitFileContents.d.ts.map +1 -1
- package/dist/utils/splitFileContents.js +1 -2
- package/dist/utils/splitFileContents.js.map +1 -1
- package/dist/utils/trimPatchContext.d.ts.map +1 -1
- package/dist/utils/trimPatchContext.js +1 -2
- package/dist/utils/trimPatchContext.js.map +1 -1
- package/dist/utils/updateDiffHunks.d.ts +24 -0
- package/dist/utils/updateDiffHunks.d.ts.map +1 -0
- package/dist/utils/updateDiffHunks.js +235 -0
- package/dist/utils/updateDiffHunks.js.map +1 -0
- package/dist/utils/virtualDiffLayout.d.ts +62 -2
- package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
- package/dist/utils/virtualDiffLayout.js +137 -3
- package/dist/utils/virtualDiffLayout.js.map +1 -1
- package/dist/utils/wrapTokenFragments.d.ts +1 -1
- package/dist/utils/wrapTokenFragments.d.ts.map +1 -1
- package/dist/utils/wrapTokenFragments.js +1 -2
- package/dist/utils/wrapTokenFragments.js.map +1 -1
- package/dist/worker/WorkerPoolManager.d.ts +7 -2
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +88 -23
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
- package/dist/worker/getOrCreateWorkerPoolSingleton.js +1 -2
- package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
- package/dist/worker/index.d.ts +2 -2
- package/dist/worker/index.js +1 -2
- package/dist/worker/types.d.ts +11 -1
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/wasm-B9ZqxnKj.js +8 -0
- package/dist/worker/wasm-B9ZqxnKj.js.map +1 -0
- package/dist/worker/worker-portable.js +3361 -6211
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +321 -314
- package/dist/worker/worker.js.map +1 -1
- package/package.json +29 -32
- package/dist/editor/css.d.ts +0 -6
- package/dist/editor/css.d.ts.map +0 -1
- package/dist/editor/css.js +0 -218
- package/dist/editor/css.js.map +0 -1
- package/dist/editor/quickEdit.d.ts +0 -29
- package/dist/editor/quickEdit.d.ts.map +0 -1
- package/dist/editor/quickEdit.js +0 -81
- package/dist/editor/quickEdit.js.map +0 -1
- package/dist/editor/tokenzier.d.ts.map +0 -1
- package/dist/editor/tokenzier.js +0 -348
- package/dist/editor/tokenzier.js.map +0 -1
- package/dist/react/EditorContext.d.ts +0 -16
- package/dist/react/EditorContext.d.ts.map +0 -1
- package/dist/react/EditorContext.js +0 -26
- package/dist/react/EditorContext.js.map +0 -1
- package/dist/worker/wasm-D4DU5jgR.js +0 -10
- package/dist/worker/wasm-D4DU5jgR.js.map +0 -1
package/dist/worker/worker.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createHighlighterCore } from "shiki/core";
|
|
2
2
|
import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
|
|
3
3
|
import { createOnigurumaEngine } from "shiki/engine/oniguruma";
|
|
4
|
+
import { createThemeResolver } from "@pierre/theming";
|
|
4
5
|
import { diffChars, diffWordsWithSpace } from "diff";
|
|
5
6
|
import { transformerStyleToClass } from "@shikijs/transformers";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const DIFFS_DEVELOPMENT_BUILD = (() => {
|
|
7
|
+
import { normalizeThemeColors } from "@pierre/theming/color";
|
|
8
|
+
(() => {
|
|
9
9
|
try {
|
|
10
10
|
return process.env.NODE_ENV === "development";
|
|
11
11
|
} catch {
|
|
@@ -16,30 +16,17 @@ const DEFAULT_THEMES = {
|
|
|
16
16
|
dark: "pierre-dark",
|
|
17
17
|
light: "pierre-light"
|
|
18
18
|
};
|
|
19
|
-
|
|
20
|
-
const DEFAULT_VIRTUAL_FILE_METRICS = {
|
|
21
|
-
hunkLineCount: 50,
|
|
22
|
-
lineHeight: 20,
|
|
23
|
-
diffHeaderHeight: 44,
|
|
24
|
-
spacing: 8
|
|
25
|
-
};
|
|
26
|
-
const DEFAULT_CODE_VIEW_FILE_METRICS = {
|
|
27
|
-
...DEFAULT_VIRTUAL_FILE_METRICS,
|
|
28
|
-
hunkLineCount: 1
|
|
29
|
-
};
|
|
30
|
-
const DEFAULT_EXPANDED_REGION = Object.freeze({
|
|
19
|
+
Object.freeze({
|
|
31
20
|
fromStart: 0,
|
|
32
21
|
fromEnd: 0
|
|
33
22
|
});
|
|
34
|
-
|
|
35
23
|
//#endregion
|
|
36
24
|
//#region src/highlighter/languages/constants.ts
|
|
37
25
|
const ResolvedLanguages = /* @__PURE__ */ new Map();
|
|
38
26
|
const AttachedLanguages = /* @__PURE__ */ new Set();
|
|
39
|
-
|
|
40
27
|
//#endregion
|
|
41
28
|
//#region src/highlighter/languages/attachResolvedLanguages.ts
|
|
42
|
-
function attachResolvedLanguages(resolvedLanguages, highlighter
|
|
29
|
+
function attachResolvedLanguages(resolvedLanguages, highlighter) {
|
|
43
30
|
resolvedLanguages = Array.isArray(resolvedLanguages) ? resolvedLanguages : [resolvedLanguages];
|
|
44
31
|
for (const resolvedLang of resolvedLanguages) {
|
|
45
32
|
if (AttachedLanguages.has(resolvedLang.name)) continue;
|
|
@@ -49,35 +36,34 @@ function attachResolvedLanguages(resolvedLanguages, highlighter$1) {
|
|
|
49
36
|
ResolvedLanguages.set(resolvedLang.name, lang);
|
|
50
37
|
}
|
|
51
38
|
AttachedLanguages.add(lang.name);
|
|
52
|
-
highlighter
|
|
39
|
+
highlighter.loadLanguageSync(lang.data);
|
|
53
40
|
}
|
|
54
41
|
}
|
|
55
|
-
|
|
56
42
|
//#endregion
|
|
57
43
|
//#region src/highlighter/themes/constants.ts
|
|
58
|
-
const ResolvedThemes = /* @__PURE__ */ new Map();
|
|
59
44
|
const AttachedThemes = /* @__PURE__ */ new Set();
|
|
60
|
-
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region src/highlighter/themes/themeResolver.ts
|
|
47
|
+
const themeResolver = createThemeResolver();
|
|
61
48
|
//#endregion
|
|
62
49
|
//#region src/highlighter/themes/attachResolvedThemes.ts
|
|
63
|
-
function attachResolvedThemes(themes, highlighter
|
|
50
|
+
function attachResolvedThemes(themes, highlighter) {
|
|
64
51
|
themes = Array.isArray(themes) ? themes : [themes];
|
|
65
52
|
for (let themeRef of themes) {
|
|
66
53
|
let resolvedTheme;
|
|
67
54
|
if (typeof themeRef === "string") {
|
|
68
|
-
resolvedTheme =
|
|
55
|
+
resolvedTheme = themeResolver.getResolvedTheme(themeRef);
|
|
69
56
|
if (resolvedTheme == null) throw new Error(`loadResolvedThemes: ${themeRef} is not resolved, you must resolve it before calling loadResolvedThemes`);
|
|
70
57
|
} else {
|
|
71
58
|
resolvedTheme = themeRef;
|
|
72
59
|
themeRef = themeRef.name;
|
|
73
|
-
if (
|
|
60
|
+
if (themeResolver.getResolvedTheme(themeRef) == null) themeResolver.seedResolvedTheme(themeRef, resolvedTheme);
|
|
74
61
|
}
|
|
75
62
|
if (AttachedThemes.has(themeRef)) continue;
|
|
76
63
|
AttachedThemes.add(themeRef);
|
|
77
|
-
highlighter
|
|
64
|
+
highlighter.loadThemeSync(resolvedTheme);
|
|
78
65
|
}
|
|
79
66
|
}
|
|
80
|
-
|
|
81
67
|
//#endregion
|
|
82
68
|
//#region src/utils/getFiletypeFromFileName.ts
|
|
83
69
|
const CUSTOM_EXTENSION_TO_FILE_FORMAT = /* @__PURE__ */ new Map();
|
|
@@ -391,6 +377,8 @@ const EXTENSION_TO_FILE_FORMAT = {
|
|
|
391
377
|
tfvars: "tfvars",
|
|
392
378
|
toml: "toml",
|
|
393
379
|
ts: "typescript",
|
|
380
|
+
mts: "typescript",
|
|
381
|
+
cts: "typescript",
|
|
394
382
|
tsp: "typespec",
|
|
395
383
|
tsv: "tsv",
|
|
396
384
|
tsx: "tsx",
|
|
@@ -449,7 +437,6 @@ function replaceCustomExtensions(version, map) {
|
|
|
449
437
|
customExtensionsVersion = version;
|
|
450
438
|
return true;
|
|
451
439
|
}
|
|
452
|
-
|
|
453
440
|
//#endregion
|
|
454
441
|
//#region src/utils/cleanLastNewline.ts
|
|
455
442
|
function cleanLastNewline(contents) {
|
|
@@ -460,7 +447,6 @@ function cleanLastNewline(contents) {
|
|
|
460
447
|
}
|
|
461
448
|
return contents.slice(0, end);
|
|
462
449
|
}
|
|
463
|
-
|
|
464
450
|
//#endregion
|
|
465
451
|
//#region src/utils/hast_utils.ts
|
|
466
452
|
function createTextNodeElement(value) {
|
|
@@ -485,7 +471,6 @@ function findCodeElement(nodes) {
|
|
|
485
471
|
else firstChild = null;
|
|
486
472
|
}
|
|
487
473
|
}
|
|
488
|
-
|
|
489
474
|
//#endregion
|
|
490
475
|
//#region src/utils/processLine.ts
|
|
491
476
|
function processLine(node, line, state) {
|
|
@@ -507,7 +492,6 @@ function processLine(node, line, state) {
|
|
|
507
492
|
if (node.children.length === 0) node.children.push(createTextNodeElement("\n"));
|
|
508
493
|
return node;
|
|
509
494
|
}
|
|
510
|
-
|
|
511
495
|
//#endregion
|
|
512
496
|
//#region src/utils/wrapTokenFragments.ts
|
|
513
497
|
const NO_TOKEN = Symbol("no-token");
|
|
@@ -585,7 +569,6 @@ function stripTokenChar(node) {
|
|
|
585
569
|
function setTokenChar(node, char) {
|
|
586
570
|
node.properties["data-char"] = char;
|
|
587
571
|
}
|
|
588
|
-
|
|
589
572
|
//#endregion
|
|
590
573
|
//#region src/utils/createTransformerWithState.ts
|
|
591
574
|
function createTransformerWithState(useTokenTransformer = false, useCSSClasses = false) {
|
|
@@ -668,37 +651,38 @@ const tokenStyleNormalizer = {
|
|
|
668
651
|
}
|
|
669
652
|
}
|
|
670
653
|
};
|
|
671
|
-
|
|
672
654
|
//#endregion
|
|
673
655
|
//#region src/utils/formatCSSVariablePrefix.ts
|
|
674
656
|
function formatCSSVariablePrefix(type) {
|
|
675
657
|
return `--${type === "token" ? "diffs-token" : "diffs"}-`;
|
|
676
658
|
}
|
|
677
|
-
|
|
678
659
|
//#endregion
|
|
679
660
|
//#region src/utils/getHighlighterThemeStyles.ts
|
|
680
|
-
function getHighlighterThemeStyles({ theme = DEFAULT_THEMES, highlighter
|
|
661
|
+
function getHighlighterThemeStyles({ theme = DEFAULT_THEMES, highlighter, prefix }) {
|
|
681
662
|
let styles = "";
|
|
682
663
|
if (typeof theme === "string") {
|
|
683
|
-
const themeData = highlighter
|
|
684
|
-
|
|
685
|
-
styles += `
|
|
686
|
-
styles +=
|
|
687
|
-
styles += `${formatCSSVariablePrefix("global")}
|
|
688
|
-
styles +=
|
|
664
|
+
const themeData = highlighter.getTheme(theme);
|
|
665
|
+
const normalized = normalizeThemeColors(themeData);
|
|
666
|
+
styles += `color:${normalized.fg};`;
|
|
667
|
+
styles += `background-color:${normalized.bg};`;
|
|
668
|
+
styles += `${formatCSSVariablePrefix("global")}fg:${normalized.fg};`;
|
|
669
|
+
styles += `${formatCSSVariablePrefix("global")}bg:${normalized.bg};`;
|
|
670
|
+
styles += getGitVariables(themeData, prefix);
|
|
689
671
|
} else {
|
|
690
|
-
let themeData = highlighter
|
|
691
|
-
|
|
692
|
-
styles += `${formatCSSVariablePrefix("global")}dark
|
|
693
|
-
styles +=
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
styles +=
|
|
672
|
+
let themeData = highlighter.getTheme(theme.dark);
|
|
673
|
+
let normalized = normalizeThemeColors(themeData);
|
|
674
|
+
styles += `${formatCSSVariablePrefix("global")}dark:${normalized.fg};`;
|
|
675
|
+
styles += `${formatCSSVariablePrefix("global")}dark-bg:${normalized.bg};`;
|
|
676
|
+
styles += getGitVariables(themeData, "dark");
|
|
677
|
+
themeData = highlighter.getTheme(theme.light);
|
|
678
|
+
normalized = normalizeThemeColors(themeData);
|
|
679
|
+
styles += `${formatCSSVariablePrefix("global")}light:${normalized.fg};`;
|
|
680
|
+
styles += `${formatCSSVariablePrefix("global")}light-bg:${normalized.bg};`;
|
|
681
|
+
styles += getGitVariables(themeData, "light");
|
|
698
682
|
}
|
|
699
683
|
return styles;
|
|
700
684
|
}
|
|
701
|
-
function
|
|
685
|
+
function getGitVariables(themeData, modePrefix) {
|
|
702
686
|
modePrefix = modePrefix != null ? `${modePrefix}-` : "";
|
|
703
687
|
let styles = "";
|
|
704
688
|
const additionGreen = themeData.colors?.["gitDecoration.addedResourceForeground"] ?? themeData.colors?.["terminal.ansiGreen"];
|
|
@@ -709,7 +693,6 @@ function getThemeVariables(themeData, modePrefix) {
|
|
|
709
693
|
if (modifiedBlue != null) styles += `${formatCSSVariablePrefix("global")}${modePrefix}modified-color:${modifiedBlue};`;
|
|
710
694
|
return styles;
|
|
711
695
|
}
|
|
712
|
-
|
|
713
696
|
//#endregion
|
|
714
697
|
//#region src/utils/getLineNodes.ts
|
|
715
698
|
function getLineNodes(nodes) {
|
|
@@ -722,7 +705,6 @@ function getLineNodes(nodes) {
|
|
|
722
705
|
console.error(nodes);
|
|
723
706
|
throw new Error("getLineNodes: Unable to find children");
|
|
724
707
|
}
|
|
725
|
-
|
|
726
708
|
//#endregion
|
|
727
709
|
//#region src/utils/virtualDiffLayout.ts
|
|
728
710
|
function getExpandedRegion({ isPartial, rangeSize, expandedHunks, hunkIndex, collapsedContextThreshold }) {
|
|
@@ -754,10 +736,42 @@ function getExpandedRegion({ isPartial, rangeSize, expandedHunks, hunkIndex, col
|
|
|
754
736
|
renderAll
|
|
755
737
|
};
|
|
756
738
|
}
|
|
757
|
-
|
|
739
|
+
function getTrailingContextRangeSize({ fileDiff, errorPrefix }) {
|
|
740
|
+
const lastHunk = fileDiff.hunks[fileDiff.hunks.length - 1];
|
|
741
|
+
if (lastHunk == null || fileDiff.isPartial || fileDiff.additionLines.length === 0 || fileDiff.deletionLines.length === 0) return 0;
|
|
742
|
+
const additionRemaining = fileDiff.additionLines.length - (lastHunk.additionLineIndex + lastHunk.additionCount);
|
|
743
|
+
const deletionRemaining = fileDiff.deletionLines.length - (lastHunk.deletionLineIndex + lastHunk.deletionCount);
|
|
744
|
+
if (additionRemaining <= 0 && deletionRemaining <= 0) return 0;
|
|
745
|
+
if (additionRemaining !== deletionRemaining) throw new Error(`${errorPrefix}: trailing context mismatch (additions=${additionRemaining}, deletions=${deletionRemaining}) for ${fileDiff.name}`);
|
|
746
|
+
return Math.min(additionRemaining, deletionRemaining);
|
|
747
|
+
}
|
|
748
|
+
function getTrailingExpandedRegion({ fileDiff, hunkIndex, expandedHunks, collapsedContextThreshold, errorPrefix }) {
|
|
749
|
+
if (hunkIndex !== fileDiff.hunks.length - 1) return;
|
|
750
|
+
const trailingRangeSize = getTrailingContextRangeSize({
|
|
751
|
+
fileDiff,
|
|
752
|
+
errorPrefix
|
|
753
|
+
});
|
|
754
|
+
if (trailingRangeSize <= 0) return;
|
|
755
|
+
if (expandedHunks === true || trailingRangeSize <= collapsedContextThreshold) return {
|
|
756
|
+
fromStart: trailingRangeSize,
|
|
757
|
+
fromEnd: 0,
|
|
758
|
+
rangeSize: trailingRangeSize,
|
|
759
|
+
collapsedLines: 0,
|
|
760
|
+
renderAll: true
|
|
761
|
+
};
|
|
762
|
+
const region = expandedHunks?.get(fileDiff.hunks.length);
|
|
763
|
+
const fromStart = Math.min(Math.max(region?.fromStart ?? 0, 0), trailingRangeSize);
|
|
764
|
+
return {
|
|
765
|
+
fromStart,
|
|
766
|
+
fromEnd: 0,
|
|
767
|
+
rangeSize: trailingRangeSize,
|
|
768
|
+
collapsedLines: trailingRangeSize - fromStart,
|
|
769
|
+
renderAll: fromStart >= trailingRangeSize
|
|
770
|
+
};
|
|
771
|
+
}
|
|
758
772
|
//#endregion
|
|
759
773
|
//#region src/utils/iterateOverDiff.ts
|
|
760
|
-
function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infinity, expandedHunks, collapsedContextThreshold =
|
|
774
|
+
function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infinity, expandedHunks, collapsedContextThreshold = 1, callback }) {
|
|
761
775
|
const iterationStart = getIterationStartState({
|
|
762
776
|
diff,
|
|
763
777
|
diffStyle,
|
|
@@ -766,12 +780,12 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
766
780
|
collapsedContextThreshold
|
|
767
781
|
});
|
|
768
782
|
const state = {
|
|
769
|
-
finalHunk: diff.hunks.at(-1),
|
|
770
783
|
viewportStart: startingLine,
|
|
771
784
|
viewportEnd: startingLine + totalLines,
|
|
772
785
|
isWindowedHighlight: startingLine > 0 || totalLines < Infinity,
|
|
773
786
|
splitCount: iterationStart.splitCount,
|
|
774
787
|
unifiedCount: iterationStart.unifiedCount,
|
|
788
|
+
finalHunkIndex: diff.hunks.length - 1,
|
|
775
789
|
shouldBreak() {
|
|
776
790
|
if (!state.isWindowedHighlight) return false;
|
|
777
791
|
const breakUnified = state.unifiedCount >= startingLine + totalLines;
|
|
@@ -780,10 +794,10 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
780
794
|
else if (diffStyle === "split") return breakSplit;
|
|
781
795
|
else return breakUnified && breakSplit;
|
|
782
796
|
},
|
|
783
|
-
shouldSkip(
|
|
797
|
+
shouldSkip(unifiedCount, splitCount) {
|
|
784
798
|
if (!state.isWindowedHighlight) return false;
|
|
785
|
-
const skipUnified = state.unifiedCount +
|
|
786
|
-
const skipSplit = state.splitCount +
|
|
799
|
+
const skipUnified = unifiedCount > 0 && state.unifiedCount + unifiedCount <= startingLine;
|
|
800
|
+
const skipSplit = splitCount > 0 && state.splitCount + splitCount <= startingLine;
|
|
787
801
|
if (diffStyle === "unified") return skipUnified;
|
|
788
802
|
else if (diffStyle === "split") return skipSplit;
|
|
789
803
|
else return skipUnified && skipSplit;
|
|
@@ -824,114 +838,89 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
824
838
|
hunkIndex,
|
|
825
839
|
collapsedContextThreshold
|
|
826
840
|
});
|
|
827
|
-
const trailingRegion =
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
isPartial: diff.isPartial,
|
|
835
|
-
rangeSize: trailingRangeSize,
|
|
836
|
-
expandedHunks,
|
|
837
|
-
hunkIndex: diff.hunks.length,
|
|
838
|
-
collapsedContextThreshold
|
|
839
|
-
});
|
|
840
|
-
})();
|
|
841
|
+
const trailingRegion = hunkIndex === state.finalHunkIndex ? getTrailingExpandedRegion({
|
|
842
|
+
fileDiff: diff,
|
|
843
|
+
hunkIndex,
|
|
844
|
+
expandedHunks,
|
|
845
|
+
collapsedContextThreshold,
|
|
846
|
+
errorPrefix: "iterateOverDiff"
|
|
847
|
+
}) : void 0;
|
|
841
848
|
const expandedLineCount = leadingRegion.fromStart + leadingRegion.fromEnd;
|
|
842
|
-
function getTrailingCollapsedAfter(unifiedLineIndex
|
|
849
|
+
function getTrailingCollapsedAfter(unifiedLineIndex, splitLineIndex) {
|
|
843
850
|
if (trailingRegion == null || trailingRegion.collapsedLines <= 0 || trailingRegion.fromStart + trailingRegion.fromEnd > 0) return 0;
|
|
844
|
-
if (diffStyle === "unified") return unifiedLineIndex
|
|
845
|
-
return splitLineIndex
|
|
851
|
+
if (diffStyle === "unified") return unifiedLineIndex === hunk.unifiedLineStart + hunk.unifiedLineCount - 1 ? trailingRegion.collapsedLines : 0;
|
|
852
|
+
return splitLineIndex === hunk.splitLineStart + hunk.splitLineCount - 1 ? trailingRegion.collapsedLines : 0;
|
|
846
853
|
}
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
return
|
|
854
|
+
let consumedCollapsed = leadingRegion.collapsedLines === 0;
|
|
855
|
+
function consumePendingCollapsed() {
|
|
856
|
+
if (consumedCollapsed) return 0;
|
|
857
|
+
consumedCollapsed = true;
|
|
858
|
+
return leadingRegion.collapsedLines;
|
|
852
859
|
}
|
|
853
860
|
if (!state.shouldSkip(expandedLineCount, expandedLineCount)) {
|
|
854
|
-
let unifiedLineIndex
|
|
855
|
-
let splitLineIndex
|
|
856
|
-
let deletionLineIndex
|
|
857
|
-
let additionLineIndex
|
|
858
|
-
let deletionLineNumber
|
|
859
|
-
let additionLineNumber
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
deletionLine: {
|
|
915
|
-
lineNumber: deletionLineNumber$1 + index,
|
|
916
|
-
lineIndex: deletionLineIndex$1 + index,
|
|
917
|
-
noEOFCR: false,
|
|
918
|
-
unifiedLineIndex: unifiedLineIndex$1 + index,
|
|
919
|
-
splitLineIndex: splitLineIndex$1 + index
|
|
920
|
-
},
|
|
921
|
-
additionLine: {
|
|
922
|
-
unifiedLineIndex: unifiedLineIndex$1 + index,
|
|
923
|
-
splitLineIndex: splitLineIndex$1 + index,
|
|
924
|
-
lineIndex: additionLineIndex$1 + index,
|
|
925
|
-
lineNumber: additionLineNumber$1 + index,
|
|
926
|
-
noEOFCR: false
|
|
927
|
-
}
|
|
928
|
-
})) break hunkIterator;
|
|
929
|
-
} else state.incrementCounts(1, 1);
|
|
930
|
-
index++;
|
|
931
|
-
}
|
|
861
|
+
let unifiedLineIndex = hunk.unifiedLineStart - leadingRegion.rangeSize;
|
|
862
|
+
let splitLineIndex = hunk.splitLineStart - leadingRegion.rangeSize;
|
|
863
|
+
let deletionLineIndex = hunk.deletionLineIndex - leadingRegion.rangeSize;
|
|
864
|
+
let additionLineIndex = hunk.additionLineIndex - leadingRegion.rangeSize;
|
|
865
|
+
let deletionLineNumber = hunk.deletionStart - leadingRegion.rangeSize;
|
|
866
|
+
let additionLineNumber = hunk.additionStart - leadingRegion.rangeSize;
|
|
867
|
+
if (walkContextLines(state, leadingRegion.fromStart, diffStyle, (index) => {
|
|
868
|
+
return state.emit({
|
|
869
|
+
hunkIndex,
|
|
870
|
+
hunk,
|
|
871
|
+
collapsedBefore: 0,
|
|
872
|
+
collapsedAfter: 0,
|
|
873
|
+
type: "context-expanded",
|
|
874
|
+
deletionLine: {
|
|
875
|
+
lineNumber: deletionLineNumber + index,
|
|
876
|
+
lineIndex: deletionLineIndex + index,
|
|
877
|
+
noEOFCR: false,
|
|
878
|
+
unifiedLineIndex: unifiedLineIndex + index,
|
|
879
|
+
splitLineIndex: splitLineIndex + index
|
|
880
|
+
},
|
|
881
|
+
additionLine: {
|
|
882
|
+
unifiedLineIndex: unifiedLineIndex + index,
|
|
883
|
+
splitLineIndex: splitLineIndex + index,
|
|
884
|
+
lineIndex: additionLineIndex + index,
|
|
885
|
+
lineNumber: additionLineNumber + index,
|
|
886
|
+
noEOFCR: false
|
|
887
|
+
}
|
|
888
|
+
});
|
|
889
|
+
})) break hunkIterator;
|
|
890
|
+
unifiedLineIndex = hunk.unifiedLineStart - leadingRegion.fromEnd;
|
|
891
|
+
splitLineIndex = hunk.splitLineStart - leadingRegion.fromEnd;
|
|
892
|
+
deletionLineIndex = hunk.deletionLineIndex - leadingRegion.fromEnd;
|
|
893
|
+
additionLineIndex = hunk.additionLineIndex - leadingRegion.fromEnd;
|
|
894
|
+
deletionLineNumber = hunk.deletionStart - leadingRegion.fromEnd;
|
|
895
|
+
additionLineNumber = hunk.additionStart - leadingRegion.fromEnd;
|
|
896
|
+
if (walkContextLines(state, leadingRegion.fromEnd, diffStyle, (index) => {
|
|
897
|
+
return state.emit({
|
|
898
|
+
hunkIndex,
|
|
899
|
+
hunk,
|
|
900
|
+
collapsedBefore: consumePendingCollapsed(),
|
|
901
|
+
collapsedAfter: 0,
|
|
902
|
+
type: "context-expanded",
|
|
903
|
+
deletionLine: {
|
|
904
|
+
lineNumber: deletionLineNumber + index,
|
|
905
|
+
lineIndex: deletionLineIndex + index,
|
|
906
|
+
noEOFCR: false,
|
|
907
|
+
unifiedLineIndex: unifiedLineIndex + index,
|
|
908
|
+
splitLineIndex: splitLineIndex + index
|
|
909
|
+
},
|
|
910
|
+
additionLine: {
|
|
911
|
+
unifiedLineIndex: unifiedLineIndex + index,
|
|
912
|
+
splitLineIndex: splitLineIndex + index,
|
|
913
|
+
lineIndex: additionLineIndex + index,
|
|
914
|
+
lineNumber: additionLineNumber + index,
|
|
915
|
+
noEOFCR: false
|
|
916
|
+
}
|
|
917
|
+
});
|
|
918
|
+
}, () => {
|
|
919
|
+
consumePendingCollapsed();
|
|
920
|
+
})) break hunkIterator;
|
|
932
921
|
} else {
|
|
933
922
|
state.incrementCounts(expandedLineCount, expandedLineCount);
|
|
934
|
-
|
|
923
|
+
consumePendingCollapsed();
|
|
935
924
|
}
|
|
936
925
|
let unifiedLineIndex = hunk.unifiedLineStart;
|
|
937
926
|
let splitLineIndex = hunk.splitLineStart;
|
|
@@ -945,45 +934,37 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
945
934
|
const isLastContent = content === lastContent;
|
|
946
935
|
if (content.type === "context") {
|
|
947
936
|
if (!state.shouldSkip(content.lines, content.lines)) {
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
lineIndex: additionLineIndex + index,
|
|
977
|
-
lineNumber: additionLineNumber + index,
|
|
978
|
-
noEOFCR: isLastLine && hunk.noEOFCRAdditions
|
|
979
|
-
}
|
|
980
|
-
})) break hunkIterator;
|
|
981
|
-
} else state.incrementCounts(1, 1);
|
|
982
|
-
index++;
|
|
983
|
-
}
|
|
937
|
+
if (walkContextLines(state, content.lines, diffStyle, (index) => {
|
|
938
|
+
const isLastLine = isLastContent && index === content.lines - 1;
|
|
939
|
+
const unifiedRowIndex = unifiedLineIndex + index;
|
|
940
|
+
const splitRowIndex = splitLineIndex + index;
|
|
941
|
+
return state.emit({
|
|
942
|
+
hunkIndex,
|
|
943
|
+
hunk,
|
|
944
|
+
collapsedBefore: consumePendingCollapsed(),
|
|
945
|
+
collapsedAfter: getTrailingCollapsedAfter(unifiedRowIndex, splitRowIndex),
|
|
946
|
+
type: "context",
|
|
947
|
+
deletionLine: {
|
|
948
|
+
lineNumber: deletionLineNumber + index,
|
|
949
|
+
lineIndex: deletionLineIndex + index,
|
|
950
|
+
noEOFCR: isLastLine && hunk.noEOFCRDeletions,
|
|
951
|
+
unifiedLineIndex: unifiedRowIndex,
|
|
952
|
+
splitLineIndex: splitRowIndex
|
|
953
|
+
},
|
|
954
|
+
additionLine: {
|
|
955
|
+
unifiedLineIndex: unifiedRowIndex,
|
|
956
|
+
splitLineIndex: splitRowIndex,
|
|
957
|
+
lineIndex: additionLineIndex + index,
|
|
958
|
+
lineNumber: additionLineNumber + index,
|
|
959
|
+
noEOFCR: isLastLine && hunk.noEOFCRAdditions
|
|
960
|
+
}
|
|
961
|
+
});
|
|
962
|
+
}, () => {
|
|
963
|
+
consumePendingCollapsed();
|
|
964
|
+
})) break hunkIterator;
|
|
984
965
|
} else {
|
|
985
966
|
state.incrementCounts(content.lines, content.lines);
|
|
986
|
-
|
|
967
|
+
consumePendingCollapsed();
|
|
987
968
|
}
|
|
988
969
|
unifiedLineIndex += content.lines;
|
|
989
970
|
splitLineIndex += content.lines;
|
|
@@ -996,12 +977,13 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
996
977
|
const unifiedCount = content.deletions + content.additions;
|
|
997
978
|
if (!state.shouldSkip(unifiedCount, splitCount)) {
|
|
998
979
|
const iterationRanges = getChangeIterationRanges(state, content, diffStyle);
|
|
980
|
+
if ((iterationRanges[0]?.[0] ?? 0) > 0) consumePendingCollapsed();
|
|
999
981
|
for (const [rangeStart, rangeEnd] of iterationRanges) for (let index = rangeStart; index < rangeEnd; index++) {
|
|
1000
982
|
const collapsedAfter = getTrailingCollapsedAfter(unifiedLineIndex + index, diffStyle === "unified" ? splitLineIndex + (index < content.deletions ? index : index - content.deletions) : splitLineIndex + index);
|
|
1001
983
|
if (state.emit(getChangeLineData({
|
|
1002
984
|
hunkIndex,
|
|
1003
985
|
hunk,
|
|
1004
|
-
collapsedBefore:
|
|
986
|
+
collapsedBefore: consumePendingCollapsed(),
|
|
1005
987
|
collapsedAfter,
|
|
1006
988
|
diffStyle,
|
|
1007
989
|
index,
|
|
@@ -1018,7 +1000,7 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
1018
1000
|
}), true)) break hunkIterator;
|
|
1019
1001
|
}
|
|
1020
1002
|
}
|
|
1021
|
-
|
|
1003
|
+
consumePendingCollapsed();
|
|
1022
1004
|
state.incrementCounts(unifiedCount, splitCount);
|
|
1023
1005
|
unifiedLineIndex += unifiedCount;
|
|
1024
1006
|
splitLineIndex += splitCount;
|
|
@@ -1031,41 +1013,30 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
1031
1013
|
if (trailingRegion != null) {
|
|
1032
1014
|
const { collapsedLines, fromStart, fromEnd } = trailingRegion;
|
|
1033
1015
|
const len = fromStart + fromEnd;
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
additionLine: {
|
|
1059
|
-
unifiedLineIndex: unifiedLineIndex + index,
|
|
1060
|
-
splitLineIndex: splitLineIndex + index,
|
|
1061
|
-
lineIndex: additionLineIndex + index,
|
|
1062
|
-
lineNumber: additionLineNumber + index,
|
|
1063
|
-
noEOFCR: false
|
|
1064
|
-
}
|
|
1065
|
-
})) break hunkIterator;
|
|
1066
|
-
} else state.incrementCounts(1, 1);
|
|
1067
|
-
index++;
|
|
1068
|
-
}
|
|
1016
|
+
if (walkContextLines(state, len, diffStyle, (index) => {
|
|
1017
|
+
const isLastLine = index === len - 1;
|
|
1018
|
+
return state.emit({
|
|
1019
|
+
hunkIndex: diff.hunks.length,
|
|
1020
|
+
hunk: void 0,
|
|
1021
|
+
collapsedBefore: 0,
|
|
1022
|
+
collapsedAfter: isLastLine ? collapsedLines : 0,
|
|
1023
|
+
type: "context-expanded",
|
|
1024
|
+
deletionLine: {
|
|
1025
|
+
lineNumber: deletionLineNumber + index,
|
|
1026
|
+
lineIndex: deletionLineIndex + index,
|
|
1027
|
+
noEOFCR: false,
|
|
1028
|
+
unifiedLineIndex: unifiedLineIndex + index,
|
|
1029
|
+
splitLineIndex: splitLineIndex + index
|
|
1030
|
+
},
|
|
1031
|
+
additionLine: {
|
|
1032
|
+
unifiedLineIndex: unifiedLineIndex + index,
|
|
1033
|
+
splitLineIndex: splitLineIndex + index,
|
|
1034
|
+
lineIndex: additionLineIndex + index,
|
|
1035
|
+
lineNumber: additionLineNumber + index,
|
|
1036
|
+
noEOFCR: false
|
|
1037
|
+
}
|
|
1038
|
+
});
|
|
1039
|
+
}, void 0, () => state.shouldBreak())) break hunkIterator;
|
|
1069
1040
|
}
|
|
1070
1041
|
}
|
|
1071
1042
|
}
|
|
@@ -1085,20 +1056,20 @@ function getIterationStartState({ diff, diffStyle, startingLine, expandedHunks,
|
|
|
1085
1056
|
let result = diff.hunks.length;
|
|
1086
1057
|
while (low <= high) {
|
|
1087
1058
|
const mid = low + high >> 1;
|
|
1088
|
-
const counts
|
|
1089
|
-
if (counts
|
|
1090
|
-
if ((diffStyle === "unified" ? counts
|
|
1059
|
+
const counts = prefixCounts[mid + 1];
|
|
1060
|
+
if (counts == null) throw new Error("iterateOverDiff: invalid hunk prefix index");
|
|
1061
|
+
if ((diffStyle === "unified" ? counts.unifiedCount : counts.splitCount) > startingLine) {
|
|
1091
1062
|
result = mid;
|
|
1092
1063
|
high = mid - 1;
|
|
1093
1064
|
} else low = mid + 1;
|
|
1094
1065
|
}
|
|
1095
1066
|
if (result >= diff.hunks.length) {
|
|
1096
|
-
const counts
|
|
1097
|
-
if (counts
|
|
1067
|
+
const counts = prefixCounts[diff.hunks.length];
|
|
1068
|
+
if (counts == null) throw new Error("iterateOverDiff: invalid terminal hunk prefix index");
|
|
1098
1069
|
return {
|
|
1099
1070
|
hunkIndex: diff.hunks.length,
|
|
1100
|
-
splitCount: counts
|
|
1101
|
-
unifiedCount: counts
|
|
1071
|
+
splitCount: counts.splitCount,
|
|
1072
|
+
unifiedCount: counts.unifiedCount
|
|
1102
1073
|
};
|
|
1103
1074
|
}
|
|
1104
1075
|
const counts = prefixCounts[result];
|
|
@@ -1130,15 +1101,14 @@ function getHunkPrefixCounts({ diff, expandedHunks, collapsedContextThreshold })
|
|
|
1130
1101
|
const leadingCount = leadingRegion.fromStart + leadingRegion.fromEnd;
|
|
1131
1102
|
splitCount += leadingCount + hunk.splitLineCount;
|
|
1132
1103
|
unifiedCount += leadingCount + hunk.unifiedLineCount;
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
});
|
|
1104
|
+
const trailingRegion = index === finalHunkIndex ? getTrailingExpandedRegion({
|
|
1105
|
+
fileDiff: diff,
|
|
1106
|
+
hunkIndex: index,
|
|
1107
|
+
expandedHunks,
|
|
1108
|
+
collapsedContextThreshold,
|
|
1109
|
+
errorPrefix: "iterateOverDiff"
|
|
1110
|
+
}) : void 0;
|
|
1111
|
+
if (trailingRegion != null) {
|
|
1142
1112
|
const trailingCount = trailingRegion.fromStart + trailingRegion.fromEnd;
|
|
1143
1113
|
splitCount += trailingCount;
|
|
1144
1114
|
unifiedCount += trailingCount;
|
|
@@ -1150,13 +1120,13 @@ function getHunkPrefixCounts({ diff, expandedHunks, collapsedContextThreshold })
|
|
|
1150
1120
|
}
|
|
1151
1121
|
return prefixCounts;
|
|
1152
1122
|
}
|
|
1153
|
-
function
|
|
1123
|
+
function getContextLineIterationBounds(state, count, diffStyle) {
|
|
1154
1124
|
if (!state.isWindowedHighlight || count <= 0) return [0, count];
|
|
1155
1125
|
const ranges = [];
|
|
1156
1126
|
function pushRange(currentCount) {
|
|
1157
|
-
const start
|
|
1158
|
-
const end
|
|
1159
|
-
if (end
|
|
1127
|
+
const start = Math.max(0, state.viewportStart - currentCount);
|
|
1128
|
+
const end = Math.min(count, state.viewportEnd - currentCount);
|
|
1129
|
+
if (end > start) ranges.push([start, end]);
|
|
1160
1130
|
}
|
|
1161
1131
|
if (diffStyle !== "split") pushRange(state.unifiedCount);
|
|
1162
1132
|
if (diffStyle !== "unified") pushRange(state.splitCount);
|
|
@@ -1170,16 +1140,25 @@ function getEqualLineIterationRange(state, count, diffStyle) {
|
|
|
1170
1140
|
}
|
|
1171
1141
|
return [start, end];
|
|
1172
1142
|
}
|
|
1173
|
-
function
|
|
1174
|
-
const
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1143
|
+
function walkContextLines(state, count, diffStyle, callback, onSkippedStart, shouldBreak) {
|
|
1144
|
+
const [startIndex, endIndex] = getContextLineIterationBounds(state, count, diffStyle);
|
|
1145
|
+
if (startIndex > 0) {
|
|
1146
|
+
state.incrementCounts(startIndex, startIndex);
|
|
1147
|
+
onSkippedStart?.();
|
|
1148
|
+
}
|
|
1149
|
+
let index = startIndex;
|
|
1150
|
+
while (index < count) {
|
|
1151
|
+
if (shouldBreak?.() === true) return true;
|
|
1152
|
+
if (index >= endIndex) {
|
|
1153
|
+
state.incrementCounts(count - index, count - index);
|
|
1154
|
+
break;
|
|
1155
|
+
}
|
|
1156
|
+
if (state.isInWindow(0, 0)) {
|
|
1157
|
+
if (callback(index) === true) return true;
|
|
1158
|
+
} else state.incrementCounts(1, 1);
|
|
1159
|
+
index++;
|
|
1160
|
+
}
|
|
1161
|
+
return false;
|
|
1183
1162
|
}
|
|
1184
1163
|
function getChangeIterationRanges(state, content, diffStyle) {
|
|
1185
1164
|
if (!state.isWindowedHighlight) return [[0, diffStyle === "unified" ? content.deletions + content.additions : Math.max(content.deletions, content.additions)]];
|
|
@@ -1273,7 +1252,6 @@ function getChangeLineData({ hunkIndex, hunk, collapsedAfter, collapsedBefore, d
|
|
|
1273
1252
|
additionLine
|
|
1274
1253
|
};
|
|
1275
1254
|
}
|
|
1276
|
-
|
|
1277
1255
|
//#endregion
|
|
1278
1256
|
//#region src/utils/parseDiffDecorations.ts
|
|
1279
1257
|
function createDiffSpanDecoration({ line, spanStart, spanLength }) {
|
|
@@ -1303,11 +1281,10 @@ function pushOrJoinSpan({ item, arr, enableJoin, isNeutral = false, isLastItem =
|
|
|
1303
1281
|
}
|
|
1304
1282
|
arr.push([isNeutral ? 0 : 1, item.value]);
|
|
1305
1283
|
}
|
|
1306
|
-
|
|
1307
1284
|
//#endregion
|
|
1308
1285
|
//#region src/utils/renderDiffWithHighlighter.ts
|
|
1309
1286
|
const DEFAULT_PLAIN_TEXT_OPTIONS$1 = { forcePlainText: false };
|
|
1310
|
-
function renderDiffWithHighlighter(diff, highlighter
|
|
1287
|
+
function renderDiffWithHighlighter(diff, highlighter, options, { forcePlainText, startingLine, totalLines, expandedHunks, collapsedContextThreshold = 1 } = DEFAULT_PLAIN_TEXT_OPTIONS$1) {
|
|
1311
1288
|
if (forcePlainText) {
|
|
1312
1289
|
startingLine ??= 0;
|
|
1313
1290
|
totalLines ??= Infinity;
|
|
@@ -1316,10 +1293,10 @@ function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainTex
|
|
|
1316
1293
|
totalLines = Infinity;
|
|
1317
1294
|
}
|
|
1318
1295
|
const isWindowedHighlight = startingLine > 0 || totalLines < Infinity;
|
|
1319
|
-
const baseThemeType = typeof options.theme === "string" ? highlighter
|
|
1296
|
+
const baseThemeType = typeof options.theme === "string" ? highlighter.getTheme(options.theme).type : void 0;
|
|
1320
1297
|
const themeStyles = getHighlighterThemeStyles({
|
|
1321
1298
|
theme: options.theme,
|
|
1322
|
-
highlighter
|
|
1299
|
+
highlighter
|
|
1323
1300
|
});
|
|
1324
1301
|
const lineDiffType = forcePlainText && !isWindowedHighlight && (diff.unifiedLineCount > 1e3 || diff.splitLineCount > 1e3) ? "none" : options.lineDiffType;
|
|
1325
1302
|
const code = {
|
|
@@ -1408,7 +1385,7 @@ function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainTex
|
|
|
1408
1385
|
additionFile,
|
|
1409
1386
|
additionInfo: bucket.additionInfo,
|
|
1410
1387
|
additionDecorations: bucket.additionDecorations,
|
|
1411
|
-
highlighter
|
|
1388
|
+
highlighter,
|
|
1412
1389
|
options,
|
|
1413
1390
|
languageOverride: forcePlainText ? "text" : diff.lang
|
|
1414
1391
|
});
|
|
@@ -1513,7 +1490,7 @@ function createBucket() {
|
|
|
1513
1490
|
additionSegments: []
|
|
1514
1491
|
};
|
|
1515
1492
|
}
|
|
1516
|
-
function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo, highlighter
|
|
1493
|
+
function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo, highlighter, deletionDecorations, additionDecorations, languageOverride, options: { theme: themeOrThemes = DEFAULT_THEMES, ...options } }) {
|
|
1517
1494
|
const deletionLang = languageOverride ?? getFiletypeFromFileName(deletionFile.name);
|
|
1518
1495
|
const additionLang = languageOverride ?? getFiletypeFromFileName(additionFile.name);
|
|
1519
1496
|
const { state, transformers } = createTransformerWithState(options.useTokenTransformer);
|
|
@@ -1525,7 +1502,8 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
|
|
|
1525
1502
|
transformers,
|
|
1526
1503
|
decorations: void 0,
|
|
1527
1504
|
defaultColor: false,
|
|
1528
|
-
cssVariablePrefix: formatCSSVariablePrefix("token")
|
|
1505
|
+
cssVariablePrefix: formatCSSVariablePrefix("token"),
|
|
1506
|
+
tokenizeTimeLimit: 0
|
|
1529
1507
|
} : {
|
|
1530
1508
|
...options,
|
|
1531
1509
|
lang: "text",
|
|
@@ -1533,7 +1511,8 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
|
|
|
1533
1511
|
transformers,
|
|
1534
1512
|
decorations: void 0,
|
|
1535
1513
|
defaultColor: false,
|
|
1536
|
-
cssVariablePrefix: formatCSSVariablePrefix("token")
|
|
1514
|
+
cssVariablePrefix: formatCSSVariablePrefix("token"),
|
|
1515
|
+
tokenizeTimeLimit: 0
|
|
1537
1516
|
};
|
|
1538
1517
|
})();
|
|
1539
1518
|
return {
|
|
@@ -1542,32 +1521,60 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
|
|
|
1542
1521
|
hastConfig.lang = deletionLang;
|
|
1543
1522
|
state.lineInfo = deletionInfo;
|
|
1544
1523
|
hastConfig.decorations = deletionDecorations;
|
|
1545
|
-
return getLineNodes(highlighter
|
|
1524
|
+
return getLineNodes(highlighter.codeToHast(cleanLastNewline(deletionFile.contents), hastConfig));
|
|
1546
1525
|
})(),
|
|
1547
1526
|
additionLines: (() => {
|
|
1548
1527
|
if (additionFile.contents === "") return [];
|
|
1549
1528
|
hastConfig.lang = additionLang;
|
|
1550
1529
|
hastConfig.decorations = additionDecorations;
|
|
1551
1530
|
state.lineInfo = additionInfo;
|
|
1552
|
-
return getLineNodes(highlighter
|
|
1531
|
+
return getLineNodes(highlighter.codeToHast(cleanLastNewline(additionFile.contents), hastConfig));
|
|
1553
1532
|
})()
|
|
1554
1533
|
};
|
|
1555
1534
|
}
|
|
1556
|
-
|
|
1557
1535
|
//#endregion
|
|
1558
1536
|
//#region src/utils/computeFileOffsets.ts
|
|
1559
1537
|
const LINE_FEED = 10;
|
|
1560
1538
|
const CARRIAGE_RETURN = 13;
|
|
1539
|
+
const DENSE_LINE_BREAK_BLOCK_SIZE = 4;
|
|
1540
|
+
const DENSE_LINE_BREAK_BLOCK_SPAN = 40;
|
|
1561
1541
|
/**
|
|
1562
1542
|
* Computes line start offsets for a string.
|
|
1563
1543
|
*/
|
|
1564
1544
|
function computeLineOffsets(contents) {
|
|
1565
1545
|
const offsets = [0];
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1546
|
+
let carriageReturn = contents.indexOf("\r");
|
|
1547
|
+
let lineFeed = contents.indexOf("\n");
|
|
1548
|
+
let blockStart = 0;
|
|
1549
|
+
let blockBreaks = 0;
|
|
1550
|
+
while (carriageReturn !== -1 || lineFeed !== -1) {
|
|
1551
|
+
let nextOffset;
|
|
1552
|
+
if (carriageReturn !== -1 && (lineFeed === -1 || carriageReturn < lineFeed)) if (lineFeed === carriageReturn + 1) {
|
|
1553
|
+
nextOffset = lineFeed + 1;
|
|
1554
|
+
carriageReturn = contents.indexOf("\r", nextOffset);
|
|
1555
|
+
lineFeed = contents.indexOf("\n", nextOffset);
|
|
1556
|
+
} else {
|
|
1557
|
+
nextOffset = carriageReturn + 1;
|
|
1558
|
+
carriageReturn = contents.indexOf("\r", nextOffset);
|
|
1559
|
+
}
|
|
1560
|
+
else {
|
|
1561
|
+
nextOffset = lineFeed + 1;
|
|
1562
|
+
lineFeed = contents.indexOf("\n", nextOffset);
|
|
1563
|
+
}
|
|
1564
|
+
offsets.push(nextOffset);
|
|
1565
|
+
if (++blockBreaks === DENSE_LINE_BREAK_BLOCK_SIZE) {
|
|
1566
|
+
if (nextOffset - blockStart <= DENSE_LINE_BREAK_BLOCK_SPAN) {
|
|
1567
|
+
for (let i = nextOffset; i < contents.length; i++) {
|
|
1568
|
+
const char = contents.charCodeAt(i);
|
|
1569
|
+
if (char === LINE_FEED || char === CARRIAGE_RETURN) {
|
|
1570
|
+
if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
|
|
1571
|
+
offsets.push(i + 1);
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
return offsets;
|
|
1575
|
+
}
|
|
1576
|
+
blockStart = nextOffset;
|
|
1577
|
+
blockBreaks = 0;
|
|
1571
1578
|
}
|
|
1572
1579
|
}
|
|
1573
1580
|
return offsets;
|
|
@@ -1584,11 +1591,10 @@ function linesFromFileContents(contents) {
|
|
|
1584
1591
|
return contents.slice(start, end);
|
|
1585
1592
|
});
|
|
1586
1593
|
}
|
|
1587
|
-
|
|
1588
1594
|
//#endregion
|
|
1589
1595
|
//#region src/utils/renderFileWithHighlighter.ts
|
|
1590
1596
|
const DEFAULT_PLAIN_TEXT_OPTIONS = { forcePlainText: false };
|
|
1591
|
-
function renderFileWithHighlighter(file, highlighter
|
|
1597
|
+
function renderFileWithHighlighter(file, highlighter, { theme = DEFAULT_THEMES, tokenizeMaxLineLength, useTokenTransformer }, { forcePlainText, startingLine, totalLines, lines } = DEFAULT_PLAIN_TEXT_OPTIONS) {
|
|
1592
1598
|
if (forcePlainText) {
|
|
1593
1599
|
startingLine ??= 0;
|
|
1594
1600
|
totalLines ??= Infinity;
|
|
@@ -1599,10 +1605,10 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
|
|
|
1599
1605
|
const isWindowedHighlight = startingLine > 0 || totalLines < Infinity;
|
|
1600
1606
|
const { state, transformers } = createTransformerWithState(useTokenTransformer);
|
|
1601
1607
|
const lang = forcePlainText ? "text" : file.lang ?? getFiletypeFromFileName(file.name);
|
|
1602
|
-
const baseThemeType = typeof theme === "string" ? highlighter
|
|
1608
|
+
const baseThemeType = typeof theme === "string" ? highlighter.getTheme(theme).type : void 0;
|
|
1603
1609
|
const themeStyles = getHighlighterThemeStyles({
|
|
1604
1610
|
theme,
|
|
1605
|
-
highlighter
|
|
1611
|
+
highlighter
|
|
1606
1612
|
});
|
|
1607
1613
|
state.lineInfo = (shikiLineNumber) => ({
|
|
1608
1614
|
type: "context",
|
|
@@ -1616,7 +1622,8 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
|
|
|
1616
1622
|
transformers,
|
|
1617
1623
|
defaultColor: false,
|
|
1618
1624
|
cssVariablePrefix: formatCSSVariablePrefix("token"),
|
|
1619
|
-
tokenizeMaxLineLength
|
|
1625
|
+
tokenizeMaxLineLength,
|
|
1626
|
+
tokenizeTimeLimit: 0
|
|
1620
1627
|
};
|
|
1621
1628
|
return {
|
|
1622
1629
|
lang,
|
|
@@ -1624,10 +1631,11 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
|
|
|
1624
1631
|
transformers,
|
|
1625
1632
|
defaultColor: false,
|
|
1626
1633
|
cssVariablePrefix: formatCSSVariablePrefix("token"),
|
|
1627
|
-
tokenizeMaxLineLength
|
|
1634
|
+
tokenizeMaxLineLength,
|
|
1635
|
+
tokenizeTimeLimit: 0
|
|
1628
1636
|
};
|
|
1629
1637
|
})();
|
|
1630
|
-
const highlightedLines = getLineNodes(highlighter
|
|
1638
|
+
const highlightedLines = getLineNodes(highlighter.codeToHast(isWindowedHighlight ? extractWindowedFileContent(lines ?? linesFromFileContents(file.contents), startingLine, totalLines) : file.contents, hastConfig));
|
|
1631
1639
|
const code = isWindowedHighlight ? new Array(startingLine) : highlightedLines;
|
|
1632
1640
|
if (isWindowedHighlight) code.push(...highlightedLines);
|
|
1633
1641
|
return {
|
|
@@ -1641,7 +1649,6 @@ function extractWindowedFileContent(lines, startingLine, totalLines) {
|
|
|
1641
1649
|
const endLine = Math.min(startingLine + totalLines, lines.length);
|
|
1642
1650
|
return lines.slice(startingLine, endLine).join("");
|
|
1643
1651
|
}
|
|
1644
|
-
|
|
1645
1652
|
//#endregion
|
|
1646
1653
|
//#region src/worker/worker.ts
|
|
1647
1654
|
let highlighter;
|
|
@@ -1683,15 +1690,15 @@ async function handleMessage(request) {
|
|
|
1683
1690
|
EMPTY_REGEXP.exec("");
|
|
1684
1691
|
}
|
|
1685
1692
|
}
|
|
1686
|
-
async function handleInitialize({ id, renderOptions: options, preferredHighlighter, resolvedThemes, resolvedLanguages, customExtensionsVersion
|
|
1687
|
-
let highlighter
|
|
1688
|
-
if ("then" in highlighter
|
|
1693
|
+
async function handleInitialize({ id, renderOptions: options, preferredHighlighter, resolvedThemes, resolvedLanguages, customExtensionsVersion, customExtensionMap }) {
|
|
1694
|
+
let highlighter = getHighlighter(preferredHighlighter);
|
|
1695
|
+
if ("then" in highlighter) highlighter = await highlighter;
|
|
1689
1696
|
syncCustomExtensionsFromRequest({
|
|
1690
|
-
customExtensionsVersion
|
|
1697
|
+
customExtensionsVersion,
|
|
1691
1698
|
customExtensionMap
|
|
1692
1699
|
});
|
|
1693
|
-
attachResolvedThemes(resolvedThemes, highlighter
|
|
1694
|
-
if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter
|
|
1700
|
+
attachResolvedThemes(resolvedThemes, highlighter);
|
|
1701
|
+
if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter);
|
|
1695
1702
|
renderOptions = options;
|
|
1696
1703
|
postMessage({
|
|
1697
1704
|
type: "success",
|
|
@@ -1701,9 +1708,9 @@ async function handleInitialize({ id, renderOptions: options, preferredHighlight
|
|
|
1701
1708
|
});
|
|
1702
1709
|
}
|
|
1703
1710
|
async function handleSetRenderOptions({ id, renderOptions: options, resolvedThemes }) {
|
|
1704
|
-
let highlighter
|
|
1705
|
-
if ("then" in highlighter
|
|
1706
|
-
attachResolvedThemes(resolvedThemes, highlighter
|
|
1711
|
+
let highlighter = getHighlighter();
|
|
1712
|
+
if ("then" in highlighter) highlighter = await highlighter;
|
|
1713
|
+
attachResolvedThemes(resolvedThemes, highlighter);
|
|
1707
1714
|
renderOptions = options;
|
|
1708
1715
|
postMessage({
|
|
1709
1716
|
type: "success",
|
|
@@ -1712,30 +1719,30 @@ async function handleSetRenderOptions({ id, renderOptions: options, resolvedThem
|
|
|
1712
1719
|
sentAt: Date.now()
|
|
1713
1720
|
});
|
|
1714
1721
|
}
|
|
1715
|
-
async function handleRenderFile({ id, file, resolvedLanguages, customExtensionsVersion
|
|
1716
|
-
let highlighter
|
|
1717
|
-
if ("then" in highlighter
|
|
1722
|
+
async function handleRenderFile({ id, file, resolvedLanguages, customExtensionsVersion, customExtensionMap }) {
|
|
1723
|
+
let highlighter = getHighlighter();
|
|
1724
|
+
if ("then" in highlighter) highlighter = await highlighter;
|
|
1718
1725
|
syncCustomExtensionsFromRequest({
|
|
1719
|
-
customExtensionsVersion
|
|
1726
|
+
customExtensionsVersion,
|
|
1720
1727
|
customExtensionMap
|
|
1721
1728
|
});
|
|
1722
|
-
if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter
|
|
1729
|
+
if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter);
|
|
1723
1730
|
const fileOptions = {
|
|
1724
1731
|
theme: renderOptions.theme,
|
|
1725
1732
|
useTokenTransformer: renderOptions.useTokenTransformer,
|
|
1726
1733
|
tokenizeMaxLineLength: renderOptions.tokenizeMaxLineLength
|
|
1727
1734
|
};
|
|
1728
|
-
sendFileSuccess(id, renderFileWithHighlighter(file, highlighter
|
|
1735
|
+
sendFileSuccess(id, renderFileWithHighlighter(file, highlighter, fileOptions), fileOptions);
|
|
1729
1736
|
}
|
|
1730
|
-
async function handleRenderDiff({ id, diff, resolvedLanguages, customExtensionsVersion
|
|
1731
|
-
let highlighter
|
|
1732
|
-
if ("then" in highlighter
|
|
1737
|
+
async function handleRenderDiff({ id, diff, resolvedLanguages, customExtensionsVersion, customExtensionMap }) {
|
|
1738
|
+
let highlighter = getHighlighter();
|
|
1739
|
+
if ("then" in highlighter) highlighter = await highlighter;
|
|
1733
1740
|
syncCustomExtensionsFromRequest({
|
|
1734
|
-
customExtensionsVersion
|
|
1741
|
+
customExtensionsVersion,
|
|
1735
1742
|
customExtensionMap
|
|
1736
1743
|
});
|
|
1737
|
-
if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter
|
|
1738
|
-
sendDiffSuccess(id, renderDiffWithHighlighter(diff, highlighter
|
|
1744
|
+
if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter);
|
|
1745
|
+
sendDiffSuccess(id, renderDiffWithHighlighter(diff, highlighter, renderOptions), renderOptions);
|
|
1739
1746
|
}
|
|
1740
1747
|
function getHighlighter(preferredHighlighter = "shiki-js") {
|
|
1741
1748
|
highlighter ??= createHighlighterCore({
|
|
@@ -1745,10 +1752,10 @@ function getHighlighter(preferredHighlighter = "shiki-js") {
|
|
|
1745
1752
|
});
|
|
1746
1753
|
return highlighter;
|
|
1747
1754
|
}
|
|
1748
|
-
function syncCustomExtensionsFromRequest({ customExtensionsVersion
|
|
1749
|
-
if (customExtensionsVersion
|
|
1750
|
-
if (customExtensionsVersion
|
|
1751
|
-
replaceCustomExtensions(customExtensionsVersion
|
|
1755
|
+
function syncCustomExtensionsFromRequest({ customExtensionsVersion, customExtensionMap }) {
|
|
1756
|
+
if (customExtensionsVersion == null && customExtensionMap == null) return;
|
|
1757
|
+
if (customExtensionsVersion == null || customExtensionMap == null) throw new Error("Worker request must include both customExtensionsVersion and customExtensionMap");
|
|
1758
|
+
replaceCustomExtensions(customExtensionsVersion, customExtensionMap);
|
|
1752
1759
|
}
|
|
1753
1760
|
function sendFileSuccess(id, result, options) {
|
|
1754
1761
|
postMessage({
|
|
@@ -1779,6 +1786,6 @@ function sendError(id, error) {
|
|
|
1779
1786
|
};
|
|
1780
1787
|
postMessage(response);
|
|
1781
1788
|
}
|
|
1782
|
-
|
|
1783
1789
|
//#endregion
|
|
1790
|
+
|
|
1784
1791
|
//# sourceMappingURL=worker.js.map
|