@pierre/diffs 1.4.0 → 1.4.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.
Files changed (43) hide show
  1. package/dist/components/CodeView.d.ts +2 -0
  2. package/dist/components/CodeView.d.ts.map +1 -1
  3. package/dist/components/CodeView.js +36 -1
  4. package/dist/components/CodeView.js.map +1 -1
  5. package/dist/components/File.d.ts +7 -3
  6. package/dist/components/File.d.ts.map +1 -1
  7. package/dist/components/File.js +70 -53
  8. package/dist/components/File.js.map +1 -1
  9. package/dist/components/FileDiff.d.ts +7 -3
  10. package/dist/components/FileDiff.d.ts.map +1 -1
  11. package/dist/components/FileDiff.js +79 -49
  12. package/dist/components/FileDiff.js.map +1 -1
  13. package/dist/components/FileStream.js +1 -1
  14. package/dist/components/VirtualizedFile.d.ts +1 -0
  15. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  16. package/dist/components/VirtualizedFile.js +8 -8
  17. package/dist/components/VirtualizedFile.js.map +1 -1
  18. package/dist/components/VirtualizedFileDiff.d.ts +1 -0
  19. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  20. package/dist/components/VirtualizedFileDiff.js +8 -8
  21. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  22. package/dist/editor/editor.d.ts +1 -1
  23. package/dist/editor/editor.d.ts.map +1 -1
  24. package/dist/editor/editor.js +8 -4
  25. package/dist/editor/editor.js.map +1 -1
  26. package/dist/highlighter/shared_highlighter.d.ts +6 -2
  27. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  28. package/dist/highlighter/shared_highlighter.js +7 -3
  29. package/dist/highlighter/shared_highlighter.js.map +1 -1
  30. package/dist/highlighter/themes/areThemesAttached.js +1 -1
  31. package/dist/index.js +13 -13
  32. package/dist/renderers/DiffHunksRenderer.d.ts +1 -1
  33. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  34. package/dist/renderers/DiffHunksRenderer.js +8 -9
  35. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  36. package/dist/renderers/FileRenderer.d.ts +1 -1
  37. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  38. package/dist/renderers/FileRenderer.js +5 -5
  39. package/dist/renderers/FileRenderer.js.map +1 -1
  40. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  41. package/dist/worker/WorkerPoolManager.js +11 -2
  42. package/dist/worker/WorkerPoolManager.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { DiffsHighlighter, DiffsThemeNames, HighlighterTypes, SupportedLanguages } from "../types.js";
1
+ import { DiffsHighlighter, DiffsThemeNames, HighlighterTypes, SupportedLanguages, ThemesType } from "../types.js";
2
2
 
3
3
  //#region src/highlighter/shared_highlighter.d.ts
4
4
  type CachedOrLoadingHighlighterType = Promise<DiffsHighlighter> | DiffsHighlighter | undefined;
@@ -13,7 +13,11 @@ declare function getSharedHighlighter({
13
13
  preferredHighlighter
14
14
  }: HighlighterOptions): Promise<DiffsHighlighter>;
15
15
  declare function isHighlighterLoaded(h?: CachedOrLoadingHighlighterType): h is DiffsHighlighter;
16
- declare function getHighlighterIfLoaded(): DiffsHighlighter | undefined;
16
+ interface GetHighlighterIfLoadedProps {
17
+ theme: DiffsThemeNames | ThemesType;
18
+ lang: SupportedLanguages;
19
+ }
20
+ declare function getHighlighterIfLoaded(withSettings?: GetHighlighterIfLoadedProps): DiffsHighlighter | undefined;
17
21
  declare function isHighlighterLoading(h?: CachedOrLoadingHighlighterType): h is Promise<DiffsHighlighter>;
18
22
  declare function isHighlighterNull(h?: CachedOrLoadingHighlighterType): h is undefined;
19
23
  declare function preloadHighlighter(options: HighlighterOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared_highlighter.d.ts","names":[],"sources":["../../src/highlighter/shared_highlighter.ts"],"mappings":";;;KAwBK,8BAAA,GACD,OAAA,CAAQ,gBAAA,IACR,gBAAA;AAAA,UAKM,kBAAA;EACR,MAAA,EAAQ,eAAA;EACR,KAAA,EAAO,kBAAA;EACP,oBAAA,GAAuB,gBAAA;AAAA;AAAA,iBAGH,oBAAA;EACpB,MAAA;EACA,KAAA;EACA;AAAA,GACC,kBAAA,GAAqB,OAAA,CAAQ,gBAAA;AAAA,iBAmDhB,mBAAA,CACd,CAAA,GAAG,8BAAA,GACF,CAAA,IAAK,gBAAgB;AAAA,iBAIR,sBAAA,IAA0B,gBAAgB;AAAA,iBAO1C,oBAAA,CACd,CAAA,GAAG,8BAAA,GACF,CAAA,IAAK,OAAA,CAAQ,gBAAA;AAAA,iBAIA,iBAAA,CACd,CAAA,GAAG,8BAA4C,GAC9C,CAAA;AAAA,iBAImB,kBAAA,CACpB,OAAA,EAAS,kBAAA,GACR,OAAO;AAAA,iBAIY,kBAAA,IAAsB,OAAO"}
1
+ {"version":3,"file":"shared_highlighter.d.ts","names":[],"sources":["../../src/highlighter/shared_highlighter.ts"],"mappings":";;;KA2BK,8BAAA,GACD,OAAA,CAAQ,gBAAA,IACR,gBAAA;AAAA,UAKM,kBAAA;EACR,MAAA,EAAQ,eAAA;EACR,KAAA,EAAO,kBAAA;EACP,oBAAA,GAAuB,gBAAA;AAAA;AAAA,iBAGH,oBAAA;EACpB,MAAA;EACA,KAAA;EACA;AAAA,GACC,kBAAA,GAAqB,OAAA,CAAQ,gBAAA;AAAA,iBAmDhB,mBAAA,CACd,CAAA,GAAG,8BAAA,GACF,CAAA,IAAK,gBAAgB;AAAA,UAId,2BAAA;EACR,KAAA,EAAO,eAAA,GAAkB,UAAA;EACzB,IAAA,EAAM,kBAAA;AAAA;AAAA,iBAGQ,sBAAA,CACd,YAAA,GAAe,2BAAA,GACd,gBAAgB;AAAA,iBAcH,oBAAA,CACd,CAAA,GAAG,8BAAA,GACF,CAAA,IAAK,OAAA,CAAQ,gBAAA;AAAA,iBAIA,iBAAA,CACd,CAAA,GAAG,8BAA4C,GAC9C,CAAA;AAAA,iBAImB,kBAAA,CACpB,OAAA,EAAS,kBAAA,GACR,OAAO;AAAA,iBAIY,kBAAA,IAAsB,OAAO"}
@@ -1,6 +1,8 @@
1
+ import { areLanguagesAttached } from "./languages/areLanguagesAttached.js";
1
2
  import { attachResolvedLanguages } from "./languages/attachResolvedLanguages.js";
2
3
  import { cleanUpResolvedLanguages } from "./languages/cleanUpResolvedLanguages.js";
3
4
  import { getResolvedOrResolveLanguage } from "./languages/getResolvedOrResolveLanguage.js";
5
+ import { areThemesAttached } from "./themes/areThemesAttached.js";
4
6
  import { themeResolver } from "./themes/themeResolver.js";
5
7
  import { attachResolvedThemes } from "./themes/attachResolvedThemes.js";
6
8
  import { cleanUpResolvedThemes } from "./themes/cleanUpResolvedThemes.js";
@@ -18,7 +20,7 @@ async function getSharedHighlighter({ themes, langs, preferredHighlighter = "shi
18
20
  const instance = isHighlighterLoading(highlighter) ? await highlighter : highlighter;
19
21
  highlighter = instance;
20
22
  const languageLoaders = [];
21
- for (const language of langs) {
23
+ for (const language of Array.from(new Set(langs))) {
22
24
  if (language === "text" || language === "ansi") continue;
23
25
  const maybeResolvedLanguage = getResolvedOrResolveLanguage(language);
24
26
  if ("then" in maybeResolvedLanguage) languageLoaders.push(maybeResolvedLanguage);
@@ -40,8 +42,10 @@ async function getSharedHighlighter({ themes, langs, preferredHighlighter = "shi
40
42
  function isHighlighterLoaded(h = highlighter) {
41
43
  return h != null && !("then" in h);
42
44
  }
43
- function getHighlighterIfLoaded() {
44
- if (highlighter != null && !("then" in highlighter)) return highlighter;
45
+ function getHighlighterIfLoaded(withSettings) {
46
+ if (highlighter == null || "then" in highlighter) return;
47
+ if (withSettings != null && (!areThemesAttached(withSettings.theme) || !areLanguagesAttached(withSettings.lang))) return;
48
+ return highlighter;
45
49
  }
46
50
  function isHighlighterLoading(h = highlighter) {
47
51
  return h != null && "then" in h;
@@ -1 +1 @@
1
- {"version":3,"file":"shared_highlighter.js","names":[],"sources":["../../src/highlighter/shared_highlighter.ts"],"sourcesContent":["import type { ThemeLoader } from '@pierre/theming';\nimport { pierreThemes } from '@pierre/theming/themes';\nimport {\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 { themeResolver } from './themes/themeResolver';\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\nfor (const descriptor of pierreThemes.getThemes()) {\n themeResolver.registerThemeIfAbsent(\n descriptor.name,\n descriptor.load as ThemeLoader<ThemeRegistrationResolved>\n );\n}\n"],"mappings":";;;;;;;;;;AA6BA,IAAI;AAQJ,eAAsB,qBAAqB,EACzC,QACA,OACA,uBAAuB,cACyB;CAChD,gBAAgB,kBAAkB;EAChC,QAAQ,CAAC;EACT,OAAO,CAAC,MAAM;EACd,QACE,yBAAyB,eACrB,sBAAsB,OAAO,aAAa,IAC1C,4BAA4B;CACpC,CAAC;CAED,MAAM,WAAW,qBAAqB,WAAW,IAC7C,MAAM,cACN;CACJ,cAAc;CAEd,MAAM,kBAA+C,CAAC;CACtD,KAAK,MAAM,YAAY,OAAO;EAC5B,IAAI,aAAa,UAAU,aAAa,QAAQ;EAChD,MAAM,wBAAwB,6BAA6B,QAAQ;EACnE,IAAI,UAAU,uBACZ,gBAAgB,KAAK,qBAAqB;OAE1C,wBAAwB,uBAAuB,QAAQ;CAE3D;CAEA,MAAM,eAAqD,CAAC;CAC5D,KAAK,MAAM,aAAa,QAAQ;EAC9B,MAAM,qBAAqB,0BAA0B,SAAS;EAC9D,IAAI,UAAU,oBACZ,aAAa,KAAK,kBAAkB;OAEpC,qBAAqB,oBAAoB,WAAW;CAExD;CAGA,IAAI,gBAAgB,SAAS,KAAK,aAAa,SAAS,GACtD,MAAM,QAAQ,IAAI,CAChB,QAAQ,IAAI,eAAe,CAAC,CAAC,MAAM,cAAc;EAC/C,wBAAwB,WAAW,QAAQ;CAC7C,CAAC,GACD,QAAQ,IAAI,YAAY,CAAC,CAAC,MAAM,WAAW;EACzC,qBAAqB,QAAQ,QAAQ;CACvC,CAAC,CACH,CAAC;CAGH,OAAO;AACT;AAEA,SAAgB,oBACd,IAAoC,aACb;CACvB,OAAO,KAAK,QAAQ,EAAE,UAAU;AAClC;AAEA,SAAgB,yBAAuD;CACrE,IAAI,eAAe,QAAQ,EAAE,UAAU,cACrC,OAAO;AAGX;AAEA,SAAgB,qBACd,IAAoC,aACJ;CAChC,OAAO,KAAK,QAAQ,UAAU;AAChC;AAEA,SAAgB,kBACd,IAAoC,aACpB;CAChB,OAAO,KAAK;AACd;AAEA,eAAsB,mBACpB,SACe;CACR,MAAY,qBAAqB,OAAO;AACjD;AAEA,eAAsB,qBAAoC;CACxD,IAAI,eAAe,MAAM;CACzB,CAAC,MAAM,YAAA,CAAa,QAAQ;CAC5B,yBAAyB;CACzB,sBAAsB;CACtB,cAAc,KAAA;AAChB;AAEA,KAAK,MAAM,cAAc,aAAa,UAAU,GAC9C,cAAc,sBACZ,WAAW,MACX,WAAW,IACb"}
1
+ {"version":3,"file":"shared_highlighter.js","names":[],"sources":["../../src/highlighter/shared_highlighter.ts"],"sourcesContent":["import type { ThemeLoader } from '@pierre/theming';\nimport { pierreThemes } from '@pierre/theming/themes';\nimport {\n createHighlighter,\n createJavaScriptRegexEngine,\n createOnigurumaEngine,\n} from 'shiki';\n\nimport type {\n DiffsHighlighter,\n DiffsThemeNames,\n HighlighterTypes,\n SupportedLanguages,\n ThemeRegistrationResolved,\n ThemesType,\n} from '../types';\nimport type { ResolvedLanguage } from '../worker/types';\nimport { areLanguagesAttached } from './languages/areLanguagesAttached';\nimport { attachResolvedLanguages } from './languages/attachResolvedLanguages';\nimport { cleanUpResolvedLanguages } from './languages/cleanUpResolvedLanguages';\nimport { getResolvedOrResolveLanguage } from './languages/getResolvedOrResolveLanguage';\nimport { areThemesAttached } from './themes/areThemesAttached';\nimport { attachResolvedThemes } from './themes/attachResolvedThemes';\nimport { cleanUpResolvedThemes } from './themes/cleanUpResolvedThemes';\nimport { getResolvedOrResolveTheme } from './themes/getResolvedOrResolveTheme';\nimport { themeResolver } from './themes/themeResolver';\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 Array.from(new Set(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\ninterface GetHighlighterIfLoadedProps {\n theme: DiffsThemeNames | ThemesType;\n lang: SupportedLanguages;\n}\n\nexport function getHighlighterIfLoaded(\n withSettings?: GetHighlighterIfLoadedProps\n): DiffsHighlighter | undefined {\n if (highlighter == null || 'then' in highlighter) {\n return undefined;\n }\n if (\n withSettings != null &&\n (!areThemesAttached(withSettings.theme) ||\n !areLanguagesAttached(withSettings.lang))\n ) {\n return undefined;\n }\n return highlighter;\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\nfor (const descriptor of pierreThemes.getThemes()) {\n themeResolver.registerThemeIfAbsent(\n descriptor.name,\n descriptor.load as ThemeLoader<ThemeRegistrationResolved>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAgCA,IAAI;AAQJ,eAAsB,qBAAqB,EACzC,QACA,OACA,uBAAuB,cACyB;CAChD,gBAAgB,kBAAkB;EAChC,QAAQ,CAAC;EACT,OAAO,CAAC,MAAM;EACd,QACE,yBAAyB,eACrB,sBAAsB,OAAO,aAAa,IAC1C,4BAA4B;CACpC,CAAC;CAED,MAAM,WAAW,qBAAqB,WAAW,IAC7C,MAAM,cACN;CACJ,cAAc;CAEd,MAAM,kBAA+C,CAAC;CACtD,KAAK,MAAM,YAAY,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG;EACjD,IAAI,aAAa,UAAU,aAAa,QAAQ;EAChD,MAAM,wBAAwB,6BAA6B,QAAQ;EACnE,IAAI,UAAU,uBACZ,gBAAgB,KAAK,qBAAqB;OAE1C,wBAAwB,uBAAuB,QAAQ;CAE3D;CAEA,MAAM,eAAqD,CAAC;CAC5D,KAAK,MAAM,aAAa,QAAQ;EAC9B,MAAM,qBAAqB,0BAA0B,SAAS;EAC9D,IAAI,UAAU,oBACZ,aAAa,KAAK,kBAAkB;OAEpC,qBAAqB,oBAAoB,WAAW;CAExD;CAGA,IAAI,gBAAgB,SAAS,KAAK,aAAa,SAAS,GACtD,MAAM,QAAQ,IAAI,CAChB,QAAQ,IAAI,eAAe,CAAC,CAAC,MAAM,cAAc;EAC/C,wBAAwB,WAAW,QAAQ;CAC7C,CAAC,GACD,QAAQ,IAAI,YAAY,CAAC,CAAC,MAAM,WAAW;EACzC,qBAAqB,QAAQ,QAAQ;CACvC,CAAC,CACH,CAAC;CAGH,OAAO;AACT;AAEA,SAAgB,oBACd,IAAoC,aACb;CACvB,OAAO,KAAK,QAAQ,EAAE,UAAU;AAClC;AAOA,SAAgB,uBACd,cAC8B;CAC9B,IAAI,eAAe,QAAQ,UAAU,aACnC;CAEF,IACE,gBAAgB,SACf,CAAC,kBAAkB,aAAa,KAAK,KACpC,CAAC,qBAAqB,aAAa,IAAI,IAEzC;CAEF,OAAO;AACT;AAEA,SAAgB,qBACd,IAAoC,aACJ;CAChC,OAAO,KAAK,QAAQ,UAAU;AAChC;AAEA,SAAgB,kBACd,IAAoC,aACpB;CAChB,OAAO,KAAK;AACd;AAEA,eAAsB,mBACpB,SACe;CACR,MAAY,qBAAqB,OAAO;AACjD;AAEA,eAAsB,qBAAoC;CACxD,IAAI,eAAe,MAAM;CACzB,CAAC,MAAM,YAAA,CAAa,QAAQ;CAC5B,yBAAyB;CACzB,sBAAsB;CACtB,cAAc,KAAA;AAChB;AAEA,KAAK,MAAM,cAAc,aAAa,UAAU,GAC9C,cAAc,sBACZ,WAAW,MACX,WAAW,IACb"}
@@ -1,5 +1,5 @@
1
- import { AttachedThemes } from "./constants.js";
2
1
  import { getThemes } from "../../utils/getThemes.js";
2
+ import { AttachedThemes } from "./constants.js";
3
3
  //#region src/highlighter/themes/areThemesAttached.ts
4
4
  function areThemesAttached(themes) {
5
5
  for (const theme of getThemes(themes)) if (!AttachedThemes.has(theme)) return false;
package/dist/index.js CHANGED
@@ -1,15 +1,4 @@
1
1
  import { ALTERNATE_FILE_NAMES_GIT, CODE_VIEW_FOOTER_ATTRIBUTE, CODE_VIEW_HEADER_ATTRIBUTE, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, 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, EMPTY_RENDER_RANGE, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, GIT_DIFF_FILE_BREAK_REGEX, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, SPLIT_WITH_NEWLINES, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
2
- import { clearRenderQueue, dequeueRender, queueRender } from "./managers/UniversalRenderingManager.js";
3
- import { areObjectsEqual } from "./utils/areObjectsEqual.js";
4
- import { areThemesEqual } from "./utils/areThemesEqual.js";
5
- import { areOptionsEqual } from "./utils/areOptionsEqual.js";
6
- import { areSelectionsEqual } from "./utils/areSelectionsEqual.js";
7
- import { createWindowFromScrollPosition } from "./utils/createWindowFromScrollPosition.js";
8
- import { prefersReducedMotion } from "./utils/prefersReducedMotion.js";
9
- import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
10
- import { createGutterUtilityElement } from "./utils/createGutterUtilityElement.js";
11
- import { InteractionManager, pluckInteractionOptions } from "./managers/InteractionManager.js";
12
- import { ResizeManager } from "./managers/ResizeManager.js";
13
2
  import { AttachedLanguages, RegisteredCustomLanguages, ResolvedLanguages, ResolvingLanguages } from "./highlighter/languages/constants.js";
14
3
  import { areLanguagesAttached } from "./highlighter/languages/areLanguagesAttached.js";
15
4
  import { attachResolvedLanguages } from "./highlighter/languages/attachResolvedLanguages.js";
@@ -17,14 +6,25 @@ import { cleanUpResolvedLanguages } from "./highlighter/languages/cleanUpResolve
17
6
  import { isWorkerContext } from "./utils/isWorkerContext.js";
18
7
  import { resolveLanguage } from "./highlighter/languages/resolveLanguage.js";
19
8
  import { getResolvedOrResolveLanguage } from "./highlighter/languages/getResolvedOrResolveLanguage.js";
9
+ import { getThemes } from "./utils/getThemes.js";
20
10
  import { AttachedThemes } from "./highlighter/themes/constants.js";
11
+ import { areThemesAttached } from "./highlighter/themes/areThemesAttached.js";
21
12
  import { attachResolvedThemes } from "./highlighter/themes/attachResolvedThemes.js";
22
13
  import { cleanUpResolvedThemes } from "./highlighter/themes/cleanUpResolvedThemes.js";
23
14
  import { resolveTheme } from "./highlighter/themes/resolveTheme.js";
24
15
  import { getResolvedOrResolveTheme } from "./highlighter/themes/getResolvedOrResolveTheme.js";
25
16
  import { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter } from "./highlighter/shared_highlighter.js";
26
- import { getThemes } from "./utils/getThemes.js";
27
- import { areThemesAttached } from "./highlighter/themes/areThemesAttached.js";
17
+ import { clearRenderQueue, dequeueRender, queueRender } from "./managers/UniversalRenderingManager.js";
18
+ import { areObjectsEqual } from "./utils/areObjectsEqual.js";
19
+ import { areThemesEqual } from "./utils/areThemesEqual.js";
20
+ import { areOptionsEqual } from "./utils/areOptionsEqual.js";
21
+ import { areSelectionsEqual } from "./utils/areSelectionsEqual.js";
22
+ import { createWindowFromScrollPosition } from "./utils/createWindowFromScrollPosition.js";
23
+ import { prefersReducedMotion } from "./utils/prefersReducedMotion.js";
24
+ import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
25
+ import { createGutterUtilityElement } from "./utils/createGutterUtilityElement.js";
26
+ import { InteractionManager, pluckInteractionOptions } from "./managers/InteractionManager.js";
27
+ import { ResizeManager } from "./managers/ResizeManager.js";
28
28
  import { hasResolvedThemes } from "./highlighter/themes/hasResolvedThemes.js";
29
29
  import { areFileRenderOptionsEqual } from "./utils/areFileRenderOptionsEqual.js";
30
30
  import { areRenderRangesEqual } from "./utils/areRenderRangesEqual.js";
@@ -99,7 +99,7 @@ declare class DiffHunksRenderer<LAnnotation = undefined> {
99
99
  * cache owner so the editor can reuse it without mutating shared data. An
100
100
  * empty additions document gets one row for the editor's caret.
101
101
  */
102
- beginEditSession(diff?: FileDiffMetadata, externalDiff?: FileDiffMetadata): void;
102
+ beginEditSession(diff: FileDiffMetadata, externalDiff?: FileDiffMetadata): void;
103
103
  /** Leave edit-session mode. The exit recompute is the host's concern. */
104
104
  endEditSession(): void;
105
105
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DiffHunksRenderer.d.ts","names":[],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"mappings":"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"}
1
+ {"version":3,"file":"DiffHunksRenderer.d.ts","names":[],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"mappings":";;;;;;;UAoJiB,wBAAA,SAAiC,eAAe;EAC/D,gBAAA,GAAmB,oBAAA;AAAA;AAAA,UAGJ,oCAAA,SAA6C,IAAA,CAC5D,2BAAA;EAGA,gBAAA,EAAkB,oBAAA;AAAA;AAAA,UAGH,0BAAA;EACf,IAAA;EACA,QAAA,EAAU,SAAS;EACnB,iBAAA;EACA,iBAAA;AAAA;AAAA,UAGe,wBAAA;EACf,IAAA;EACA,IAAA;EACA,SAAA;AAAA;AAAA,UAGe,cAAA;EACf,cAAA,EAAgB,SAAA;EAChB,gBAAA,GAAmB,UAAA;EACnB,iBAAA,GAAoB,UAAA;AAAA;AAAA,UAUL,mBAAA;EACf,IAAA;EACA,SAAA;EACA,SAAA;EACA,gBAAA;EACA,cAAA;EACA,YAAA,GAAe,gBAAA;EACf,YAAA,GAAe,gBAAgB;AAAA;AAAA,UAGhB,WAAA;EACf,OAAA,EAAS,OAAA;EACT,MAAA,EAAQ,OAAW;AAAA;AAAA,UAGJ,gBAAA;EACf,QAAA,EAAU,WAAA;EACV,QAAA,EAAU,WAAW;AAAA;AAAA,UAGN,2BAAA;EACf,MAAA,GAAS,WAAA;EACT,KAAA,GAAQ,WAAW;AAAA;AAAA,UAGJ,yBAAA;EACf,MAAA,GAAS,gBAAA;EACT,KAAA,GAAQ,gBAAgB;AAAA;AAAA,UAGT,iBAAA;EACf,QAAA,EAAU,gBAAA;EACV,gBAAA,EAAkB,cAAA;EAClB,iBAAA,EAAmB,cAAA;EACnB,kBAAA,EAAoB,cAAA;EACpB,mBAAA,EAAqB,cAAA;EACrB,kBAAA,EAAoB,cAAA;EACpB,mBAAA,EAAqB,cAAA;EACrB,QAAA,EAAU,QAAA;EACV,GAAA;EACA,OAAA,EAAS,OAAA;EACT,aAAA,EAAe,OAAA;EACf,UAAA;EACA,WAAA;EACA,aAAA;EACA,QAAA;EACA,YAAA;EACA,WAAA;AAAA;AAAA,cAKW,iBAAA;EAgCF,OAAA,EAAS,wBAAA;EAAA,QACR,kBAAA;EAAA,QAGA,cAAA;EAAA,QACA,aAAA;EAAA,SApCD,IAAA;EAAA,QAED,WAAA;EAAA,QAIA,IAAA;EAAA,QAEA,aAAA;EAAA,QAEA,mBAAA;EAAA,QACA,mBAAA;EAAA,QAEA,YAAA;EAAA,QACA,WAAA;EAAA,QAGA,sBAAA;EAAA,QAGA,qBAAA;EAAA,QAQA,iBAAA;EAER,WAAA,CACS,OAAA,GAAS,wBAAA,EACR,kBAAA,IACN,UAAA,EAAY,kBAAA,CAAmB,WAAA,cAEzB,cAAA,gCACA,aAAA,GAAgB,iBAAA;EASnB,OAAA;EAOA,OAAA;EA7FY;AAAA;AAGrB;;;;;;;EA6GS,gBAAA,CACL,IAAA,EAAM,gBAAA,EACN,YAAA,GAAe,gBAAA;EA7GI;EA6Kd,cAAA;EA1KQ;;;EAkLR,iBAAA;EAjLP;;;;;AACmB;AAGrB;;;EA8LS,wBAAA,IAA4B,OAAA;EAAA,QAqC3B,oBAAA;EAAA,IA4BG,SAAA,IAAa,gBAAA;EAIjB,gBAAA;EAMA,UAAA,CAAW,OAAA,EAAS,wBAAA;EAIpB,YAAA,CAAa,OAAA,EAAS,OAAA,CAAQ,wBAAA;EAI9B,UAAA,CACL,KAAA,UACA,SAAA,EAAW,mBAAA,EACX,kBAAA;EA0BK,eAAA,CAAgB,SAAA,WAAoB,mBAAA;EAIpC,mBAAA,IAAuB,GAAA,SAAY,mBAAA;;EAKnC,mBAAA,CACL,aAAA,EAAe,GAAA,SAAY,mBAAA;EAKtB,kBAAA,CACL,eAAA,EAAiB,kBAAA,CAAmB,WAAA;EAtTnB;;;;;;EA+UZ,iBAAA,CACL,UAAA,EAAY,GAAA,SAAY,KAAA,CAAM,gBAAA,IAC9B,SAAA,oBACA,uBAAA;EAAA,QA+HM,mBAAA;EAUD,mBAAA,CACL,YAAA,EAAc,YAAA,cAA0B,WAAA;EAAA,QA8DlC,0BAAA;EAAA,QAeA,mCAAA;EAAA,QAaA,mBAAA;EAAA,UAOE,wBAAA;IACR;EAAA,GACC,0BAAA,GAA6B,cAAA;EAAA,UAStB,sBAAA;IACR,IAAA;IACA;EAAA,GACC,wBAAA,GAA2B,cAAA;EAAA,QAetB,uBAAA;EAAA,UAKU,6BAAA,IAChB,GAAA,EAAK,mBAAA,KACF,2BAAA;EAAA,UAGa,2BAAA,IAChB,GAAA,EAAK,mBAAA,KACF,yBAAA;EAAA,UAEK,sBAAA,IAA0B,oCAAA;EAiDvB,qBAAA,IAAyB,OAAA,CAAQ,gBAAA;EAYvC,OAAA,CAAQ,IAAA,EAAM,gBAAA;EAAA,QAmCb,sBAAA;EAQD,uBAAA,IAA2B,IAAA,CAChC,eAAA;EAAA,QAeM,gBAAA;EA5tBa;;;;;EAuwBd,oBAAA,CAAqB,IAAA,EAAM,gBAAA,GAAmB,gBAAA;EAAA,QAwB7C,aAAA;EAiCD,UAAA,CACL,IAAA,GAAM,gBAAA,cACN,WAAA,GAAa,WAAA,GACZ,iBAAA;EAiJU,WAAA,CACX,IAAA,EAAM,gBAAA,EACN,WAAA,GAAa,WAAA,GACZ,OAAA,CAAQ,iBAAA;EAAA,UAMD,gBAAA,CACR,KAAA,WACA,UAAA,UACA,gBAAA,GAAmB,mBAAA,GAClB,OAAA;EAAA,QAeW,cAAA;EAAA,QAyBN,yBAAA;EA2CD,kBAAA,CACL,IAAA,EAAM,gBAAA,EACN,MAAA,EAAQ,gBAAA,EACR,OAAA,EAAS,iBAAA,EACT,WAAA;EAAA,QAQM,oBAAA;EAAA,QAqCA,4BAAA;EAAA,QAgBA,oBAAA;EAAA,QAuBA,yBAAA;EAaD,gBAAA,CAAiB,KAAA;EAAA,QAIhB,oBAAA;EAAA,QAIA,iBAAA;EAgjBD,aAAA,CACL,IAAA,yCACA,MAAA,EAAQ,iBAAA,GACP,cAAA;EAyBI,aAAA,CACL,MAAA,EAAQ,iBAAA,EACR,QAAA,GAAU,cAAA,KACT,OAAA;EAkDI,cAAA,CACL,MAAA,EAAQ,iBAAA,EACR,YAAA,GAAc,cAAA;EAKT,iBAAA,CACL,QAAA,EAAU,cAAA,IACV,UAAA;EAAA,QAqBM,wBAAA;EAAA,QAiEA,cAAA;EAAA,QA+DA,kBAAA;EAAA,QASA,YAAA;AAAA"}
@@ -1,9 +1,9 @@
1
1
  import { DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH } from "../constants.js";
2
- import { getFileAnnotations, shouldRenderFileAnnotations } from "../utils/includesFileAnnotations.js";
3
- import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement } from "../utils/hast_utils.js";
4
2
  import { areLanguagesAttached } from "../highlighter/languages/areLanguagesAttached.js";
5
- import { getHighlighterIfLoaded, getSharedHighlighter } from "../highlighter/shared_highlighter.js";
6
3
  import { areThemesAttached } from "../highlighter/themes/areThemesAttached.js";
4
+ import { getHighlighterIfLoaded, getSharedHighlighter } from "../highlighter/shared_highlighter.js";
5
+ import { getFileAnnotations, shouldRenderFileAnnotations } from "../utils/includesFileAnnotations.js";
6
+ import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement } from "../utils/hast_utils.js";
7
7
  import { applyLineTextWithNewline } from "../utils/applyLineTextWithNewline.js";
8
8
  import { areRenderRangesEqual } from "../utils/areRenderRangesEqual.js";
9
9
  import { createAnnotationElement } from "../utils/createAnnotationElement.js";
@@ -82,15 +82,13 @@ var DiffHunksRenderer = class {
82
82
  const { editSessionActive: wasAlreadyActive, renderCache } = this;
83
83
  this.editSessionActive = true;
84
84
  if (!wasAlreadyActive) this.pendingHighlightResult = void 0;
85
- if (diff != null) this.diff = diff;
86
- const currentDiff = diff ?? this.diffCache;
87
- if (currentDiff != null && !currentDiff.isPartial && currentDiff.additionLines.length === 0) {
88
- Object.assign(currentDiff, recomputeEmptyDocumentDiff(currentDiff, this.options.parseDiffOptions));
89
- this.markEditSessionPass(currentDiff);
85
+ this.diff = diff;
86
+ if (!diff.isPartial && diff.additionLines.length === 0) {
87
+ Object.assign(diff, recomputeEmptyDocumentDiff(diff, this.options.parseDiffOptions));
88
+ this.markEditSessionPass(diff);
90
89
  this.clearRenderCache();
91
90
  return;
92
91
  }
93
- if (diff == null) return;
94
92
  if (renderCache == null) return;
95
93
  if (wasAlreadyActive && renderCache.diff === diff) return;
96
94
  const { options } = this.getRenderOptions(diff);
@@ -517,6 +515,7 @@ var DiffHunksRenderer = class {
517
515
  if (!forcePlainText && hasContent && (!this.renderCache.highlighted || forceHighlight)) this.workerManager.highlightDiffAST(this, diff);
518
516
  } else {
519
517
  this.computedLang = diff.lang ?? getFiletypeFromFileName(diff.name);
518
+ this.highlighter ??= getHighlighterIfLoaded();
520
519
  const hasThemes = this.highlighter != null && areThemesAttached(options.theme);
521
520
  const hasLangs = this.highlighter != null && areLanguagesAttached(this.computedLang);
522
521
  const canHighlight = !forcePlainText && hasLangs;