@pierre/diffs 1.1.0-beta.7 → 1.1.0-beta.8
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 +58 -33
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +223 -22
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +42 -16
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +505 -65
- 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 +4 -7
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +14 -6
- 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.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 +11 -4
- package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/resolveLanguage.d.ts +1 -1
- package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/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 +13 -10
- package/dist/index.js +10 -7
- 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 +240 -136
- 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 +191 -172
- 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 +1 -1
- 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.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 +26 -13
- package/dist/utils/iterateOverDiff.d.ts.map +1 -1
- package/dist/utils/iterateOverDiff.js +94 -55
- 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 +5 -5
- package/dist/utils/parseDiffFromFile.d.ts.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 +7 -7
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- 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 +2 -2
- package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.js +15 -14
- 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 +24 -0
- package/dist/utils/resolveVirtualFileMetrics.js.map +1 -0
- package/dist/utils/setLanguageOverride.d.ts.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 +5 -5
- package/dist/utils/trimPatchContext.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.d.ts +1 -2
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +7 -2
- 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 +254 -107
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +206 -106
- package/dist/worker/worker.js.map +1 -1
- package/package.json +52 -53
|
@@ -11680,16 +11680,24 @@ 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 LINE_HUNK_COUNT = 10;
|
|
11684
|
-
const LINE_HEIGHT = 20;
|
|
11685
|
-
const DIFF_HEADER_HEIGHT = 44;
|
|
11686
|
-
const HUNK_SEPARATOR_HEIGHT = 32;
|
|
11687
|
-
const FILE_GAP = 8;
|
|
11688
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
|
+
};
|
|
11689
11691
|
const DEFAULT_EXPANDED_REGION = Object.freeze({
|
|
11690
11692
|
fromStart: 0,
|
|
11691
11693
|
fromEnd: 0
|
|
11692
11694
|
});
|
|
11695
|
+
const DEFAULT_RENDER_RANGE = {
|
|
11696
|
+
startingLine: 0,
|
|
11697
|
+
totalLines: Infinity,
|
|
11698
|
+
bufferBefore: 0,
|
|
11699
|
+
bufferAfter: 0
|
|
11700
|
+
};
|
|
11693
11701
|
|
|
11694
11702
|
//#endregion
|
|
11695
11703
|
//#region src/highlighter/languages/constants.ts
|
|
@@ -13857,12 +13865,36 @@ function findCodeElement(nodes) {
|
|
|
13857
13865
|
}
|
|
13858
13866
|
return undefined;
|
|
13859
13867
|
}
|
|
13860
|
-
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) {
|
|
13861
13876
|
return createHastElement({
|
|
13862
13877
|
tagName: "div",
|
|
13863
13878
|
properties: {
|
|
13864
|
-
"data-
|
|
13865
|
-
|
|
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);`
|
|
13866
13898
|
}
|
|
13867
13899
|
});
|
|
13868
13900
|
}
|
|
@@ -13880,33 +13912,15 @@ function processLine(node, line, state) {
|
|
|
13880
13912
|
});
|
|
13881
13913
|
throw new Error(errorMessage);
|
|
13882
13914
|
}
|
|
13883
|
-
node.tagName = "
|
|
13884
|
-
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;
|
|
13885
13920
|
if (node.children.length === 0) {
|
|
13886
13921
|
node.children.push(createTextNodeElement("\n"));
|
|
13887
13922
|
}
|
|
13888
|
-
|
|
13889
|
-
tagName: "span",
|
|
13890
|
-
children: [createHastElement({
|
|
13891
|
-
tagName: "span",
|
|
13892
|
-
children: [{
|
|
13893
|
-
type: "text",
|
|
13894
|
-
value: `${lineInfo.lineNumber}`
|
|
13895
|
-
}],
|
|
13896
|
-
properties: { "data-line-number-content": "" }
|
|
13897
|
-
})],
|
|
13898
|
-
properties: { "data-column-number": "" }
|
|
13899
|
-
}), node];
|
|
13900
|
-
return createHastElement({
|
|
13901
|
-
tagName: "div",
|
|
13902
|
-
children,
|
|
13903
|
-
properties: {
|
|
13904
|
-
"data-line": lineInfo.lineNumber,
|
|
13905
|
-
"data-alt-line": lineInfo.altLineNumber,
|
|
13906
|
-
"data-line-type": lineInfo.type,
|
|
13907
|
-
"data-line-index": lineInfo.lineIndex
|
|
13908
|
-
}
|
|
13909
|
-
});
|
|
13923
|
+
return node;
|
|
13910
13924
|
}
|
|
13911
13925
|
|
|
13912
13926
|
//#endregion
|
|
@@ -14532,16 +14546,21 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14532
14546
|
hunk,
|
|
14533
14547
|
collapsedBefore: 0,
|
|
14534
14548
|
collapsedAfter: 0,
|
|
14535
|
-
unifiedDeletionLineIndex: unifiedLineIndex$1 + index,
|
|
14536
|
-
unifiedAdditionLineIndex: unifiedLineIndex$1 + index,
|
|
14537
|
-
splitLineIndex: splitLineIndex$1 + index,
|
|
14538
|
-
deletionLineIndex: deletionLineIndex$1 + index,
|
|
14539
|
-
additionLineIndex: additionLineIndex$1 + index,
|
|
14540
|
-
deletionLineNumber: deletionLineNumber$1 + index,
|
|
14541
|
-
additionLineNumber: additionLineNumber$1 + index,
|
|
14542
14549
|
type: "context-expanded",
|
|
14543
|
-
|
|
14544
|
-
|
|
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
|
+
}
|
|
14545
14564
|
})) {
|
|
14546
14565
|
break hunkIterator;
|
|
14547
14566
|
}
|
|
@@ -14564,16 +14583,21 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14564
14583
|
hunk,
|
|
14565
14584
|
collapsedBefore: getPendingCollapsed(),
|
|
14566
14585
|
collapsedAfter: 0,
|
|
14567
|
-
unifiedDeletionLineIndex: unifiedLineIndex$1 + index,
|
|
14568
|
-
unifiedAdditionLineIndex: unifiedLineIndex$1 + index,
|
|
14569
|
-
splitLineIndex: splitLineIndex$1 + index,
|
|
14570
|
-
deletionLineIndex: deletionLineIndex$1 + index,
|
|
14571
|
-
additionLineIndex: additionLineIndex$1 + index,
|
|
14572
|
-
deletionLineNumber: deletionLineNumber$1 + index,
|
|
14573
|
-
additionLineNumber: additionLineNumber$1 + index,
|
|
14574
14586
|
type: "context-expanded",
|
|
14575
|
-
|
|
14576
|
-
|
|
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
|
+
}
|
|
14577
14601
|
})) {
|
|
14578
14602
|
break hunkIterator;
|
|
14579
14603
|
}
|
|
@@ -14611,16 +14635,21 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14611
14635
|
hunk,
|
|
14612
14636
|
collapsedBefore: getPendingCollapsed(),
|
|
14613
14637
|
collapsedAfter: getTrailingCollapsedAfter(unifiedRowIndex, splitRowIndex),
|
|
14614
|
-
unifiedDeletionLineIndex: unifiedRowIndex,
|
|
14615
|
-
unifiedAdditionLineIndex: unifiedRowIndex,
|
|
14616
|
-
splitLineIndex: splitRowIndex,
|
|
14617
|
-
deletionLineIndex: deletionLineIndex + index,
|
|
14618
|
-
additionLineIndex: additionLineIndex + index,
|
|
14619
|
-
deletionLineNumber: deletionLineNumber + index,
|
|
14620
|
-
additionLineNumber: additionLineNumber + index,
|
|
14621
14638
|
type: "context",
|
|
14622
|
-
|
|
14623
|
-
|
|
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
|
+
}
|
|
14624
14653
|
})) {
|
|
14625
14654
|
break hunkIterator;
|
|
14626
14655
|
}
|
|
@@ -14698,16 +14727,21 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
14698
14727
|
hunk: undefined,
|
|
14699
14728
|
collapsedBefore: 0,
|
|
14700
14729
|
collapsedAfter: isLastLine ? collapsedLines : 0,
|
|
14701
|
-
unifiedDeletionLineIndex: unifiedLineIndex + index,
|
|
14702
|
-
unifiedAdditionLineIndex: unifiedLineIndex + index,
|
|
14703
|
-
splitLineIndex: splitLineIndex + index,
|
|
14704
|
-
additionLineIndex: additionLineIndex + index,
|
|
14705
|
-
deletionLineIndex: deletionLineIndex + index,
|
|
14706
|
-
additionLineNumber: additionLineNumber + index,
|
|
14707
|
-
deletionLineNumber: deletionLineNumber + index,
|
|
14708
14730
|
type: "context-expanded",
|
|
14709
|
-
|
|
14710
|
-
|
|
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
|
+
}
|
|
14711
14745
|
})) {
|
|
14712
14746
|
break hunkIterator;
|
|
14713
14747
|
}
|
|
@@ -14812,39 +14846,61 @@ function getChangeIterationRanges(state, content, diffStyle) {
|
|
|
14812
14846
|
return merged;
|
|
14813
14847
|
}
|
|
14814
14848
|
function getChangeLineData({ hunkIndex, hunk, collapsedAfter, collapsedBefore, diffStyle, index, unifiedLineIndex, splitLineIndex, additionLineIndex, deletionLineIndex, additionLineNumber, deletionLineNumber, content, isLastContent, unifiedCount, splitCount }) {
|
|
14815
|
-
|
|
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) {
|
|
14873
|
+
return {
|
|
14874
|
+
type: "change",
|
|
14875
|
+
hunkIndex,
|
|
14876
|
+
hunk,
|
|
14877
|
+
collapsedAfter,
|
|
14878
|
+
collapsedBefore,
|
|
14879
|
+
deletionLine: undefined,
|
|
14880
|
+
additionLine
|
|
14881
|
+
};
|
|
14882
|
+
} else if (deletionLine != null && additionLine == null) {
|
|
14816
14883
|
return {
|
|
14817
14884
|
type: "change",
|
|
14818
14885
|
hunkIndex,
|
|
14819
14886
|
hunk,
|
|
14820
14887
|
collapsedAfter,
|
|
14821
14888
|
collapsedBefore,
|
|
14822
|
-
|
|
14823
|
-
|
|
14824
|
-
splitLineIndex: splitLineIndex + (index < content.deletions ? index : index - content.deletions),
|
|
14825
|
-
additionLineIndex: index >= content.deletions ? additionLineIndex + (index - content.deletions) : undefined,
|
|
14826
|
-
additionLineNumber: index >= content.deletions ? additionLineNumber + (index - content.deletions) : undefined,
|
|
14827
|
-
deletionLineIndex: index < content.deletions ? deletionLineIndex + index : undefined,
|
|
14828
|
-
deletionLineNumber: index < content.deletions ? deletionLineNumber + index : undefined,
|
|
14829
|
-
noEOFCRDeletion: isLastContent && index === content.deletions - 1 && hunk.noEOFCRDeletions,
|
|
14830
|
-
noEOFCRAddition: isLastContent && index === unifiedCount - 1 && hunk.noEOFCRAdditions
|
|
14889
|
+
deletionLine,
|
|
14890
|
+
additionLine: undefined
|
|
14831
14891
|
};
|
|
14832
14892
|
}
|
|
14893
|
+
if (deletionLine == null || additionLine == null) {
|
|
14894
|
+
throw new Error("iterateOverDiff: missing change line data");
|
|
14895
|
+
}
|
|
14833
14896
|
return {
|
|
14834
14897
|
type: "change",
|
|
14835
14898
|
hunkIndex,
|
|
14836
14899
|
hunk,
|
|
14837
14900
|
collapsedAfter,
|
|
14838
14901
|
collapsedBefore,
|
|
14839
|
-
|
|
14840
|
-
|
|
14841
|
-
splitLineIndex: splitLineIndex + index,
|
|
14842
|
-
additionLineIndex: index < content.additions ? additionLineIndex + index : undefined,
|
|
14843
|
-
additionLineNumber: index < content.additions ? additionLineNumber + index : undefined,
|
|
14844
|
-
deletionLineIndex: index < content.deletions ? deletionLineIndex + index : undefined,
|
|
14845
|
-
deletionLineNumber: index < content.deletions ? deletionLineNumber + index : undefined,
|
|
14846
|
-
noEOFCRDeletion: isLastContent && index === splitCount - 1 && hunk.noEOFCRDeletions,
|
|
14847
|
-
noEOFCRAddition: isLastContent && index === splitCount - 1 && hunk.noEOFCRAdditions
|
|
14902
|
+
deletionLine,
|
|
14903
|
+
additionLine
|
|
14848
14904
|
};
|
|
14849
14905
|
}
|
|
14850
14906
|
|
|
@@ -14880,8 +14936,8 @@ function pushOrJoinSpan({ item, arr, enableJoin, isNeutral = false, isLastItem =
|
|
|
14880
14936
|
|
|
14881
14937
|
//#endregion
|
|
14882
14938
|
//#region src/utils/renderDiffWithHighlighter.ts
|
|
14883
|
-
const DEFAULT_PLAIN_TEXT_OPTIONS = { forcePlainText: false };
|
|
14884
|
-
function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainText, startingLine, totalLines, expandedHunks, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = 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) {
|
|
14885
14941
|
if (forcePlainText) {
|
|
14886
14942
|
startingLine ??= 0;
|
|
14887
14943
|
totalLines ??= Infinity;
|
|
@@ -14937,12 +14993,13 @@ function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainTex
|
|
|
14937
14993
|
totalLines,
|
|
14938
14994
|
expandedHunks: isWindowedHighlight ? expandedHunksForIteration : true,
|
|
14939
14995
|
collapsedContextThreshold,
|
|
14940
|
-
callback: ({ hunkIndex,
|
|
14996
|
+
callback: ({ hunkIndex, additionLine, deletionLine, type }) => {
|
|
14941
14997
|
const bucket = getBucketForHunk(hunkIndex);
|
|
14942
|
-
|
|
14998
|
+
const splitLineIndex = additionLine != null ? additionLine.splitLineIndex : deletionLine.splitLineIndex;
|
|
14999
|
+
if (type === "change" && additionLine != null && deletionLine != null) {
|
|
14943
15000
|
computeLineDiffDecorations({
|
|
14944
|
-
additionLine: diff.additionLines[
|
|
14945
|
-
deletionLine: diff.deletionLines[
|
|
15001
|
+
additionLine: diff.additionLines[additionLine.lineIndex],
|
|
15002
|
+
deletionLine: diff.deletionLines[deletionLine.lineIndex],
|
|
14946
15003
|
deletionLineIndex: bucket.deletionContent.length,
|
|
14947
15004
|
additionLineIndex: bucket.additionContent.length,
|
|
14948
15005
|
deletionDecorations: bucket.deletionDecorations,
|
|
@@ -14950,22 +15007,22 @@ function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainTex
|
|
|
14950
15007
|
lineDiffType
|
|
14951
15008
|
});
|
|
14952
15009
|
}
|
|
14953
|
-
if (
|
|
14954
|
-
appendContent(diff.deletionLines[
|
|
15010
|
+
if (deletionLine != null) {
|
|
15011
|
+
appendContent(diff.deletionLines[deletionLine.lineIndex], deletionLine.lineIndex, bucket.deletionSegments, bucket.deletionContent);
|
|
14955
15012
|
bucket.deletionInfo.push({
|
|
14956
15013
|
type: type === "change" ? "change-deletion" : type,
|
|
14957
|
-
lineNumber:
|
|
14958
|
-
altLineNumber: type === "change" ? undefined :
|
|
14959
|
-
lineIndex: `${
|
|
15014
|
+
lineNumber: deletionLine.lineNumber,
|
|
15015
|
+
altLineNumber: type === "change" ? undefined : additionLine.lineNumber ?? undefined,
|
|
15016
|
+
lineIndex: `${deletionLine.unifiedLineIndex},${splitLineIndex}`
|
|
14960
15017
|
});
|
|
14961
15018
|
}
|
|
14962
|
-
if (
|
|
14963
|
-
appendContent(diff.additionLines[
|
|
15019
|
+
if (additionLine != null) {
|
|
15020
|
+
appendContent(diff.additionLines[additionLine.lineIndex], additionLine.lineIndex, bucket.additionSegments, bucket.additionContent);
|
|
14964
15021
|
bucket.additionInfo.push({
|
|
14965
15022
|
type: type === "change" ? "change-addition" : type,
|
|
14966
|
-
lineNumber:
|
|
14967
|
-
altLineNumber: type === "change" ? undefined :
|
|
14968
|
-
lineIndex: `${
|
|
15023
|
+
lineNumber: additionLine.lineNumber,
|
|
15024
|
+
altLineNumber: type === "change" ? undefined : deletionLine.lineNumber ?? undefined,
|
|
15025
|
+
lineIndex: `${additionLine.unifiedLineIndex},${splitLineIndex}`
|
|
14969
15026
|
});
|
|
14970
15027
|
}
|
|
14971
15028
|
}
|
|
@@ -15163,9 +15220,82 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
|
|
|
15163
15220
|
};
|
|
15164
15221
|
}
|
|
15165
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
|
+
|
|
15166
15287
|
//#endregion
|
|
15167
15288
|
//#region src/utils/renderFileWithHighlighter.ts
|
|
15168
|
-
|
|
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;
|
|
15169
15299
|
const { state, transformers } = createTransformerWithState();
|
|
15170
15300
|
const lang = forcePlainText ? "text" : file.lang ?? getFiletypeFromFileName(file.name);
|
|
15171
15301
|
const baseThemeType = (() => {
|
|
@@ -15180,8 +15310,8 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
|
|
|
15180
15310
|
});
|
|
15181
15311
|
state.lineInfo = (shikiLineNumber) => ({
|
|
15182
15312
|
type: "context",
|
|
15183
|
-
lineIndex: shikiLineNumber - 1,
|
|
15184
|
-
lineNumber: shikiLineNumber
|
|
15313
|
+
lineIndex: shikiLineNumber - 1 + startingLine,
|
|
15314
|
+
lineNumber: shikiLineNumber + startingLine
|
|
15185
15315
|
});
|
|
15186
15316
|
const hastConfig = (() => {
|
|
15187
15317
|
if (typeof theme === "string") {
|
|
@@ -15203,12 +15333,29 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
|
|
|
15203
15333
|
tokenizeMaxLineLength
|
|
15204
15334
|
};
|
|
15205
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
|
+
}
|
|
15206
15341
|
return {
|
|
15207
|
-
code
|
|
15342
|
+
code,
|
|
15208
15343
|
themeStyles,
|
|
15209
15344
|
baseThemeType
|
|
15210
15345
|
};
|
|
15211
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
|
+
}
|
|
15212
15359
|
|
|
15213
15360
|
//#endregion
|
|
15214
15361
|
//#region src/worker/worker.ts
|