@pierre/diffs 1.1.0-beta.3 → 1.1.0-beta.5
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/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/highlighter/languages/constants.d.ts +3 -1
- package/dist/highlighter/languages/constants.d.ts.map +1 -1
- package/dist/highlighter/languages/constants.js +2 -1
- package/dist/highlighter/languages/constants.js.map +1 -1
- package/dist/highlighter/languages/registerCustomLanguage.d.ts +12 -0
- package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -0
- package/dist/highlighter/languages/registerCustomLanguage.js +21 -0
- package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -0
- package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
- package/dist/highlighter/languages/resolveLanguage.js +4 -3
- package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +5 -4
- package/dist/react/jsx.d.ts +1 -1
- package/dist/react/jsx.d.ts.map +1 -1
- package/dist/react/types.js +0 -1
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +10 -6
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/style.js +1 -1
- package/dist/style.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/getFiletypeFromFileName.d.ts +2 -1
- package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
- package/dist/utils/getFiletypeFromFileName.js +14 -4
- package/dist/utils/getFiletypeFromFileName.js.map +1 -1
- package/dist/utils/iterateOverDiff.d.ts +2 -0
- package/dist/utils/iterateOverDiff.d.ts.map +1 -1
- package/dist/utils/iterateOverDiff.js +7 -5
- package/dist/utils/iterateOverDiff.js.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.d.ts +2 -1
- package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.js +3 -2
- package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
- package/dist/utils/setLanguageOverride.d.ts +2 -1
- package/dist/utils/setLanguageOverride.d.ts.map +1 -1
- package/dist/utils/setLanguageOverride.js.map +1 -1
- package/dist/worker/WorkerPoolManager.d.ts +1 -1
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +3 -2
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/worker-portable.js +29 -11
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +17 -8
- package/dist/worker/worker.js.map +1 -1
- package/package.json +1 -1
package/dist/constants.d.ts
CHANGED
|
@@ -21,7 +21,8 @@ declare const LINE_HEIGHT = 20;
|
|
|
21
21
|
declare const DIFF_HEADER_HEIGHT = 44;
|
|
22
22
|
declare const HUNK_SEPARATOR_HEIGHT = 32;
|
|
23
23
|
declare const FILE_GAP = 8;
|
|
24
|
+
declare const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;
|
|
24
25
|
declare const DEFAULT_EXPANDED_REGION: HunkExpansionRegion;
|
|
25
26
|
//#endregion
|
|
26
|
-
export { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE };
|
|
27
|
+
export { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE };
|
|
27
28
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","names":["COMMIT_METADATA_SPLIT: RegExp","GIT_DIFF_FILE_BREAK_REGEX: RegExp","UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp","FILE_CONTEXT_BLOB: RegExp","HUNK_HEADER: RegExp","SPLIT_WITH_NEWLINES: RegExp","FILENAME_HEADER_REGEX: RegExp","FILENAME_HEADER_REGEX_GIT: RegExp","ALTERNATE_FILE_NAMES_GIT: RegExp","INDEX_LINE_METADATA: RegExp","DEFAULT_THEMES: ThemesType","DEFAULT_EXPANDED_REGION: HunkExpansionRegion"],"sources":["../src/constants.ts"],"sourcesContent":[],"mappings":";;;cAEa;cAGAA,uBAAuB;AAHvB,cAIAC,yBAJiB,EAIU,MAJV;AAGjBD,cAEAE,6BAFuB,EAEQ,MAFR;AACvBD,cAEAE,iBAF2B,EAER,MAFQ;AAC3BD,cAEAE,WAFAF,EAEa,MAFkB;AAC/BC,cAGAE,mBAHmB,EAGE,MAHF;AACnBD,cAGAE,qBAHa,EAGU,MAHV;AAEbD,cAEAE,yBAFqB,EAEM,MAFN;AACrBD,cAGAE,wBAHuB,EAGG,MAHH;AACvBD,cAIAE,mBAJ2B,EAIN,MAJM;AAE3BD,cAKA,uBAAA,GAL0B,iBAAA;AAE1BC,cAKAC,cALqB,EAKL,UALK;AAGrB,cAOA,oBAAA,GAPA,iBAAA;AAEAA,cAMA,kBAAA,GANgB,eAAA;AAKhB,cAIA,eAAA,GAJA,EAAA;AACA,cAIA,WAAA,GAJA,EAAA;AAGA,cAEA,kBAAA,GAFA,EAAA;AACA,cAEA,qBAAA,GAFA,EAAA;AACA,cAEA,QAAA,GAFA,CAAA;AACA,cAGAC,uBAHA,EAGyB,mBAHzB"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","names":["COMMIT_METADATA_SPLIT: RegExp","GIT_DIFF_FILE_BREAK_REGEX: RegExp","UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp","FILE_CONTEXT_BLOB: RegExp","HUNK_HEADER: RegExp","SPLIT_WITH_NEWLINES: RegExp","FILENAME_HEADER_REGEX: RegExp","FILENAME_HEADER_REGEX_GIT: RegExp","ALTERNATE_FILE_NAMES_GIT: RegExp","INDEX_LINE_METADATA: RegExp","DEFAULT_THEMES: ThemesType","DEFAULT_EXPANDED_REGION: HunkExpansionRegion"],"sources":["../src/constants.ts"],"sourcesContent":[],"mappings":";;;cAEa;cAGAA,uBAAuB;AAHvB,cAIAC,yBAJiB,EAIU,MAJV;AAGjBD,cAEAE,6BAFuB,EAEQ,MAFR;AACvBD,cAEAE,iBAF2B,EAER,MAFQ;AAC3BD,cAEAE,WAFAF,EAEa,MAFkB;AAC/BC,cAGAE,mBAHmB,EAGE,MAHF;AACnBD,cAGAE,qBAHa,EAGU,MAHV;AAEbD,cAEAE,yBAFqB,EAEM,MAFN;AACrBD,cAGAE,wBAHuB,EAGG,MAHH;AACvBD,cAIAE,mBAJ2B,EAIN,MAJM;AAE3BD,cAKA,uBAAA,GAL0B,iBAAA;AAE1BC,cAKAC,cALqB,EAKL,UALK;AAGrB,cAOA,oBAAA,GAPA,iBAAA;AAEAA,cAMA,kBAAA,GANgB,eAAA;AAKhB,cAIA,eAAA,GAJA,EAAA;AACA,cAIA,WAAA,GAJA,EAAA;AAGA,cAEA,kBAAA,GAFA,EAAA;AACA,cAEA,qBAAA,GAFA,EAAA;AACA,cAEA,QAAA,GAFA,CAAA;AACA,cAEA,mCAAA,GAFA,CAAA;AACA,cAGAC,uBAHA,EAGyB,mBAHzB"}
|
package/dist/constants.js
CHANGED
|
@@ -22,11 +22,12 @@ const LINE_HEIGHT = 20;
|
|
|
22
22
|
const DIFF_HEADER_HEIGHT = 44;
|
|
23
23
|
const HUNK_SEPARATOR_HEIGHT = 32;
|
|
24
24
|
const FILE_GAP = 8;
|
|
25
|
+
const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;
|
|
25
26
|
const DEFAULT_EXPANDED_REGION = Object.freeze({
|
|
26
27
|
fromStart: 0,
|
|
27
28
|
fromEnd: 0
|
|
28
29
|
});
|
|
29
30
|
|
|
30
31
|
//#endregion
|
|
31
|
-
export { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE };
|
|
32
|
+
export { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE };
|
|
32
33
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["COMMIT_METADATA_SPLIT: RegExp","GIT_DIFF_FILE_BREAK_REGEX: RegExp","UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp","FILE_CONTEXT_BLOB: RegExp","HUNK_HEADER: RegExp","SPLIT_WITH_NEWLINES: RegExp","FILENAME_HEADER_REGEX: RegExp","FILENAME_HEADER_REGEX_GIT: RegExp","ALTERNATE_FILE_NAMES_GIT: RegExp","INDEX_LINE_METADATA: RegExp","DEFAULT_THEMES: ThemesType","DEFAULT_EXPANDED_REGION: HunkExpansionRegion"],"sources":["../src/constants.ts"],"sourcesContent":["import type { HunkExpansionRegion, ThemesType } from './types';\n\nexport const DIFFS_TAG_NAME = 'diffs-container' as const;\n\n// Misc patch/content parsing regexes\nexport const COMMIT_METADATA_SPLIT: RegExp = /(?=^From [a-f0-9]+ .+$)/m;\nexport const GIT_DIFF_FILE_BREAK_REGEX: RegExp = /(?=^diff --git)/gm;\nexport const UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp = /(?=^---\\s+\\S)/gm;\nexport const FILE_CONTEXT_BLOB: RegExp = /(?=^@@ )/gm;\nexport const HUNK_HEADER: RegExp =\n /^@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@(?: (.*))?/m;\nexport const SPLIT_WITH_NEWLINES: RegExp = /(?<=\\n)/;\nexport const FILENAME_HEADER_REGEX: RegExp = /^(---|\\+\\+\\+)\\s+([^\\t\\r\\n]+)/;\nexport const FILENAME_HEADER_REGEX_GIT: RegExp =\n /^(---|\\+\\+\\+)\\s+[ab]\\/([^\\t\\r\\n]+)/;\nexport const ALTERNATE_FILE_NAMES_GIT: RegExp =\n /^diff --git (?:\"a\\/(.+?)\"|a\\/(.+?)) (?:\"b\\/(.+?)\"|b\\/(.+?))$/;\nexport const INDEX_LINE_METADATA: RegExp =\n /^index ([0-9a-f]+)\\.\\.([0-9a-f]+)(?: (\\d+))?$/i;\n\nexport const HEADER_METADATA_SLOT_ID = 'header-metadata';\n\nexport const DEFAULT_THEMES: ThemesType = {\n dark: 'pierre-dark',\n light: 'pierre-light',\n};\n\nexport const UNSAFE_CSS_ATTRIBUTE = 'data-unsafe-css';\nexport const CORE_CSS_ATTRIBUTE = 'data-core-css';\n\n// FIXME(amadeus): This will need to be configurable\nexport const LINE_HUNK_COUNT = 10;\nexport const LINE_HEIGHT = 20;\nexport const DIFF_HEADER_HEIGHT = 44;\nexport const HUNK_SEPARATOR_HEIGHT = 32;\nexport const FILE_GAP = 8;\n\nexport const DEFAULT_EXPANDED_REGION: HunkExpansionRegion = Object.freeze({\n fromStart: 0,\n fromEnd: 0,\n});\n"],"mappings":";AAEA,MAAa,iBAAiB;AAG9B,MAAaA,wBAAgC;AAC7C,MAAaC,4BAAoC;AACjD,MAAaC,gCAAwC;AACrD,MAAaC,oBAA4B;AACzC,MAAaC,cACX;AACF,MAAaC,sBAA8B;AAC3C,MAAaC,wBAAgC;AAC7C,MAAaC,4BACX;AACF,MAAaC,2BACX;AACF,MAAaC,sBACX;AAEF,MAAa,0BAA0B;AAEvC,MAAaC,iBAA6B;CACxC,MAAM;CACN,OAAO;CACR;AAED,MAAa,uBAAuB;AACpC,MAAa,qBAAqB;AAGlC,MAAa,kBAAkB;AAC/B,MAAa,cAAc;AAC3B,MAAa,qBAAqB;AAClC,MAAa,wBAAwB;AACrC,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"constants.js","names":["COMMIT_METADATA_SPLIT: RegExp","GIT_DIFF_FILE_BREAK_REGEX: RegExp","UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp","FILE_CONTEXT_BLOB: RegExp","HUNK_HEADER: RegExp","SPLIT_WITH_NEWLINES: RegExp","FILENAME_HEADER_REGEX: RegExp","FILENAME_HEADER_REGEX_GIT: RegExp","ALTERNATE_FILE_NAMES_GIT: RegExp","INDEX_LINE_METADATA: RegExp","DEFAULT_THEMES: ThemesType","DEFAULT_EXPANDED_REGION: HunkExpansionRegion"],"sources":["../src/constants.ts"],"sourcesContent":["import type { HunkExpansionRegion, ThemesType } from './types';\n\nexport const DIFFS_TAG_NAME = 'diffs-container' as const;\n\n// Misc patch/content parsing regexes\nexport const COMMIT_METADATA_SPLIT: RegExp = /(?=^From [a-f0-9]+ .+$)/m;\nexport const GIT_DIFF_FILE_BREAK_REGEX: RegExp = /(?=^diff --git)/gm;\nexport const UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp = /(?=^---\\s+\\S)/gm;\nexport const FILE_CONTEXT_BLOB: RegExp = /(?=^@@ )/gm;\nexport const HUNK_HEADER: RegExp =\n /^@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@(?: (.*))?/m;\nexport const SPLIT_WITH_NEWLINES: RegExp = /(?<=\\n)/;\nexport const FILENAME_HEADER_REGEX: RegExp = /^(---|\\+\\+\\+)\\s+([^\\t\\r\\n]+)/;\nexport const FILENAME_HEADER_REGEX_GIT: RegExp =\n /^(---|\\+\\+\\+)\\s+[ab]\\/([^\\t\\r\\n]+)/;\nexport const ALTERNATE_FILE_NAMES_GIT: RegExp =\n /^diff --git (?:\"a\\/(.+?)\"|a\\/(.+?)) (?:\"b\\/(.+?)\"|b\\/(.+?))$/;\nexport const INDEX_LINE_METADATA: RegExp =\n /^index ([0-9a-f]+)\\.\\.([0-9a-f]+)(?: (\\d+))?$/i;\n\nexport const HEADER_METADATA_SLOT_ID = 'header-metadata';\n\nexport const DEFAULT_THEMES: ThemesType = {\n dark: 'pierre-dark',\n light: 'pierre-light',\n};\n\nexport const UNSAFE_CSS_ATTRIBUTE = 'data-unsafe-css';\nexport const CORE_CSS_ATTRIBUTE = 'data-core-css';\n\n// FIXME(amadeus): This will need to be configurable\nexport const LINE_HUNK_COUNT = 10;\nexport const LINE_HEIGHT = 20;\nexport const DIFF_HEADER_HEIGHT = 44;\nexport const HUNK_SEPARATOR_HEIGHT = 32;\nexport const FILE_GAP = 8;\nexport const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;\n\nexport const DEFAULT_EXPANDED_REGION: HunkExpansionRegion = Object.freeze({\n fromStart: 0,\n fromEnd: 0,\n});\n"],"mappings":";AAEA,MAAa,iBAAiB;AAG9B,MAAaA,wBAAgC;AAC7C,MAAaC,4BAAoC;AACjD,MAAaC,gCAAwC;AACrD,MAAaC,oBAA4B;AACzC,MAAaC,cACX;AACF,MAAaC,sBAA8B;AAC3C,MAAaC,wBAAgC;AAC7C,MAAaC,4BACX;AACF,MAAaC,2BACX;AACF,MAAaC,sBACX;AAEF,MAAa,0BAA0B;AAEvC,MAAaC,iBAA6B;CACxC,MAAM;CACN,OAAO;CACR;AAED,MAAa,uBAAuB;AACpC,MAAa,qBAAqB;AAGlC,MAAa,kBAAkB;AAC/B,MAAa,cAAc;AAC3B,MAAa,qBAAqB;AAClC,MAAa,wBAAwB;AACrC,MAAa,WAAW;AACxB,MAAa,sCAAsC;AAEnD,MAAaC,0BAA+C,OAAO,OAAO;CACxE,WAAW;CACX,SAAS;CACV,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { SupportedLanguages } from "../../types.js";
|
|
2
2
|
import { ResolvedLanguage } from "../../worker/types.js";
|
|
3
3
|
import "../../worker/index.js";
|
|
4
|
+
import { DynamicImportLanguageRegistration } from "shiki";
|
|
4
5
|
|
|
5
6
|
//#region src/highlighter/languages/constants.d.ts
|
|
6
7
|
declare const ResolvedLanguages: Map<SupportedLanguages, ResolvedLanguage>;
|
|
7
8
|
declare const ResolvingLanguages: Map<SupportedLanguages, Promise<ResolvedLanguage>>;
|
|
9
|
+
declare const RegisteredCustomLanguages: Map<string, DynamicImportLanguageRegistration>;
|
|
8
10
|
declare const AttachedLanguages: Set<string>;
|
|
9
11
|
//#endregion
|
|
10
|
-
export { AttachedLanguages, ResolvedLanguages, ResolvingLanguages };
|
|
12
|
+
export { AttachedLanguages, RegisteredCustomLanguages, ResolvedLanguages, ResolvingLanguages };
|
|
11
13
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","names":["ResolvedLanguages: Map<SupportedLanguages, ResolvedLanguage>","ResolvingLanguages: Map<\n SupportedLanguages,\n Promise<ResolvedLanguage>\n>","AttachedLanguages: Set<string>"],"sources":["../../../src/highlighter/languages/constants.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","names":["ResolvedLanguages: Map<SupportedLanguages, ResolvedLanguage>","ResolvingLanguages: Map<\n SupportedLanguages,\n Promise<ResolvedLanguage>\n>","RegisteredCustomLanguages: Map<\n string,\n DynamicImportLanguageRegistration\n>","AttachedLanguages: Set<string>"],"sources":["../../../src/highlighter/languages/constants.ts"],"sourcesContent":[],"mappings":";;;;;;cAKaA,mBAAmB,IAAI,oBAAoB;cAG3CC,oBAAoB,IAC/B,oBACA,QAAQ;cAGGC,2BAA2B,YAEtC;AAVWF,cAaAG,iBAb2C,EAaxB,GAbwB,CAAA,MAAA,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
//#region src/highlighter/languages/constants.ts
|
|
2
2
|
const ResolvedLanguages = /* @__PURE__ */ new Map();
|
|
3
3
|
const ResolvingLanguages = /* @__PURE__ */ new Map();
|
|
4
|
+
const RegisteredCustomLanguages = /* @__PURE__ */ new Map();
|
|
4
5
|
const AttachedLanguages = /* @__PURE__ */ new Set();
|
|
5
6
|
|
|
6
7
|
//#endregion
|
|
7
|
-
export { AttachedLanguages, ResolvedLanguages, ResolvingLanguages };
|
|
8
|
+
export { AttachedLanguages, RegisteredCustomLanguages, ResolvedLanguages, ResolvingLanguages };
|
|
8
9
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["ResolvedLanguages: Map<SupportedLanguages, ResolvedLanguage>","ResolvingLanguages: Map<\n SupportedLanguages,\n Promise<ResolvedLanguage>\n>","AttachedLanguages: Set<string>"],"sources":["../../../src/highlighter/languages/constants.ts"],"sourcesContent":["import type { SupportedLanguages } from '../../types';\nimport type { ResolvedLanguage } from '../../worker';\n\nexport const ResolvedLanguages: Map<SupportedLanguages, ResolvedLanguage> =\n new Map();\n\nexport const ResolvingLanguages: Map<\n SupportedLanguages,\n Promise<ResolvedLanguage>\n> = new Map();\n\nexport const AttachedLanguages: Set<string> = new Set();\n"],"mappings":";
|
|
1
|
+
{"version":3,"file":"constants.js","names":["ResolvedLanguages: Map<SupportedLanguages, ResolvedLanguage>","ResolvingLanguages: Map<\n SupportedLanguages,\n Promise<ResolvedLanguage>\n>","RegisteredCustomLanguages: Map<\n string,\n DynamicImportLanguageRegistration\n>","AttachedLanguages: Set<string>"],"sources":["../../../src/highlighter/languages/constants.ts"],"sourcesContent":["import type { DynamicImportLanguageRegistration } from 'shiki';\n\nimport type { SupportedLanguages } from '../../types';\nimport type { ResolvedLanguage } from '../../worker';\n\nexport const ResolvedLanguages: Map<SupportedLanguages, ResolvedLanguage> =\n new Map();\n\nexport const ResolvingLanguages: Map<\n SupportedLanguages,\n Promise<ResolvedLanguage>\n> = new Map();\n\nexport const RegisteredCustomLanguages: Map<\n string,\n DynamicImportLanguageRegistration\n> = new Map();\n\nexport const AttachedLanguages: Set<string> = new Set();\n"],"mappings":";AAKA,MAAaA,oCACX,IAAI,KAAK;AAEX,MAAaC,qCAGT,IAAI,KAAK;AAEb,MAAaC,4CAGT,IAAI,KAAK;AAEb,MAAaC,oCAAiC,IAAI,KAAK"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DynamicImportLanguageRegistration } from "shiki";
|
|
2
|
+
|
|
3
|
+
//#region src/highlighter/languages/registerCustomLanguage.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Register a custom language loader and optionally map it to
|
|
7
|
+
* file names or extensions.
|
|
8
|
+
*/
|
|
9
|
+
declare function registerCustomLanguage(lang: string, loader: DynamicImportLanguageRegistration, extensionsOrFilenames?: string[]): void;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { registerCustomLanguage };
|
|
12
|
+
//# sourceMappingURL=registerCustomLanguage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerCustomLanguage.d.ts","names":[],"sources":["../../../src/highlighter/languages/registerCustomLanguage.ts"],"sourcesContent":[],"mappings":";;;;;;AASA;;iBAAgB,sBAAA,uBAEN"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { RegisteredCustomLanguages } from "./constants.js";
|
|
2
|
+
import { CUSTOM_EXTENSION_TO_FILE_FORMAT } from "../../utils/getFiletypeFromFileName.js";
|
|
3
|
+
|
|
4
|
+
//#region src/highlighter/languages/registerCustomLanguage.ts
|
|
5
|
+
/**
|
|
6
|
+
* Register a custom language loader and optionally map it to
|
|
7
|
+
* file names or extensions.
|
|
8
|
+
*/
|
|
9
|
+
function registerCustomLanguage(lang, loader, extensionsOrFilenames = []) {
|
|
10
|
+
if (lang === "text" || lang === "ansi") throw new Error("registerCustomLanguage: 'text' and 'ansi' are reserved language names");
|
|
11
|
+
if (RegisteredCustomLanguages.has(lang)) {
|
|
12
|
+
console.error(`registerCustomLanguage: lang: ${lang} is already registered`);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
RegisteredCustomLanguages.set(lang, loader);
|
|
16
|
+
for (const extension of extensionsOrFilenames) CUSTOM_EXTENSION_TO_FILE_FORMAT.set(extension, lang);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { registerCustomLanguage };
|
|
21
|
+
//# sourceMappingURL=registerCustomLanguage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerCustomLanguage.js","names":[],"sources":["../../../src/highlighter/languages/registerCustomLanguage.ts"],"sourcesContent":["import type { DynamicImportLanguageRegistration } from 'shiki';\n\nimport { CUSTOM_EXTENSION_TO_FILE_FORMAT } from '../../utils/getFiletypeFromFileName';\nimport { RegisteredCustomLanguages } from './constants';\n\n/**\n * Register a custom language loader and optionally map it to\n * file names or extensions.\n */\nexport function registerCustomLanguage(\n lang: string,\n loader: DynamicImportLanguageRegistration,\n /**\n * File names or extensions to map to this language. Use exact filenames\n * (e.g., \"Dockerfile\", \"CMakeLists.txt\") or extension tokens without a dot\n * (e.g., \"proto\", \"foo\"). Compound extensions are supported\n * (e.g., \"blade.php\").\n */\n extensionsOrFilenames: string[] = []\n): void {\n if (lang === 'text' || lang === 'ansi') {\n throw new Error(\n \"registerCustomLanguage: 'text' and 'ansi' are reserved language names\"\n );\n }\n if (RegisteredCustomLanguages.has(lang)) {\n console.error(\n `registerCustomLanguage: lang: ${lang} is already registered`\n );\n return;\n }\n RegisteredCustomLanguages.set(lang, loader);\n for (const extension of extensionsOrFilenames) {\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(extension, lang);\n }\n}\n"],"mappings":";;;;;;;;AASA,SAAgB,uBACd,MACA,QAOA,wBAAkC,EAAE,EAC9B;AACN,KAAI,SAAS,UAAU,SAAS,OAC9B,OAAM,IAAI,MACR,wEACD;AAEH,KAAI,0BAA0B,IAAI,KAAK,EAAE;AACvC,UAAQ,MACN,iCAAiC,KAAK,wBACvC;AACD;;AAEF,2BAA0B,IAAI,MAAM,OAAO;AAC3C,MAAK,MAAM,aAAa,sBACtB,iCAAgC,IAAI,WAAW,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveLanguage.d.ts","names":[],"sources":["../../../src/highlighter/languages/resolveLanguage.ts"],"sourcesContent":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"resolveLanguage.d.ts","names":[],"sources":["../../../src/highlighter/languages/resolveLanguage.ts"],"sourcesContent":[],"mappings":";;;;;iBAWsB,eAAA,OACd,QAAQ,uCACb,QAAQ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ResolvedLanguages, ResolvingLanguages } from "./constants.js";
|
|
1
|
+
import { RegisteredCustomLanguages, ResolvedLanguages, ResolvingLanguages } from "./constants.js";
|
|
2
2
|
import { isWorkerContext } from "../../utils/isWorkerContext.js";
|
|
3
3
|
import { bundledLanguages } from "shiki";
|
|
4
4
|
|
|
@@ -8,8 +8,9 @@ async function resolveLanguage(lang) {
|
|
|
8
8
|
const resolver = ResolvingLanguages.get(lang);
|
|
9
9
|
if (resolver != null) return resolver;
|
|
10
10
|
try {
|
|
11
|
-
|
|
12
|
-
if (loader == null
|
|
11
|
+
let loader = RegisteredCustomLanguages.get(lang);
|
|
12
|
+
if (loader == null && Object.prototype.hasOwnProperty.call(bundledLanguages, lang)) loader = bundledLanguages[lang];
|
|
13
|
+
if (loader == null) throw new Error(`resolveLanguage: "${lang}" not found in bundled or custom languages`);
|
|
13
14
|
const resolver$1 = loader().then(({ default: data }) => {
|
|
14
15
|
const resolvedLang = {
|
|
15
16
|
name: lang,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveLanguage.js","names":["resolver"],"sources":["../../../src/highlighter/languages/resolveLanguage.ts"],"sourcesContent":["import { bundledLanguages } from 'shiki';\n\nimport type { SupportedLanguages } from '../../types';\nimport { isWorkerContext } from '../../utils/isWorkerContext';\nimport type { ResolvedLanguage } from '../../worker';\nimport {
|
|
1
|
+
{"version":3,"file":"resolveLanguage.js","names":["resolver"],"sources":["../../../src/highlighter/languages/resolveLanguage.ts"],"sourcesContent":["import { bundledLanguages } from 'shiki';\n\nimport type { BundledLanguage, SupportedLanguages } from '../../types';\nimport { isWorkerContext } from '../../utils/isWorkerContext';\nimport type { ResolvedLanguage } from '../../worker';\nimport {\n RegisteredCustomLanguages,\n ResolvedLanguages,\n ResolvingLanguages,\n} from './constants';\n\nexport async function resolveLanguage(\n lang: Exclude<SupportedLanguages, 'text' | 'ansi'>\n): Promise<ResolvedLanguage> {\n // Prevent dynamic imports in worker contexts\n if (isWorkerContext()) {\n throw new Error(\n `resolveLanguage(\"${lang}\") cannot be called from a worker context. ` +\n 'Languages must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.'\n );\n }\n\n const resolver = ResolvingLanguages.get(lang);\n if (resolver != null) {\n return resolver;\n }\n\n try {\n let loader = RegisteredCustomLanguages.get(lang);\n if (\n loader == null &&\n Object.prototype.hasOwnProperty.call(bundledLanguages, lang)\n ) {\n loader = bundledLanguages[lang as BundledLanguage];\n }\n if (loader == null) {\n throw new Error(\n `resolveLanguage: \"${lang}\" not found in bundled or custom languages`\n );\n }\n\n const resolver = loader().then(({ default: data }) => {\n const resolvedLang = { name: lang, data };\n if (!ResolvedLanguages.has(lang)) {\n ResolvedLanguages.set(lang, resolvedLang);\n }\n return resolvedLang;\n });\n ResolvingLanguages.set(lang, resolver);\n return await resolver;\n } finally {\n ResolvingLanguages.delete(lang);\n }\n}\n"],"mappings":";;;;;AAWA,eAAsB,gBACpB,MAC2B;AAE3B,KAAI,iBAAiB,CACnB,OAAM,IAAI,MACR,oBAAoB,KAAK,4JAE1B;CAGH,MAAM,WAAW,mBAAmB,IAAI,KAAK;AAC7C,KAAI,YAAY,KACd,QAAO;AAGT,KAAI;EACF,IAAI,SAAS,0BAA0B,IAAI,KAAK;AAChD,MACE,UAAU,QACV,OAAO,UAAU,eAAe,KAAK,kBAAkB,KAAK,CAE5D,UAAS,iBAAiB;AAE5B,MAAI,UAAU,KACZ,OAAM,IAAI,MACR,qBAAqB,KAAK,4CAC3B;EAGH,MAAMA,aAAW,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW;GACpD,MAAM,eAAe;IAAE,MAAM;IAAM;IAAM;AACzC,OAAI,CAAC,kBAAkB,IAAI,KAAK,CAC9B,mBAAkB,IAAI,MAAM,aAAa;AAE3C,UAAO;IACP;AACF,qBAAmB,IAAI,MAAMA,WAAS;AACtC,SAAO,MAAMA;WACL;AACR,qBAAmB,OAAO,KAAK"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnnotationLineMap, AnnotationSide, AnnotationSpan, BaseCodeOptions, BaseDiffOptions, BundledLanguage, ChangeContent, ChangeTypes, CodeToHastOptions, ContextContent, DecorationItem, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffMetadata, ForcePlainTextOptions, GapSpan, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PrePropertiesConfig, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderMetadataProps, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SharedRenderState, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, VirtualWindowSpecs } from "./types.js";
|
|
2
|
-
import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
|
|
2
|
+
import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
|
|
3
3
|
import { LineSelectionManager, LineSelectionOptions, SelectedLineRange, SelectionSide, pluckLineSelectionOptions } from "./managers/LineSelectionManager.js";
|
|
4
4
|
import { GetHoveredLineResult, LogTypes, MouseEventManager, MouseEventManagerBaseOptions, MouseEventManagerMode, MouseEventManagerOptions, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, pluckMouseEventOptions } from "./managers/MouseEventManager.js";
|
|
5
5
|
import { File, FileHyrdateProps, FileOptions, FileRenderProps } from "./components/File.js";
|
|
@@ -14,10 +14,11 @@ import { FileStream, FileStreamOptions } from "./components/FileStream.js";
|
|
|
14
14
|
import { areLanguagesAttached } from "./highlighter/languages/areLanguagesAttached.js";
|
|
15
15
|
import { attachResolvedLanguages } from "./highlighter/languages/attachResolvedLanguages.js";
|
|
16
16
|
import { cleanUpResolvedLanguages } from "./highlighter/languages/cleanUpResolvedLanguages.js";
|
|
17
|
-
import { AttachedLanguages, ResolvedLanguages, ResolvingLanguages } from "./highlighter/languages/constants.js";
|
|
17
|
+
import { AttachedLanguages, RegisteredCustomLanguages, ResolvedLanguages, ResolvingLanguages } from "./highlighter/languages/constants.js";
|
|
18
18
|
import { getResolvedLanguages } from "./highlighter/languages/getResolvedLanguages.js";
|
|
19
19
|
import { getResolvedOrResolveLanguage } from "./highlighter/languages/getResolvedOrResolveLanguage.js";
|
|
20
20
|
import { hasResolvedLanguages } from "./highlighter/languages/hasResolvedLanguages.js";
|
|
21
|
+
import { registerCustomLanguage } from "./highlighter/languages/registerCustomLanguage.js";
|
|
21
22
|
import { resolveLanguage } from "./highlighter/languages/resolveLanguage.js";
|
|
22
23
|
import { resolveLanguages } from "./highlighter/languages/resolveLanguages.js";
|
|
23
24
|
import { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter } from "./highlighter/shared_highlighter.js";
|
|
@@ -65,7 +66,7 @@ import { createWindowFromScrollPosition } from "./utils/createWindowFromScrollPo
|
|
|
65
66
|
import { wrapCoreCSS, wrapUnsafeCSS } from "./utils/cssWrappers.js";
|
|
66
67
|
import { diffAcceptRejectHunk } from "./utils/diffAcceptRejectHunk.js";
|
|
67
68
|
import { formatCSSVariablePrefix } from "./utils/formatCSSVariablePrefix.js";
|
|
68
|
-
import { EXTENSION_TO_FILE_FORMAT, extendFileFormatMap, getFiletypeFromFileName } from "./utils/getFiletypeFromFileName.js";
|
|
69
|
+
import { CUSTOM_EXTENSION_TO_FILE_FORMAT, EXTENSION_TO_FILE_FORMAT, extendFileFormatMap, getFiletypeFromFileName } from "./utils/getFiletypeFromFileName.js";
|
|
69
70
|
import { getHighlighterOptions } from "./utils/getHighlighterOptions.js";
|
|
70
71
|
import { getHighlighterThemeStyles } from "./utils/getHighlighterThemeStyles.js";
|
|
71
72
|
import { getHunkSeparatorSlotName } from "./utils/getHunkSeparatorSlotName.js";
|
|
@@ -92,4 +93,4 @@ import { setLanguageOverride } from "./utils/setLanguageOverride.js";
|
|
|
92
93
|
import { setPreNodeProperties } from "./utils/setWrapperNodeProps.js";
|
|
93
94
|
import { trimPatchContext } from "./utils/trimPatchContext.js";
|
|
94
95
|
import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
|
|
95
|
-
export { ALTERNATE_FILE_NAMES_GIT, AnnotationLineMap, AnnotationSide, AnnotationSpan, AttachedLanguages, AttachedThemes, BaseCodeOptions, BaseDiffOptions, BundledLanguage, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, ChangeContent, ChangeTypes, CodeToHastOptions, CodeToTokenTransformStream, CodeToTokenTransformStreamOptions, ContextContent, CreateFileHeaderElementProps, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, DecorationItem, DiffHunksRenderer, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, EXTENSION_TO_FILE_FORMAT, ExpansionDirections, ExtensionFormatMap, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, File, FileContents, FileDiff, FileDiffHydrationProps, FileDiffMetadata, FileDiffOptions, FileDiffRenderProps, FileHyrdateProps, FileOptions, FileRenderProps, FileRenderResult, FileRenderer, FileRendererOptions, FileStream, FileStreamOptions, ForcePlainTextOptions, GIT_DIFF_FILE_BREAK_REGEX, GapSpan, GetHoveredLineResult, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, HunksRenderResult, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSelectionManager, LineSelectionOptions, LineSpans, LineTypes, LogTypes, MouseEventManager, MouseEventManagerBaseOptions, MouseEventManagerMode, MouseEventManagerOptions, ObservedAnnotationNodes, ObservedGridNodes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, ParsedLine, ParsedPatch, PrePropertiesConfig, RecallToken, RegisteredCustomThemes, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderMetadataProps, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteNames, SVGSpriteSheet, ScrollSyncManager, SelectedLineRange, SelectionSide, SharedRenderState, ShikiStreamTokenizer, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, VirtualWindowSpecs, areDiffLineAnnotationsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createBufferElement, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createHastElement, createHoverContentNode, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, pluckLineSelectionOptions, pluckMouseEventOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveLanguage, resolveLanguages, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapUnsafeCSS };
|
|
96
|
+
export { ALTERNATE_FILE_NAMES_GIT, AnnotationLineMap, AnnotationSide, AnnotationSpan, AttachedLanguages, AttachedThemes, BaseCodeOptions, BaseDiffOptions, BundledLanguage, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_EXTENSION_TO_FILE_FORMAT, ChangeContent, ChangeTypes, CodeToHastOptions, CodeToTokenTransformStream, CodeToTokenTransformStreamOptions, ContextContent, CreateFileHeaderElementProps, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, DecorationItem, DiffHunksRenderer, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, EXTENSION_TO_FILE_FORMAT, ExpansionDirections, ExtensionFormatMap, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, File, FileContents, FileDiff, FileDiffHydrationProps, FileDiffMetadata, FileDiffOptions, FileDiffRenderProps, FileHyrdateProps, FileOptions, FileRenderProps, FileRenderResult, FileRenderer, FileRendererOptions, FileStream, FileStreamOptions, ForcePlainTextOptions, GIT_DIFF_FILE_BREAK_REGEX, GapSpan, GetHoveredLineResult, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, HunksRenderResult, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSelectionManager, LineSelectionOptions, LineSpans, LineTypes, LogTypes, MouseEventManager, MouseEventManagerBaseOptions, MouseEventManagerMode, MouseEventManagerOptions, ObservedAnnotationNodes, ObservedGridNodes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, ParsedLine, ParsedPatch, PrePropertiesConfig, RecallToken, RegisteredCustomLanguages, RegisteredCustomThemes, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderMetadataProps, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteNames, SVGSpriteSheet, ScrollSyncManager, SelectedLineRange, SelectionSide, SharedRenderState, ShikiStreamTokenizer, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, VirtualWindowSpecs, areDiffLineAnnotationsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createBufferElement, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createHastElement, createHoverContentNode, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, pluckLineSelectionOptions, pluckMouseEventOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveLanguage, resolveLanguages, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapUnsafeCSS };
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
|
|
1
|
+
import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
|
|
2
2
|
import { areSelectionsEqual } from "./utils/areSelectionsEqual.js";
|
|
3
3
|
import { LineSelectionManager, pluckLineSelectionOptions } from "./managers/LineSelectionManager.js";
|
|
4
4
|
import { MouseEventManager, pluckMouseEventOptions } from "./managers/MouseEventManager.js";
|
|
5
5
|
import { ResizeManager } from "./managers/ResizeManager.js";
|
|
6
|
-
import { AttachedLanguages, ResolvedLanguages, ResolvingLanguages } from "./highlighter/languages/constants.js";
|
|
6
|
+
import { AttachedLanguages, RegisteredCustomLanguages, ResolvedLanguages, ResolvingLanguages } from "./highlighter/languages/constants.js";
|
|
7
7
|
import { areLanguagesAttached } from "./highlighter/languages/areLanguagesAttached.js";
|
|
8
8
|
import { attachResolvedLanguages } from "./highlighter/languages/attachResolvedLanguages.js";
|
|
9
9
|
import { cleanUpResolvedLanguages } from "./highlighter/languages/cleanUpResolvedLanguages.js";
|
|
@@ -26,7 +26,7 @@ import { createAnnotationElement } from "./utils/createAnnotationElement.js";
|
|
|
26
26
|
import { getIconForType } from "./utils/getIconForType.js";
|
|
27
27
|
import { createFileHeaderElement } from "./utils/createFileHeaderElement.js";
|
|
28
28
|
import { createPreElement, createPreWrapperProperties } from "./utils/createPreElement.js";
|
|
29
|
-
import { EXTENSION_TO_FILE_FORMAT, extendFileFormatMap, getFiletypeFromFileName } from "./utils/getFiletypeFromFileName.js";
|
|
29
|
+
import { CUSTOM_EXTENSION_TO_FILE_FORMAT, EXTENSION_TO_FILE_FORMAT, extendFileFormatMap, getFiletypeFromFileName } from "./utils/getFiletypeFromFileName.js";
|
|
30
30
|
import { getHighlighterOptions } from "./utils/getHighlighterOptions.js";
|
|
31
31
|
import { getLineAnnotationName } from "./utils/getLineAnnotationName.js";
|
|
32
32
|
import { cleanLastNewline } from "./utils/cleanLastNewline.js";
|
|
@@ -74,6 +74,7 @@ import { createSpanFromToken } from "./utils/createSpanNodeFromToken.js";
|
|
|
74
74
|
import { FileStream } from "./components/FileStream.js";
|
|
75
75
|
import { getResolvedLanguages } from "./highlighter/languages/getResolvedLanguages.js";
|
|
76
76
|
import { hasResolvedLanguages } from "./highlighter/languages/hasResolvedLanguages.js";
|
|
77
|
+
import { registerCustomLanguage } from "./highlighter/languages/registerCustomLanguage.js";
|
|
77
78
|
import { resolveLanguages } from "./highlighter/languages/resolveLanguages.js";
|
|
78
79
|
import { getResolvedThemes } from "./highlighter/themes/getResolvedThemes.js";
|
|
79
80
|
import { registerCustomCSSVariableTheme } from "./highlighter/themes/registerCustomCSSVariableTheme.js";
|
|
@@ -91,4 +92,4 @@ import { setLanguageOverride } from "./utils/setLanguageOverride.js";
|
|
|
91
92
|
import { trimPatchContext } from "./utils/trimPatchContext.js";
|
|
92
93
|
import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
|
|
93
94
|
|
|
94
|
-
export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CodeToTokenTransformStream, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, DiffHunksRenderer, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, LineSelectionManager, MouseEventManager, RegisteredCustomThemes, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteSheet, ScrollSyncManager, ShikiStreamTokenizer, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, areDiffLineAnnotationsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createBufferElement, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createHastElement, createHoverContentNode, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, pluckLineSelectionOptions, pluckMouseEventOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveLanguage, resolveLanguages, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapUnsafeCSS };
|
|
95
|
+
export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_EXTENSION_TO_FILE_FORMAT, CodeToTokenTransformStream, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES, DIFFS_TAG_NAME, DIFF_HEADER_HEIGHT, DiffHunksRenderer, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_GAP, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, HUNK_SEPARATOR_HEIGHT, INDEX_LINE_METADATA, LINE_HEIGHT, LINE_HUNK_COUNT, LineSelectionManager, MouseEventManager, RegisteredCustomLanguages, RegisteredCustomThemes, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteSheet, ScrollSyncManager, ShikiStreamTokenizer, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, areDiffLineAnnotationsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createBufferElement, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createHastElement, createHoverContentNode, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, pluckLineSelectionOptions, pluckMouseEventOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveLanguage, resolveLanguages, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapUnsafeCSS };
|
package/dist/react/jsx.d.ts
CHANGED
package/dist/react/jsx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.d.ts","names":["DIFFS_TAG_NAME","_0","HTMLElement","React","HTMLAttributes","DetailedHTMLProps","sideEffect"],"sources":["../../src/react/jsx.d.ts"],"sourcesContent":["import 'react';\n\nimport type { DIFFS_TAG_NAME } from '../constants';\n\ndeclare module 'react' {\n namespace JSX {\n interface IntrinsicElements {\n [DIFFS_TAG_NAME]: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLElement>,\n HTMLElement\n >;\n }\n }\n}\n"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"jsx.d.ts","names":["DIFFS_TAG_NAME","_0","HTMLElement","React","HTMLAttributes","DetailedHTMLProps","sideEffect"],"sources":["../../src/react/jsx.d.ts"],"sourcesContent":["import 'react';\n\nimport type { DIFFS_TAG_NAME } from '../constants';\n\ndeclare module 'react' {\n namespace JSX {\n interface IntrinsicElements {\n [DIFFS_TAG_NAME]: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLElement>,\n HTMLElement\n >;\n }\n }\n}\n"],"mappings":";;;;eAEmD,OAAA,CAAA;YAAA,GAAA,CAAA;IAMtBE,UAAAA,iBAAAA,CAAAA;MAArBC,CADDH,cAAAA,CACOI,EADUD,KAAAA,CAAME,iBAChBD,CAAND,KAAAA,CAAMC,cACNF,CADqBA,WACrBA,CAAAA,EAAAA,WAFsBG,CAAvBL;IAAc;EAAAM"}
|
package/dist/react/types.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiffHunksRenderer.d.ts","names":["options: BaseDiffOptions","onRenderUpdate?: () => unknown","workerManager?: WorkerPoolManager | undefined"],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"sourcesContent":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"DiffHunksRenderer.d.ts","names":["options: BaseDiffOptions","onRenderUpdate?: () => unknown","workerManager?: WorkerPoolManager | undefined"],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"sourcesContent":[],"mappings":";;;;;;KAgGK,mBAAA,GAAsB,SACzB,KAAK;UAGU,iBAAA;gBACD;EAnDuB,YA8ClC,EAMW,cANX,EAAA,GAAA,SAAA;EACE,UAAA,EAMO,cANP,EAAA,GAAA,SAAA;EAAL,QAAA,EAOU,QAPV,EAAA;EADyB,GAAA,EAAA,MAAA;EAAA,OAAA,EAUhB,OAVgB;EAI3B,aAAiB,EAOA,OAPA,GAAA,SAAA;EACD,UAAA,EAAA,MAAA;EACA,WAAA,EAAA,MAAA;EACF,aAAA,EAAA,OAAA,GAAA,MAAA,GAAA,SAAA;;AAGH,cASE,iBATF,CAAA,cAAA,SAAA,CAAA,CAAA;EACM,OAAA,EAuBG,eAvBH;EAAA,QAAA,cAAA;EAQjB,QAAa,aAAA;EAeO,SAAA,IAAA,EAAA,MAAA;EAAA,QAAA,WAAA;EAEQ,QAAA,IAAA;EAyBN,QAAA,aAAA;EAQI,QAAA,mBAAA;EAOa,QAAA,mBAAA;EAiBD,QAAA,YAAA;EAID,QAAA,WAAA;EAAZ,WAAA,CAAA,OAAA,CAAA,EA/DL,eA+DK,EAAA,cAAA,CAAA,EAAA,CAAA,GAAA,GAAA,OAAA,CAAA,GAAA,SAAA,EAAA,aAAA,CAAA,EA7DG,iBA6DH,GAAA,SAAA;EAIgC,OAAA,CAAA,CAAA,EAAA,IAAA;EAAnB,OAAA,CAAA,CAAA,EAAA,IAAA;EAkBV,UAAA,CAAA,OAAA,EA1DN,eA0DM,CAAA,EAAA,IAAA;EAyCa,QAAA,YAAA;EAAR,YAAA,CAAA,SAAA,EA3FP,UA2FO,CAAA,EAAA,IAAA;EAOjB,UAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EA3FuB,mBA2FvB,CAAA,EAAA,IAAA;EAuDN,eAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAjI4B,mBAiI5B;EACO,mBAAA,CAAA,CAAA,EA9HQ,GA8HR,CAAA,MAAA,EA9HoB,mBA8HpB,CAAA;EACZ,kBAAA,CAAA,eAAA,EA3HiC,kBA2HjC,CA3HoD,WA2HpD,CAAA,EAAA,CAAA,EAAA,IAAA;EAuGK,sBAAA,CAAA,CAAA,EAhNkB,mBAgNlB;EACO,qBAAA,CAAA,CAAA,EAxKgB,OAwKhB,CAxKwB,gBAwKxB,CAAA;EACJ,OAAA,CAAA,IAAA,EAlKG,gBAkKH,GAAA,SAAA,CAAA,EAAA,IAAA;EAAR,QAAA,gBAAA;EA+DK,UAAA,CAAA,IAAA,CAAA,EA1KA,gBA0KA,GAAA,SAAA,EAAA,WAAA,CAAA,EAzKO,WAyKP,CAAA,EAxKL,iBAwKK,GAAA,SAAA;EACE,WAAA,CAAA,IAAA,EAlEF,gBAkEE,EAAA,WAAA,CAAA,EAjEK,WAiEL,CAAA,EAhEP,OAgEO,CAhEC,iBAgED,CAAA;EACC,QAAA,gBAAA;EAuXD,QAAA,cAAA;EACE,QAAA,yBAAA;EACT,kBAAA,CAAA,IAAA,EA3XK,gBA2XL,EAAA,MAAA,EA1XO,gBA0XP,EAAA,OAAA,EAzXQ,iBAyXR,CAAA,EAAA,IAAA;EAyCO,gBAAA,CAAA,KAAA,EAAA,OAAA,CAAA,EAAA,IAAA;EACM,QAAA,iBAAA;EAMJ,aAAA,CAAA,MAAA,EAlDF,iBAkDE,EAAA,QAAA,CAAA,EAjDA,cAiDA,EAAA,CAAA,EAhDT,OAgDS;EAAA,cAAA,CAAA,MAAA,EAPF,iBAOE,EAAA,YAAA,CAAA,EANI,cAMJ,EAAA,CAAA,EAAA,MAAA;8BAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_EXPANDED_REGION, DEFAULT_THEMES } from "../constants.js";
|
|
1
|
+
import { DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_THEMES } from "../constants.js";
|
|
2
2
|
import { areLanguagesAttached } from "../highlighter/languages/areLanguagesAttached.js";
|
|
3
3
|
import { getHighlighterIfLoaded, getSharedHighlighter } from "../highlighter/shared_highlighter.js";
|
|
4
4
|
import { areThemesAttached } from "../highlighter/themes/areThemesAttached.js";
|
|
@@ -103,7 +103,7 @@ var DiffHunksRenderer = class {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
getOptionsWithDefaults() {
|
|
106
|
-
const { diffIndicators = "bars", diffStyle = "split", disableBackground = false, disableFileHeader = false, disableLineNumbers = false, disableVirtualizationBuffers = false, expandUnchanged = false, expansionLineCount = 100, hunkSeparators = "line-info", lineDiffType = "word-alt", maxLineDiffLength = 1e3, overflow = "scroll", theme = DEFAULT_THEMES, themeType = "system", tokenizeMaxLineLength = 1e3, useCSSClasses = false } = this.options;
|
|
106
|
+
const { diffIndicators = "bars", diffStyle = "split", disableBackground = false, disableFileHeader = false, disableLineNumbers = false, disableVirtualizationBuffers = false, expandUnchanged = false, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, expansionLineCount = 100, hunkSeparators = "line-info", lineDiffType = "word-alt", maxLineDiffLength = 1e3, overflow = "scroll", theme = DEFAULT_THEMES, themeType = "system", tokenizeMaxLineLength = 1e3, useCSSClasses = false } = this.options;
|
|
107
107
|
return {
|
|
108
108
|
diffIndicators,
|
|
109
109
|
diffStyle,
|
|
@@ -112,6 +112,7 @@ var DiffHunksRenderer = class {
|
|
|
112
112
|
disableLineNumbers,
|
|
113
113
|
disableVirtualizationBuffers,
|
|
114
114
|
expandUnchanged,
|
|
115
|
+
collapsedContextThreshold,
|
|
115
116
|
expansionLineCount,
|
|
116
117
|
hunkSeparators,
|
|
117
118
|
lineDiffType,
|
|
@@ -172,7 +173,7 @@ var DiffHunksRenderer = class {
|
|
|
172
173
|
}
|
|
173
174
|
renderDiff(diff = this.renderCache?.diff, renderRange = DEFAULT_RENDER_RANGE) {
|
|
174
175
|
if (diff == null) return;
|
|
175
|
-
const { expandUnchanged = false } = this.
|
|
176
|
+
const { expandUnchanged = false, collapsedContextThreshold } = this.getOptionsWithDefaults();
|
|
176
177
|
const cache = this.workerManager?.getDiffResultCache(diff);
|
|
177
178
|
if (cache != null && this.renderCache == null) this.renderCache = {
|
|
178
179
|
diff,
|
|
@@ -190,7 +191,7 @@ var DiffHunksRenderer = class {
|
|
|
190
191
|
};
|
|
191
192
|
if (this.workerManager?.isWorkingPool() === true) {
|
|
192
193
|
if (this.renderCache.result == null || !this.renderCache.highlighted && !areRenderRangesEqual(this.renderCache.renderRange, renderRange)) {
|
|
193
|
-
this.renderCache.result = this.workerManager.getPlainDiffAST(diff, renderRange.startingLine, renderRange.totalLines, isDefaultRenderRange(renderRange) ? true : expandUnchanged ? true : this.expandedHunks);
|
|
194
|
+
this.renderCache.result = this.workerManager.getPlainDiffAST(diff, renderRange.startingLine, renderRange.totalLines, isDefaultRenderRange(renderRange) ? true : expandUnchanged ? true : this.expandedHunks, collapsedContextThreshold);
|
|
194
195
|
this.renderCache.renderRange = renderRange;
|
|
195
196
|
}
|
|
196
197
|
if (renderRange.totalLines > 0 && (!this.renderCache.highlighted || forceRender)) this.workerManager.highlightDiffAST(this, diff);
|
|
@@ -240,10 +241,12 @@ var DiffHunksRenderer = class {
|
|
|
240
241
|
}
|
|
241
242
|
renderDiffWithHighlighter(diff, highlighter, forcePlainText = false) {
|
|
242
243
|
const { options } = this.getRenderOptions(diff);
|
|
244
|
+
const { collapsedContextThreshold } = this.getOptionsWithDefaults();
|
|
243
245
|
return {
|
|
244
246
|
result: renderDiffWithHighlighter(diff, highlighter, options, {
|
|
245
247
|
forcePlainText,
|
|
246
|
-
expandedHunks: forcePlainText ? true : void 0
|
|
248
|
+
expandedHunks: forcePlainText ? true : void 0,
|
|
249
|
+
collapsedContextThreshold
|
|
247
250
|
}),
|
|
248
251
|
options
|
|
249
252
|
};
|
|
@@ -264,7 +267,7 @@ var DiffHunksRenderer = class {
|
|
|
264
267
|
console.error(error);
|
|
265
268
|
}
|
|
266
269
|
processDiffResult(fileDiff, renderRange, { code, themeStyles, baseThemeType }) {
|
|
267
|
-
const { diffStyle, disableFileHeader, disableVirtualizationBuffers, expandUnchanged, expansionLineCount, hunkSeparators } = this.getOptionsWithDefaults();
|
|
270
|
+
const { diffStyle, disableFileHeader, disableVirtualizationBuffers, expandUnchanged, expansionLineCount, collapsedContextThreshold, hunkSeparators } = this.getOptionsWithDefaults();
|
|
268
271
|
this.diff = fileDiff;
|
|
269
272
|
const unified = diffStyle === "unified";
|
|
270
273
|
let additionsAST = [];
|
|
@@ -316,6 +319,7 @@ var DiffHunksRenderer = class {
|
|
|
316
319
|
startingLine: renderRange.startingLine,
|
|
317
320
|
totalLines: renderRange.totalLines,
|
|
318
321
|
expandedHunks: expandUnchanged ? true : this.expandedHunks,
|
|
322
|
+
collapsedContextThreshold,
|
|
319
323
|
callback: ({ hunkIndex, hunk, collapsedBefore, collapsedAfter, unifiedDeletionLineIndex, unifiedAdditionLineIndex, splitLineIndex, additionLineIndex, deletionLineIndex, additionLineNumber, deletionLineNumber, type, noEOFCRAddition, noEOFCRDeletion }) => {
|
|
320
324
|
if (diffStyle === "split") {
|
|
321
325
|
if (lastHunkIndex != null && lastHunkIndex !== hunkIndex) flushSplitSpan();
|