@pierre/diffs 1.1.0-beta.1 → 1.1.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/dist/components/AdvancedVirtualizedFileDiff.d.ts +40 -0
- package/dist/components/AdvancedVirtualizedFileDiff.d.ts.map +1 -0
- package/dist/components/AdvancedVirtualizedFileDiff.js +145 -0
- package/dist/components/AdvancedVirtualizedFileDiff.js.map +1 -0
- package/dist/components/AdvancedVirtualizer.d.ts +38 -0
- package/dist/components/AdvancedVirtualizer.d.ts.map +1 -0
- package/dist/components/AdvancedVirtualizer.js +201 -0
- package/dist/components/AdvancedVirtualizer.js.map +1 -0
- package/dist/components/File.d.ts +60 -29
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +226 -26
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +44 -12
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +510 -71
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/FileStream.d.ts +5 -0
- package/dist/components/FileStream.d.ts.map +1 -1
- package/dist/components/FileStream.js +66 -8
- package/dist/components/FileStream.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +33 -0
- package/dist/components/VirtualizedFile.d.ts.map +1 -0
- package/dist/components/VirtualizedFile.js +227 -0
- package/dist/components/VirtualizedFile.js.map +1 -0
- package/dist/components/VirtualizedFileDiff.d.ts +39 -0
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -0
- package/dist/components/VirtualizedFileDiff.js +316 -0
- package/dist/components/VirtualizedFileDiff.js.map +1 -0
- package/dist/components/Virtualizer.d.ts +63 -0
- package/dist/components/Virtualizer.d.ts.map +1 -0
- package/dist/components/Virtualizer.js +369 -0
- package/dist/components/Virtualizer.js.map +1 -0
- package/dist/components/VirtulizerDevelopment.d.ts +14 -0
- package/dist/components/VirtulizerDevelopment.d.ts.map +1 -0
- package/dist/components/web-components.d.ts +1 -1
- package/dist/components/web-components.d.ts.map +1 -1
- package/dist/constants.d.ts +6 -8
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +16 -7
- package/dist/constants.js.map +1 -1
- package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
- package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/constants.d.ts +3 -1
- package/dist/highlighter/languages/constants.d.ts.map +1 -1
- package/dist/highlighter/languages/constants.js +2 -1
- package/dist/highlighter/languages/constants.js.map +1 -1
- package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +1 -1
- package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
- package/dist/highlighter/languages/registerCustomLanguage.d.ts +19 -0
- package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -0
- package/dist/highlighter/languages/registerCustomLanguage.js +21 -0
- package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -0
- package/dist/highlighter/languages/resolveLanguage.d.ts +1 -1
- package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/resolveLanguage.js +4 -3
- package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
- package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
- package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
- package/dist/highlighter/shared_highlighter.js.map +1 -1
- package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
- package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/constants.d.ts.map +1 -1
- package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
- package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
- package/dist/index.d.ts +17 -12
- package/dist/index.js +14 -9
- package/dist/managers/LineSelectionManager.d.ts +14 -15
- package/dist/managers/LineSelectionManager.d.ts.map +1 -1
- package/dist/managers/LineSelectionManager.js +60 -71
- package/dist/managers/LineSelectionManager.js.map +1 -1
- package/dist/managers/MouseEventManager.d.ts +13 -6
- package/dist/managers/MouseEventManager.d.ts.map +1 -1
- package/dist/managers/MouseEventManager.js +161 -47
- package/dist/managers/MouseEventManager.js.map +1 -1
- package/dist/managers/ResizeManager.d.ts +6 -1
- package/dist/managers/ResizeManager.d.ts.map +1 -1
- package/dist/managers/ResizeManager.js +114 -64
- package/dist/managers/ResizeManager.js.map +1 -1
- package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
- package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
- package/dist/react/File.d.ts +1 -0
- package/dist/react/File.d.ts.map +1 -1
- package/dist/react/File.js +2 -1
- 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 +2 -1
- package/dist/react/FileDiff.js.map +1 -1
- package/dist/react/MultiFileDiff.d.ts +1 -0
- package/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/dist/react/MultiFileDiff.js +2 -1
- 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 +3 -2
- package/dist/react/PatchDiff.js.map +1 -1
- package/dist/react/Virtualizer.d.ts +25 -0
- package/dist/react/Virtualizer.d.ts.map +1 -0
- package/dist/react/Virtualizer.js +38 -0
- package/dist/react/Virtualizer.js.map +1 -0
- package/dist/react/WorkerPoolContext.d.ts.map +1 -1
- package/dist/react/WorkerPoolContext.js +1 -1
- package/dist/react/WorkerPoolContext.js.map +1 -1
- package/dist/react/constants.d.ts.map +1 -1
- package/dist/react/index.d.ts +3 -2
- package/dist/react/index.js +2 -1
- package/dist/react/jsx.d.ts.map +1 -1
- package/dist/react/types.d.ts +5 -3
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.d.ts +5 -5
- package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/dist/react/utils/renderFileChildren.d.ts +5 -5
- package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
- package/dist/react/utils/templateRender.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.d.ts +5 -3
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +6 -2
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/react/utils/useFileInstance.d.ts +5 -3
- package/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileInstance.js +6 -2
- 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.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +15 -10
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +249 -140
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +12 -5
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +90 -31
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/shiki-stream/stream.d.ts +2 -2
- package/dist/shiki-stream/stream.d.ts.map +1 -1
- package/dist/shiki-stream/stream.js.map +1 -1
- package/dist/shiki-stream/tokenizer.d.ts +2 -2
- package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
- package/dist/shiki-stream/tokenizer.js.map +1 -1
- package/dist/shiki-stream/types.d.ts +18 -18
- package/dist/shiki-stream/types.d.ts.map +1 -1
- package/dist/sprite.d.ts +1 -1
- package/dist/sprite.d.ts.map +1 -1
- package/dist/ssr/FileDiffReact.d.ts.map +1 -1
- package/dist/ssr/FileDiffReact.js +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/ssr/preloadDiffs.d.ts.map +1 -1
- package/dist/ssr/preloadFile.d.ts.map +1 -1
- package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
- package/dist/ssr/preloadPatchFile.js.map +1 -1
- package/dist/ssr/renderHTML.d.ts.map +1 -1
- package/dist/style.js +1 -1
- package/dist/style.js.map +1 -1
- package/dist/types.d.ts +198 -165
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
- package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
- package/dist/utils/areFilesEqual.d.ts.map +1 -1
- package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
- package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
- package/dist/utils/areObjectsEqual.d.ts.map +1 -1
- package/dist/utils/areOptionsEqual.d.ts +1 -1
- package/dist/utils/areOptionsEqual.d.ts.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/areSelectionsEqual.d.ts.map +1 -1
- package/dist/utils/areThemesEqual.d.ts.map +1 -1
- package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
- package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
- package/dist/utils/cleanLastNewline.d.ts.map +1 -1
- package/dist/utils/createAnnotationElement.d.ts.map +1 -1
- package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
- package/dist/utils/createContentColumn.d.ts +7 -0
- package/dist/utils/createContentColumn.d.ts.map +1 -0
- package/dist/utils/createContentColumn.js +17 -0
- package/dist/utils/createContentColumn.js.map +1 -0
- package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
- package/dist/utils/createEmptyRowBuffer.js +2 -1
- package/dist/utils/createEmptyRowBuffer.js.map +1 -1
- package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
- package/dist/utils/createHoverContentNode.d.ts.map +1 -1
- package/dist/utils/createNoNewlineElement.d.ts +2 -1
- package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
- package/dist/utils/createNoNewlineElement.js +3 -6
- package/dist/utils/createNoNewlineElement.js.map +1 -1
- package/dist/utils/createPreElement.d.ts +2 -1
- package/dist/utils/createPreElement.d.ts.map +1 -1
- package/dist/utils/createPreElement.js +4 -3
- package/dist/utils/createPreElement.js.map +1 -1
- package/dist/utils/createRowNodes.d.ts.map +1 -1
- package/dist/utils/createSeparator.d.ts.map +1 -1
- package/dist/utils/createSeparator.js +2 -2
- package/dist/utils/createSeparator.js.map +1 -1
- package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
- package/dist/utils/createSpanNodeFromToken.js.map +1 -1
- package/dist/utils/createStyleElement.d.ts.map +1 -1
- package/dist/utils/createTransformerWithState.d.ts.map +1 -1
- package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
- package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
- package/dist/utils/cssWrappers.d.ts.map +1 -1
- package/dist/utils/diffAcceptRejectHunk.d.ts +1 -1
- package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
- package/dist/utils/formatCSSVariablePrefix.d.ts +1 -1
- package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
- package/dist/utils/getFiletypeFromFileName.d.ts +2 -1
- package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
- package/dist/utils/getFiletypeFromFileName.js +14 -4
- package/dist/utils/getFiletypeFromFileName.js.map +1 -1
- package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
- package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
- package/dist/utils/getHunkSeparatorSlotName.d.ts +3 -1
- package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
- package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
- package/dist/utils/getIconForType.d.ts +1 -1
- package/dist/utils/getIconForType.d.ts.map +1 -1
- package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
- package/dist/utils/getLineEndingType.d.ts +1 -1
- package/dist/utils/getLineEndingType.d.ts.map +1 -1
- package/dist/utils/getLineNodes.d.ts.map +1 -1
- package/dist/utils/getOrCreateCodeNode.d.ts +4 -2
- package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
- package/dist/utils/getOrCreateCodeNode.js +9 -6
- package/dist/utils/getOrCreateCodeNode.js.map +1 -1
- package/dist/utils/getSingularPatch.d.ts.map +1 -1
- package/dist/utils/getThemes.d.ts.map +1 -1
- package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
- package/dist/utils/hast_utils.d.ts +6 -3
- package/dist/utils/hast_utils.d.ts.map +1 -1
- package/dist/utils/hast_utils.js +28 -4
- package/dist/utils/hast_utils.js.map +1 -1
- package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
- package/dist/utils/isWorkerContext.d.ts.map +1 -1
- package/dist/utils/iterateOverDiff.d.ts +28 -13
- package/dist/utils/iterateOverDiff.d.ts.map +1 -1
- package/dist/utils/iterateOverDiff.js +101 -60
- package/dist/utils/iterateOverDiff.js.map +1 -1
- package/dist/utils/iterateOverFile.d.ts +50 -0
- package/dist/utils/iterateOverFile.d.ts.map +1 -0
- package/dist/utils/iterateOverFile.js +49 -0
- package/dist/utils/iterateOverFile.js.map +1 -0
- package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
- package/dist/utils/parseDiffFromFile.d.ts +6 -6
- package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
- package/dist/utils/parseDiffFromFile.js +3 -2
- package/dist/utils/parseDiffFromFile.js.map +1 -1
- package/dist/utils/parseLineType.d.ts +1 -1
- package/dist/utils/parseLineType.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.d.ts +12 -10
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +20 -11
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
- package/dist/utils/processLine.d.ts.map +1 -1
- package/dist/utils/processLine.js +7 -24
- package/dist/utils/processLine.js.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.d.ts +4 -3
- package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.js +18 -16
- package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
- package/dist/utils/renderFileWithHighlighter.d.ts +7 -2
- package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderFileWithHighlighter.js +30 -4
- package/dist/utils/renderFileWithHighlighter.js.map +1 -1
- package/dist/utils/resolveVirtualFileMetrics.d.ts +7 -0
- package/dist/utils/resolveVirtualFileMetrics.d.ts.map +1 -0
- package/dist/utils/resolveVirtualFileMetrics.js +25 -0
- package/dist/utils/resolveVirtualFileMetrics.js.map +1 -0
- package/dist/utils/setLanguageOverride.d.ts +2 -1
- package/dist/utils/setLanguageOverride.d.ts.map +1 -1
- package/dist/utils/setLanguageOverride.js.map +1 -1
- package/dist/utils/setWrapperNodeProps.d.ts +1 -0
- package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
- package/dist/utils/setWrapperNodeProps.js +19 -12
- package/dist/utils/setWrapperNodeProps.js.map +1 -1
- package/dist/utils/splitFileContents.d.ts +12 -0
- package/dist/utils/splitFileContents.d.ts.map +1 -0
- package/dist/utils/splitFileContents.js +17 -0
- package/dist/utils/splitFileContents.js.map +1 -0
- package/dist/utils/trimPatchContext.d.ts +11 -0
- package/dist/utils/trimPatchContext.d.ts.map +1 -0
- package/dist/utils/trimPatchContext.js +99 -0
- package/dist/utils/trimPatchContext.js.map +1 -0
- package/dist/worker/WorkerPoolManager.d.ts +3 -3
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +39 -26
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
- package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
- package/dist/worker/types.d.ts +26 -26
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +352 -154
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +222 -113
- package/dist/worker/worker.js.map +1 -1
- package/package.json +52 -53
|
@@ -11672,7 +11672,7 @@ const SPLIT_WITH_NEWLINES = /(?<=\n)/;
|
|
|
11672
11672
|
const FILENAME_HEADER_REGEX = /^(---|\+\+\+)\s+([^\t\r\n]+)/;
|
|
11673
11673
|
const FILENAME_HEADER_REGEX_GIT = /^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/;
|
|
11674
11674
|
const ALTERNATE_FILE_NAMES_GIT = /^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/;
|
|
11675
|
-
const
|
|
11675
|
+
const INDEX_LINE_METADATA = /^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i;
|
|
11676
11676
|
const HEADER_METADATA_SLOT_ID = "header-metadata";
|
|
11677
11677
|
const DEFAULT_THEMES = {
|
|
11678
11678
|
dark: "pierre-dark",
|
|
@@ -11680,20 +11680,30 @@ const DEFAULT_THEMES = {
|
|
|
11680
11680
|
};
|
|
11681
11681
|
const UNSAFE_CSS_ATTRIBUTE = "data-unsafe-css";
|
|
11682
11682
|
const CORE_CSS_ATTRIBUTE = "data-core-css";
|
|
11683
|
-
const
|
|
11684
|
-
const
|
|
11685
|
-
|
|
11686
|
-
|
|
11687
|
-
|
|
11683
|
+
const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;
|
|
11684
|
+
const DEFAULT_VIRTUAL_FILE_METRICS = {
|
|
11685
|
+
hunkLineCount: 50,
|
|
11686
|
+
lineHeight: 20,
|
|
11687
|
+
diffHeaderHeight: 44,
|
|
11688
|
+
hunkSeparatorHeight: 32,
|
|
11689
|
+
fileGap: 8
|
|
11690
|
+
};
|
|
11688
11691
|
const DEFAULT_EXPANDED_REGION = Object.freeze({
|
|
11689
11692
|
fromStart: 0,
|
|
11690
11693
|
fromEnd: 0
|
|
11691
11694
|
});
|
|
11695
|
+
const DEFAULT_RENDER_RANGE = {
|
|
11696
|
+
startingLine: 0,
|
|
11697
|
+
totalLines: Infinity,
|
|
11698
|
+
bufferBefore: 0,
|
|
11699
|
+
bufferAfter: 0
|
|
11700
|
+
};
|
|
11692
11701
|
|
|
11693
11702
|
//#endregion
|
|
11694
11703
|
//#region src/highlighter/languages/constants.ts
|
|
11695
11704
|
const ResolvedLanguages = new Map();
|
|
11696
11705
|
const ResolvingLanguages = new Map();
|
|
11706
|
+
const RegisteredCustomLanguages = new Map();
|
|
11697
11707
|
const AttachedLanguages = new Set();
|
|
11698
11708
|
|
|
11699
11709
|
//#endregion
|
|
@@ -11744,7 +11754,7 @@ function attachResolvedThemes(themes, highlighter$1) {
|
|
|
11744
11754
|
}
|
|
11745
11755
|
|
|
11746
11756
|
//#endregion
|
|
11747
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
11757
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/diff/base.js
|
|
11748
11758
|
var Diff = class {
|
|
11749
11759
|
diff(oldStr, newStr, options = {}) {
|
|
11750
11760
|
let callback;
|
|
@@ -11968,7 +11978,7 @@ var Diff = class {
|
|
|
11968
11978
|
};
|
|
11969
11979
|
|
|
11970
11980
|
//#endregion
|
|
11971
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
11981
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/diff/character.js
|
|
11972
11982
|
var CharacterDiff = class extends Diff {};
|
|
11973
11983
|
const characterDiff = new CharacterDiff();
|
|
11974
11984
|
function diffChars(oldStr, newStr, options) {
|
|
@@ -11976,7 +11986,7 @@ function diffChars(oldStr, newStr, options) {
|
|
|
11976
11986
|
}
|
|
11977
11987
|
|
|
11978
11988
|
//#endregion
|
|
11979
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
11989
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/util/string.js
|
|
11980
11990
|
function longestCommonPrefix(str1, str2) {
|
|
11981
11991
|
let i$2;
|
|
11982
11992
|
for (i$2 = 0; i$2 < str1.length && i$2 < str2.length; i$2++) {
|
|
@@ -12085,8 +12095,8 @@ function leadingWs(string) {
|
|
|
12085
12095
|
}
|
|
12086
12096
|
|
|
12087
12097
|
//#endregion
|
|
12088
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12089
|
-
const extendedWordChars = "a-zA-Z0-9_\\u{C0}-\\u{
|
|
12098
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/diff/word.js
|
|
12099
|
+
const extendedWordChars = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";
|
|
12090
12100
|
const tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`, "ug");
|
|
12091
12101
|
var WordDiff = class extends Diff {
|
|
12092
12102
|
equals(left, right, options) {
|
|
@@ -12103,7 +12113,15 @@ var WordDiff = class extends Diff {
|
|
|
12103
12113
|
if (segmenter.resolvedOptions().granularity != "word") {
|
|
12104
12114
|
throw new Error("The segmenter passed must have a granularity of \"word\"");
|
|
12105
12115
|
}
|
|
12106
|
-
parts =
|
|
12116
|
+
parts = [];
|
|
12117
|
+
for (const segmentObj of Array.from(segmenter.segment(value))) {
|
|
12118
|
+
const segment = segmentObj.segment;
|
|
12119
|
+
if (parts.length && /\s/.test(parts[parts.length - 1]) && /\s/.test(segment)) {
|
|
12120
|
+
parts[parts.length - 1] += segment;
|
|
12121
|
+
} else {
|
|
12122
|
+
parts.push(segment);
|
|
12123
|
+
}
|
|
12124
|
+
}
|
|
12107
12125
|
} else {
|
|
12108
12126
|
parts = value.match(tokenizeIncludingWhitespace) || [];
|
|
12109
12127
|
}
|
|
@@ -12231,7 +12249,7 @@ function diffWordsWithSpace(oldStr, newStr, options) {
|
|
|
12231
12249
|
}
|
|
12232
12250
|
|
|
12233
12251
|
//#endregion
|
|
12234
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12252
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/util/params.js
|
|
12235
12253
|
function generateOptions(options, defaults) {
|
|
12236
12254
|
if (typeof options === "function") {
|
|
12237
12255
|
defaults.callback = options;
|
|
@@ -12247,7 +12265,7 @@ function generateOptions(options, defaults) {
|
|
|
12247
12265
|
}
|
|
12248
12266
|
|
|
12249
12267
|
//#endregion
|
|
12250
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12268
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/diff/line.js
|
|
12251
12269
|
var LineDiff = class extends Diff {
|
|
12252
12270
|
constructor() {
|
|
12253
12271
|
super(...arguments);
|
|
@@ -12300,7 +12318,7 @@ function tokenize(value, options) {
|
|
|
12300
12318
|
}
|
|
12301
12319
|
|
|
12302
12320
|
//#endregion
|
|
12303
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12321
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/diff/sentence.js
|
|
12304
12322
|
function isSentenceEndPunct(char) {
|
|
12305
12323
|
return char == "." || char == "!" || char == "?";
|
|
12306
12324
|
}
|
|
@@ -12333,7 +12351,7 @@ function diffSentences(oldStr, newStr, options) {
|
|
|
12333
12351
|
}
|
|
12334
12352
|
|
|
12335
12353
|
//#endregion
|
|
12336
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12354
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/diff/css.js
|
|
12337
12355
|
var CssDiff = class extends Diff {
|
|
12338
12356
|
tokenize(value) {
|
|
12339
12357
|
return value.split(/([{}:;,]|\s+)/);
|
|
@@ -12345,7 +12363,7 @@ function diffCss(oldStr, newStr, options) {
|
|
|
12345
12363
|
}
|
|
12346
12364
|
|
|
12347
12365
|
//#endregion
|
|
12348
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12366
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/diff/json.js
|
|
12349
12367
|
var JsonDiff = class extends Diff {
|
|
12350
12368
|
constructor() {
|
|
12351
12369
|
super(...arguments);
|
|
@@ -12419,7 +12437,7 @@ function canonicalize(obj, stack, replacementStack, replacer, key$1) {
|
|
|
12419
12437
|
}
|
|
12420
12438
|
|
|
12421
12439
|
//#endregion
|
|
12422
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12440
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/diff/array.js
|
|
12423
12441
|
var ArrayDiff = class extends Diff {
|
|
12424
12442
|
tokenize(value) {
|
|
12425
12443
|
return value.slice();
|
|
@@ -12437,7 +12455,7 @@ function diffArrays(oldArr, newArr, options) {
|
|
|
12437
12455
|
}
|
|
12438
12456
|
|
|
12439
12457
|
//#endregion
|
|
12440
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12458
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/patch/line-endings.js
|
|
12441
12459
|
function unixToWin(patch) {
|
|
12442
12460
|
if (Array.isArray(patch)) {
|
|
12443
12461
|
return patch.map((p$1) => unixToWin(p$1));
|
|
@@ -12477,7 +12495,7 @@ function isWin(patch) {
|
|
|
12477
12495
|
}
|
|
12478
12496
|
|
|
12479
12497
|
//#endregion
|
|
12480
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12498
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/patch/parse.js
|
|
12481
12499
|
/**
|
|
12482
12500
|
* Parses a patch into structured data, in the same structure returned by `structuredPatch`.
|
|
12483
12501
|
*
|
|
@@ -12494,9 +12512,9 @@ function parsePatch(uniDiff) {
|
|
|
12494
12512
|
if (/^(---|\+\+\+|@@)\s/.test(line)) {
|
|
12495
12513
|
break;
|
|
12496
12514
|
}
|
|
12497
|
-
const
|
|
12498
|
-
if (
|
|
12499
|
-
index.index =
|
|
12515
|
+
const headerMatch = /^(?:Index:|diff(?: -r \w+)+)\s+/.exec(line);
|
|
12516
|
+
if (headerMatch) {
|
|
12517
|
+
index.index = line.substring(headerMatch[0].length).trim();
|
|
12500
12518
|
}
|
|
12501
12519
|
i$2++;
|
|
12502
12520
|
}
|
|
@@ -12517,14 +12535,14 @@ function parsePatch(uniDiff) {
|
|
|
12517
12535
|
}
|
|
12518
12536
|
}
|
|
12519
12537
|
function parseFileHeader(index) {
|
|
12520
|
-
const
|
|
12521
|
-
if (
|
|
12522
|
-
const data =
|
|
12538
|
+
const fileHeaderMatch = /^(---|\+\+\+)\s+/.exec(diffstr[i$2]);
|
|
12539
|
+
if (fileHeaderMatch) {
|
|
12540
|
+
const prefix = fileHeaderMatch[1], data = diffstr[i$2].substring(3).trim().split(" ", 2), header = (data[1] || "").trim();
|
|
12523
12541
|
let fileName = data[0].replace(/\\\\/g, "\\");
|
|
12524
|
-
if (
|
|
12542
|
+
if (fileName.startsWith("\"") && fileName.endsWith("\"")) {
|
|
12525
12543
|
fileName = fileName.substr(1, fileName.length - 2);
|
|
12526
12544
|
}
|
|
12527
|
-
if (
|
|
12545
|
+
if (prefix === "---") {
|
|
12528
12546
|
index.oldFileName = fileName;
|
|
12529
12547
|
index.oldHeader = header;
|
|
12530
12548
|
} else {
|
|
@@ -12588,7 +12606,7 @@ function parsePatch(uniDiff) {
|
|
|
12588
12606
|
}
|
|
12589
12607
|
|
|
12590
12608
|
//#endregion
|
|
12591
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12609
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/util/distance-iterator.js
|
|
12592
12610
|
function distance_iterator_default(start, minLine, maxLine) {
|
|
12593
12611
|
let wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1;
|
|
12594
12612
|
return function iterator() {
|
|
@@ -12618,7 +12636,7 @@ function distance_iterator_default(start, minLine, maxLine) {
|
|
|
12618
12636
|
}
|
|
12619
12637
|
|
|
12620
12638
|
//#endregion
|
|
12621
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12639
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/patch/apply.js
|
|
12622
12640
|
/**
|
|
12623
12641
|
* attempts to apply a unified diff patch.
|
|
12624
12642
|
*
|
|
@@ -12837,7 +12855,7 @@ function applyPatches(uniDiff, options) {
|
|
|
12837
12855
|
}
|
|
12838
12856
|
|
|
12839
12857
|
//#endregion
|
|
12840
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12858
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/patch/reverse.js
|
|
12841
12859
|
function reversePatch(structuredPatch$1) {
|
|
12842
12860
|
if (Array.isArray(structuredPatch$1)) {
|
|
12843
12861
|
return structuredPatch$1.map((patch) => reversePatch(patch)).reverse();
|
|
@@ -12868,7 +12886,22 @@ function reversePatch(structuredPatch$1) {
|
|
|
12868
12886
|
}
|
|
12869
12887
|
|
|
12870
12888
|
//#endregion
|
|
12871
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
12889
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/patch/create.js
|
|
12890
|
+
const INCLUDE_HEADERS = {
|
|
12891
|
+
includeIndex: true,
|
|
12892
|
+
includeUnderline: true,
|
|
12893
|
+
includeFileHeaders: true
|
|
12894
|
+
};
|
|
12895
|
+
const FILE_HEADERS_ONLY = {
|
|
12896
|
+
includeIndex: false,
|
|
12897
|
+
includeUnderline: false,
|
|
12898
|
+
includeFileHeaders: true
|
|
12899
|
+
};
|
|
12900
|
+
const OMIT_HEADERS = {
|
|
12901
|
+
includeIndex: false,
|
|
12902
|
+
includeUnderline: false,
|
|
12903
|
+
includeFileHeaders: false
|
|
12904
|
+
};
|
|
12872
12905
|
function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
|
|
12873
12906
|
let optionsObj;
|
|
12874
12907
|
if (!options) {
|
|
@@ -12982,17 +13015,27 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne
|
|
|
12982
13015
|
* creates a unified diff patch.
|
|
12983
13016
|
* @param patch either a single structured patch object (as returned by `structuredPatch`) or an array of them (as returned by `parsePatch`)
|
|
12984
13017
|
*/
|
|
12985
|
-
function formatPatch(patch) {
|
|
13018
|
+
function formatPatch(patch, headerOptions) {
|
|
13019
|
+
if (!headerOptions) {
|
|
13020
|
+
headerOptions = INCLUDE_HEADERS;
|
|
13021
|
+
}
|
|
12986
13022
|
if (Array.isArray(patch)) {
|
|
12987
|
-
|
|
13023
|
+
if (patch.length > 1 && !headerOptions.includeFileHeaders) {
|
|
13024
|
+
throw new Error("Cannot omit file headers on a multi-file patch. " + "(The result would be unparseable; how would a tool trying to apply " + "the patch know which changes are to which file?)");
|
|
13025
|
+
}
|
|
13026
|
+
return patch.map((p$1) => formatPatch(p$1, headerOptions)).join("\n");
|
|
12988
13027
|
}
|
|
12989
13028
|
const ret = [];
|
|
12990
|
-
if (patch.oldFileName == patch.newFileName) {
|
|
13029
|
+
if (headerOptions.includeIndex && patch.oldFileName == patch.newFileName) {
|
|
12991
13030
|
ret.push("Index: " + patch.oldFileName);
|
|
12992
13031
|
}
|
|
12993
|
-
|
|
12994
|
-
|
|
12995
|
-
|
|
13032
|
+
if (headerOptions.includeUnderline) {
|
|
13033
|
+
ret.push("===================================================================");
|
|
13034
|
+
}
|
|
13035
|
+
if (headerOptions.includeFileHeaders) {
|
|
13036
|
+
ret.push("--- " + patch.oldFileName + (typeof patch.oldHeader === "undefined" ? "" : " " + patch.oldHeader));
|
|
13037
|
+
ret.push("+++ " + patch.newFileName + (typeof patch.newHeader === "undefined" ? "" : " " + patch.newHeader));
|
|
13038
|
+
}
|
|
12996
13039
|
for (let i$2 = 0; i$2 < patch.hunks.length; i$2++) {
|
|
12997
13040
|
const hunk = patch.hunks[i$2];
|
|
12998
13041
|
if (hunk.oldLines === 0) {
|
|
@@ -13017,14 +13060,14 @@ function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader
|
|
|
13017
13060
|
if (!patchObj) {
|
|
13018
13061
|
return;
|
|
13019
13062
|
}
|
|
13020
|
-
return formatPatch(patchObj);
|
|
13063
|
+
return formatPatch(patchObj, options === null || options === void 0 ? void 0 : options.headerOptions);
|
|
13021
13064
|
} else {
|
|
13022
13065
|
const { callback } = options;
|
|
13023
13066
|
structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: (patchObj) => {
|
|
13024
13067
|
if (!patchObj) {
|
|
13025
13068
|
callback(undefined);
|
|
13026
13069
|
} else {
|
|
13027
|
-
callback(formatPatch(patchObj));
|
|
13070
|
+
callback(formatPatch(patchObj, options.headerOptions));
|
|
13028
13071
|
}
|
|
13029
13072
|
} }));
|
|
13030
13073
|
}
|
|
@@ -13047,7 +13090,7 @@ function splitLines(text$1) {
|
|
|
13047
13090
|
}
|
|
13048
13091
|
|
|
13049
13092
|
//#endregion
|
|
13050
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
13093
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/convert/dmp.js
|
|
13051
13094
|
/**
|
|
13052
13095
|
* converts a list of change objects to the format returned by Google's [diff-match-patch](https://github.com/google/diff-match-patch) library
|
|
13053
13096
|
*/
|
|
@@ -13069,7 +13112,7 @@ function convertChangesToDMP(changes) {
|
|
|
13069
13112
|
}
|
|
13070
13113
|
|
|
13071
13114
|
//#endregion
|
|
13072
|
-
//#region ../../node_modules/.bun/diff@8.0.
|
|
13115
|
+
//#region ../../node_modules/.bun/diff@8.0.3/node_modules/diff/libesm/convert/xml.js
|
|
13073
13116
|
/**
|
|
13074
13117
|
* converts a list of change objects to a serialized XML format
|
|
13075
13118
|
*/
|
|
@@ -13822,12 +13865,36 @@ function findCodeElement(nodes) {
|
|
|
13822
13865
|
}
|
|
13823
13866
|
return undefined;
|
|
13824
13867
|
}
|
|
13825
|
-
function
|
|
13868
|
+
function createGutterWrapper(children) {
|
|
13869
|
+
return createHastElement({
|
|
13870
|
+
tagName: "div",
|
|
13871
|
+
properties: { "data-gutter": "" },
|
|
13872
|
+
children
|
|
13873
|
+
});
|
|
13874
|
+
}
|
|
13875
|
+
function createGutterItem(lineType, lineNumber, lineIndex) {
|
|
13826
13876
|
return createHastElement({
|
|
13827
13877
|
tagName: "div",
|
|
13828
13878
|
properties: {
|
|
13829
|
-
"data-
|
|
13830
|
-
|
|
13879
|
+
"data-line-type": lineType,
|
|
13880
|
+
"data-column-number": lineNumber,
|
|
13881
|
+
"data-line-index": lineIndex
|
|
13882
|
+
},
|
|
13883
|
+
children: lineNumber != null ? [createHastElement({
|
|
13884
|
+
tagName: "span",
|
|
13885
|
+
properties: { "data-line-number-content": "" },
|
|
13886
|
+
children: [createTextNodeElement(`${lineNumber}`)]
|
|
13887
|
+
})] : undefined
|
|
13888
|
+
});
|
|
13889
|
+
}
|
|
13890
|
+
function createGutterGap(type, bufferType, size) {
|
|
13891
|
+
return createHastElement({
|
|
13892
|
+
tagName: "div",
|
|
13893
|
+
properties: {
|
|
13894
|
+
"data-gutter-buffer": bufferType,
|
|
13895
|
+
"data-buffer-size": size,
|
|
13896
|
+
"data-line-type": bufferType === "annotation" ? undefined : type,
|
|
13897
|
+
style: bufferType === "annotation" ? `grid-row: span ${size};` : `grid-row: span ${size};min-height:calc(${size} * 1lh);`
|
|
13831
13898
|
}
|
|
13832
13899
|
});
|
|
13833
13900
|
}
|
|
@@ -13845,33 +13912,15 @@ function processLine(node, line, state) {
|
|
|
13845
13912
|
});
|
|
13846
13913
|
throw new Error(errorMessage);
|
|
13847
13914
|
}
|
|
13848
|
-
node.tagName = "
|
|
13849
|
-
node.properties["data-
|
|
13915
|
+
node.tagName = "div";
|
|
13916
|
+
node.properties["data-line"] = lineInfo.lineNumber;
|
|
13917
|
+
node.properties["data-alt-line"] = lineInfo.altLineNumber;
|
|
13918
|
+
node.properties["data-line-type"] = lineInfo.type;
|
|
13919
|
+
node.properties["data-line-index"] = lineInfo.lineIndex;
|
|
13850
13920
|
if (node.children.length === 0) {
|
|
13851
13921
|
node.children.push(createTextNodeElement("\n"));
|
|
13852
13922
|
}
|
|
13853
|
-
|
|
13854
|
-
tagName: "span",
|
|
13855
|
-
children: [createHastElement({
|
|
13856
|
-
tagName: "span",
|
|
13857
|
-
children: [{
|
|
13858
|
-
type: "text",
|
|
13859
|
-
value: `${lineInfo.lineNumber}`
|
|
13860
|
-
}],
|
|
13861
|
-
properties: { "data-line-number-content": "" }
|
|
13862
|
-
})],
|
|
13863
|
-
properties: { "data-column-number": "" }
|
|
13864
|
-
}), node];
|
|
13865
|
-
return createHastElement({
|
|
13866
|
-
tagName: "div",
|
|
13867
|
-
children,
|
|
13868
|
-
properties: {
|
|
13869
|
-
"data-line": lineInfo.lineNumber,
|
|
13870
|
-
"data-alt-line": lineInfo.altLineNumber,
|
|
13871
|
-
"data-line-type": lineInfo.type,
|
|
13872
|
-
"data-line-index": lineInfo.lineIndex
|
|
13873
|
-
}
|
|
13874
|
-
});
|
|
13923
|
+
return node;
|
|
13875
13924
|
}
|
|
13876
13925
|
|
|
13877
13926
|
//#endregion
|
|
@@ -13948,6 +13997,7 @@ function formatCSSVariablePrefix(type) {
|
|
|
13948
13997
|
|
|
13949
13998
|
//#endregion
|
|
13950
13999
|
//#region src/utils/getFiletypeFromFileName.ts
|
|
14000
|
+
const CUSTOM_EXTENSION_TO_FILE_FORMAT = new Map();
|
|
13951
14001
|
const EXTENSION_TO_FILE_FORMAT = {
|
|
13952
14002
|
"1c": "1c",
|
|
13953
14003
|
abap: "abap",
|
|
@@ -14278,19 +14328,33 @@ const EXTENSION_TO_FILE_FORMAT = {
|
|
|
14278
14328
|
sty: "tex"
|
|
14279
14329
|
};
|
|
14280
14330
|
function getFiletypeFromFileName(fileName) {
|
|
14331
|
+
if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(fileName)) {
|
|
14332
|
+
return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(fileName) ?? "text";
|
|
14333
|
+
}
|
|
14281
14334
|
if (EXTENSION_TO_FILE_FORMAT[fileName] != null) {
|
|
14282
14335
|
return EXTENSION_TO_FILE_FORMAT[fileName];
|
|
14283
14336
|
}
|
|
14284
14337
|
const compoundMatch = fileName.match(/\.([^/\\]+\.[^/\\]+)$/);
|
|
14285
|
-
if (compoundMatch != null
|
|
14286
|
-
|
|
14338
|
+
if (compoundMatch != null) {
|
|
14339
|
+
if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(compoundMatch[1])) {
|
|
14340
|
+
return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(compoundMatch[1]) ?? "text";
|
|
14341
|
+
}
|
|
14342
|
+
if (EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] != null) {
|
|
14343
|
+
return EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] ?? "text";
|
|
14344
|
+
}
|
|
14345
|
+
}
|
|
14346
|
+
const simpleMatch = fileName.match(/\.([^.]+)$/)?.[1] ?? "";
|
|
14347
|
+
if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(simpleMatch)) {
|
|
14348
|
+
return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(simpleMatch) ?? "text";
|
|
14287
14349
|
}
|
|
14288
|
-
|
|
14289
|
-
return EXTENSION_TO_FILE_FORMAT[simpleMatch?.[1] ?? ""] ?? "text";
|
|
14350
|
+
return EXTENSION_TO_FILE_FORMAT[simpleMatch] ?? "text";
|
|
14290
14351
|
}
|
|
14291
14352
|
function extendFileFormatMap(map) {
|
|
14292
14353
|
for (const key$1 in map) {
|
|
14293
|
-
|
|
14354
|
+
const lang = map[key$1];
|
|
14355
|
+
if (lang != null) {
|
|
14356
|
+
CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key$1, lang);
|
|
14357
|
+
}
|
|
14294
14358
|
}
|
|
14295
14359
|
}
|
|
14296
14360
|
|
|
@@ -14355,7 +14419,7 @@ function getLineNodes(nodes) {
|
|
|
14355
14419
|
|
|
14356
14420
|
//#endregion
|
|
14357
14421
|
//#region src/utils/iterateOverDiff.ts
|
|
14358
|
-
function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infinity, expandedHunks, callback }) {
|
|
14422
|
+
function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infinity, expandedHunks, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, callback }) {
|
|
14359
14423
|
const state = {
|
|
14360
14424
|
finalHunk: diff.hunks.at(-1),
|
|
14361
14425
|
viewportStart: startingLine,
|
|
@@ -14436,7 +14500,7 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14436
14500
|
if (state.shouldBreak()) {
|
|
14437
14501
|
break;
|
|
14438
14502
|
}
|
|
14439
|
-
const leadingRegion = getExpandedRegion(diff.isPartial, hunk.collapsedBefore, expandedHunks, hunkIndex);
|
|
14503
|
+
const leadingRegion = getExpandedRegion(diff.isPartial, hunk.collapsedBefore, expandedHunks, hunkIndex, collapsedContextThreshold);
|
|
14440
14504
|
const trailingRegion = (() => {
|
|
14441
14505
|
if (hunk !== state.finalHunk || !hasFinalCollapsedHunk(diff)) {
|
|
14442
14506
|
return undefined;
|
|
@@ -14447,7 +14511,7 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14447
14511
|
throw new Error(`iterateOverDiff: trailing context mismatch (additions=${additionRemaining}, deletions=${deletionRemaining}) for ${diff.name}`);
|
|
14448
14512
|
}
|
|
14449
14513
|
const trailingRangeSize = Math.min(additionRemaining, deletionRemaining);
|
|
14450
|
-
return getExpandedRegion(diff.isPartial, trailingRangeSize, expandedHunks, diff.hunks.length);
|
|
14514
|
+
return getExpandedRegion(diff.isPartial, trailingRangeSize, expandedHunks, diff.hunks.length, collapsedContextThreshold);
|
|
14451
14515
|
})();
|
|
14452
14516
|
const expandedLineCount = leadingRegion.fromStart + leadingRegion.fromEnd;
|
|
14453
14517
|
function getTrailingCollapsedAfter(unifiedLineIndex$1, splitLineIndex$1) {
|
|
@@ -14482,16 +14546,21 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14482
14546
|
hunk,
|
|
14483
14547
|
collapsedBefore: 0,
|
|
14484
14548
|
collapsedAfter: 0,
|
|
14485
|
-
unifiedDeletionLineIndex: unifiedLineIndex$1 + index,
|
|
14486
|
-
unifiedAdditionLineIndex: unifiedLineIndex$1 + index,
|
|
14487
|
-
splitLineIndex: splitLineIndex$1 + index,
|
|
14488
|
-
deletionLineIndex: deletionLineIndex$1 + index,
|
|
14489
|
-
additionLineIndex: additionLineIndex$1 + index,
|
|
14490
|
-
deletionLineNumber: deletionLineNumber$1 + index,
|
|
14491
|
-
additionLineNumber: additionLineNumber$1 + index,
|
|
14492
14549
|
type: "context-expanded",
|
|
14493
|
-
|
|
14494
|
-
|
|
14550
|
+
deletionLine: {
|
|
14551
|
+
lineNumber: deletionLineNumber$1 + index,
|
|
14552
|
+
lineIndex: deletionLineIndex$1 + index,
|
|
14553
|
+
noEOFCR: false,
|
|
14554
|
+
unifiedLineIndex: unifiedLineIndex$1 + index,
|
|
14555
|
+
splitLineIndex: splitLineIndex$1 + index
|
|
14556
|
+
},
|
|
14557
|
+
additionLine: {
|
|
14558
|
+
unifiedLineIndex: unifiedLineIndex$1 + index,
|
|
14559
|
+
splitLineIndex: splitLineIndex$1 + index,
|
|
14560
|
+
lineIndex: additionLineIndex$1 + index,
|
|
14561
|
+
lineNumber: additionLineNumber$1 + index,
|
|
14562
|
+
noEOFCR: false
|
|
14563
|
+
}
|
|
14495
14564
|
})) {
|
|
14496
14565
|
break hunkIterator;
|
|
14497
14566
|
}
|
|
@@ -14514,16 +14583,21 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14514
14583
|
hunk,
|
|
14515
14584
|
collapsedBefore: getPendingCollapsed(),
|
|
14516
14585
|
collapsedAfter: 0,
|
|
14517
|
-
unifiedDeletionLineIndex: unifiedLineIndex$1 + index,
|
|
14518
|
-
unifiedAdditionLineIndex: unifiedLineIndex$1 + index,
|
|
14519
|
-
splitLineIndex: splitLineIndex$1 + index,
|
|
14520
|
-
deletionLineIndex: deletionLineIndex$1 + index,
|
|
14521
|
-
additionLineIndex: additionLineIndex$1 + index,
|
|
14522
|
-
deletionLineNumber: deletionLineNumber$1 + index,
|
|
14523
|
-
additionLineNumber: additionLineNumber$1 + index,
|
|
14524
14586
|
type: "context-expanded",
|
|
14525
|
-
|
|
14526
|
-
|
|
14587
|
+
deletionLine: {
|
|
14588
|
+
lineNumber: deletionLineNumber$1 + index,
|
|
14589
|
+
lineIndex: deletionLineIndex$1 + index,
|
|
14590
|
+
noEOFCR: false,
|
|
14591
|
+
unifiedLineIndex: unifiedLineIndex$1 + index,
|
|
14592
|
+
splitLineIndex: splitLineIndex$1 + index
|
|
14593
|
+
},
|
|
14594
|
+
additionLine: {
|
|
14595
|
+
unifiedLineIndex: unifiedLineIndex$1 + index,
|
|
14596
|
+
splitLineIndex: splitLineIndex$1 + index,
|
|
14597
|
+
lineIndex: additionLineIndex$1 + index,
|
|
14598
|
+
lineNumber: additionLineNumber$1 + index,
|
|
14599
|
+
noEOFCR: false
|
|
14600
|
+
}
|
|
14527
14601
|
})) {
|
|
14528
14602
|
break hunkIterator;
|
|
14529
14603
|
}
|
|
@@ -14561,16 +14635,21 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14561
14635
|
hunk,
|
|
14562
14636
|
collapsedBefore: getPendingCollapsed(),
|
|
14563
14637
|
collapsedAfter: getTrailingCollapsedAfter(unifiedRowIndex, splitRowIndex),
|
|
14564
|
-
unifiedDeletionLineIndex: unifiedRowIndex,
|
|
14565
|
-
unifiedAdditionLineIndex: unifiedRowIndex,
|
|
14566
|
-
splitLineIndex: splitRowIndex,
|
|
14567
|
-
deletionLineIndex: deletionLineIndex + index,
|
|
14568
|
-
additionLineIndex: additionLineIndex + index,
|
|
14569
|
-
deletionLineNumber: deletionLineNumber + index,
|
|
14570
|
-
additionLineNumber: additionLineNumber + index,
|
|
14571
14638
|
type: "context",
|
|
14572
|
-
|
|
14573
|
-
|
|
14639
|
+
deletionLine: {
|
|
14640
|
+
lineNumber: deletionLineNumber + index,
|
|
14641
|
+
lineIndex: deletionLineIndex + index,
|
|
14642
|
+
noEOFCR: isLastLine && hunk.noEOFCRDeletions,
|
|
14643
|
+
unifiedLineIndex: unifiedRowIndex,
|
|
14644
|
+
splitLineIndex: splitRowIndex
|
|
14645
|
+
},
|
|
14646
|
+
additionLine: {
|
|
14647
|
+
unifiedLineIndex: unifiedRowIndex,
|
|
14648
|
+
splitLineIndex: splitRowIndex,
|
|
14649
|
+
lineIndex: additionLineIndex + index,
|
|
14650
|
+
lineNumber: additionLineNumber + index,
|
|
14651
|
+
noEOFCR: isLastLine && hunk.noEOFCRAdditions
|
|
14652
|
+
}
|
|
14574
14653
|
})) {
|
|
14575
14654
|
break hunkIterator;
|
|
14576
14655
|
}
|
|
@@ -14648,16 +14727,21 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14648
14727
|
hunk: undefined,
|
|
14649
14728
|
collapsedBefore: 0,
|
|
14650
14729
|
collapsedAfter: isLastLine ? collapsedLines : 0,
|
|
14651
|
-
unifiedDeletionLineIndex: unifiedLineIndex + index,
|
|
14652
|
-
unifiedAdditionLineIndex: unifiedLineIndex + index,
|
|
14653
|
-
splitLineIndex: splitLineIndex + index,
|
|
14654
|
-
additionLineIndex: additionLineIndex + index,
|
|
14655
|
-
deletionLineIndex: deletionLineIndex + index,
|
|
14656
|
-
additionLineNumber: additionLineNumber + index,
|
|
14657
|
-
deletionLineNumber: deletionLineNumber + index,
|
|
14658
14730
|
type: "context-expanded",
|
|
14659
|
-
|
|
14660
|
-
|
|
14731
|
+
deletionLine: {
|
|
14732
|
+
lineNumber: deletionLineNumber + index,
|
|
14733
|
+
lineIndex: deletionLineIndex + index,
|
|
14734
|
+
noEOFCR: false,
|
|
14735
|
+
unifiedLineIndex: unifiedLineIndex + index,
|
|
14736
|
+
splitLineIndex: splitLineIndex + index
|
|
14737
|
+
},
|
|
14738
|
+
additionLine: {
|
|
14739
|
+
unifiedLineIndex: unifiedLineIndex + index,
|
|
14740
|
+
splitLineIndex: splitLineIndex + index,
|
|
14741
|
+
lineIndex: additionLineIndex + index,
|
|
14742
|
+
lineNumber: additionLineNumber + index,
|
|
14743
|
+
noEOFCR: false
|
|
14744
|
+
}
|
|
14661
14745
|
})) {
|
|
14662
14746
|
break hunkIterator;
|
|
14663
14747
|
}
|
|
@@ -14669,7 +14753,7 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14669
14753
|
}
|
|
14670
14754
|
}
|
|
14671
14755
|
}
|
|
14672
|
-
function getExpandedRegion(isPartial, rangeSize, expandedHunks, hunkIndex) {
|
|
14756
|
+
function getExpandedRegion(isPartial, rangeSize, expandedHunks, hunkIndex, collapsedContextThreshold) {
|
|
14673
14757
|
rangeSize = Math.max(rangeSize, 0);
|
|
14674
14758
|
if (rangeSize === 0 || isPartial) {
|
|
14675
14759
|
return {
|
|
@@ -14679,7 +14763,7 @@ function getExpandedRegion(isPartial, rangeSize, expandedHunks, hunkIndex) {
|
|
|
14679
14763
|
collapsedLines: Math.max(rangeSize, 0)
|
|
14680
14764
|
};
|
|
14681
14765
|
}
|
|
14682
|
-
if (expandedHunks === true) {
|
|
14766
|
+
if (expandedHunks === true || rangeSize <= collapsedContextThreshold) {
|
|
14683
14767
|
return {
|
|
14684
14768
|
fromStart: rangeSize,
|
|
14685
14769
|
fromEnd: 0,
|
|
@@ -14762,23 +14846,52 @@ function getChangeIterationRanges(state, content, diffStyle) {
|
|
|
14762
14846
|
return merged;
|
|
14763
14847
|
}
|
|
14764
14848
|
function getChangeLineData({ hunkIndex, hunk, collapsedAfter, collapsedBefore, diffStyle, index, unifiedLineIndex, splitLineIndex, additionLineIndex, deletionLineIndex, additionLineNumber, deletionLineNumber, content, isLastContent, unifiedCount, splitCount }) {
|
|
14765
|
-
|
|
14849
|
+
const unifiedDeletionLineIndex = index < content.deletions ? unifiedLineIndex + index : undefined;
|
|
14850
|
+
const unifiedAdditionLineIndex = diffStyle === "unified" ? index >= content.deletions ? unifiedLineIndex + index : undefined : index < content.additions ? unifiedLineIndex + content.deletions + index : undefined;
|
|
14851
|
+
const resolvedSplitLineIndex = diffStyle === "unified" ? splitLineIndex + (index < content.deletions ? index : index - content.deletions) : splitLineIndex + index;
|
|
14852
|
+
const deletionLineIndexValue = index < content.deletions ? deletionLineIndex + index : undefined;
|
|
14853
|
+
const deletionLineNumberValue = index < content.deletions ? deletionLineNumber + index : undefined;
|
|
14854
|
+
const additionLineIndexValue = diffStyle === "unified" ? index >= content.deletions ? additionLineIndex + (index - content.deletions) : undefined : index < content.additions ? additionLineIndex + index : undefined;
|
|
14855
|
+
const additionLineNumberValue = diffStyle === "unified" ? index >= content.deletions ? additionLineNumber + (index - content.deletions) : undefined : index < content.additions ? additionLineNumber + index : undefined;
|
|
14856
|
+
const noEOFCRDeletion = diffStyle === "unified" ? isLastContent && index === content.deletions - 1 && hunk.noEOFCRDeletions : isLastContent && index === splitCount - 1 && hunk.noEOFCRDeletions;
|
|
14857
|
+
const noEOFCRAddition = diffStyle === "unified" ? isLastContent && index === unifiedCount - 1 && hunk.noEOFCRAdditions : isLastContent && index === splitCount - 1 && hunk.noEOFCRAdditions;
|
|
14858
|
+
const deletionLine = deletionLineIndexValue != null && deletionLineNumberValue != null && unifiedDeletionLineIndex != null ? {
|
|
14859
|
+
lineNumber: deletionLineNumberValue,
|
|
14860
|
+
lineIndex: deletionLineIndexValue,
|
|
14861
|
+
noEOFCR: noEOFCRDeletion,
|
|
14862
|
+
unifiedLineIndex: unifiedDeletionLineIndex,
|
|
14863
|
+
splitLineIndex: resolvedSplitLineIndex
|
|
14864
|
+
} : undefined;
|
|
14865
|
+
const additionLine = additionLineIndexValue != null && additionLineNumberValue != null && unifiedAdditionLineIndex != null ? {
|
|
14866
|
+
unifiedLineIndex: unifiedAdditionLineIndex,
|
|
14867
|
+
splitLineIndex: resolvedSplitLineIndex,
|
|
14868
|
+
lineIndex: additionLineIndexValue,
|
|
14869
|
+
lineNumber: additionLineNumberValue,
|
|
14870
|
+
noEOFCR: noEOFCRAddition
|
|
14871
|
+
} : undefined;
|
|
14872
|
+
if (deletionLine == null && additionLine != null) {
|
|
14766
14873
|
return {
|
|
14767
14874
|
type: "change",
|
|
14768
14875
|
hunkIndex,
|
|
14769
14876
|
hunk,
|
|
14770
14877
|
collapsedAfter,
|
|
14771
14878
|
collapsedBefore,
|
|
14772
|
-
|
|
14773
|
-
|
|
14774
|
-
splitLineIndex: splitLineIndex + (index < content.deletions ? index : index - content.deletions),
|
|
14775
|
-
additionLineIndex: index >= content.deletions ? additionLineIndex + (index - content.deletions) : undefined,
|
|
14776
|
-
additionLineNumber: index >= content.deletions ? additionLineNumber + (index - content.deletions) : undefined,
|
|
14777
|
-
deletionLineIndex: index < content.deletions ? deletionLineIndex + index : undefined,
|
|
14778
|
-
deletionLineNumber: index < content.deletions ? deletionLineNumber + index : undefined,
|
|
14779
|
-
noEOFCRDeletion: isLastContent && index === content.deletions - 1 && hunk.noEOFCRDeletions,
|
|
14780
|
-
noEOFCRAddition: isLastContent && index === unifiedCount - 1 && hunk.noEOFCRAdditions
|
|
14879
|
+
deletionLine: undefined,
|
|
14880
|
+
additionLine
|
|
14781
14881
|
};
|
|
14882
|
+
} else if (deletionLine != null && additionLine == null) {
|
|
14883
|
+
return {
|
|
14884
|
+
type: "change",
|
|
14885
|
+
hunkIndex,
|
|
14886
|
+
hunk,
|
|
14887
|
+
collapsedAfter,
|
|
14888
|
+
collapsedBefore,
|
|
14889
|
+
deletionLine,
|
|
14890
|
+
additionLine: undefined
|
|
14891
|
+
};
|
|
14892
|
+
}
|
|
14893
|
+
if (deletionLine == null || additionLine == null) {
|
|
14894
|
+
throw new Error("iterateOverDiff: missing change line data");
|
|
14782
14895
|
}
|
|
14783
14896
|
return {
|
|
14784
14897
|
type: "change",
|
|
@@ -14786,15 +14899,8 @@ function getChangeLineData({ hunkIndex, hunk, collapsedAfter, collapsedBefore, d
|
|
|
14786
14899
|
hunk,
|
|
14787
14900
|
collapsedAfter,
|
|
14788
14901
|
collapsedBefore,
|
|
14789
|
-
|
|
14790
|
-
|
|
14791
|
-
splitLineIndex: splitLineIndex + index,
|
|
14792
|
-
additionLineIndex: index < content.additions ? additionLineIndex + index : undefined,
|
|
14793
|
-
additionLineNumber: index < content.additions ? additionLineNumber + index : undefined,
|
|
14794
|
-
deletionLineIndex: index < content.deletions ? deletionLineIndex + index : undefined,
|
|
14795
|
-
deletionLineNumber: index < content.deletions ? deletionLineNumber + index : undefined,
|
|
14796
|
-
noEOFCRDeletion: isLastContent && index === splitCount - 1 && hunk.noEOFCRDeletions,
|
|
14797
|
-
noEOFCRAddition: isLastContent && index === splitCount - 1 && hunk.noEOFCRAdditions
|
|
14902
|
+
deletionLine,
|
|
14903
|
+
additionLine
|
|
14798
14904
|
};
|
|
14799
14905
|
}
|
|
14800
14906
|
|
|
@@ -14830,8 +14936,8 @@ function pushOrJoinSpan({ item, arr, enableJoin, isNeutral = false, isLastItem =
|
|
|
14830
14936
|
|
|
14831
14937
|
//#endregion
|
|
14832
14938
|
//#region src/utils/renderDiffWithHighlighter.ts
|
|
14833
|
-
const DEFAULT_PLAIN_TEXT_OPTIONS = { forcePlainText: false };
|
|
14834
|
-
function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainText, startingLine, totalLines, expandedHunks } = DEFAULT_PLAIN_TEXT_OPTIONS) {
|
|
14939
|
+
const DEFAULT_PLAIN_TEXT_OPTIONS$1 = { forcePlainText: false };
|
|
14940
|
+
function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainText, startingLine, totalLines, expandedHunks, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = DEFAULT_PLAIN_TEXT_OPTIONS$1) {
|
|
14835
14941
|
if (forcePlainText) {
|
|
14836
14942
|
startingLine ??= 0;
|
|
14837
14943
|
totalLines ??= Infinity;
|
|
@@ -14886,12 +14992,14 @@ function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainTex
|
|
|
14886
14992
|
startingLine,
|
|
14887
14993
|
totalLines,
|
|
14888
14994
|
expandedHunks: isWindowedHighlight ? expandedHunksForIteration : true,
|
|
14889
|
-
|
|
14995
|
+
collapsedContextThreshold,
|
|
14996
|
+
callback: ({ hunkIndex, additionLine, deletionLine, type }) => {
|
|
14890
14997
|
const bucket = getBucketForHunk(hunkIndex);
|
|
14891
|
-
|
|
14998
|
+
const splitLineIndex = additionLine != null ? additionLine.splitLineIndex : deletionLine.splitLineIndex;
|
|
14999
|
+
if (type === "change" && additionLine != null && deletionLine != null) {
|
|
14892
15000
|
computeLineDiffDecorations({
|
|
14893
|
-
additionLine: diff.additionLines[
|
|
14894
|
-
deletionLine: diff.deletionLines[
|
|
15001
|
+
additionLine: diff.additionLines[additionLine.lineIndex],
|
|
15002
|
+
deletionLine: diff.deletionLines[deletionLine.lineIndex],
|
|
14895
15003
|
deletionLineIndex: bucket.deletionContent.length,
|
|
14896
15004
|
additionLineIndex: bucket.additionContent.length,
|
|
14897
15005
|
deletionDecorations: bucket.deletionDecorations,
|
|
@@ -14899,22 +15007,22 @@ function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainTex
|
|
|
14899
15007
|
lineDiffType
|
|
14900
15008
|
});
|
|
14901
15009
|
}
|
|
14902
|
-
if (
|
|
14903
|
-
appendContent(diff.deletionLines[
|
|
15010
|
+
if (deletionLine != null) {
|
|
15011
|
+
appendContent(diff.deletionLines[deletionLine.lineIndex], deletionLine.lineIndex, bucket.deletionSegments, bucket.deletionContent);
|
|
14904
15012
|
bucket.deletionInfo.push({
|
|
14905
15013
|
type: type === "change" ? "change-deletion" : type,
|
|
14906
|
-
lineNumber:
|
|
14907
|
-
altLineNumber: type === "change" ? undefined :
|
|
14908
|
-
lineIndex: `${
|
|
15014
|
+
lineNumber: deletionLine.lineNumber,
|
|
15015
|
+
altLineNumber: type === "change" ? undefined : additionLine.lineNumber ?? undefined,
|
|
15016
|
+
lineIndex: `${deletionLine.unifiedLineIndex},${splitLineIndex}`
|
|
14909
15017
|
});
|
|
14910
15018
|
}
|
|
14911
|
-
if (
|
|
14912
|
-
appendContent(diff.additionLines[
|
|
15019
|
+
if (additionLine != null) {
|
|
15020
|
+
appendContent(diff.additionLines[additionLine.lineIndex], additionLine.lineIndex, bucket.additionSegments, bucket.additionContent);
|
|
14913
15021
|
bucket.additionInfo.push({
|
|
14914
15022
|
type: type === "change" ? "change-addition" : type,
|
|
14915
|
-
lineNumber:
|
|
14916
|
-
altLineNumber: type === "change" ? undefined :
|
|
14917
|
-
lineIndex: `${
|
|
15023
|
+
lineNumber: additionLine.lineNumber,
|
|
15024
|
+
altLineNumber: type === "change" ? undefined : deletionLine.lineNumber ?? undefined,
|
|
15025
|
+
lineIndex: `${additionLine.unifiedLineIndex},${splitLineIndex}`
|
|
14918
15026
|
});
|
|
14919
15027
|
}
|
|
14920
15028
|
}
|
|
@@ -15112,9 +15220,82 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
|
|
|
15112
15220
|
};
|
|
15113
15221
|
}
|
|
15114
15222
|
|
|
15223
|
+
//#endregion
|
|
15224
|
+
//#region src/utils/iterateOverFile.ts
|
|
15225
|
+
/**
|
|
15226
|
+
* Iterates over lines in a file with optional windowing support.
|
|
15227
|
+
*
|
|
15228
|
+
* Similar to `iterateOverDiff` but simplified for linear file content.
|
|
15229
|
+
* Supports viewport windowing for virtualization scenarios.
|
|
15230
|
+
*
|
|
15231
|
+
* @param props - Configuration for iteration
|
|
15232
|
+
* @param props.lines - Pre-split array of lines (use splitFileContents() to create from string)
|
|
15233
|
+
* @param props.startingLine - Optional starting line index (0-based, default: 0)
|
|
15234
|
+
* @param props.totalLines - Optional max lines to iterate (default: Infinity)
|
|
15235
|
+
* @param props.callback - Callback invoked for each line in the window.
|
|
15236
|
+
* Return `true` to stop iteration early.
|
|
15237
|
+
*
|
|
15238
|
+
* @example
|
|
15239
|
+
* ```typescript
|
|
15240
|
+
* const lines = splitFileContents('line1\nline2\nline3');
|
|
15241
|
+
* iterateOverFile({
|
|
15242
|
+
* lines,
|
|
15243
|
+
* startingLine: 0,
|
|
15244
|
+
* totalLines: 10,
|
|
15245
|
+
* callback: ({ lineIndex, lineNumber, content, isLastLine }) => {
|
|
15246
|
+
* console.log(`Line ${lineNumber}: ${content}`);
|
|
15247
|
+
* if (content.includes('stop')) return true; // Stop iteration
|
|
15248
|
+
* }
|
|
15249
|
+
* });
|
|
15250
|
+
* ```
|
|
15251
|
+
*/
|
|
15252
|
+
function iterateOverFile({ lines, startingLine = 0, totalLines = Infinity, callback }) {
|
|
15253
|
+
const len = Math.min(startingLine + totalLines, lines.length);
|
|
15254
|
+
const lastLineIndex = (() => {
|
|
15255
|
+
const lastLine = lines.at(-1);
|
|
15256
|
+
if (lastLine === "" || lastLine === "\n" || lastLine === "\r\n" || lastLine === "\r") {
|
|
15257
|
+
return Math.max(0, lines.length - 2);
|
|
15258
|
+
}
|
|
15259
|
+
return lines.length - 1;
|
|
15260
|
+
})();
|
|
15261
|
+
for (let lineIndex = startingLine; lineIndex < len; lineIndex++) {
|
|
15262
|
+
const isLastLine = lineIndex === lastLineIndex;
|
|
15263
|
+
if (callback({
|
|
15264
|
+
lineIndex,
|
|
15265
|
+
lineNumber: lineIndex + 1,
|
|
15266
|
+
content: lines[lineIndex],
|
|
15267
|
+
isLastLine
|
|
15268
|
+
}) === true || isLastLine) {
|
|
15269
|
+
break;
|
|
15270
|
+
}
|
|
15271
|
+
}
|
|
15272
|
+
}
|
|
15273
|
+
|
|
15274
|
+
//#endregion
|
|
15275
|
+
//#region src/utils/splitFileContents.ts
|
|
15276
|
+
/**
|
|
15277
|
+
* Splits file contents into lines using the same logic as diff parsing.
|
|
15278
|
+
* - Preserves trailing newlines on each line
|
|
15279
|
+
*
|
|
15280
|
+
* @param contents - The raw file contents string
|
|
15281
|
+
* @returns Array of lines with newlines preserved
|
|
15282
|
+
*/
|
|
15283
|
+
function splitFileContents(contents) {
|
|
15284
|
+
return contents !== "" ? contents.split(SPLIT_WITH_NEWLINES) : [];
|
|
15285
|
+
}
|
|
15286
|
+
|
|
15115
15287
|
//#endregion
|
|
15116
15288
|
//#region src/utils/renderFileWithHighlighter.ts
|
|
15117
|
-
|
|
15289
|
+
const DEFAULT_PLAIN_TEXT_OPTIONS = { forcePlainText: false };
|
|
15290
|
+
function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES, tokenizeMaxLineLength }, { forcePlainText, startingLine, totalLines, lines } = DEFAULT_PLAIN_TEXT_OPTIONS) {
|
|
15291
|
+
if (forcePlainText) {
|
|
15292
|
+
startingLine ??= 0;
|
|
15293
|
+
totalLines ??= Infinity;
|
|
15294
|
+
} else {
|
|
15295
|
+
startingLine = 0;
|
|
15296
|
+
totalLines = Infinity;
|
|
15297
|
+
}
|
|
15298
|
+
const isWindowedHighlight = startingLine > 0 || totalLines < Infinity;
|
|
15118
15299
|
const { state, transformers } = createTransformerWithState();
|
|
15119
15300
|
const lang = forcePlainText ? "text" : file.lang ?? getFiletypeFromFileName(file.name);
|
|
15120
15301
|
const baseThemeType = (() => {
|
|
@@ -15129,8 +15310,8 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
|
|
|
15129
15310
|
});
|
|
15130
15311
|
state.lineInfo = (shikiLineNumber) => ({
|
|
15131
15312
|
type: "context",
|
|
15132
|
-
lineIndex: shikiLineNumber - 1,
|
|
15133
|
-
lineNumber: shikiLineNumber
|
|
15313
|
+
lineIndex: shikiLineNumber - 1 + startingLine,
|
|
15314
|
+
lineNumber: shikiLineNumber + startingLine
|
|
15134
15315
|
});
|
|
15135
15316
|
const hastConfig = (() => {
|
|
15136
15317
|
if (typeof theme === "string") {
|
|
@@ -15152,12 +15333,29 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
|
|
|
15152
15333
|
tokenizeMaxLineLength
|
|
15153
15334
|
};
|
|
15154
15335
|
})();
|
|
15336
|
+
const highlightedLines = getLineNodes(highlighter$1.codeToHast(isWindowedHighlight ? extractWindowedFileContent(lines ?? splitFileContents(file.contents), startingLine, totalLines) : cleanLastNewline(file.contents), hastConfig));
|
|
15337
|
+
const code = isWindowedHighlight ? new Array(startingLine) : highlightedLines;
|
|
15338
|
+
if (isWindowedHighlight) {
|
|
15339
|
+
code.push(...highlightedLines);
|
|
15340
|
+
}
|
|
15155
15341
|
return {
|
|
15156
|
-
code
|
|
15342
|
+
code,
|
|
15157
15343
|
themeStyles,
|
|
15158
15344
|
baseThemeType
|
|
15159
15345
|
};
|
|
15160
15346
|
}
|
|
15347
|
+
function extractWindowedFileContent(lines, startingLine, totalLines) {
|
|
15348
|
+
let windowContent = "";
|
|
15349
|
+
iterateOverFile({
|
|
15350
|
+
lines,
|
|
15351
|
+
startingLine,
|
|
15352
|
+
totalLines,
|
|
15353
|
+
callback({ content }) {
|
|
15354
|
+
windowContent += content;
|
|
15355
|
+
}
|
|
15356
|
+
});
|
|
15357
|
+
return windowContent;
|
|
15358
|
+
}
|
|
15161
15359
|
|
|
15162
15360
|
//#endregion
|
|
15163
15361
|
//#region src/worker/worker.ts
|