@pierre/diffs 1.3.0-beta.1 → 1.3.0-beta.10
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 +349 -50
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +10 -7
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +99 -40
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +76 -36
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +364 -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 +35 -9
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +367 -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 +7 -2
- package/dist/editor/editStack.d.ts.map +1 -1
- package/dist/editor/editStack.js +4 -4
- 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 +1926 -704
- 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 +252 -171
- 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 +187 -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 +100 -15
- package/dist/editor/selection.d.ts.map +1 -1
- package/dist/editor/selection.js +862 -136
- 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 +513 -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 +7 -0
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +26 -5
- 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 +15 -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 +2 -3
- 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 +272 -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 +20 -2
- 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/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 +3335 -6214
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +287 -309
- 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
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DIFFS_DEVELOPMENT_BUILD, DIFFS_TAG_NAME } from "../constants.js";
|
|
2
2
|
import { dequeueRender, queueRender } from "../managers/UniversalRenderingManager.js";
|
|
3
|
+
import { areManagedSnapshotsEqual } from "../utils/areManagedSnapshotsEqual.js";
|
|
3
4
|
import { areObjectsEqual } from "../utils/areObjectsEqual.js";
|
|
4
5
|
import { areThemesEqual } from "../utils/areThemesEqual.js";
|
|
5
6
|
import { areOptionsEqual } from "../utils/areOptionsEqual.js";
|
|
6
7
|
import { areSelectionsEqual } from "../utils/areSelectionsEqual.js";
|
|
8
|
+
import { createCodeViewHeaderFooterHostElement } from "../utils/createCodeViewHeaderFooterHostElement.js";
|
|
7
9
|
import { createWindowFromScrollPosition } from "../utils/createWindowFromScrollPosition.js";
|
|
10
|
+
import { finishEditSessionForDiff } from "../utils/editSessionHunks.js";
|
|
8
11
|
import { isStyleNode } from "../utils/isStyleNode.js";
|
|
9
12
|
import { prefersReducedMotion } from "../utils/prefersReducedMotion.js";
|
|
10
13
|
import { roundToDevicePixel } from "../utils/roundToDevicePixel.js";
|
|
11
14
|
import { VirtualizedFile } from "./VirtualizedFile.js";
|
|
12
15
|
import { VirtualizedFileDiff } from "./VirtualizedFileDiff.js";
|
|
13
|
-
|
|
14
16
|
//#region src/components/CodeView.ts
|
|
15
17
|
const CODE_VIEW_DIFF_OPTION_KEYS = [
|
|
16
18
|
"theme",
|
|
@@ -29,6 +31,7 @@ const CODE_VIEW_DIFF_OPTION_KEYS = [
|
|
|
29
31
|
"diffIndicators",
|
|
30
32
|
"disableBackground",
|
|
31
33
|
"expandUnchanged",
|
|
34
|
+
"loadDiffFiles",
|
|
32
35
|
"collapsedContextThreshold",
|
|
33
36
|
"lineDiffType",
|
|
34
37
|
"maxLineDiffLength",
|
|
@@ -62,9 +65,16 @@ const CODE_VIEW_FILE_OPTION_KEYS = [
|
|
|
62
65
|
"controlledSelection",
|
|
63
66
|
"disableErrorHandling"
|
|
64
67
|
];
|
|
68
|
+
const CODE_VIEW_EDIT_FORCED_OPTION_KEYS = /* @__PURE__ */ new Set([
|
|
69
|
+
"useTokenTransformer",
|
|
70
|
+
"enableGutterUtility",
|
|
71
|
+
"enableLineSelection",
|
|
72
|
+
"lineHoverHighlight"
|
|
73
|
+
]);
|
|
65
74
|
const CODE_VIEW_SHARED_CALLBACK_KEYS = [
|
|
66
75
|
"renderCustomHeader",
|
|
67
76
|
"renderHeaderPrefix",
|
|
77
|
+
"renderHeaderFilenameSuffix",
|
|
68
78
|
"renderHeaderMetadata",
|
|
69
79
|
"renderAnnotation",
|
|
70
80
|
"renderGutterUtility",
|
|
@@ -130,6 +140,8 @@ var CodeView = class CodeView {
|
|
|
130
140
|
items = [];
|
|
131
141
|
idToItem = /* @__PURE__ */ new Map();
|
|
132
142
|
selectedLines = null;
|
|
143
|
+
itemEditors = /* @__PURE__ */ new Map();
|
|
144
|
+
attachedEditors = /* @__PURE__ */ new Set();
|
|
133
145
|
instanceToItem = /* @__PURE__ */ new Map();
|
|
134
146
|
layoutDirtyIndex;
|
|
135
147
|
pendingLayoutReset;
|
|
@@ -164,18 +176,30 @@ var CodeView = class CodeView {
|
|
|
164
176
|
diffOptionsPrototype;
|
|
165
177
|
pendingScrollTarget;
|
|
166
178
|
pendingLayoutAnchor;
|
|
179
|
+
shouldFixContainerFocus = false;
|
|
167
180
|
scrollAnimation;
|
|
168
181
|
root;
|
|
169
182
|
resizeObserver;
|
|
170
183
|
container = document.createElement("div");
|
|
171
184
|
stickyContainer = document.createElement("div");
|
|
172
185
|
stickyOffset = document.createElement("div");
|
|
186
|
+
header = {
|
|
187
|
+
element: void 0,
|
|
188
|
+
render: void 0,
|
|
189
|
+
height: 0
|
|
190
|
+
};
|
|
191
|
+
footer = {
|
|
192
|
+
element: void 0,
|
|
193
|
+
render: void 0,
|
|
194
|
+
height: 0
|
|
195
|
+
};
|
|
173
196
|
elementPool = [];
|
|
174
197
|
elementPoolVersion = 0;
|
|
175
198
|
elementPoolTracker = /* @__PURE__ */ new WeakMap();
|
|
176
199
|
pendingElementPool = [];
|
|
177
200
|
options;
|
|
178
201
|
workerManager;
|
|
202
|
+
isReadySubscription;
|
|
179
203
|
isContainerManaged;
|
|
180
204
|
constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
|
|
181
205
|
this.options = options;
|
|
@@ -195,6 +219,9 @@ var CodeView = class CodeView {
|
|
|
195
219
|
getLayout() {
|
|
196
220
|
return this.options.layout ?? DEFAULT_CODE_VIEW_LAYOUT;
|
|
197
221
|
}
|
|
222
|
+
getItemTopOffset() {
|
|
223
|
+
return this.getLayout().paddingTop + this.header.height;
|
|
224
|
+
}
|
|
198
225
|
computeMetricsCache(itemMetrics) {
|
|
199
226
|
this.itemMetricsCache = {
|
|
200
227
|
hunkLineCount: itemMetrics?.hunkLineCount ?? DEFAULT_CODE_VIEW_FILE_METRICS.hunkLineCount,
|
|
@@ -240,6 +267,28 @@ var CodeView = class CodeView {
|
|
|
240
267
|
instance: item.instance
|
|
241
268
|
});
|
|
242
269
|
}
|
|
270
|
+
validateStickyContainerHeight() {
|
|
271
|
+
if (!this.shouldValidateItemHeights()) return;
|
|
272
|
+
const { firstIndex, lastIndex, stickyHeight, stickyTop, stickyBottom } = this.renderState;
|
|
273
|
+
if (firstIndex === -1 || lastIndex === -1) return;
|
|
274
|
+
const actualHeight = this.stickyContainer.getBoundingClientRect().height;
|
|
275
|
+
if (Math.abs(actualHeight - stickyHeight) < 1) return;
|
|
276
|
+
console.error("CodeView: sticky container height does not match computed layout", {
|
|
277
|
+
computedStickyHeight: stickyHeight,
|
|
278
|
+
actualStickyHeight: actualHeight,
|
|
279
|
+
delta: actualHeight - stickyHeight,
|
|
280
|
+
stickyTop,
|
|
281
|
+
stickyBottom,
|
|
282
|
+
firstIndex,
|
|
283
|
+
lastIndex,
|
|
284
|
+
firstStickySpecs: this.items[firstIndex]?.instance.getAdvancedStickySpecs(),
|
|
285
|
+
lastStickySpecs: this.items[lastIndex]?.instance.getAdvancedStickySpecs(),
|
|
286
|
+
scrollTop: this.getScrollTop(),
|
|
287
|
+
scrollPageOffset: this.scrollPageOffset,
|
|
288
|
+
windowSpecs: { ...this.windowSpecs },
|
|
289
|
+
stickyContainer: this.stickyContainer
|
|
290
|
+
});
|
|
291
|
+
}
|
|
243
292
|
clearScrollInteractionTimer() {
|
|
244
293
|
if (this.scrollInteractionFixTimer != null) {
|
|
245
294
|
clearTimeout(this.scrollInteractionFixTimer);
|
|
@@ -275,11 +324,49 @@ var CodeView = class CodeView {
|
|
|
275
324
|
this.container?.style.setProperty("margin-top", `${paddingTop}px`);
|
|
276
325
|
this.container?.style.setProperty("margin-bottom", `${paddingBottom}px`);
|
|
277
326
|
}
|
|
327
|
+
reconcileHeaderFooterHosts() {
|
|
328
|
+
const headerChanged = this.reconcileHost("header");
|
|
329
|
+
const footerChanged = this.reconcileHost("footer");
|
|
330
|
+
return headerChanged || footerChanged;
|
|
331
|
+
}
|
|
332
|
+
reconcileHost(type) {
|
|
333
|
+
const { root, container } = this;
|
|
334
|
+
if (root == null || container == null) return false;
|
|
335
|
+
const host = type === "header" ? this.header : this.footer;
|
|
336
|
+
const render = type === "header" ? this.options.renderCodeViewHeader : this.options.renderCodeViewFooter;
|
|
337
|
+
if (render == null) {
|
|
338
|
+
if (host.element == null) return false;
|
|
339
|
+
this.resizeObserver?.unobserve(host.element);
|
|
340
|
+
host.element.remove();
|
|
341
|
+
host.element = void 0;
|
|
342
|
+
host.render = void 0;
|
|
343
|
+
this.setHostHeight(host, 0);
|
|
344
|
+
return false;
|
|
345
|
+
}
|
|
346
|
+
if (host.element != null && render === host.render) return false;
|
|
347
|
+
const element = host.element ?? createCodeViewHeaderFooterHostElement(type, container, this.resizeObserver);
|
|
348
|
+
host.element = element;
|
|
349
|
+
const content = render();
|
|
350
|
+
if (content != null) element.replaceChildren(content);
|
|
351
|
+
else if (!this.isContainerManaged && element.children.length > 0) element.textContent = "";
|
|
352
|
+
host.render = render;
|
|
353
|
+
return true;
|
|
354
|
+
}
|
|
355
|
+
setHostHeight(host, height) {
|
|
356
|
+
if (host.height === height) return;
|
|
357
|
+
host.height = height;
|
|
358
|
+
this.scrollDirty = true;
|
|
359
|
+
}
|
|
360
|
+
measureMountedHosts() {
|
|
361
|
+
if (this.header.element != null) this.setHostHeight(this.header, this.header.element.getBoundingClientRect().height);
|
|
362
|
+
if (this.footer.element != null) this.setHostHeight(this.footer, this.footer.element.getBoundingClientRect().height);
|
|
363
|
+
}
|
|
278
364
|
setup(root) {
|
|
279
365
|
if (this.root != null) throw new Error("CodeView.setup: already setup");
|
|
280
366
|
this.workerManager?.subscribeToThemeChanges(this);
|
|
281
367
|
this.root = root;
|
|
282
368
|
this.root.style.overflowAnchor = "none";
|
|
369
|
+
if (!this.root.hasAttribute("tabindex")) this.root.tabIndex = -1;
|
|
283
370
|
this.container ??= document.createElement("div");
|
|
284
371
|
this.container.style.contain = "layout style";
|
|
285
372
|
this.syncLayout();
|
|
@@ -313,8 +400,13 @@ var CodeView = class CodeView {
|
|
|
313
400
|
};
|
|
314
401
|
}
|
|
315
402
|
reset() {
|
|
403
|
+
dequeueRender(this.computeRenderRangeAndEmit);
|
|
404
|
+
this.clearReadySubscription();
|
|
316
405
|
this.restoreScrollInteractions();
|
|
317
406
|
this.cleanAllRenderedItems();
|
|
407
|
+
for (const record of this.itemEditors.values()) record.editor.cleanUp();
|
|
408
|
+
this.itemEditors.clear();
|
|
409
|
+
this.attachedEditors.clear();
|
|
318
410
|
this.selectedLines = null;
|
|
319
411
|
this.items.length = 0;
|
|
320
412
|
this.idToItem.clear();
|
|
@@ -330,6 +422,7 @@ var CodeView = class CodeView {
|
|
|
330
422
|
bottom: 0
|
|
331
423
|
};
|
|
332
424
|
this.pendingLayoutAnchor = void 0;
|
|
425
|
+
this.shouldFixContainerFocus = false;
|
|
333
426
|
this.height = 0;
|
|
334
427
|
this.scrollTop = 0;
|
|
335
428
|
this.scrollPageOffset = 0;
|
|
@@ -356,6 +449,14 @@ var CodeView = class CodeView {
|
|
|
356
449
|
this.stickyOffset.remove();
|
|
357
450
|
this.stickyContainer.remove();
|
|
358
451
|
this.stickyContainer.textContent = "";
|
|
452
|
+
this.header.element?.remove();
|
|
453
|
+
this.header.element = void 0;
|
|
454
|
+
this.header.render = void 0;
|
|
455
|
+
this.header.height = 0;
|
|
456
|
+
this.footer.element?.remove();
|
|
457
|
+
this.footer.element = void 0;
|
|
458
|
+
this.footer.render = void 0;
|
|
459
|
+
this.footer.height = 0;
|
|
359
460
|
this.root = void 0;
|
|
360
461
|
this.container = void 0;
|
|
361
462
|
}
|
|
@@ -388,13 +489,25 @@ var CodeView = class CodeView {
|
|
|
388
489
|
}
|
|
389
490
|
releaseRenderedItem(item) {
|
|
390
491
|
const { element } = item;
|
|
492
|
+
if (element != null && this.renderedItemOwnsFocus(element)) this.shouldFixContainerFocus = true;
|
|
391
493
|
item.instance.cleanUp(true);
|
|
494
|
+
this.attachedEditors.delete(item.item.id);
|
|
392
495
|
item.element = void 0;
|
|
393
496
|
if (element == null) return;
|
|
394
497
|
element.remove();
|
|
395
498
|
this.cleanElement(element);
|
|
396
499
|
this.queueElementForPool(element);
|
|
397
500
|
}
|
|
501
|
+
renderedItemOwnsFocus(element) {
|
|
502
|
+
const { activeElement } = document;
|
|
503
|
+
return activeElement === element || element.contains(activeElement) || element.shadowRoot?.activeElement != null;
|
|
504
|
+
}
|
|
505
|
+
fixContainerFocus() {
|
|
506
|
+
if (this.shouldFixContainerFocus) {
|
|
507
|
+
this.shouldFixContainerFocus = false;
|
|
508
|
+
this.root?.focus({ preventScroll: true });
|
|
509
|
+
}
|
|
510
|
+
}
|
|
398
511
|
cleanElement(element) {
|
|
399
512
|
const { shadowRoot } = element;
|
|
400
513
|
if (shadowRoot != null) {
|
|
@@ -471,6 +584,14 @@ var CodeView = class CodeView {
|
|
|
471
584
|
getItem(itemId) {
|
|
472
585
|
return this.idToItem.get(itemId)?.item;
|
|
473
586
|
}
|
|
587
|
+
/**
|
|
588
|
+
* Get the live editor for an item currently in edit mode. Use this to drive
|
|
589
|
+
* editor APIs CodeView does not wrap (applyEdits, undo, setMarkers, …).
|
|
590
|
+
* Returns undefined once the item leaves edit mode.
|
|
591
|
+
*/
|
|
592
|
+
getEditor(itemId) {
|
|
593
|
+
return this.itemEditors.get(itemId)?.editor;
|
|
594
|
+
}
|
|
474
595
|
updateItem(input) {
|
|
475
596
|
const item = this.idToItem.get(input.id);
|
|
476
597
|
if (item == null) {
|
|
@@ -482,6 +603,7 @@ var CodeView = class CodeView {
|
|
|
482
603
|
this.scrollDirty = true;
|
|
483
604
|
this.render();
|
|
484
605
|
this.syncSelection();
|
|
606
|
+
this.syncItemEditors();
|
|
485
607
|
return true;
|
|
486
608
|
}
|
|
487
609
|
updateItemId(oldId, newId) {
|
|
@@ -506,6 +628,13 @@ var CodeView = class CodeView {
|
|
|
506
628
|
};
|
|
507
629
|
this.options.onSelectedLinesChange?.(this.selectedLines);
|
|
508
630
|
}
|
|
631
|
+
const editorRecord = this.itemEditors.get(oldId);
|
|
632
|
+
if (editorRecord != null) {
|
|
633
|
+
editorRecord.state.id = newId;
|
|
634
|
+
this.itemEditors.delete(oldId);
|
|
635
|
+
this.itemEditors.set(newId, editorRecord);
|
|
636
|
+
if (this.attachedEditors.delete(oldId)) this.attachedEditors.add(newId);
|
|
637
|
+
}
|
|
509
638
|
this.renamePendingScrollTarget(oldId, newId);
|
|
510
639
|
this.renamePendingLayoutAnchor(oldId, newId);
|
|
511
640
|
this.render();
|
|
@@ -513,17 +642,25 @@ var CodeView = class CodeView {
|
|
|
513
642
|
}
|
|
514
643
|
addItem(input) {
|
|
515
644
|
this.addItems([input]);
|
|
516
|
-
this.syncSelection();
|
|
517
645
|
}
|
|
518
646
|
addItems(inputs) {
|
|
519
647
|
this.appendItemsInternal(inputs);
|
|
520
648
|
this.syncSelection();
|
|
649
|
+
this.syncItemEditors();
|
|
521
650
|
}
|
|
522
651
|
setItems(items) {
|
|
523
|
-
if (items.length === 0)
|
|
524
|
-
|
|
652
|
+
if (items.length === 0) {
|
|
653
|
+
const completions = [];
|
|
654
|
+
for (const record of this.itemEditors.values()) {
|
|
655
|
+
const { lastChange } = record.state;
|
|
656
|
+
if (lastChange != null) completions.push(lastChange);
|
|
657
|
+
}
|
|
658
|
+
this.reset();
|
|
659
|
+
for (const { item, file, lineAnnotations } of completions) this.options.onItemEditComplete?.(item, file, lineAnnotations);
|
|
660
|
+
} else if (this.items.length === 0) this.appendItemsInternal(items);
|
|
525
661
|
else if (!this.tryAppendItems(items)) this.reconcileItems(items);
|
|
526
662
|
this.syncSelection();
|
|
663
|
+
this.syncItemEditors();
|
|
527
664
|
}
|
|
528
665
|
/**
|
|
529
666
|
* Append new records to the viewer while preserving existing layout state.
|
|
@@ -585,7 +722,9 @@ var CodeView = class CodeView {
|
|
|
585
722
|
this.scrollDirty = true;
|
|
586
723
|
}
|
|
587
724
|
if (!areOptionsEqual(prevOptions, options)) this.renderOptionsRevision++;
|
|
588
|
-
|
|
725
|
+
this.syncItemEditors();
|
|
726
|
+
const headerFooterChanged = prevOptions.renderCodeViewHeader !== options.renderCodeViewHeader || prevOptions.renderCodeViewFooter !== options.renderCodeViewFooter;
|
|
727
|
+
if (!this.isContainerManaged && (this.items.length > 0 || headerFooterChanged)) this.render();
|
|
589
728
|
}
|
|
590
729
|
capturePendingLayoutAnchor() {
|
|
591
730
|
if (this.root == null || this.items.length === 0 || this.pendingScrollTarget != null) return;
|
|
@@ -598,6 +737,25 @@ var CodeView = class CodeView {
|
|
|
598
737
|
this.computeRenderRangeAndEmit();
|
|
599
738
|
} else queueRender(this.computeRenderRangeAndEmit);
|
|
600
739
|
}
|
|
740
|
+
isReady() {
|
|
741
|
+
const { workerManager } = this;
|
|
742
|
+
if (workerManager == null || workerManager.isInitialized() || workerManager.getStats().workersFailed) {
|
|
743
|
+
this.clearReadySubscription();
|
|
744
|
+
return true;
|
|
745
|
+
}
|
|
746
|
+
this.isReadySubscription ??= workerManager.subscribeToStatChanges((stats) => {
|
|
747
|
+
if (stats.managerState !== "initialized" && !stats.workersFailed) return;
|
|
748
|
+
this.clearReadySubscription();
|
|
749
|
+
this.render(true);
|
|
750
|
+
});
|
|
751
|
+
if (workerManager.getStats().managerState === "waiting") workerManager.initialize().catch(() => {});
|
|
752
|
+
return false;
|
|
753
|
+
}
|
|
754
|
+
clearReadySubscription() {
|
|
755
|
+
if (this.isReadySubscription == null) return;
|
|
756
|
+
this.isReadySubscription();
|
|
757
|
+
this.isReadySubscription = void 0;
|
|
758
|
+
}
|
|
601
759
|
instanceChanged(instance, layoutDirty) {
|
|
602
760
|
const item = this.instanceToItem.get(instance);
|
|
603
761
|
if (item == null) throw new Error("CodeView.instanceChanged: An instance has changed that is not registered");
|
|
@@ -610,6 +768,12 @@ var CodeView = class CodeView {
|
|
|
610
768
|
getContainerElement() {
|
|
611
769
|
return this.root;
|
|
612
770
|
}
|
|
771
|
+
getHeaderElement() {
|
|
772
|
+
return this.header.element;
|
|
773
|
+
}
|
|
774
|
+
getFooterElement() {
|
|
775
|
+
return this.footer.element;
|
|
776
|
+
}
|
|
613
777
|
getRenderedItems() {
|
|
614
778
|
const { firstIndex, lastIndex } = this.renderState;
|
|
615
779
|
if (firstIndex === -1 || lastIndex === -1 || lastIndex < firstIndex) return [];
|
|
@@ -643,7 +807,18 @@ var CodeView = class CodeView {
|
|
|
643
807
|
return true;
|
|
644
808
|
}
|
|
645
809
|
getSlotSnapshot(coordinator) {
|
|
646
|
-
return
|
|
810
|
+
return this.buildSlotSnapshot(coordinator);
|
|
811
|
+
}
|
|
812
|
+
buildSlotSnapshot(coordinator) {
|
|
813
|
+
const items = getSlotItems(this.getRenderedItems(), coordinator);
|
|
814
|
+
const { element: header } = this.header;
|
|
815
|
+
const { element: footer } = this.footer;
|
|
816
|
+
if (items == null && header == null && footer == null) return;
|
|
817
|
+
return {
|
|
818
|
+
items,
|
|
819
|
+
header,
|
|
820
|
+
footer
|
|
821
|
+
};
|
|
647
822
|
}
|
|
648
823
|
subscribeToScroll(listener) {
|
|
649
824
|
this.scrollListeners.add(listener);
|
|
@@ -659,12 +834,12 @@ var CodeView = class CodeView {
|
|
|
659
834
|
getTopForItem(id) {
|
|
660
835
|
const item = this.idToItem.get(id);
|
|
661
836
|
if (item == null) return;
|
|
662
|
-
return item.top + this.
|
|
837
|
+
return item.top + this.getItemTopOffset();
|
|
663
838
|
}
|
|
664
839
|
createItem(input, index, top) {
|
|
665
840
|
const { itemMetricsCache: itemMetrics } = this;
|
|
666
841
|
if (input.type === "diff") {
|
|
667
|
-
const instance
|
|
842
|
+
const instance = new VirtualizedFileDiff(this.createDiffOptions(input.id), this, itemMetrics, this.workerManager, this.isContainerManaged);
|
|
668
843
|
return {
|
|
669
844
|
type: "diff",
|
|
670
845
|
item: input,
|
|
@@ -674,7 +849,7 @@ var CodeView = class CodeView {
|
|
|
674
849
|
height: 0,
|
|
675
850
|
element: void 0,
|
|
676
851
|
renderedOptionsRevision: this.renderOptionsRevision,
|
|
677
|
-
instance
|
|
852
|
+
instance
|
|
678
853
|
};
|
|
679
854
|
}
|
|
680
855
|
const instance = new VirtualizedFile(this.createFileOptions(input.id), this, itemMetrics, this.workerManager, this.isContainerManaged);
|
|
@@ -706,6 +881,83 @@ var CodeView = class CodeView {
|
|
|
706
881
|
}
|
|
707
882
|
item.instance.setSelectedLines(this.selectedLines.range, { notify: false });
|
|
708
883
|
}
|
|
884
|
+
isItemInEditMode(item) {
|
|
885
|
+
return this.options.createEditor != null && item.item.edit === true && item.item.collapsed !== true;
|
|
886
|
+
}
|
|
887
|
+
isReceiverEdited(receiver, mode) {
|
|
888
|
+
const state = getItemOptionsState(receiver);
|
|
889
|
+
if (state == null) return false;
|
|
890
|
+
const item = this.getItemOptions(state, mode);
|
|
891
|
+
return item != null && this.isItemInEditMode(item);
|
|
892
|
+
}
|
|
893
|
+
/**
|
|
894
|
+
* Attach (or lazily create) the editor for a mounted edit-mode item. Called
|
|
895
|
+
* from the render loop so every mounted item passes through it: fresh
|
|
896
|
+
* mounts, remounts after virtualization released the item, and items whose
|
|
897
|
+
* edit flag was just turned on. Editors persist across unmounts, so a
|
|
898
|
+
* remounted item re-attaches its existing editor and resumes the retained
|
|
899
|
+
* document; the renderers keep the host's file/diff data in sync with the
|
|
900
|
+
* session so the remount paints the edited text.
|
|
901
|
+
*/
|
|
902
|
+
attachItemEditor(item) {
|
|
903
|
+
const { id } = item.item;
|
|
904
|
+
const { createEditor } = this.options;
|
|
905
|
+
if (createEditor == null || item.element == null || this.attachedEditors.has(id) || !this.isItemInEditMode(item)) return;
|
|
906
|
+
let record = this.itemEditors.get(id);
|
|
907
|
+
if (record == null) {
|
|
908
|
+
const state = { id };
|
|
909
|
+
const editor = createEditor({ onChange: (file, lineAnnotations) => {
|
|
910
|
+
const latest = this.idToItem.get(state.id);
|
|
911
|
+
if (latest == null) return;
|
|
912
|
+
state.lastChange = {
|
|
913
|
+
item: latest.item,
|
|
914
|
+
file,
|
|
915
|
+
lineAnnotations
|
|
916
|
+
};
|
|
917
|
+
this.options.onItemEditChange?.(latest.item, file, lineAnnotations);
|
|
918
|
+
} });
|
|
919
|
+
if (editor == null) return;
|
|
920
|
+
record = {
|
|
921
|
+
editor,
|
|
922
|
+
state
|
|
923
|
+
};
|
|
924
|
+
this.itemEditors.set(id, record);
|
|
925
|
+
}
|
|
926
|
+
if (this.selectedLines?.id === id) this.applySelectedLines(null, { notify: false });
|
|
927
|
+
record.editor.edit(item.instance);
|
|
928
|
+
this.attachedEditors.add(id);
|
|
929
|
+
}
|
|
930
|
+
/**
|
|
931
|
+
* Drop editors for items that can no longer be edited: removed, edit turned
|
|
932
|
+
* off, collapsed, or the createEditor option was unset. Attachment happens
|
|
933
|
+
* in the render loop via attachItemEditor, so this only reconciles editors
|
|
934
|
+
* CodeView is already holding.
|
|
935
|
+
*/
|
|
936
|
+
syncItemEditors() {
|
|
937
|
+
if (this.itemEditors.size === 0) return;
|
|
938
|
+
const completions = [];
|
|
939
|
+
for (const [id, record] of this.itemEditors) {
|
|
940
|
+
const item = this.idToItem.get(id);
|
|
941
|
+
if (item != null && this.isItemInEditMode(item)) continue;
|
|
942
|
+
record.editor.cleanUp();
|
|
943
|
+
this.itemEditors.delete(id);
|
|
944
|
+
this.attachedEditors.delete(id);
|
|
945
|
+
const itemSnapshot = item?.item ?? record.state.lastChange?.item;
|
|
946
|
+
if (itemSnapshot?.type === "diff") {
|
|
947
|
+
if (item != null && item.type === "diff" && item.instance.completeEditSession()) {
|
|
948
|
+
this.markItemLayoutDirty(item);
|
|
949
|
+
this.render();
|
|
950
|
+
}
|
|
951
|
+
finishEditSessionForDiff(itemSnapshot.fileDiff);
|
|
952
|
+
}
|
|
953
|
+
const { lastChange } = record.state;
|
|
954
|
+
if (lastChange != null) completions.push(item == null ? lastChange : {
|
|
955
|
+
...lastChange,
|
|
956
|
+
item: item.item
|
|
957
|
+
});
|
|
958
|
+
}
|
|
959
|
+
for (const { item, file, lineAnnotations } of completions) this.options.onItemEditComplete?.(item, file, lineAnnotations);
|
|
960
|
+
}
|
|
709
961
|
renamePendingScrollTarget(oldId, newId) {
|
|
710
962
|
const { pendingScrollTarget } = this;
|
|
711
963
|
if (pendingScrollTarget == null || pendingScrollTarget.type === "position" || pendingScrollTarget.id !== oldId) return;
|
|
@@ -719,19 +971,41 @@ var CodeView = class CodeView {
|
|
|
719
971
|
}
|
|
720
972
|
createFileOptionsPrototype() {
|
|
721
973
|
const prototype = {};
|
|
722
|
-
for (const key of CODE_VIEW_FILE_OPTION_KEYS)
|
|
974
|
+
for (const key of CODE_VIEW_FILE_OPTION_KEYS) {
|
|
975
|
+
if (CODE_VIEW_EDIT_FORCED_OPTION_KEYS.has(key)) continue;
|
|
976
|
+
defineItemOption(prototype, key, () => this.options[key]);
|
|
977
|
+
}
|
|
978
|
+
defineItemOption(prototype, "useTokenTransformer", (receiver) => this.isReceiverEdited(receiver, "file") ? true : this.options.useTokenTransformer);
|
|
979
|
+
defineItemOption(prototype, "enableGutterUtility", (receiver) => this.isReceiverEdited(receiver, "file") ? false : this.options.enableGutterUtility);
|
|
980
|
+
defineItemOption(prototype, "enableLineSelection", (receiver) => this.isReceiverEdited(receiver, "file") ? false : this.options.enableLineSelection);
|
|
981
|
+
defineItemOption(prototype, "lineHoverHighlight", (receiver) => this.isReceiverEdited(receiver, "file") ? "disabled" : this.options.lineHoverHighlight);
|
|
723
982
|
defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
|
|
724
|
-
defineItemOption(prototype, "collapsed", (receiver) =>
|
|
983
|
+
defineItemOption(prototype, "collapsed", (receiver) => {
|
|
984
|
+
const state = getItemOptionsState(receiver);
|
|
985
|
+
if (state == null) return;
|
|
986
|
+
return this.getItemOptions(state, "file")?.item.collapsed;
|
|
987
|
+
});
|
|
725
988
|
for (const key of CODE_VIEW_SHARED_CALLBACK_KEYS) this.defineItemSharedCallback(prototype, "file", key);
|
|
726
989
|
for (const key of CODE_VIEW_SELECTION_CALLBACK_KEYS) this.defineItemSelectionCallback(prototype, "file", key);
|
|
727
990
|
return prototype;
|
|
728
991
|
}
|
|
729
992
|
createDiffOptionsPrototype() {
|
|
730
993
|
const prototype = {};
|
|
731
|
-
for (const key of CODE_VIEW_DIFF_OPTION_KEYS)
|
|
994
|
+
for (const key of CODE_VIEW_DIFF_OPTION_KEYS) {
|
|
995
|
+
if (CODE_VIEW_EDIT_FORCED_OPTION_KEYS.has(key)) continue;
|
|
996
|
+
defineItemOption(prototype, key, () => this.options[key]);
|
|
997
|
+
}
|
|
998
|
+
defineItemOption(prototype, "useTokenTransformer", (receiver) => this.isReceiverEdited(receiver, "diff") ? true : this.options.useTokenTransformer);
|
|
999
|
+
defineItemOption(prototype, "enableGutterUtility", (receiver) => this.isReceiverEdited(receiver, "diff") ? false : this.options.enableGutterUtility);
|
|
1000
|
+
defineItemOption(prototype, "enableLineSelection", (receiver) => this.isReceiverEdited(receiver, "diff") ? false : this.options.enableLineSelection);
|
|
1001
|
+
defineItemOption(prototype, "lineHoverHighlight", (receiver) => this.isReceiverEdited(receiver, "diff") ? "disabled" : this.options.lineHoverHighlight);
|
|
732
1002
|
defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
|
|
733
1003
|
defineItemOption(prototype, "hunkSeparators", () => this.options.hunkSeparators);
|
|
734
|
-
defineItemOption(prototype, "collapsed", (receiver) =>
|
|
1004
|
+
defineItemOption(prototype, "collapsed", (receiver) => {
|
|
1005
|
+
const state = getItemOptionsState(receiver);
|
|
1006
|
+
if (state == null) return;
|
|
1007
|
+
return this.getItemOptions(state, "diff")?.item.collapsed;
|
|
1008
|
+
});
|
|
735
1009
|
for (const key of CODE_VIEW_SHARED_CALLBACK_KEYS) this.defineItemSharedCallback(prototype, "diff", key);
|
|
736
1010
|
for (const key of CODE_VIEW_SELECTION_CALLBACK_KEYS) this.defineItemSelectionCallback(prototype, "diff", key);
|
|
737
1011
|
return prototype;
|
|
@@ -747,7 +1021,9 @@ var CodeView = class CodeView {
|
|
|
747
1021
|
return options;
|
|
748
1022
|
}
|
|
749
1023
|
updateItemOptionsId(options, id) {
|
|
750
|
-
getItemOptionsState(options)
|
|
1024
|
+
const state = getItemOptionsState(options);
|
|
1025
|
+
if (state == null) throw new Error(`CodeView.updateItemOptionsId: No valid state`);
|
|
1026
|
+
state.id = id;
|
|
751
1027
|
}
|
|
752
1028
|
getItemOptions(state, mode) {
|
|
753
1029
|
const item = this.idToItem.get(state.id);
|
|
@@ -758,6 +1034,7 @@ var CodeView = class CodeView {
|
|
|
758
1034
|
defineItemOption(options, key, (receiver) => {
|
|
759
1035
|
if (this.options[key] == null) return;
|
|
760
1036
|
const state = getItemOptionsState(receiver);
|
|
1037
|
+
if (state == null) return;
|
|
761
1038
|
const callbackCache = state.callbackCache ??= {};
|
|
762
1039
|
let wrapped = callbackCache[key];
|
|
763
1040
|
if (wrapped == null) {
|
|
@@ -776,6 +1053,9 @@ var CodeView = class CodeView {
|
|
|
776
1053
|
defineItemOption(options, key, (receiver) => {
|
|
777
1054
|
if (this.options.enableLineSelection !== true) return;
|
|
778
1055
|
const state = getItemOptionsState(receiver);
|
|
1056
|
+
if (state == null) return;
|
|
1057
|
+
const item = this.getItemOptions(state, mode);
|
|
1058
|
+
if (item != null && this.isItemInEditMode(item)) return;
|
|
779
1059
|
const callbackCache = state.callbackCache ??= {};
|
|
780
1060
|
let wrapped = callbackCache[key];
|
|
781
1061
|
if (wrapped == null) {
|
|
@@ -903,7 +1183,7 @@ var CodeView = class CodeView {
|
|
|
903
1183
|
}
|
|
904
1184
|
getMaxScrollTopForHeight(scrollHeight) {
|
|
905
1185
|
const { paddingBottom, paddingTop } = this.getLayout();
|
|
906
|
-
return Math.max(paddingTop + scrollHeight + paddingBottom - this.getHeight(), 0);
|
|
1186
|
+
return Math.max(paddingTop + this.header.height + scrollHeight + this.footer.height + paddingBottom - this.getHeight(), 0);
|
|
907
1187
|
}
|
|
908
1188
|
getMaxScrollTop() {
|
|
909
1189
|
return this.getMaxScrollTopForHeight(this.getScrollHeight());
|
|
@@ -1015,7 +1295,7 @@ var CodeView = class CodeView {
|
|
|
1015
1295
|
const rect = this.getScrollTargetRect(target);
|
|
1016
1296
|
if (rect == null) return;
|
|
1017
1297
|
const offset = target.offset ?? 0;
|
|
1018
|
-
const targetTop = this.
|
|
1298
|
+
const targetTop = this.getItemTopOffset() + rect.top;
|
|
1019
1299
|
const targetBottom = targetTop + rect.height;
|
|
1020
1300
|
const currentTop = this.getScrollTop();
|
|
1021
1301
|
const visibleTop = currentTop + (target.type === "line" || target.type === "range" ? this.getStickyHeaderOffset() : 0);
|
|
@@ -1067,7 +1347,7 @@ var CodeView = class CodeView {
|
|
|
1067
1347
|
* and stickyOffset if necessary
|
|
1068
1348
|
*/
|
|
1069
1349
|
resolveAlignedScrollPosition(targetTop, targetHeight, align, offset = 0, stickyOffset = 0) {
|
|
1070
|
-
targetTop += this.
|
|
1350
|
+
targetTop += this.getItemTopOffset();
|
|
1071
1351
|
const viewportHeight = this.getHeight();
|
|
1072
1352
|
if (align === "center" && targetHeight + offset < viewportHeight) return targetTop - (viewportHeight - targetHeight) / 2 + offset;
|
|
1073
1353
|
if (align === "end") return targetTop - (viewportHeight - targetHeight) + offset;
|
|
@@ -1171,6 +1451,7 @@ var CodeView = class CodeView {
|
|
|
1171
1451
|
}
|
|
1172
1452
|
computeRenderRangeAndEmit = (timestamp = performance.now()) => {
|
|
1173
1453
|
if (CodeView.__STOP || this.container == null) return;
|
|
1454
|
+
if (!this.isReady()) return;
|
|
1174
1455
|
const viewportHeight = this.getHeight();
|
|
1175
1456
|
const initialScrollTop = this.getScrollTop();
|
|
1176
1457
|
let scrollTopAfterLayout = initialScrollTop;
|
|
@@ -1198,7 +1479,7 @@ var CodeView = class CodeView {
|
|
|
1198
1479
|
const fitPerfectly = !computeScrollCorrection && (this.renderState.scrollTop === -1 || Math.abs(targetScrollTop - this.renderState.scrollTop) > viewportHeight + this.config.overscrollSize * 2);
|
|
1199
1480
|
if (fitPerfectly) scrollAnchor = void 0;
|
|
1200
1481
|
this.windowSpecs = createWindowFromScrollPosition({
|
|
1201
|
-
scrollTop: targetScrollTop,
|
|
1482
|
+
scrollTop: targetScrollTop - this.header.height,
|
|
1202
1483
|
height: viewportHeight,
|
|
1203
1484
|
scrollHeight: this.getScrollHeight(),
|
|
1204
1485
|
fitPerfectly,
|
|
@@ -1217,6 +1498,7 @@ var CodeView = class CodeView {
|
|
|
1217
1498
|
if (item == null) throw new Error(`CodeView.computeRenderRangeAndEmit: No item at index: ${index}`);
|
|
1218
1499
|
if (!(item.top > top - item.height && item.top <= bottom)) this.releaseRenderedItem(item);
|
|
1219
1500
|
}
|
|
1501
|
+
const hostsChanged = this.reconcileHeaderFooterHosts();
|
|
1220
1502
|
let prevElement;
|
|
1221
1503
|
const updatedItems = /* @__PURE__ */ new Set();
|
|
1222
1504
|
const startingIndex = this.findFirstVisibleIndex(top);
|
|
@@ -1242,10 +1524,13 @@ var CodeView = class CodeView {
|
|
|
1242
1524
|
}
|
|
1243
1525
|
prevElement = item.element;
|
|
1244
1526
|
}
|
|
1527
|
+
if (item.item.edit === true) this.attachItemEditor(item);
|
|
1245
1528
|
}
|
|
1246
1529
|
this.renderState.firstIndex = startingIndex <= lastRenderedIndex ? startingIndex : -1;
|
|
1247
1530
|
this.renderState.lastIndex = lastRenderedIndex;
|
|
1248
1531
|
this.flushSlotCoordinator();
|
|
1532
|
+
this.flushManagers(updatedItems);
|
|
1533
|
+
if (hostsChanged) this.measureMountedHosts();
|
|
1249
1534
|
this.reconcileRenderedItems(updatedItems);
|
|
1250
1535
|
this.syncContainerHeight();
|
|
1251
1536
|
this.updateStickyPositioning();
|
|
@@ -1270,7 +1555,9 @@ var CodeView = class CodeView {
|
|
|
1270
1555
|
this.scrollAnimation = void 0;
|
|
1271
1556
|
}
|
|
1272
1557
|
this.renderState.scrollTop = roundToDevicePixel(syncedScrollTop);
|
|
1273
|
-
this.
|
|
1558
|
+
this.updateStickyPositioning();
|
|
1559
|
+
this.validateStickyContainerHeight();
|
|
1560
|
+
this.fixContainerFocus();
|
|
1274
1561
|
if (fitPerfectly || this.scrollAnimation != null) this.render();
|
|
1275
1562
|
};
|
|
1276
1563
|
flushManagers(updatedItems) {
|
|
@@ -1382,6 +1669,25 @@ var CodeView = class CodeView {
|
|
|
1382
1669
|
this.scrollAnimation = void 0;
|
|
1383
1670
|
}
|
|
1384
1671
|
}
|
|
1672
|
+
} else if (entry.target === this.header.element || entry.target === this.footer.element) {
|
|
1673
|
+
const host = entry.target === this.header.element ? this.header : this.footer;
|
|
1674
|
+
const blockSize = entry.borderBoxSize[0].blockSize;
|
|
1675
|
+
if (blockSize !== host.height) {
|
|
1676
|
+
const currentScrollTop = this.getScrollTop();
|
|
1677
|
+
const anchor = this.getScrollAnchor(currentScrollTop);
|
|
1678
|
+
this.setHostHeight(host, blockSize);
|
|
1679
|
+
const anchoredScrollTop = anchor != null ? this.resolveAnchoredScrollTop(anchor) : void 0;
|
|
1680
|
+
if (anchoredScrollTop != null) {
|
|
1681
|
+
const resizeAnchorDelta = anchoredScrollTop - currentScrollTop;
|
|
1682
|
+
this.applyScrollFix(anchoredScrollTop, currentScrollTop, this.windowSpecs);
|
|
1683
|
+
if (this.scrollAnimation != null) this.scrollAnimation.position += resizeAnchorDelta;
|
|
1684
|
+
}
|
|
1685
|
+
if (this.pendingScrollTarget != null && this.isPendingTargetSettled(this.pendingScrollTarget)) {
|
|
1686
|
+
this.pendingScrollTarget = void 0;
|
|
1687
|
+
this.scrollAnimation = void 0;
|
|
1688
|
+
}
|
|
1689
|
+
this.render();
|
|
1690
|
+
}
|
|
1385
1691
|
} else {
|
|
1386
1692
|
this.scrollDirty = true;
|
|
1387
1693
|
this.heightDirty = true;
|
|
@@ -1404,6 +1710,7 @@ var CodeView = class CodeView {
|
|
|
1404
1710
|
*/
|
|
1405
1711
|
getScrollAnchor(scrollTop) {
|
|
1406
1712
|
if (this.pendingLayoutAnchor != null) return this.pendingLayoutAnchor;
|
|
1713
|
+
if (scrollTop <= 0) return;
|
|
1407
1714
|
const { firstIndex, lastIndex, stickyTop, stickyBottom } = this.renderState;
|
|
1408
1715
|
if (firstIndex === -1 || lastIndex === -1) return;
|
|
1409
1716
|
const viewportHeight = this.getHeight();
|
|
@@ -1411,7 +1718,7 @@ var CodeView = class CodeView {
|
|
|
1411
1718
|
for (let index = firstIndex; index <= lastIndex; index++) {
|
|
1412
1719
|
const item = this.items[index];
|
|
1413
1720
|
if (item == null) continue;
|
|
1414
|
-
const absoluteItemTop = this.
|
|
1721
|
+
const absoluteItemTop = this.getItemTopOffset() + item.top;
|
|
1415
1722
|
if (absoluteItemTop + item.height <= scrollTop) continue;
|
|
1416
1723
|
if (absoluteItemTop >= scrollTop + viewportHeight) break;
|
|
1417
1724
|
if (absoluteItemTop >= scrollTop) return {
|
|
@@ -1443,14 +1750,14 @@ var CodeView = class CodeView {
|
|
|
1443
1750
|
resolveAnchoredScrollTop(anchor) {
|
|
1444
1751
|
const item = this.idToItem.get(anchor.id);
|
|
1445
1752
|
if (item == null) return;
|
|
1446
|
-
const
|
|
1753
|
+
const itemTopOffset = this.getItemTopOffset();
|
|
1447
1754
|
if (anchor.type === "item") {
|
|
1448
|
-
const absoluteItemTop =
|
|
1755
|
+
const absoluteItemTop = itemTopOffset + item.top;
|
|
1449
1756
|
return this.clampScrollTop(absoluteItemTop - anchor.viewportOffset);
|
|
1450
1757
|
}
|
|
1451
1758
|
const linePosition = item.type === "diff" ? item.instance.getLinePosition(anchor.lineNumber, anchor.side) : item.instance.getLinePosition(anchor.lineNumber);
|
|
1452
1759
|
if (linePosition == null) return;
|
|
1453
|
-
const absoluteLineTop =
|
|
1760
|
+
const absoluteLineTop = itemTopOffset + item.top + linePosition.top;
|
|
1454
1761
|
return this.clampScrollTop(absoluteLineTop - anchor.viewportOffset);
|
|
1455
1762
|
}
|
|
1456
1763
|
/**
|
|
@@ -1507,11 +1814,10 @@ var CodeView = class CodeView {
|
|
|
1507
1814
|
}
|
|
1508
1815
|
flushSlotCoordinator() {
|
|
1509
1816
|
if (this.slotCoordinator == null) return;
|
|
1510
|
-
const
|
|
1511
|
-
|
|
1512
|
-
if (areSlotSnapshotsEqual(this.slotSnapshot, slotSnapshot)) return;
|
|
1817
|
+
const slotSnapshot = this.buildSlotSnapshot(this.slotCoordinator);
|
|
1818
|
+
if (areManagedSnapshotsEqual(this.slotSnapshot, slotSnapshot)) return;
|
|
1513
1819
|
this.slotSnapshot = slotSnapshot;
|
|
1514
|
-
onSnapshotChange(slotSnapshot);
|
|
1820
|
+
this.slotCoordinator.onSnapshotChange(slotSnapshot);
|
|
1515
1821
|
}
|
|
1516
1822
|
notifyScroll() {
|
|
1517
1823
|
if (this.scrollListeners.size === 0) return;
|
|
@@ -1580,8 +1886,11 @@ var CodeView = class CodeView {
|
|
|
1580
1886
|
const item = this.items[index];
|
|
1581
1887
|
if (item == null) throw new Error("CodeView.recomputeLayout: invalid item index");
|
|
1582
1888
|
item.top = runningTop;
|
|
1583
|
-
if (item.type === "diff")
|
|
1584
|
-
|
|
1889
|
+
if (item.type === "diff") {
|
|
1890
|
+
const fileDiff = item.instance.consumeCodeViewLayoutChanges(item.item.fileDiff);
|
|
1891
|
+
if (fileDiff != null) Object.assign(item.item.fileDiff, fileDiff);
|
|
1892
|
+
item.height = item.instance.prepareCodeViewItem(item.item.fileDiff, runningTop, reset, item.item.annotations ?? []);
|
|
1893
|
+
} else item.height = item.instance.prepareCodeViewItem(item.item.file, runningTop, reset, item.item.annotations ?? []);
|
|
1585
1894
|
runningTop += item.height;
|
|
1586
1895
|
if (index < this.items.length - 1) runningTop += layout.gap;
|
|
1587
1896
|
}
|
|
@@ -1602,21 +1911,21 @@ var CodeView = class CodeView {
|
|
|
1602
1911
|
};
|
|
1603
1912
|
function prepareItemInstance(item) {
|
|
1604
1913
|
item.instance.cleanUp(true);
|
|
1605
|
-
if (item.type === "diff") return item.instance.prepareCodeViewItem(item.item.fileDiff, item.top);
|
|
1606
|
-
else return item.instance.prepareCodeViewItem(item.item.file, item.top);
|
|
1914
|
+
if (item.type === "diff") return item.instance.prepareCodeViewItem(item.item.fileDiff, item.top, void 0, item.item.annotations ?? []);
|
|
1915
|
+
else return item.instance.prepareCodeViewItem(item.item.file, item.top, void 0, item.item.annotations ?? []);
|
|
1607
1916
|
}
|
|
1608
1917
|
function shouldClearPool(previousOptions, nextOptions) {
|
|
1609
1918
|
return !areThemesEqual(previousOptions.theme ?? DEFAULT_THEMES, nextOptions.theme ?? DEFAULT_THEMES) || (previousOptions.themeType ?? "system") !== (nextOptions.themeType ?? "system") || previousOptions.unsafeCSS !== nextOptions.unsafeCSS;
|
|
1610
1919
|
}
|
|
1611
1920
|
function hasItemLayoutOptionChanged(previousOptions, nextOptions) {
|
|
1612
|
-
return (previousOptions.overflow ?? "scroll") !== (nextOptions.overflow ?? "scroll") || (previousOptions.disableLineNumbers ?? false) !== (nextOptions.disableLineNumbers ?? false) || (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || previousOptions.unsafeCSS !== nextOptions.unsafeCSS || (previousOptions.diffStyle ?? "split") !== (nextOptions.diffStyle ?? "split") || (previousOptions.diffIndicators ?? "bars") !== (nextOptions.diffIndicators ?? "bars") || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ??
|
|
1921
|
+
return (previousOptions.overflow ?? "scroll") !== (nextOptions.overflow ?? "scroll") || (previousOptions.disableLineNumbers ?? false) !== (nextOptions.disableLineNumbers ?? false) || (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || previousOptions.unsafeCSS !== nextOptions.unsafeCSS || (previousOptions.diffStyle ?? "split") !== (nextOptions.diffStyle ?? "split") || (previousOptions.diffIndicators ?? "bars") !== (nextOptions.diffIndicators ?? "bars") || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? 1) !== (nextOptions.collapsedContextThreshold ?? 1);
|
|
1613
1922
|
}
|
|
1614
1923
|
function hasCodeViewDiffEstimateOptionChanged(previousOptions, nextOptions) {
|
|
1615
|
-
return (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ??
|
|
1924
|
+
return (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? 1) !== (nextOptions.collapsedContextThreshold ?? 1);
|
|
1616
1925
|
}
|
|
1617
1926
|
function isPooledShadowChild(child) {
|
|
1618
1927
|
if (child instanceof SVGElement) return true;
|
|
1619
|
-
return isStyleNode(child) && (child.hasAttribute(
|
|
1928
|
+
return isStyleNode(child) && (child.hasAttribute("data-core-css") || child.hasAttribute("data-theme-css") || child.hasAttribute("data-unsafe-css"));
|
|
1620
1929
|
}
|
|
1621
1930
|
function formatSelectedLineRange(range) {
|
|
1622
1931
|
const start = formatSelectedLinePoint(range.start, range.side);
|
|
@@ -1633,14 +1942,14 @@ function renderItem(item, fileContainer, forceRender = false) {
|
|
|
1633
1942
|
fileContainer,
|
|
1634
1943
|
fileDiff: item.item.fileDiff,
|
|
1635
1944
|
forceRender,
|
|
1636
|
-
lineAnnotations: item.item.annotations
|
|
1945
|
+
lineAnnotations: item.item.annotations ?? []
|
|
1637
1946
|
});
|
|
1638
1947
|
else return item.instance.render({
|
|
1639
1948
|
deferManagers: true,
|
|
1640
1949
|
fileContainer,
|
|
1641
1950
|
file: item.item.file,
|
|
1642
1951
|
forceRender,
|
|
1643
|
-
lineAnnotations: item.item.annotations
|
|
1952
|
+
lineAnnotations: item.item.annotations ?? []
|
|
1644
1953
|
});
|
|
1645
1954
|
}
|
|
1646
1955
|
/**
|
|
@@ -1659,7 +1968,7 @@ function syncRenderedItemOrder(container, element, prevElement) {
|
|
|
1659
1968
|
function hasAnnotations(item) {
|
|
1660
1969
|
return (item.annotations?.length ?? 0) > 0;
|
|
1661
1970
|
}
|
|
1662
|
-
function
|
|
1971
|
+
function getSlotItems(renderedItems, { hasHeaderRenderers, hasAnnotationRenderer, hasGutterRenderer }) {
|
|
1663
1972
|
if (renderedItems.length === 0) return;
|
|
1664
1973
|
if (hasHeaderRenderers || hasGutterRenderer) return renderedItems;
|
|
1665
1974
|
if (!hasAnnotationRenderer) return;
|
|
@@ -1667,17 +1976,7 @@ function getSlotSnapshot(renderedItems, { hasHeaderRenderers, hasAnnotationRende
|
|
|
1667
1976
|
for (const renderedItem of renderedItems) if (hasAnnotations(renderedItem.item)) slotSnapshot.push(renderedItem);
|
|
1668
1977
|
return slotSnapshot.length > 0 ? slotSnapshot : void 0;
|
|
1669
1978
|
}
|
|
1670
|
-
function areSlotSnapshotsEqual(previous, next) {
|
|
1671
|
-
if (previous == null || next == null) return previous === next;
|
|
1672
|
-
if (previous.length !== next.length) return false;
|
|
1673
|
-
for (let index = 0; index < previous.length; index++) {
|
|
1674
|
-
const previousItem = previous[index];
|
|
1675
|
-
const nextItem = next[index];
|
|
1676
|
-
if (previousItem == null || nextItem == null || previousItem.id !== nextItem.id || previousItem.type !== nextItem.type || previousItem.element !== nextItem.element || previousItem.version !== nextItem.version) return false;
|
|
1677
|
-
}
|
|
1678
|
-
return true;
|
|
1679
|
-
}
|
|
1680
|
-
|
|
1681
1979
|
//#endregion
|
|
1682
|
-
export { CodeView };
|
|
1980
|
+
export { CODE_VIEW_DIFF_OPTION_KEYS, CODE_VIEW_FILE_OPTION_KEYS, CodeView };
|
|
1981
|
+
|
|
1683
1982
|
//# sourceMappingURL=CodeView.js.map
|