@pierre/diffs 1.2.0-beta.6 → 1.2.1
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/CodeView.d.ts +16 -4
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +108 -31
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +5 -0
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +54 -10
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +5 -1
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +56 -14
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/FileStream.js +1 -0
- package/dist/components/FileStream.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/UnresolvedFile.js +1 -1
- package/dist/components/VirtualizedFileDiff.js +2 -2
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/Virtualizer.js +1 -1
- package/dist/components/Virtualizer.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/highlighter/shared_highlighter.js +14 -0
- package/dist/highlighter/shared_highlighter.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +7 -3
- package/dist/renderers/DiffHunksRenderer.d.ts +2 -0
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +34 -21
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +3 -0
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +37 -23
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/style.js +1 -1
- package/dist/style.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/areDiffTargetsEqual.d.ts +7 -0
- package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -0
- package/dist/utils/areDiffTargetsEqual.js +8 -0
- package/dist/utils/areDiffTargetsEqual.js.map +1 -0
- package/dist/utils/areFileRenderOptionsEqual.d.ts +7 -0
- package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -0
- package/dist/utils/areFileRenderOptionsEqual.js +10 -0
- package/dist/utils/areFileRenderOptionsEqual.js.map +1 -0
- package/dist/utils/areWorkerStatsEqual.js +1 -1
- package/dist/utils/areWorkerStatsEqual.js.map +1 -1
- package/dist/utils/detachString.d.ts +2 -1
- package/dist/utils/detachString.d.ts.map +1 -1
- package/dist/utils/detachString.js +12 -10
- package/dist/utils/detachString.js.map +1 -1
- package/dist/utils/isStyleNode.d.ts +5 -0
- package/dist/utils/isStyleNode.d.ts.map +1 -0
- package/dist/utils/isStyleNode.js +10 -0
- package/dist/utils/isStyleNode.js.map +1 -0
- package/dist/utils/parsePatchFiles.d.ts +1 -7
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +18 -4
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/prefersReducedMotion.d.ts +5 -0
- package/dist/utils/prefersReducedMotion.d.ts.map +1 -0
- package/dist/utils/prefersReducedMotion.js +9 -0
- package/dist/utils/prefersReducedMotion.js.map +1 -0
- package/dist/worker/WorkerPoolManager.d.ts +33 -5
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +278 -79
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/types.d.ts +7 -3
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +9 -9
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +3 -0
- package/dist/worker/worker.js.map +1 -1
- package/package.json +2 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared_highlighter.js","names":["highlighter: CachedOrLoadingHighlighterType","languageLoaders: Promise<ResolvedLanguage>[]","themeLoaders: Promise<ThemeRegistrationResolved>[]","themes"],"sources":["../../src/highlighter/shared_highlighter.ts"],"sourcesContent":["import {\n createHighlighter,\n createJavaScriptRegexEngine,\n createOnigurumaEngine,\n} from 'shiki';\n\nimport type {\n DiffsHighlighter,\n DiffsThemeNames,\n HighlighterTypes,\n SupportedLanguages,\n ThemeRegistrationResolved,\n} from '../types';\nimport type { ResolvedLanguage } from '../worker/types';\nimport { attachResolvedLanguages } from './languages/attachResolvedLanguages';\nimport { cleanUpResolvedLanguages } from './languages/cleanUpResolvedLanguages';\nimport { getResolvedOrResolveLanguage } from './languages/getResolvedOrResolveLanguage';\nimport { attachResolvedThemes } from './themes/attachResolvedThemes';\nimport { cleanUpResolvedThemes } from './themes/cleanUpResolvedThemes';\nimport { getResolvedOrResolveTheme } from './themes/getResolvedOrResolveTheme';\nimport { registerCustomTheme } from './themes/registerCustomTheme';\n\ntype CachedOrLoadingHighlighterType =\n | Promise<DiffsHighlighter>\n | DiffsHighlighter\n | undefined;\n\nlet highlighter: CachedOrLoadingHighlighterType;\n\ninterface HighlighterOptions {\n themes: DiffsThemeNames[];\n langs: SupportedLanguages[];\n preferredHighlighter?: HighlighterTypes;\n}\n\nexport async function getSharedHighlighter({\n themes,\n langs,\n preferredHighlighter = 'shiki-js',\n}: HighlighterOptions): Promise<DiffsHighlighter> {\n highlighter ??= createHighlighter({\n themes: [],\n langs: ['text'],\n engine:\n preferredHighlighter === 'shiki-wasm'\n ? createOnigurumaEngine(import('shiki/wasm'))\n : createJavaScriptRegexEngine(),\n }) as Promise<DiffsHighlighter>;\n\n const instance = isHighlighterLoading(highlighter)\n ? await highlighter\n : highlighter;\n highlighter = instance;\n\n const languageLoaders: Promise<ResolvedLanguage>[] = [];\n for (const language of langs) {\n if (language === 'text' || language === 'ansi') continue;\n const maybeResolvedLanguage = getResolvedOrResolveLanguage(language);\n if ('then' in maybeResolvedLanguage) {\n languageLoaders.push(maybeResolvedLanguage);\n } else {\n attachResolvedLanguages(maybeResolvedLanguage, instance);\n }\n }\n\n const themeLoaders: Promise<ThemeRegistrationResolved>[] = [];\n for (const themeName of themes) {\n const maybeResolvedTheme = getResolvedOrResolveTheme(themeName);\n if ('then' in maybeResolvedTheme) {\n themeLoaders.push(maybeResolvedTheme);\n } else {\n attachResolvedThemes(maybeResolvedTheme, highlighter);\n }\n }\n\n // If we need to load any languages or themes, lets do that now\n if (languageLoaders.length > 0 || themeLoaders.length > 0) {\n await Promise.all([\n Promise.all(languageLoaders).then((languages) => {\n attachResolvedLanguages(languages, instance);\n }),\n Promise.all(themeLoaders).then((themes) => {\n attachResolvedThemes(themes, instance);\n }),\n ]);\n }\n\n return instance;\n}\n\nexport function isHighlighterLoaded(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is DiffsHighlighter {\n return h != null && !('then' in h);\n}\n\nexport function getHighlighterIfLoaded(): DiffsHighlighter | undefined {\n if (highlighter != null && !('then' in highlighter)) {\n return highlighter;\n }\n return undefined;\n}\n\nexport function isHighlighterLoading(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is Promise<DiffsHighlighter> {\n return h != null && 'then' in h;\n}\n\nexport function isHighlighterNull(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is undefined {\n return h == null;\n}\n\nexport async function preloadHighlighter(\n options: HighlighterOptions\n): Promise<void> {\n return void (await getSharedHighlighter(options));\n}\n\nexport async function disposeHighlighter(): Promise<void> {\n if (highlighter == null) return;\n (await highlighter).dispose();\n cleanUpResolvedLanguages();\n cleanUpResolvedThemes();\n highlighter = undefined;\n}\n\nregisterCustomTheme('pierre-dark', async () => {\n const { default: theme } = await import('@pierre/theme/pierre-dark');\n return { ...theme, name: 'pierre-dark' } as ThemeRegistrationResolved;\n});\n\nregisterCustomTheme('pierre-light', async () => {\n const { default: theme } = await import('@pierre/theme/pierre-light');\n return { ...theme, name: 'pierre-light' } as ThemeRegistrationResolved;\n});\n"],"mappings":";;;;;;;;;;AA2BA,IAAIA;AAQJ,eAAsB,qBAAqB,EACzC,QACA,OACA,uBAAuB,cACyB;AAChD,iBAAgB,kBAAkB;EAChC,QAAQ,EAAE;EACV,OAAO,CAAC,OAAO;EACf,QACE,yBAAyB,eACrB,sBAAsB,OAAO,cAAc,GAC3C,6BAA6B;EACpC,CAAC;CAEF,MAAM,WAAW,qBAAqB,YAAY,GAC9C,MAAM,cACN;AACJ,eAAc;CAEd,MAAMC,kBAA+C,EAAE;AACvD,MAAK,MAAM,YAAY,OAAO;AAC5B,MAAI,aAAa,UAAU,aAAa,OAAQ;EAChD,MAAM,wBAAwB,6BAA6B,SAAS;AACpE,MAAI,UAAU,sBACZ,iBAAgB,KAAK,sBAAsB;MAE3C,yBAAwB,uBAAuB,SAAS;;CAI5D,MAAMC,eAAqD,EAAE;AAC7D,MAAK,MAAM,aAAa,QAAQ;EAC9B,MAAM,qBAAqB,0BAA0B,UAAU;AAC/D,MAAI,UAAU,mBACZ,cAAa,KAAK,mBAAmB;MAErC,sBAAqB,oBAAoB,YAAY;;AAKzD,KAAI,gBAAgB,SAAS,KAAK,aAAa,SAAS,EACtD,OAAM,QAAQ,IAAI,CAChB,QAAQ,IAAI,gBAAgB,CAAC,MAAM,cAAc;AAC/C,0BAAwB,WAAW,SAAS;GAC5C,EACF,QAAQ,IAAI,aAAa,CAAC,MAAM,aAAW;AACzC,uBAAqBC,UAAQ,SAAS;GACtC,CACH,CAAC;AAGJ,QAAO;;AAGT,SAAgB,oBACd,IAAoC,aACb;AACvB,QAAO,KAAK,QAAQ,EAAE,UAAU;;AAGlC,SAAgB,yBAAuD;AACrE,KAAI,eAAe,QAAQ,EAAE,UAAU,aACrC,QAAO;;AAKX,SAAgB,qBACd,IAAoC,aACJ;AAChC,QAAO,KAAK,QAAQ,UAAU;;AAGhC,SAAgB,kBACd,IAAoC,aACpB;AAChB,QAAO,KAAK;;AAGd,eAAsB,mBACpB,SACe;AACR,CAAM,MAAM,qBAAqB,QAAQ;;AAGlD,eAAsB,qBAAoC;AACxD,KAAI,eAAe,KAAM;AACzB,EAAC,MAAM,aAAa,SAAS;AAC7B,2BAA0B;AAC1B,wBAAuB;AACvB,eAAc;;AAGhB,oBAAoB,eAAe,YAAY;CAC7C,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;AACxC,QAAO;EAAE,GAAG;EAAO,MAAM;EAAe;EACxC;AAEF,oBAAoB,gBAAgB,YAAY;CAC9C,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;AACxC,QAAO;EAAE,GAAG;EAAO,MAAM;EAAgB;EACzC"}
|
|
1
|
+
{"version":3,"file":"shared_highlighter.js","names":["highlighter: CachedOrLoadingHighlighterType","languageLoaders: Promise<ResolvedLanguage>[]","themeLoaders: Promise<ThemeRegistrationResolved>[]","themes"],"sources":["../../src/highlighter/shared_highlighter.ts"],"sourcesContent":["import {\n createHighlighter,\n createJavaScriptRegexEngine,\n createOnigurumaEngine,\n} from 'shiki';\n\nimport type {\n DiffsHighlighter,\n DiffsThemeNames,\n HighlighterTypes,\n SupportedLanguages,\n ThemeRegistrationResolved,\n} from '../types';\nimport type { ResolvedLanguage } from '../worker/types';\nimport { attachResolvedLanguages } from './languages/attachResolvedLanguages';\nimport { cleanUpResolvedLanguages } from './languages/cleanUpResolvedLanguages';\nimport { getResolvedOrResolveLanguage } from './languages/getResolvedOrResolveLanguage';\nimport { attachResolvedThemes } from './themes/attachResolvedThemes';\nimport { cleanUpResolvedThemes } from './themes/cleanUpResolvedThemes';\nimport { getResolvedOrResolveTheme } from './themes/getResolvedOrResolveTheme';\nimport { registerCustomTheme } from './themes/registerCustomTheme';\n\ntype CachedOrLoadingHighlighterType =\n | Promise<DiffsHighlighter>\n | DiffsHighlighter\n | undefined;\n\nlet highlighter: CachedOrLoadingHighlighterType;\n\ninterface HighlighterOptions {\n themes: DiffsThemeNames[];\n langs: SupportedLanguages[];\n preferredHighlighter?: HighlighterTypes;\n}\n\nexport async function getSharedHighlighter({\n themes,\n langs,\n preferredHighlighter = 'shiki-js',\n}: HighlighterOptions): Promise<DiffsHighlighter> {\n highlighter ??= createHighlighter({\n themes: [],\n langs: ['text'],\n engine:\n preferredHighlighter === 'shiki-wasm'\n ? createOnigurumaEngine(import('shiki/wasm'))\n : createJavaScriptRegexEngine(),\n }) as Promise<DiffsHighlighter>;\n\n const instance = isHighlighterLoading(highlighter)\n ? await highlighter\n : highlighter;\n highlighter = instance;\n\n const languageLoaders: Promise<ResolvedLanguage>[] = [];\n for (const language of langs) {\n if (language === 'text' || language === 'ansi') continue;\n const maybeResolvedLanguage = getResolvedOrResolveLanguage(language);\n if ('then' in maybeResolvedLanguage) {\n languageLoaders.push(maybeResolvedLanguage);\n } else {\n attachResolvedLanguages(maybeResolvedLanguage, instance);\n }\n }\n\n const themeLoaders: Promise<ThemeRegistrationResolved>[] = [];\n for (const themeName of themes) {\n const maybeResolvedTheme = getResolvedOrResolveTheme(themeName);\n if ('then' in maybeResolvedTheme) {\n themeLoaders.push(maybeResolvedTheme);\n } else {\n attachResolvedThemes(maybeResolvedTheme, highlighter);\n }\n }\n\n // If we need to load any languages or themes, lets do that now\n if (languageLoaders.length > 0 || themeLoaders.length > 0) {\n await Promise.all([\n Promise.all(languageLoaders).then((languages) => {\n attachResolvedLanguages(languages, instance);\n }),\n Promise.all(themeLoaders).then((themes) => {\n attachResolvedThemes(themes, instance);\n }),\n ]);\n }\n\n return instance;\n}\n\nexport function isHighlighterLoaded(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is DiffsHighlighter {\n return h != null && !('then' in h);\n}\n\nexport function getHighlighterIfLoaded(): DiffsHighlighter | undefined {\n if (highlighter != null && !('then' in highlighter)) {\n return highlighter;\n }\n return undefined;\n}\n\nexport function isHighlighterLoading(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is Promise<DiffsHighlighter> {\n return h != null && 'then' in h;\n}\n\nexport function isHighlighterNull(\n h: CachedOrLoadingHighlighterType = highlighter\n): h is undefined {\n return h == null;\n}\n\nexport async function preloadHighlighter(\n options: HighlighterOptions\n): Promise<void> {\n return void (await getSharedHighlighter(options));\n}\n\nexport async function disposeHighlighter(): Promise<void> {\n if (highlighter == null) return;\n (await highlighter).dispose();\n cleanUpResolvedLanguages();\n cleanUpResolvedThemes();\n highlighter = undefined;\n}\n\nregisterCustomTheme('pierre-dark', async () => {\n const { default: theme } = await import('@pierre/theme/pierre-dark');\n return { ...theme, name: 'pierre-dark' } as ThemeRegistrationResolved;\n});\n\nregisterCustomTheme('pierre-dark-soft', async () => {\n const { default: theme } = await import('@pierre/theme/pierre-dark-soft');\n return { ...theme, name: 'pierre-dark-soft' } as ThemeRegistrationResolved;\n});\n\nregisterCustomTheme('pierre-light', async () => {\n const { default: theme } = await import('@pierre/theme/pierre-light');\n return { ...theme, name: 'pierre-light' } as ThemeRegistrationResolved;\n});\n\nregisterCustomTheme('pierre-light-soft', async () => {\n const { default: theme } = await import('@pierre/theme/pierre-light-soft');\n return { ...theme, name: 'pierre-light-soft' } as ThemeRegistrationResolved;\n});\n"],"mappings":";;;;;;;;;;AA2BA,IAAIA;AAQJ,eAAsB,qBAAqB,EACzC,QACA,OACA,uBAAuB,cACyB;AAChD,iBAAgB,kBAAkB;EAChC,QAAQ,EAAE;EACV,OAAO,CAAC,OAAO;EACf,QACE,yBAAyB,eACrB,sBAAsB,OAAO,cAAc,GAC3C,6BAA6B;EACpC,CAAC;CAEF,MAAM,WAAW,qBAAqB,YAAY,GAC9C,MAAM,cACN;AACJ,eAAc;CAEd,MAAMC,kBAA+C,EAAE;AACvD,MAAK,MAAM,YAAY,OAAO;AAC5B,MAAI,aAAa,UAAU,aAAa,OAAQ;EAChD,MAAM,wBAAwB,6BAA6B,SAAS;AACpE,MAAI,UAAU,sBACZ,iBAAgB,KAAK,sBAAsB;MAE3C,yBAAwB,uBAAuB,SAAS;;CAI5D,MAAMC,eAAqD,EAAE;AAC7D,MAAK,MAAM,aAAa,QAAQ;EAC9B,MAAM,qBAAqB,0BAA0B,UAAU;AAC/D,MAAI,UAAU,mBACZ,cAAa,KAAK,mBAAmB;MAErC,sBAAqB,oBAAoB,YAAY;;AAKzD,KAAI,gBAAgB,SAAS,KAAK,aAAa,SAAS,EACtD,OAAM,QAAQ,IAAI,CAChB,QAAQ,IAAI,gBAAgB,CAAC,MAAM,cAAc;AAC/C,0BAAwB,WAAW,SAAS;GAC5C,EACF,QAAQ,IAAI,aAAa,CAAC,MAAM,aAAW;AACzC,uBAAqBC,UAAQ,SAAS;GACtC,CACH,CAAC;AAGJ,QAAO;;AAGT,SAAgB,oBACd,IAAoC,aACb;AACvB,QAAO,KAAK,QAAQ,EAAE,UAAU;;AAGlC,SAAgB,yBAAuD;AACrE,KAAI,eAAe,QAAQ,EAAE,UAAU,aACrC,QAAO;;AAKX,SAAgB,qBACd,IAAoC,aACJ;AAChC,QAAO,KAAK,QAAQ,UAAU;;AAGhC,SAAgB,kBACd,IAAoC,aACpB;AAChB,QAAO,KAAK;;AAGd,eAAsB,mBACpB,SACe;AACR,CAAM,MAAM,qBAAqB,QAAQ;;AAGlD,eAAsB,qBAAoC;AACxD,KAAI,eAAe,KAAM;AACzB,EAAC,MAAM,aAAa,SAAS;AAC7B,2BAA0B;AAC1B,wBAAuB;AACvB,eAAc;;AAGhB,oBAAoB,eAAe,YAAY;CAC7C,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;AACxC,QAAO;EAAE,GAAG;EAAO,MAAM;EAAe;EACxC;AAEF,oBAAoB,oBAAoB,YAAY;CAClD,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;AACxC,QAAO;EAAE,GAAG;EAAO,MAAM;EAAoB;EAC7C;AAEF,oBAAoB,gBAAgB,YAAY;CAC9C,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;AACxC,QAAO;EAAE,GAAG;EAAO,MAAM;EAAgB;EACzC;AAEF,oBAAoB,qBAAqB,YAAY;CACnD,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;AACxC,QAAO;EAAE,GAAG;EAAO,MAAM;EAAqB;EAC9C"}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,6 +40,8 @@ import { dequeueRender, queueRender } from "./managers/UniversalRenderingManager
|
|
|
40
40
|
import { SVGSpriteNames, SVGSpriteSheet } from "./sprite.js";
|
|
41
41
|
import { areDiffLineAnnotationsEqual } from "./utils/areDiffLineAnnotationsEqual.js";
|
|
42
42
|
import { areDiffRenderOptionsEqual } from "./utils/areDiffRenderOptionsEqual.js";
|
|
43
|
+
import { areDiffTargetsEqual } from "./utils/areDiffTargetsEqual.js";
|
|
44
|
+
import { areFileRenderOptionsEqual } from "./utils/areFileRenderOptionsEqual.js";
|
|
43
45
|
import { areFilesEqual } from "./utils/areFilesEqual.js";
|
|
44
46
|
import { areHunkDataEqual } from "./utils/areHunkDataEqual.js";
|
|
45
47
|
import { areLineAnnotationsEqual } from "./utils/areLineAnnotationsEqual.js";
|
|
@@ -68,6 +70,7 @@ import { createTransformerWithState } from "./utils/createTransformerWithState.j
|
|
|
68
70
|
import { createUnsafeCSSStyleNode } from "./utils/createUnsafeCSSStyleNode.js";
|
|
69
71
|
import { createWindowFromScrollPosition } from "./utils/createWindowFromScrollPosition.js";
|
|
70
72
|
import { patchScrollbarGutterSize, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS } from "./utils/cssWrappers.js";
|
|
73
|
+
import { detachString, releaseStringDetachBuffer } from "./utils/detachString.js";
|
|
71
74
|
import { diffAcceptRejectHunk } from "./utils/diffAcceptRejectHunk.js";
|
|
72
75
|
import { formatCSSVariablePrefix } from "./utils/formatCSSVariablePrefix.js";
|
|
73
76
|
import { EXTENSION_TO_FILE_FORMAT, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, replaceCustomExtensions, setCustomExtension } from "./utils/getFiletypeFromFileName.js";
|
|
@@ -89,6 +92,7 @@ import { createDiffSpanDecoration, pushOrJoinSpan } from "./utils/parseDiffDecor
|
|
|
89
92
|
import { parseDiffFromFile } from "./utils/parseDiffFromFile.js";
|
|
90
93
|
import { ParsedLine, parseLineType } from "./utils/parseLineType.js";
|
|
91
94
|
import { parsePatchFiles, processFile, processPatch } from "./utils/parsePatchFiles.js";
|
|
95
|
+
import { prefersReducedMotion } from "./utils/prefersReducedMotion.js";
|
|
92
96
|
import { prerenderHTMLIfNecessary } from "./utils/prerenderHTMLIfNecessary.js";
|
|
93
97
|
import { processLine } from "./utils/processLine.js";
|
|
94
98
|
import { renderDiffWithHighlighter } from "./utils/renderDiffWithHighlighter.js";
|
|
@@ -101,4 +105,4 @@ import { trimPatchContext } from "./utils/trimPatchContext.js";
|
|
|
101
105
|
import { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderProps } from "./components/FileDiff.js";
|
|
102
106
|
import { CodeView, CodeViewCoordinator, CodeViewLineSelection, CodeViewOptions, CodeViewRenderedDiffItem, CodeViewRenderedFileItem, CodeViewRenderedItem, CodeViewScrollListener } from "./components/CodeView.js";
|
|
103
107
|
import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
|
|
104
|
-
export { ALTERNATE_FILE_NAMES_GIT, AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, AttachedLanguages, AttachedThemes, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, CodeToTokenTransformStream, CodeToTokenTransformStreamOptions, CodeView, CodeViewCoordinator, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewItemScrollTarget, CodeViewLayout, CodeViewLineScrollTarget, CodeViewLineSelection, CodeViewOptions, CodeViewPositionScrollTarget, CodeViewRangeScrollTarget, CodeViewRenderedDiffItem, CodeViewRenderedFileItem, CodeViewRenderedItem, CodeViewScrollBehavior, CodeViewScrollListener, CodeViewScrollTarget, ConflictResolverTypes, ContextContent, CreateFileHeaderElementProps, CreatePatchOptionsNonabortable, CustomPreProperties, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffHunksRenderer, DiffHunksRendererOptions, DiffHunksRendererOptionsWithDefaults, DiffIndicators, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsHighlighter, DiffsThemeNames, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, ExpansionDirections, ExtensionFormatMap, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileContents, FileDiff, FileDiffHydrationProps, FileDiffMetadata, FileDiffOptions, FileDiffRenderProps, FileHeaderRenderMode, FileHydrateProps, FileOptions, FileRenderProps, FileRenderResult, FileRenderer, FileRendererOptions, FileStream, FileStreamOptions, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GIT_DIFF_FILE_BREAK_REGEX, GapSpan, GetHoveredLineResult, GetLineIndexUtility, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, HunksRenderResult, INDEX_LINE_METADATA, InjectedRow, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LanguageRegistration, LineAnnotation, LineDecoration, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, LogTypes, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, MergeConflictActionPayload, MergeConflictActionTarget, MergeConflictActionsTypeOption, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, NumericScrollLineAnchor, ObservedAnnotationNodes, ObservedGridNodes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, OnTokenEventProps, ParsedLine, ParsedPatch, PrePropertiesConfig, ProcessFileConflictData, RecallToken, RegisteredCustomLanguages, RegisteredCustomThemes, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderMergeConflictActions, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, RenderedLineContext, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteNames, SVGSpriteSheet, ScrollSyncManager, SelectedLineRange, SelectionPoint, SelectionSide, SelectionWriteOptions, SharedRenderState, ShikiStreamTokenizer, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions, ShikiTransformer, SmoothScrollSettings, SplitInjectedRow, SplitInjectedRowPlacement, SplitLineDecorationProps, StickySpecs, SupportedLanguages, THEME_CSS_ATTRIBUTE, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, TokenEventBase, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnifiedInjectedRowPlacement, UnifiedLineDecorationProps, UnresolvedFile, UnresolvedFileHydrationProps, UnresolvedFileOptions, UnresolvedFileRenderProps, VirtualFileMetrics, VirtualWindowSpecs, VirtualizedFile, VirtualizedFileDiff, Virtualizer, VirtualizerConfig, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, dequeueRender, diffAcceptRejectHunk, disposeHighlighter, findCodeElement, formatCSSVariablePrefix, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, patchScrollbarGutterSize, pluckInteractionOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, replaceCustomExtensions, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setCustomExtension, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
|
|
108
|
+
export { ALTERNATE_FILE_NAMES_GIT, AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, AttachedLanguages, AttachedThemes, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, CodeToTokenTransformStream, CodeToTokenTransformStreamOptions, CodeView, CodeViewCoordinator, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewItemScrollTarget, CodeViewLayout, CodeViewLineScrollTarget, CodeViewLineSelection, CodeViewOptions, CodeViewPositionScrollTarget, CodeViewRangeScrollTarget, CodeViewRenderedDiffItem, CodeViewRenderedFileItem, CodeViewRenderedItem, CodeViewScrollBehavior, CodeViewScrollListener, CodeViewScrollTarget, ConflictResolverTypes, ContextContent, CreateFileHeaderElementProps, CreatePatchOptionsNonabortable, CustomPreProperties, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffHunksRenderer, DiffHunksRendererOptions, DiffHunksRendererOptionsWithDefaults, DiffIndicators, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsHighlighter, DiffsThemeNames, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, ExpansionDirections, ExtensionFormatMap, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileContents, FileDiff, FileDiffHydrationProps, FileDiffMetadata, FileDiffOptions, FileDiffRenderProps, FileHeaderRenderMode, FileHydrateProps, FileOptions, FileRenderProps, FileRenderResult, FileRenderer, FileRendererOptions, FileStream, FileStreamOptions, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GIT_DIFF_FILE_BREAK_REGEX, GapSpan, GetHoveredLineResult, GetLineIndexUtility, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, HunksRenderResult, INDEX_LINE_METADATA, InjectedRow, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LanguageRegistration, LineAnnotation, LineDecoration, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, LogTypes, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, MergeConflictActionPayload, MergeConflictActionTarget, MergeConflictActionsTypeOption, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, NumericScrollLineAnchor, ObservedAnnotationNodes, ObservedGridNodes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, OnTokenEventProps, ParsedLine, ParsedPatch, PrePropertiesConfig, ProcessFileConflictData, RecallToken, RegisteredCustomLanguages, RegisteredCustomThemes, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderMergeConflictActions, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, RenderedLineContext, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteNames, SVGSpriteSheet, ScrollSyncManager, SelectedLineRange, SelectionPoint, SelectionSide, SelectionWriteOptions, SharedRenderState, ShikiStreamTokenizer, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions, ShikiTransformer, SmoothScrollSettings, SplitInjectedRow, SplitInjectedRowPlacement, SplitLineDecorationProps, StickySpecs, SupportedLanguages, THEME_CSS_ATTRIBUTE, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, TokenEventBase, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnifiedInjectedRowPlacement, UnifiedLineDecorationProps, UnresolvedFile, UnresolvedFileHydrationProps, UnresolvedFileOptions, UnresolvedFileRenderProps, VirtualFileMetrics, VirtualWindowSpecs, VirtualizedFile, VirtualizedFileDiff, Virtualizer, VirtualizerConfig, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areDiffTargetsEqual, areFileRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, dequeueRender, detachString, diffAcceptRejectHunk, disposeHighlighter, findCodeElement, formatCSSVariablePrefix, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, patchScrollbarGutterSize, pluckInteractionOptions, prefersReducedMotion, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, releaseStringDetachBuffer, renderDiffWithHighlighter, renderFileWithHighlighter, replaceCustomExtensions, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setCustomExtension, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,9 @@ import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CU
|
|
|
2
2
|
import { dequeueRender, queueRender } from "./managers/UniversalRenderingManager.js";
|
|
3
3
|
import { areObjectsEqual } from "./utils/areObjectsEqual.js";
|
|
4
4
|
import { areSelectionsEqual } from "./utils/areSelectionsEqual.js";
|
|
5
|
-
import { createWindowFromScrollPosition } from "./utils/createWindowFromScrollPosition.js";
|
|
6
5
|
import { areThemesEqual } from "./utils/areThemesEqual.js";
|
|
6
|
+
import { createWindowFromScrollPosition } from "./utils/createWindowFromScrollPosition.js";
|
|
7
|
+
import { prefersReducedMotion } from "./utils/prefersReducedMotion.js";
|
|
7
8
|
import { areOptionsEqual } from "./utils/areOptionsEqual.js";
|
|
8
9
|
import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
|
|
9
10
|
import { createGutterUtilityElement } from "./utils/createGutterUtilityElement.js";
|
|
@@ -26,6 +27,8 @@ import { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHig
|
|
|
26
27
|
import { getThemes } from "./utils/getThemes.js";
|
|
27
28
|
import { areThemesAttached } from "./highlighter/themes/areThemesAttached.js";
|
|
28
29
|
import { hasResolvedThemes } from "./highlighter/themes/hasResolvedThemes.js";
|
|
30
|
+
import { areFileRenderOptionsEqual } from "./utils/areFileRenderOptionsEqual.js";
|
|
31
|
+
import { areFilesEqual } from "./utils/areFilesEqual.js";
|
|
29
32
|
import { areRenderRangesEqual } from "./utils/areRenderRangesEqual.js";
|
|
30
33
|
import { createAnnotationElement } from "./utils/createAnnotationElement.js";
|
|
31
34
|
import { getIconForType } from "./utils/getIconForType.js";
|
|
@@ -43,7 +46,6 @@ import { getLineNodes } from "./utils/getLineNodes.js";
|
|
|
43
46
|
import { renderFileWithHighlighter } from "./utils/renderFileWithHighlighter.js";
|
|
44
47
|
import { FileRenderer } from "./renderers/FileRenderer.js";
|
|
45
48
|
import { SVGSpriteSheet } from "./sprite.js";
|
|
46
|
-
import { areFilesEqual } from "./utils/areFilesEqual.js";
|
|
47
49
|
import { areLineAnnotationsEqual } from "./utils/areLineAnnotationsEqual.js";
|
|
48
50
|
import { arePrePropertiesEqual } from "./utils/arePrePropertiesEqual.js";
|
|
49
51
|
import { createAnnotationWrapperNode } from "./utils/createAnnotationWrapperNode.js";
|
|
@@ -55,10 +57,12 @@ import { prerenderHTMLIfNecessary } from "./utils/prerenderHTMLIfNecessary.js";
|
|
|
55
57
|
import { setPreNodeProperties } from "./utils/setWrapperNodeProps.js";
|
|
56
58
|
import { File } from "./components/File.js";
|
|
57
59
|
import { VirtualizedFile } from "./components/VirtualizedFile.js";
|
|
60
|
+
import { detachString, releaseStringDetachBuffer } from "./utils/detachString.js";
|
|
58
61
|
import { parsePatchFiles, processFile, processPatch } from "./utils/parsePatchFiles.js";
|
|
59
62
|
import { parseDiffFromFile } from "./utils/parseDiffFromFile.js";
|
|
60
63
|
import { ScrollSyncManager } from "./managers/ScrollSyncManager.js";
|
|
61
64
|
import { areDiffRenderOptionsEqual } from "./utils/areDiffRenderOptionsEqual.js";
|
|
65
|
+
import { areDiffTargetsEqual } from "./utils/areDiffTargetsEqual.js";
|
|
62
66
|
import { createEmptyRowBuffer } from "./utils/createEmptyRowBuffer.js";
|
|
63
67
|
import { createNoNewlineElement } from "./utils/createNoNewlineElement.js";
|
|
64
68
|
import { createSeparator } from "./utils/createSeparator.js";
|
|
@@ -100,4 +104,4 @@ import { setLanguageOverride } from "./utils/setLanguageOverride.js";
|
|
|
100
104
|
import { trimPatchContext } from "./utils/trimPatchContext.js";
|
|
101
105
|
import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
|
|
102
106
|
|
|
103
|
-
export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, CodeToTokenTransformStream, CodeView, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, DiffHunksRenderer, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, InteractionManager, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, RegisteredCustomLanguages, RegisteredCustomThemes, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteSheet, ScrollSyncManager, ShikiStreamTokenizer, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnresolvedFile, VirtualizedFile, VirtualizedFileDiff, Virtualizer, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, dequeueRender, diffAcceptRejectHunk, disposeHighlighter, findCodeElement, formatCSSVariablePrefix, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, patchScrollbarGutterSize, pluckInteractionOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, replaceCustomExtensions, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setCustomExtension, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
|
|
107
|
+
export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, CodeToTokenTransformStream, CodeView, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, DiffHunksRenderer, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, InteractionManager, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, RegisteredCustomLanguages, RegisteredCustomThemes, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteSheet, ScrollSyncManager, ShikiStreamTokenizer, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnresolvedFile, VirtualizedFile, VirtualizedFileDiff, Virtualizer, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areDiffTargetsEqual, areFileRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, dequeueRender, detachString, diffAcceptRejectHunk, disposeHighlighter, findCodeElement, formatCSSVariablePrefix, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, patchScrollbarGutterSize, pluckInteractionOptions, prefersReducedMotion, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, releaseStringDetachBuffer, renderDiffWithHighlighter, renderFileWithHighlighter, replaceCustomExtensions, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setCustomExtension, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
|
|
@@ -111,6 +111,8 @@ declare class DiffHunksRenderer<LAnnotation = undefined> {
|
|
|
111
111
|
private asyncHighlight;
|
|
112
112
|
private renderDiffWithHighlighter;
|
|
113
113
|
onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions, highlighted?: boolean): void;
|
|
114
|
+
private getMatchingWorkerResultCache;
|
|
115
|
+
private hasHighlightedRenderCache;
|
|
114
116
|
onHighlightError(error: unknown): void;
|
|
115
117
|
private getTokenizeMaxLength;
|
|
116
118
|
private processDiffResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiffHunksRenderer.d.ts","names":["ElementContent","Element","HASTElement","Properties","AnnotationSpan","BaseDiffOptions","BaseDiffOptionsWithDefaults","CustomPreProperties","DiffLineAnnotation","ExpansionDirections","FileDiffMetadata","FileHeaderRenderMode","HunkData","HunkExpansionRegion","LineTypes","RenderDiffOptions","RenderRange","ThemedDiffResult","DiffLineMetadata","WorkerPoolManager","DiffHunksRendererOptions","DiffHunksRendererOptionsWithDefaults","Omit","UnifiedLineDecorationProps","SplitLineDecorationProps","LineDecoration","RenderedLineContext","InjectedRow","SplitInjectedRow","UnifiedInjectedRowPlacement","SplitInjectedRowPlacement","HunksRenderResult","DiffHunksRenderer","LAnnotation","Partial","Map","lineType","side","type","Promise"],"sources":["../../src/renderers/DiffHunksRenderer.d.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement, Properties } from 'hast';\nimport type { AnnotationSpan, BaseDiffOptions, BaseDiffOptionsWithDefaults, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, FileHeaderRenderMode, HunkData, HunkExpansionRegion, LineTypes, RenderDiffOptions, RenderRange, ThemedDiffResult } from '../types';\nimport type { DiffLineMetadata } from '../utils/iterateOverDiff';\nimport type { WorkerPoolManager } from '../worker';\nexport interface DiffHunksRendererOptions extends BaseDiffOptions {\n headerRenderMode?: FileHeaderRenderMode;\n}\nexport interface DiffHunksRendererOptionsWithDefaults extends Omit<BaseDiffOptionsWithDefaults, 'themeType'> {\n headerRenderMode: FileHeaderRenderMode;\n}\nexport interface UnifiedLineDecorationProps {\n type: 'context' | 'context-expanded' | 'change';\n lineType: LineTypes;\n additionLineIndex: number | undefined;\n deletionLineIndex: number | undefined;\n}\nexport interface SplitLineDecorationProps {\n side: 'deletions' | 'additions';\n type: 'context' | 'context-expanded' | 'change';\n lineIndex: number | undefined;\n}\nexport interface LineDecoration {\n gutterLineType: LineTypes;\n gutterProperties?: Properties;\n contentProperties?: Properties;\n}\nexport interface RenderedLineContext {\n type: 'context' | 'context-expanded' | 'change';\n hunkIndex: number;\n lineIndex: number;\n unifiedLineIndex: number;\n splitLineIndex: number;\n deletionLine?: DiffLineMetadata;\n additionLine?: DiffLineMetadata;\n}\nexport interface InjectedRow {\n content: HASTElement;\n gutter: HASTElement;\n}\nexport interface SplitInjectedRow {\n deletion: InjectedRow | undefined;\n addition: InjectedRow | undefined;\n}\nexport interface UnifiedInjectedRowPlacement {\n before?: InjectedRow[];\n after?: InjectedRow[];\n}\nexport interface SplitInjectedRowPlacement {\n before?: SplitInjectedRow[];\n after?: SplitInjectedRow[];\n}\nexport interface HunksRenderResult {\n unifiedGutterAST: ElementContent[] | undefined;\n unifiedContentAST: ElementContent[] | undefined;\n deletionsGutterAST: ElementContent[] | undefined;\n deletionsContentAST: ElementContent[] | undefined;\n additionsGutterAST: ElementContent[] | undefined;\n additionsContentAST: ElementContent[] | undefined;\n hunkData: HunkData[];\n css: string;\n preNode: HASTElement;\n headerElement: HASTElement | undefined;\n totalLines: number;\n themeStyles: string;\n baseThemeType: 'light' | 'dark' | undefined;\n rowCount: number;\n bufferBefore: number;\n bufferAfter: number;\n}\nexport declare class DiffHunksRenderer<LAnnotation = undefined> {\n options: DiffHunksRendererOptions;\n private onRenderUpdate?;\n private workerManager?;\n readonly __id: string;\n private highlighter;\n private diff;\n private expandedHunks;\n private deletionAnnotations;\n private additionAnnotations;\n private computedLang;\n private renderCache;\n constructor(options?: DiffHunksRendererOptions, onRenderUpdate?: (() => unknown) | undefined, workerManager?: WorkerPoolManager | undefined);\n cleanUp(): void;\n recycle(): void;\n setOptions(options: DiffHunksRendererOptions): void;\n mergeOptions(options: Partial<DiffHunksRendererOptions>): void;\n expandHunk(index: number, direction: ExpansionDirections, expansionLineCount?: number): void;\n getExpandedHunk(hunkIndex: number): HunkExpansionRegion;\n getExpandedHunksMap(): Map<number, HunkExpansionRegion>;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n protected getUnifiedLineDecoration({ lineType }: UnifiedLineDecorationProps): LineDecoration;\n protected getSplitLineDecoration({ side, type }: SplitLineDecorationProps): LineDecoration;\n protected createAnnotationElement(span: AnnotationSpan): HASTElement;\n protected getUnifiedInjectedRowsForLine?: (ctx: RenderedLineContext) => UnifiedInjectedRowPlacement | undefined;\n protected getSplitInjectedRowsForLine?: (ctx: RenderedLineContext) => SplitInjectedRowPlacement | undefined;\n protected getOptionsWithDefaults(): DiffHunksRendererOptionsWithDefaults;\n private initializeHighlighter;\n hydrate(diff: FileDiffMetadata | undefined): void;\n private getRenderOptions;\n renderDiff(diff?: FileDiffMetadata | undefined, renderRange?: RenderRange): HunksRenderResult | undefined;\n asyncRender(diff: FileDiffMetadata, renderRange?: RenderRange): Promise<HunksRenderResult>;\n protected createPreElement(split: boolean, totalLines: number, customProperties?: CustomPreProperties): HASTElement;\n private asyncHighlight;\n private renderDiffWithHighlighter;\n onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions, highlighted?: boolean): void;\n onHighlightError(error: unknown): void;\n private getTokenizeMaxLength;\n private processDiffResult;\n renderCodeAST(type: 'unified' | 'deletions' | 'additions', result: HunksRenderResult): ElementContent[] | undefined;\n renderFullAST(result: HunksRenderResult, children?: ElementContent[]): HASTElement;\n renderFullHTML(result: HunksRenderResult, tempChildren?: ElementContent[]): string;\n renderPartialHTML(children: ElementContent[], columnType?: 'unified' | 'deletions' | 'additions'): string;\n private getAnnotations;\n private renderHeader;\n}\n//# sourceMappingURL=DiffHunksRenderer.d.ts.map"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DiffHunksRenderer.d.ts","names":["ElementContent","Element","HASTElement","Properties","AnnotationSpan","BaseDiffOptions","BaseDiffOptionsWithDefaults","CustomPreProperties","DiffLineAnnotation","ExpansionDirections","FileDiffMetadata","FileHeaderRenderMode","HunkData","HunkExpansionRegion","LineTypes","RenderDiffOptions","RenderRange","ThemedDiffResult","DiffLineMetadata","WorkerPoolManager","DiffHunksRendererOptions","DiffHunksRendererOptionsWithDefaults","Omit","UnifiedLineDecorationProps","SplitLineDecorationProps","LineDecoration","RenderedLineContext","InjectedRow","SplitInjectedRow","UnifiedInjectedRowPlacement","SplitInjectedRowPlacement","HunksRenderResult","DiffHunksRenderer","LAnnotation","Partial","Map","lineType","side","type","Promise"],"sources":["../../src/renderers/DiffHunksRenderer.d.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement, Properties } from 'hast';\nimport type { AnnotationSpan, BaseDiffOptions, BaseDiffOptionsWithDefaults, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, FileHeaderRenderMode, HunkData, HunkExpansionRegion, LineTypes, RenderDiffOptions, RenderRange, ThemedDiffResult } from '../types';\nimport type { DiffLineMetadata } from '../utils/iterateOverDiff';\nimport type { WorkerPoolManager } from '../worker';\nexport interface DiffHunksRendererOptions extends BaseDiffOptions {\n headerRenderMode?: FileHeaderRenderMode;\n}\nexport interface DiffHunksRendererOptionsWithDefaults extends Omit<BaseDiffOptionsWithDefaults, 'themeType'> {\n headerRenderMode: FileHeaderRenderMode;\n}\nexport interface UnifiedLineDecorationProps {\n type: 'context' | 'context-expanded' | 'change';\n lineType: LineTypes;\n additionLineIndex: number | undefined;\n deletionLineIndex: number | undefined;\n}\nexport interface SplitLineDecorationProps {\n side: 'deletions' | 'additions';\n type: 'context' | 'context-expanded' | 'change';\n lineIndex: number | undefined;\n}\nexport interface LineDecoration {\n gutterLineType: LineTypes;\n gutterProperties?: Properties;\n contentProperties?: Properties;\n}\nexport interface RenderedLineContext {\n type: 'context' | 'context-expanded' | 'change';\n hunkIndex: number;\n lineIndex: number;\n unifiedLineIndex: number;\n splitLineIndex: number;\n deletionLine?: DiffLineMetadata;\n additionLine?: DiffLineMetadata;\n}\nexport interface InjectedRow {\n content: HASTElement;\n gutter: HASTElement;\n}\nexport interface SplitInjectedRow {\n deletion: InjectedRow | undefined;\n addition: InjectedRow | undefined;\n}\nexport interface UnifiedInjectedRowPlacement {\n before?: InjectedRow[];\n after?: InjectedRow[];\n}\nexport interface SplitInjectedRowPlacement {\n before?: SplitInjectedRow[];\n after?: SplitInjectedRow[];\n}\nexport interface HunksRenderResult {\n unifiedGutterAST: ElementContent[] | undefined;\n unifiedContentAST: ElementContent[] | undefined;\n deletionsGutterAST: ElementContent[] | undefined;\n deletionsContentAST: ElementContent[] | undefined;\n additionsGutterAST: ElementContent[] | undefined;\n additionsContentAST: ElementContent[] | undefined;\n hunkData: HunkData[];\n css: string;\n preNode: HASTElement;\n headerElement: HASTElement | undefined;\n totalLines: number;\n themeStyles: string;\n baseThemeType: 'light' | 'dark' | undefined;\n rowCount: number;\n bufferBefore: number;\n bufferAfter: number;\n}\nexport declare class DiffHunksRenderer<LAnnotation = undefined> {\n options: DiffHunksRendererOptions;\n private onRenderUpdate?;\n private workerManager?;\n readonly __id: string;\n private highlighter;\n private diff;\n private expandedHunks;\n private deletionAnnotations;\n private additionAnnotations;\n private computedLang;\n private renderCache;\n constructor(options?: DiffHunksRendererOptions, onRenderUpdate?: (() => unknown) | undefined, workerManager?: WorkerPoolManager | undefined);\n cleanUp(): void;\n recycle(): void;\n setOptions(options: DiffHunksRendererOptions): void;\n mergeOptions(options: Partial<DiffHunksRendererOptions>): void;\n expandHunk(index: number, direction: ExpansionDirections, expansionLineCount?: number): void;\n getExpandedHunk(hunkIndex: number): HunkExpansionRegion;\n getExpandedHunksMap(): Map<number, HunkExpansionRegion>;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n protected getUnifiedLineDecoration({ lineType }: UnifiedLineDecorationProps): LineDecoration;\n protected getSplitLineDecoration({ side, type }: SplitLineDecorationProps): LineDecoration;\n protected createAnnotationElement(span: AnnotationSpan): HASTElement;\n protected getUnifiedInjectedRowsForLine?: (ctx: RenderedLineContext) => UnifiedInjectedRowPlacement | undefined;\n protected getSplitInjectedRowsForLine?: (ctx: RenderedLineContext) => SplitInjectedRowPlacement | undefined;\n protected getOptionsWithDefaults(): DiffHunksRendererOptionsWithDefaults;\n private initializeHighlighter;\n hydrate(diff: FileDiffMetadata | undefined): void;\n private getRenderOptions;\n renderDiff(diff?: FileDiffMetadata | undefined, renderRange?: RenderRange): HunksRenderResult | undefined;\n asyncRender(diff: FileDiffMetadata, renderRange?: RenderRange): Promise<HunksRenderResult>;\n protected createPreElement(split: boolean, totalLines: number, customProperties?: CustomPreProperties): HASTElement;\n private asyncHighlight;\n private renderDiffWithHighlighter;\n onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions, highlighted?: boolean): void;\n private getMatchingWorkerResultCache;\n private hasHighlightedRenderCache;\n onHighlightError(error: unknown): void;\n private getTokenizeMaxLength;\n private processDiffResult;\n renderCodeAST(type: 'unified' | 'deletions' | 'additions', result: HunksRenderResult): ElementContent[] | undefined;\n renderFullAST(result: HunksRenderResult, children?: ElementContent[]): HASTElement;\n renderFullHTML(result: HunksRenderResult, tempChildren?: ElementContent[]): string;\n renderPartialHTML(children: ElementContent[], columnType?: 'unified' | 'deletions' | 'additions'): string;\n private getAnnotations;\n private renderHeader;\n}\n//# sourceMappingURL=DiffHunksRenderer.d.ts.map"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import { getLineAnnotationName } from "../utils/getLineAnnotationName.js";
|
|
|
14
14
|
import { shouldUseTokenTransformer } from "../utils/shouldUseTokenTransformer.js";
|
|
15
15
|
import { iterateOverDiff } from "../utils/iterateOverDiff.js";
|
|
16
16
|
import { areDiffRenderOptionsEqual } from "../utils/areDiffRenderOptionsEqual.js";
|
|
17
|
+
import { areDiffTargetsEqual } from "../utils/areDiffTargetsEqual.js";
|
|
17
18
|
import { createEmptyRowBuffer } from "../utils/createEmptyRowBuffer.js";
|
|
18
19
|
import { createNoNewlineElement } from "../utils/createNoNewlineElement.js";
|
|
19
20
|
import { createSeparator } from "../utils/createSeparator.js";
|
|
@@ -42,10 +43,8 @@ var DiffHunksRenderer = class {
|
|
|
42
43
|
if (workerManager?.isWorkingPool() !== true) this.highlighter = areThemesAttached(options.theme ?? DEFAULT_THEMES) ? getHighlighterIfLoaded() : void 0;
|
|
43
44
|
}
|
|
44
45
|
cleanUp() {
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
this.renderCache = void 0;
|
|
48
|
-
this.workerManager?.cleanUpPendingTasks(this);
|
|
46
|
+
this.recycle();
|
|
47
|
+
this.expandedHunks.clear();
|
|
49
48
|
this.workerManager = void 0;
|
|
50
49
|
this.onRenderUpdate = void 0;
|
|
51
50
|
}
|
|
@@ -53,7 +52,9 @@ var DiffHunksRenderer = class {
|
|
|
53
52
|
this.highlighter = void 0;
|
|
54
53
|
this.diff = void 0;
|
|
55
54
|
this.renderCache = void 0;
|
|
56
|
-
this.
|
|
55
|
+
this.additionAnnotations = {};
|
|
56
|
+
this.deletionAnnotations = {};
|
|
57
|
+
this.workerManager?.cleanUpTasks(this);
|
|
57
58
|
}
|
|
58
59
|
setOptions(options) {
|
|
59
60
|
this.options = options;
|
|
@@ -172,28 +173,31 @@ var DiffHunksRenderer = class {
|
|
|
172
173
|
const { renderCache } = this;
|
|
173
174
|
if (renderCache?.result == null) return {
|
|
174
175
|
options,
|
|
175
|
-
|
|
176
|
+
forceHighlight: true
|
|
176
177
|
};
|
|
177
|
-
if (diff
|
|
178
|
+
if (!areDiffTargetsEqual(diff, renderCache.diff) || !areDiffRenderOptionsEqual(options, renderCache.options)) return {
|
|
178
179
|
options,
|
|
179
|
-
|
|
180
|
+
forceHighlight: true
|
|
180
181
|
};
|
|
181
182
|
return {
|
|
182
183
|
options,
|
|
183
|
-
|
|
184
|
+
forceHighlight: false
|
|
184
185
|
};
|
|
185
186
|
}
|
|
186
187
|
renderDiff(diff = this.renderCache?.diff, renderRange = DEFAULT_RENDER_RANGE) {
|
|
187
188
|
if (diff == null) return;
|
|
188
189
|
const { expandUnchanged = false, collapsedContextThreshold } = this.getOptionsWithDefaults();
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
190
|
+
let { options, forceHighlight } = this.getRenderOptions(diff);
|
|
191
|
+
const cache = this.getMatchingWorkerResultCache(diff, options);
|
|
192
|
+
if (cache != null && !this.hasHighlightedRenderCache(diff, options)) {
|
|
193
|
+
this.renderCache = {
|
|
194
|
+
diff,
|
|
195
|
+
highlighted: true,
|
|
196
|
+
renderRange: void 0,
|
|
197
|
+
...cache
|
|
198
|
+
};
|
|
199
|
+
forceHighlight = false;
|
|
200
|
+
}
|
|
197
201
|
const forcePlainText = isDiffMassive(diff, this.getTokenizeMaxLength());
|
|
198
202
|
this.renderCache ??= {
|
|
199
203
|
diff,
|
|
@@ -203,20 +207,20 @@ var DiffHunksRenderer = class {
|
|
|
203
207
|
renderRange: void 0
|
|
204
208
|
};
|
|
205
209
|
if (this.workerManager?.isWorkingPool() === true) {
|
|
206
|
-
if (forcePlainText || this.renderCache.result == null || !this.renderCache.highlighted && (diff
|
|
210
|
+
if (forcePlainText || this.renderCache.result == null || !this.renderCache.highlighted && (!areDiffTargetsEqual(diff, this.renderCache.diff) || !areRenderRangesEqual(this.renderCache.renderRange, renderRange))) {
|
|
207
211
|
this.renderCache.diff = diff;
|
|
208
212
|
this.renderCache.options = options;
|
|
209
213
|
this.renderCache.highlighted = false;
|
|
210
214
|
this.renderCache.result = this.workerManager.getPlainDiffAST(diff, renderRange.startingLine, renderRange.totalLines, isDefaultRenderRange(renderRange) ? true : expandUnchanged ? true : this.expandedHunks, collapsedContextThreshold);
|
|
211
215
|
this.renderCache.renderRange = renderRange;
|
|
212
216
|
}
|
|
213
|
-
if (renderRange.totalLines > 0 && !forcePlainText && (!this.renderCache.highlighted ||
|
|
217
|
+
if (renderRange.totalLines > 0 && !forcePlainText && (!this.renderCache.highlighted || forceHighlight)) this.workerManager.highlightDiffAST(this, diff);
|
|
214
218
|
} else {
|
|
215
219
|
this.computedLang = diff.lang ?? getFiletypeFromFileName(diff.name);
|
|
216
220
|
const hasThemes = this.highlighter != null && areThemesAttached(options.theme);
|
|
217
221
|
const hasLangs = this.highlighter != null && areLanguagesAttached(this.computedLang);
|
|
218
222
|
const canHighlight = !forcePlainText && hasLangs;
|
|
219
|
-
if (this.highlighter != null && hasThemes && (
|
|
223
|
+
if (this.highlighter != null && hasThemes && (forceHighlight || forcePlainText || !this.renderCache.highlighted && canHighlight || this.renderCache.result == null)) {
|
|
220
224
|
const { result, options: options$1 } = this.renderDiffWithHighlighter(diff, this.highlighter, forcePlainText || !hasLangs);
|
|
221
225
|
this.renderCache = {
|
|
222
226
|
diff,
|
|
@@ -272,7 +276,7 @@ var DiffHunksRenderer = class {
|
|
|
272
276
|
}
|
|
273
277
|
onHighlightSuccess(diff, result, options, highlighted = true) {
|
|
274
278
|
if (this.renderCache == null) return;
|
|
275
|
-
const triggerRenderUpdate = !this.renderCache.highlighted || !areDiffRenderOptionsEqual(this.renderCache.options, options) || this.renderCache.diff
|
|
279
|
+
const triggerRenderUpdate = !this.renderCache.highlighted || !areDiffRenderOptionsEqual(this.renderCache.options, options) || !areDiffTargetsEqual(this.renderCache.diff, diff);
|
|
276
280
|
this.renderCache = {
|
|
277
281
|
diff,
|
|
278
282
|
options,
|
|
@@ -282,6 +286,15 @@ var DiffHunksRenderer = class {
|
|
|
282
286
|
};
|
|
283
287
|
if (triggerRenderUpdate) this.onRenderUpdate?.();
|
|
284
288
|
}
|
|
289
|
+
getMatchingWorkerResultCache(diff, options) {
|
|
290
|
+
const cache = this.workerManager?.getDiffResultCache(diff);
|
|
291
|
+
if (cache == null || !areDiffRenderOptionsEqual(options, cache.options)) return;
|
|
292
|
+
return cache;
|
|
293
|
+
}
|
|
294
|
+
hasHighlightedRenderCache(diff, options) {
|
|
295
|
+
const { renderCache } = this;
|
|
296
|
+
return renderCache?.result != null && renderCache.highlighted && areDiffTargetsEqual(diff, renderCache.diff) && areDiffRenderOptionsEqual(options, renderCache.options);
|
|
297
|
+
}
|
|
285
298
|
onHighlightError(error) {
|
|
286
299
|
console.error(error);
|
|
287
300
|
}
|