@pierre/diffs 1.5.1 → 1.5.2
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 +2 -1
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +21 -11
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +3 -1
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +7 -4
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +4 -2
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +10 -5
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +3 -4
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +5 -2
- package/dist/editor/editor.js.map +1 -1
- package/dist/editor/getChangedDocumentLines.d.ts +6 -0
- package/dist/editor/getChangedDocumentLines.d.ts.map +1 -0
- package/dist/editor/getChangedDocumentLines.js +35 -0
- package/dist/editor/getChangedDocumentLines.js.map +1 -0
- package/dist/renderers/DiffHunksRenderer.d.ts +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +19 -2
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/computeVirtualFileMetrics.d.ts +2 -1
- package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
- package/dist/utils/computeVirtualFileMetrics.js +5 -3
- package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
- package/dist/utils/getDiffHunksRendererOptions.js +1 -0
- package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
- package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
- package/dist/utils/getFiletypeFromFileName.js +21 -3
- package/dist/utils/getFiletypeFromFileName.js.map +1 -1
- package/dist/utils/platform.d.ts +2 -1
- package/dist/utils/platform.d.ts.map +1 -1
- package/dist/utils/platform.js +6 -1
- package/dist/utils/platform.js.map +1 -1
- package/dist/worker/WorkerPoolManager.d.ts +8 -0
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +29 -14
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/errors.d.ts +35 -0
- package/dist/worker/errors.d.ts.map +1 -0
- package/dist/worker/errors.js +52 -0
- package/dist/worker/errors.js.map +1 -0
- package/dist/worker/index.d.ts +2 -1
- package/dist/worker/index.js +2 -1
- package/dist/worker/types.d.ts +13 -0
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +21 -3
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +21 -3
- package/dist/worker/worker.js.map +1 -1
- package/package.json +1 -1
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";;;;KAiBY;;;;;UAMK;;;EAGf;;EAEA;;;EAGA,OAAO;;EAEP;;EAEA;;UAGe;EACf,SAAS;EACT,SAAS;;UAGM;EACf;EACA,SAAS;;KAGC,sBACR,6BACA;KAEQ;EACN,SAAS;EAAc,SAAS;;EAChC;EAAe,SAAS;;EACxB,SAAS;EAAc;;KAEjB,qBACR;EACE;EAAqB;;KAEf,0BACV,UAAU,qBACP,QAAQ;KAED;KAEA,oBAAoB,cAAc,YAAY;KAe9C,kBAAkB;KAElB,aAAa,yBAAyB;;;;;;;;KAStC,mBAAmB,mBAC7B,oBACA;;;;;;;;;KAWU;;;;;UAWK;;;EAGf;;EAEA,OAAO;;;;;;;UAQQ;EACf;;EAEA;;;;;EAKA;;;;;EAKA;;;;;;;UAQe;EACf;;EAEA;;;;;EAKA;;EAEA;;;;;EAKA;;;;;;UAOe;;;;;EAKf;;;;;EAMA;;;;;;;;EAQA;;EAEA;;;;;EAKA;;;;;EAMA;;;;;;;;EAQA;;EAEA;;;;;EAKA;;;;;EAMA,cAAc,iBAAiB;;;;;EAK/B;;EAEA;;;;;EAMA;;EAEA;;EAGA;;EAEA;;;;;;;;EASA;;;;;;;;EAQA;;;;;;;;;;UAWe;;EAEf;;EAEA;;;;;;;EAOA,OAAO;;;;;EAMP;;;;;EAKA;;;;;EAMA;;EAEA;;EAGA,MAAM;;;EAIN,OAAO;;EAEP;;EAEA;;;;;;;;;;;;;;EAeA;;;;;;;;EASA;;;;;;;;EAQA;;;;;;;;;;EAUA;;;;;;;;;;;;EAYA;;KAGU;UAMK;EACf,MAAM;EACN;;EAEA;EACA;EACA;;EAEA;;KAGU,qBACR;KAMQ;KAOA;KAEA;;;;KAKA;KAOA;KAEA;UAEK;EACf,QAAQ,kBAAkB;EAC1B;EACA;EACA,YAAY;EACZ;EACA;EACA;EACA;EAGA,uBAAuB;EACvB;EACA;EACA;EACA;EAGA;;UAGe,wBAAwB;EACvC;EACA,iBAAiB;EACjB;EACA,iBAAiB;EACjB;;;;;;;EAOA,gBAAgB;EAEhB;EAIA,eAAe;EACf;EAGA
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
|
|
@@ -2,9 +2,10 @@ import { HunkSeparators, VirtualFileMetrics } from "../types.js";
|
|
|
2
2
|
//#region src/utils/computeVirtualFileMetrics.d.ts
|
|
3
3
|
declare function computeVirtualFileMetrics(metrics?: Partial<VirtualFileMetrics>): VirtualFileMetrics;
|
|
4
4
|
declare function getVirtualFileHeaderRegion(metrics: VirtualFileMetrics, disableFileHeader: boolean): number;
|
|
5
|
+
declare function getVirtualFileHeaderHeight(metrics: VirtualFileMetrics, disableFileHeader: boolean): number;
|
|
5
6
|
declare function getVirtualFilePaddingTop(metrics: VirtualFileMetrics, disableFileHeader: boolean): number;
|
|
6
7
|
declare function getVirtualFilePaddingBottom(metrics: VirtualFileMetrics): number;
|
|
7
8
|
declare function getDefaultHunkSeparatorHeight(type: HunkSeparators): number;
|
|
8
9
|
//#endregion
|
|
9
|
-
export { computeVirtualFileMetrics, getDefaultHunkSeparatorHeight, getVirtualFileHeaderRegion, getVirtualFilePaddingBottom, getVirtualFilePaddingTop };
|
|
10
|
+
export { computeVirtualFileMetrics, getDefaultHunkSeparatorHeight, getVirtualFileHeaderHeight, getVirtualFileHeaderRegion, getVirtualFilePaddingBottom, getVirtualFilePaddingTop };
|
|
10
11
|
//# sourceMappingURL=computeVirtualFileMetrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeVirtualFileMetrics.d.ts","names":[],"sources":["../../src/utils/computeVirtualFileMetrics.ts"],"mappings":";;iBAGgB,0BACd,UAAU,QAAQ,sBACjB;iBAOa,2BACd,SAAS,oBACT;
|
|
1
|
+
{"version":3,"file":"computeVirtualFileMetrics.d.ts","names":[],"sources":["../../src/utils/computeVirtualFileMetrics.ts"],"mappings":";;iBAGgB,0BACd,UAAU,QAAQ,sBACjB;iBAOa,2BACd,SAAS,oBACT;iBAUc,2BACd,SAAS,oBACT;iBAKc,yBACd,SAAS,oBACT;iBAKc,4BACd,SAAS;iBAKK,8BAA8B,MAAM"}
|
|
@@ -7,8 +7,10 @@ function computeVirtualFileMetrics(metrics) {
|
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
9
|
function getVirtualFileHeaderRegion(metrics, disableFileHeader) {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
return getVirtualFileHeaderHeight(metrics, disableFileHeader) + getVirtualFilePaddingTop(metrics, disableFileHeader);
|
|
11
|
+
}
|
|
12
|
+
function getVirtualFileHeaderHeight(metrics, disableFileHeader) {
|
|
13
|
+
return disableFileHeader ? 0 : metrics.diffHeaderHeight;
|
|
12
14
|
}
|
|
13
15
|
function getVirtualFilePaddingTop(metrics, disableFileHeader) {
|
|
14
16
|
return metrics.paddingTop ?? (disableFileHeader ? metrics.spacing : 0);
|
|
@@ -26,6 +28,6 @@ function getDefaultHunkSeparatorHeight(type) {
|
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
//#endregion
|
|
29
|
-
export { computeVirtualFileMetrics, getDefaultHunkSeparatorHeight, getVirtualFileHeaderRegion, getVirtualFilePaddingBottom, getVirtualFilePaddingTop };
|
|
31
|
+
export { computeVirtualFileMetrics, getDefaultHunkSeparatorHeight, getVirtualFileHeaderHeight, getVirtualFileHeaderRegion, getVirtualFilePaddingBottom, getVirtualFilePaddingTop };
|
|
30
32
|
|
|
31
33
|
//# sourceMappingURL=computeVirtualFileMetrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeVirtualFileMetrics.js","names":[],"sources":["../../src/utils/computeVirtualFileMetrics.ts"],"sourcesContent":["import { DEFAULT_VIRTUAL_FILE_METRICS } from '../constants';\nimport type { HunkSeparators, VirtualFileMetrics } from '../types';\n\nexport function computeVirtualFileMetrics(\n metrics?: Partial<VirtualFileMetrics>\n): VirtualFileMetrics {\n return {\n ...DEFAULT_VIRTUAL_FILE_METRICS,\n ...metrics,\n };\n}\n\nexport function getVirtualFileHeaderRegion(\n metrics: VirtualFileMetrics,\n disableFileHeader: boolean\n): number {\n
|
|
1
|
+
{"version":3,"file":"computeVirtualFileMetrics.js","names":[],"sources":["../../src/utils/computeVirtualFileMetrics.ts"],"sourcesContent":["import { DEFAULT_VIRTUAL_FILE_METRICS } from '../constants';\nimport type { HunkSeparators, VirtualFileMetrics } from '../types';\n\nexport function computeVirtualFileMetrics(\n metrics?: Partial<VirtualFileMetrics>\n): VirtualFileMetrics {\n return {\n ...DEFAULT_VIRTUAL_FILE_METRICS,\n ...metrics,\n };\n}\n\nexport function getVirtualFileHeaderRegion(\n metrics: VirtualFileMetrics,\n disableFileHeader: boolean\n): number {\n return (\n getVirtualFileHeaderHeight(metrics, disableFileHeader) +\n getVirtualFilePaddingTop(metrics, disableFileHeader)\n );\n}\n\n// Collapsed items render only the header. The top padding belongs to the\n// code content, which is removed on collapse.\nexport function getVirtualFileHeaderHeight(\n metrics: VirtualFileMetrics,\n disableFileHeader: boolean\n): number {\n return disableFileHeader ? 0 : metrics.diffHeaderHeight;\n}\n\nexport function getVirtualFilePaddingTop(\n metrics: VirtualFileMetrics,\n disableFileHeader: boolean\n): number {\n return metrics.paddingTop ?? (disableFileHeader ? metrics.spacing : 0);\n}\n\nexport function getVirtualFilePaddingBottom(\n metrics: VirtualFileMetrics\n): number {\n return metrics.paddingBottom ?? metrics.spacing;\n}\n\nexport function getDefaultHunkSeparatorHeight(type: HunkSeparators): number {\n switch (type) {\n case 'simple':\n return 4;\n case 'metadata':\n case 'line-info':\n case 'line-info-basic':\n case 'custom':\n return 32;\n }\n}\n"],"mappings":";;AAGA,SAAgB,0BACd,SACoB;CACpB,OAAO;EACL,GAAG;EACH,GAAG;CACL;AACF;AAEA,SAAgB,2BACd,SACA,mBACQ;CACR,OACE,2BAA2B,SAAS,iBAAiB,IACrD,yBAAyB,SAAS,iBAAiB;AAEvD;AAIA,SAAgB,2BACd,SACA,mBACQ;CACR,OAAO,oBAAoB,IAAI,QAAQ;AACzC;AAEA,SAAgB,yBACd,SACA,mBACQ;CACR,OAAO,QAAQ,eAAe,oBAAoB,QAAQ,UAAU;AACtE;AAEA,SAAgB,4BACd,SACQ;CACR,OAAO,QAAQ,iBAAiB,QAAQ;AAC1C;AAEA,SAAgB,8BAA8B,MAA8B;CAC1E,QAAQ,MAAR;EACE,KAAK,UACH,OAAO;EACT,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,UACH,OAAO;CACX;AACF"}
|
|
@@ -20,6 +20,7 @@ function getDiffHunksRendererOptions(options) {
|
|
|
20
20
|
hunkSeparators: typeof options?.hunkSeparators === "function" ? "custom" : options?.hunkSeparators,
|
|
21
21
|
expandUnchanged: options?.expandUnchanged,
|
|
22
22
|
loadDiffFiles: options?.loadDiffFiles,
|
|
23
|
+
parseDiffOptions: options?.parseDiffOptions,
|
|
23
24
|
collapsedContextThreshold: options?.collapsedContextThreshold,
|
|
24
25
|
lineDiffType: options?.lineDiffType,
|
|
25
26
|
maxLineDiffLength: options?.maxLineDiffLength,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDiffHunksRendererOptions.js","names":[],"sources":["../../src/utils/getDiffHunksRendererOptions.ts"],"sourcesContent":["import type { FileDiffOptions } from '../components/FileDiff';\nimport type { DiffHunksRendererOptions } from '../renderers/DiffHunksRenderer';\nimport { shouldUseTokenTransformer } from './shouldUseTokenTransformer';\n\n// Build the renderer option snapshot with direct property reads. CodeView item\n// options may inherit prototype getters, so object spread can miss values.\nexport function getDiffHunksRendererOptions<LAnnotation, Caret>(\n options: FileDiffOptions<LAnnotation, Caret> | undefined\n): DiffHunksRendererOptions {\n return {\n theme: options?.theme,\n disableLineNumbers: options?.disableLineNumbers,\n overflow: options?.overflow,\n collapsed: options?.collapsed,\n disableFileHeader: options?.disableFileHeader,\n disableVirtualizationBuffers: options?.disableVirtualizationBuffers,\n stickyHeader: options?.stickyHeader,\n preferredHighlighter: options?.preferredHighlighter,\n useCSSClasses: options?.useCSSClasses,\n useTokenTransformer: shouldUseTokenTransformer<'diff'>(options),\n tokenizeMaxLineLength: options?.tokenizeMaxLineLength,\n tokenizeMaxLength: options?.tokenizeMaxLength,\n diffStyle: options?.diffStyle,\n diffIndicators: options?.diffIndicators,\n disableBackground: options?.disableBackground,\n hunkSeparators:\n typeof options?.hunkSeparators === 'function'\n ? 'custom'\n : options?.hunkSeparators,\n expandUnchanged: options?.expandUnchanged,\n loadDiffFiles: options?.loadDiffFiles,\n collapsedContextThreshold: options?.collapsedContextThreshold,\n lineDiffType: options?.lineDiffType,\n maxLineDiffLength: options?.maxLineDiffLength,\n expansionLineCount: options?.expansionLineCount,\n headerRenderMode:\n options?.renderCustomHeader != null ? 'custom' : 'default',\n };\n}\n"],"mappings":";;AAMA,SAAgB,4BACd,SAC0B;CAC1B,OAAO;EACL,OAAO,SAAS;EAChB,oBAAoB,SAAS;EAC7B,UAAU,SAAS;EACnB,WAAW,SAAS;EACpB,mBAAmB,SAAS;EAC5B,8BAA8B,SAAS;EACvC,cAAc,SAAS;EACvB,sBAAsB,SAAS;EAC/B,eAAe,SAAS;EACxB,qBAAqB,0BAAkC,OAAO;EAC9D,uBAAuB,SAAS;EAChC,mBAAmB,SAAS;EAC5B,WAAW,SAAS;EACpB,gBAAgB,SAAS;EACzB,mBAAmB,SAAS;EAC5B,gBACE,OAAO,SAAS,mBAAmB,aAC/B,WACA,SAAS;EACf,iBAAiB,SAAS;EAC1B,eAAe,SAAS;EACxB,2BAA2B,SAAS;EACpC,cAAc,SAAS;EACvB,mBAAmB,SAAS;EAC5B,oBAAoB,SAAS;EAC7B,kBACE,SAAS,sBAAsB,OAAO,WAAW;CACrD;AACF"}
|
|
1
|
+
{"version":3,"file":"getDiffHunksRendererOptions.js","names":[],"sources":["../../src/utils/getDiffHunksRendererOptions.ts"],"sourcesContent":["import type { FileDiffOptions } from '../components/FileDiff';\nimport type { DiffHunksRendererOptions } from '../renderers/DiffHunksRenderer';\nimport { shouldUseTokenTransformer } from './shouldUseTokenTransformer';\n\n// Build the renderer option snapshot with direct property reads. CodeView item\n// options may inherit prototype getters, so object spread can miss values.\nexport function getDiffHunksRendererOptions<LAnnotation, Caret>(\n options: FileDiffOptions<LAnnotation, Caret> | undefined\n): DiffHunksRendererOptions {\n return {\n theme: options?.theme,\n disableLineNumbers: options?.disableLineNumbers,\n overflow: options?.overflow,\n collapsed: options?.collapsed,\n disableFileHeader: options?.disableFileHeader,\n disableVirtualizationBuffers: options?.disableVirtualizationBuffers,\n stickyHeader: options?.stickyHeader,\n preferredHighlighter: options?.preferredHighlighter,\n useCSSClasses: options?.useCSSClasses,\n useTokenTransformer: shouldUseTokenTransformer<'diff'>(options),\n tokenizeMaxLineLength: options?.tokenizeMaxLineLength,\n tokenizeMaxLength: options?.tokenizeMaxLength,\n diffStyle: options?.diffStyle,\n diffIndicators: options?.diffIndicators,\n disableBackground: options?.disableBackground,\n hunkSeparators:\n typeof options?.hunkSeparators === 'function'\n ? 'custom'\n : options?.hunkSeparators,\n expandUnchanged: options?.expandUnchanged,\n loadDiffFiles: options?.loadDiffFiles,\n parseDiffOptions: options?.parseDiffOptions,\n collapsedContextThreshold: options?.collapsedContextThreshold,\n lineDiffType: options?.lineDiffType,\n maxLineDiffLength: options?.maxLineDiffLength,\n expansionLineCount: options?.expansionLineCount,\n headerRenderMode:\n options?.renderCustomHeader != null ? 'custom' : 'default',\n };\n}\n"],"mappings":";;AAMA,SAAgB,4BACd,SAC0B;CAC1B,OAAO;EACL,OAAO,SAAS;EAChB,oBAAoB,SAAS;EAC7B,UAAU,SAAS;EACnB,WAAW,SAAS;EACpB,mBAAmB,SAAS;EAC5B,8BAA8B,SAAS;EACvC,cAAc,SAAS;EACvB,sBAAsB,SAAS;EAC/B,eAAe,SAAS;EACxB,qBAAqB,0BAAkC,OAAO;EAC9D,uBAAuB,SAAS;EAChC,mBAAmB,SAAS;EAC5B,WAAW,SAAS;EACpB,gBAAgB,SAAS;EACzB,mBAAmB,SAAS;EAC5B,gBACE,OAAO,SAAS,mBAAmB,aAC/B,WACA,SAAS;EACf,iBAAiB,SAAS;EAC1B,eAAe,SAAS;EACxB,kBAAkB,SAAS;EAC3B,2BAA2B,SAAS;EACpC,cAAc,SAAS;EACvB,mBAAmB,SAAS;EAC5B,oBAAoB,SAAS;EAC7B,kBACE,SAAS,sBAAsB,OAAO,WAAW;CACrD;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFiletypeFromFileName.d.ts","names":[],"sources":["../../src/utils/getFiletypeFromFileName.ts"],"mappings":";;cAOa,0BAA0B;
|
|
1
|
+
{"version":3,"file":"getFiletypeFromFileName.d.ts","names":[],"sources":["../../src/utils/getFiletypeFromFileName.ts"],"mappings":";;cAOa,0BAA0B;iBA2WvB,wBAAwB,mBAAmB;iBA8C3C,wBACd,iBACA,KAAK;iBAgBS;iBAIA,mBACd,aACA,MAAM;iBAgBQ,0BAA0B"}
|
|
@@ -207,6 +207,7 @@ const EXTENSION_TO_FILE_FORMAT = {
|
|
|
207
207
|
mli: "ocaml",
|
|
208
208
|
mll: "ocaml",
|
|
209
209
|
mly: "ocaml",
|
|
210
|
+
odin: "odin",
|
|
210
211
|
pas: "pascal",
|
|
211
212
|
p: "pascal",
|
|
212
213
|
pl: "prolog",
|
|
@@ -239,6 +240,17 @@ const EXTENSION_TO_FILE_FORMAT = {
|
|
|
239
240
|
py: "python",
|
|
240
241
|
pyw: "python",
|
|
241
242
|
pyi: "python",
|
|
243
|
+
BUCK: "python",
|
|
244
|
+
BUILD: "python",
|
|
245
|
+
PACKAGE: "python",
|
|
246
|
+
WORKSPACE: "python",
|
|
247
|
+
Tiltfile: "python",
|
|
248
|
+
bazel: "python",
|
|
249
|
+
bxl: "python",
|
|
250
|
+
bzl: "python",
|
|
251
|
+
bzlmod: "python",
|
|
252
|
+
star: "python",
|
|
253
|
+
sky: "python",
|
|
242
254
|
qml: "qml",
|
|
243
255
|
qmldir: "qmldir",
|
|
244
256
|
qss: "qss",
|
|
@@ -349,16 +361,22 @@ const EXTENSION_TO_FILE_FORMAT = {
|
|
|
349
361
|
sty: "tex"
|
|
350
362
|
};
|
|
351
363
|
function getFiletypeFromFileName(fileName) {
|
|
364
|
+
const format = matchFiletypeFromName(fileName);
|
|
365
|
+
if (format != null) return format;
|
|
366
|
+
const baseName = fileName.split(/[/\\]/).pop() ?? fileName;
|
|
367
|
+
return baseName === fileName ? "text" : matchFiletypeFromName(baseName) ?? "text";
|
|
368
|
+
}
|
|
369
|
+
function matchFiletypeFromName(fileName) {
|
|
352
370
|
if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(fileName)) return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(fileName) ?? "text";
|
|
353
|
-
if (EXTENSION_TO_FILE_FORMAT
|
|
371
|
+
if (Object.hasOwn(EXTENSION_TO_FILE_FORMAT, fileName)) return EXTENSION_TO_FILE_FORMAT[fileName] ?? null;
|
|
354
372
|
const compoundMatch = fileName.match(/\.([^/\\]+\.[^/\\]+)$/);
|
|
355
373
|
if (compoundMatch != null) {
|
|
356
374
|
if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(compoundMatch[1])) return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(compoundMatch[1]) ?? "text";
|
|
357
|
-
if (EXTENSION_TO_FILE_FORMAT
|
|
375
|
+
if (Object.hasOwn(EXTENSION_TO_FILE_FORMAT, compoundMatch[1])) return EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] ?? "text";
|
|
358
376
|
}
|
|
359
377
|
const simpleMatch = fileName.match(/\.([^.]+)$/)?.[1] ?? "";
|
|
360
378
|
if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(simpleMatch)) return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(simpleMatch) ?? "text";
|
|
361
|
-
return EXTENSION_TO_FILE_FORMAT[simpleMatch] ?? "text";
|
|
379
|
+
return Object.hasOwn(EXTENSION_TO_FILE_FORMAT, simpleMatch) ? EXTENSION_TO_FILE_FORMAT[simpleMatch] ?? "text" : null;
|
|
362
380
|
}
|
|
363
381
|
function replaceCustomExtensions(version, map) {
|
|
364
382
|
if (version <= customExtensionsVersion) return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFiletypeFromFileName.js","names":[],"sources":["../../src/utils/getFiletypeFromFileName.ts"],"sourcesContent":["import type { ExtensionFormatMap, SupportedLanguages } from '../types';\n\nconst CUSTOM_EXTENSION_TO_FILE_FORMAT: Map<string, SupportedLanguages> =\n new Map();\n\nlet customExtensionsVersion = 0;\n\nexport const EXTENSION_TO_FILE_FORMAT: ExtensionFormatMap = {\n '1c': '1c',\n abap: 'abap',\n as: 'actionscript-3',\n ada: 'ada',\n adb: 'ada',\n ads: 'ada',\n adoc: 'asciidoc',\n asciidoc: 'asciidoc',\n 'component.html': 'angular-html',\n 'component.ts': 'angular-ts',\n conf: 'nginx',\n htaccess: 'apache',\n cls: 'tex',\n trigger: 'apex',\n apl: 'apl',\n applescript: 'applescript',\n scpt: 'applescript',\n ara: 'ara',\n asm: 'asm',\n s: 'riscv',\n astro: 'astro',\n awk: 'awk',\n bal: 'ballerina',\n sh: 'zsh',\n bash: 'zsh',\n bat: 'cmd',\n cmd: 'cmd',\n be: 'berry',\n beancount: 'beancount',\n bib: 'bibtex',\n bicep: 'bicep',\n 'blade.php': 'blade',\n bsl: 'bsl',\n c: 'c',\n h: 'objective-cpp',\n cs: 'csharp',\n cpp: 'cpp',\n hpp: 'cpp',\n cc: 'cpp',\n cxx: 'cpp',\n hh: 'cpp',\n cdc: 'cdc',\n cairo: 'cairo',\n clar: 'clarity',\n clj: 'clojure',\n cljs: 'clojure',\n cljc: 'clojure',\n soy: 'soy',\n cmake: 'cmake',\n 'CMakeLists.txt': 'cmake',\n cob: 'cobol',\n cbl: 'cobol',\n cobol: 'cobol',\n CODEOWNERS: 'codeowners',\n ql: 'ql',\n coffee: 'coffeescript',\n lisp: 'lisp',\n cl: 'lisp',\n lsp: 'lisp',\n log: 'log',\n v: 'verilog',\n cql: 'cql',\n cr: 'crystal',\n css: 'css',\n csv: 'csv',\n cue: 'cue',\n cypher: 'cypher',\n cyp: 'cypher',\n d: 'd',\n dart: 'dart',\n dax: 'dax',\n desktop: 'desktop',\n diff: 'diff',\n patch: 'diff',\n Dockerfile: 'dockerfile',\n dockerfile: 'dockerfile',\n env: 'dotenv',\n dm: 'dream-maker',\n edge: 'edge',\n el: 'emacs-lisp',\n ex: 'elixir',\n exs: 'elixir',\n elm: 'elm',\n erb: 'erb',\n erl: 'erlang',\n hrl: 'erlang',\n f: 'fortran-fixed-form',\n for: 'fortran-fixed-form',\n fs: 'fsharp',\n fsi: 'fsharp',\n fsx: 'fsharp',\n f03: 'f03',\n f08: 'f08',\n f18: 'f18',\n f77: 'f77',\n f90: 'fortran-free-form',\n f95: 'fortran-free-form',\n fnl: 'fennel',\n fish: 'fish',\n ftl: 'ftl',\n tres: 'gdresource',\n res: 'gdresource',\n gd: 'gdscript',\n gdshader: 'gdshader',\n gs: 'genie',\n feature: 'gherkin',\n COMMIT_EDITMSG: 'git-commit',\n 'git-rebase-todo': 'git-rebase',\n gjs: 'glimmer-js',\n gleam: 'gleam',\n gts: 'glimmer-ts',\n glsl: 'glsl',\n vert: 'glsl',\n frag: 'glsl',\n shader: 'shaderlab',\n gp: 'gnuplot',\n plt: 'gnuplot',\n gnuplot: 'gnuplot',\n go: 'go',\n graphql: 'graphql',\n gql: 'graphql',\n groovy: 'groovy',\n gvy: 'groovy',\n hack: 'hack',\n haml: 'haml',\n hbs: 'handlebars',\n handlebars: 'handlebars',\n hs: 'haskell',\n lhs: 'haskell',\n hx: 'haxe',\n hcl: 'hcl',\n hjson: 'hjson',\n hlsl: 'hlsl',\n fx: 'hlsl',\n html: 'html',\n htm: 'html',\n http: 'http',\n rest: 'http',\n hxml: 'hxml',\n hy: 'hy',\n imba: 'imba',\n ini: 'ini',\n cfg: 'ini',\n jade: 'pug',\n pug: 'pug',\n java: 'java',\n js: 'javascript',\n mjs: 'javascript',\n cjs: 'javascript',\n jinja: 'jinja',\n jinja2: 'jinja',\n j2: 'jinja',\n jison: 'jison',\n jl: 'julia',\n json: 'json',\n json5: 'json5',\n jsonc: 'jsonc',\n jsonl: 'jsonl',\n jsonnet: 'jsonnet',\n libsonnet: 'jsonnet',\n jssm: 'jssm',\n jsx: 'jsx',\n kt: 'kotlin',\n kts: 'kts',\n kql: 'kusto',\n tex: 'tex',\n ltx: 'tex',\n lean: 'lean4',\n less: 'less',\n liquid: 'liquid',\n lit: 'lit',\n ll: 'llvm',\n logo: 'logo',\n lua: 'lua',\n luau: 'luau',\n Makefile: 'makefile',\n mk: 'makefile',\n makefile: 'makefile',\n md: 'markdown',\n markdown: 'markdown',\n marko: 'marko',\n m: 'wolfram',\n mat: 'matlab',\n mdc: 'mdc',\n mdx: 'mdx',\n wiki: 'wikitext',\n mediawiki: 'wikitext',\n mmd: 'mermaid',\n mermaid: 'mermaid',\n mips: 'mipsasm',\n mojo: 'mojo',\n '🔥': 'mojo',\n move: 'move',\n nar: 'narrat',\n nf: 'nextflow',\n nim: 'nim',\n nims: 'nim',\n nimble: 'nim',\n nix: 'nix',\n nu: 'nushell',\n mm: 'objective-cpp',\n ml: 'ocaml',\n mli: 'ocaml',\n mll: 'ocaml',\n mly: 'ocaml',\n pas: 'pascal',\n p: 'pascal',\n pl: 'prolog',\n pm: 'perl',\n t: 'perl',\n raku: 'raku',\n p6: 'raku',\n pl6: 'raku',\n php: 'php',\n phtml: 'php',\n pls: 'plsql',\n sql: 'sql',\n po: 'po',\n polar: 'polar',\n pcss: 'postcss',\n pot: 'pot',\n potx: 'potx',\n pq: 'powerquery',\n pqm: 'powerquery',\n ps1: 'powershell',\n psm1: 'powershell',\n psd1: 'powershell',\n prisma: 'prisma',\n pro: 'prolog',\n P: 'prolog',\n properties: 'properties',\n proto: 'protobuf',\n pp: 'puppet',\n purs: 'purescript',\n py: 'python',\n pyw: 'python',\n pyi: 'python',\n qml: 'qml',\n qmldir: 'qmldir',\n qss: 'qss',\n r: 'r',\n R: 'r',\n rkt: 'racket',\n rktl: 'racket',\n razor: 'razor',\n cshtml: 'razor',\n rb: 'ruby',\n rbw: 'ruby',\n reg: 'reg',\n regex: 'regexp',\n rel: 'rel',\n rs: 'rust',\n rst: 'rst',\n rake: 'ruby',\n gemspec: 'ruby',\n jbuilder: 'ruby',\n builder: 'ruby',\n rabl: 'ruby',\n arb: 'ruby',\n ru: 'ruby',\n podspec: 'ruby',\n Gemfile: 'ruby',\n Rakefile: 'ruby',\n Guardfile: 'ruby',\n Capfile: 'ruby',\n Berksfile: 'ruby',\n Brewfile: 'ruby',\n Vagrantfile: 'ruby',\n Thorfile: 'ruby',\n Appraisals: 'ruby',\n Dangerfile: 'ruby',\n sas: 'sas',\n sass: 'sass',\n scala: 'scala',\n sc: 'scala',\n scm: 'scheme',\n ss: 'scheme',\n sld: 'scheme',\n scss: 'scss',\n sdbl: 'sdbl',\n shadergraph: 'shader',\n st: 'smalltalk',\n sol: 'solidity',\n sparql: 'sparql',\n rq: 'sparql',\n spl: 'splunk',\n config: 'ssh-config',\n do: 'stata',\n ado: 'stata',\n dta: 'stata',\n styl: 'stylus',\n stylus: 'stylus',\n svelte: 'svelte',\n swift: 'swift',\n sv: 'system-verilog',\n svh: 'system-verilog',\n service: 'systemd',\n socket: 'systemd',\n device: 'systemd',\n timer: 'systemd',\n talon: 'talonscript',\n tasl: 'tasl',\n tcl: 'tcl',\n templ: 'templ',\n tf: 'tf',\n tfvars: 'tfvars',\n toml: 'toml',\n ts: 'typescript',\n mts: 'typescript',\n cts: 'typescript',\n tsp: 'typespec',\n tsv: 'tsv',\n tsx: 'tsx',\n ttl: 'turtle',\n twig: 'twig',\n typ: 'typst',\n vv: 'v',\n vala: 'vala',\n vapi: 'vala',\n vb: 'vb',\n vbs: 'vb',\n bas: 'vb',\n vh: 'verilog',\n vhd: 'vhdl',\n vhdl: 'vhdl',\n vim: 'vimscript',\n vue: 'vue',\n 'vine.ts': 'vue-vine',\n vy: 'vyper',\n wasm: 'wasm',\n wat: 'wasm',\n wy: '文言',\n wgsl: 'wgsl',\n wit: 'wit',\n wl: 'wolfram',\n nb: 'wolfram',\n xml: 'xml',\n xsl: 'xsl',\n xslt: 'xsl',\n yaml: 'yaml',\n yml: 'yml',\n zs: 'zenscript',\n zig: 'zig',\n zsh: 'zsh',\n sty: 'tex',\n};\n\nexport function getFiletypeFromFileName(fileName: string): SupportedLanguages {\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(fileName)) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(fileName) ?? 'text';\n }\n // Handle special files without extensions first\n if (EXTENSION_TO_FILE_FORMAT[fileName] != null) {\n return EXTENSION_TO_FILE_FORMAT[fileName];\n }\n\n // Try compound extensions first (e.g., .blade.php, .component.ts)\n const compoundMatch = fileName.match(/\\.([^/\\\\]+\\.[^/\\\\]+)$/);\n if (compoundMatch != null) {\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(compoundMatch[1])) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(compoundMatch[1]) ?? 'text';\n }\n if (EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] != null) {\n return EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] ?? 'text';\n }\n }\n\n // Fall back to simple extension\n const simpleMatch = fileName.match(/\\.([^.]+)$/)?.[1] ?? '';\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(simpleMatch)) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(simpleMatch) ?? 'text';\n }\n return EXTENSION_TO_FILE_FORMAT[simpleMatch] ?? 'text';\n}\n\nexport function replaceCustomExtensions(\n version: number,\n map: ExtensionFormatMap\n): boolean {\n if (version <= customExtensionsVersion) {\n return false;\n }\n CUSTOM_EXTENSION_TO_FILE_FORMAT.clear();\n for (const key in map) {\n const lang = map[key];\n if (lang != null) {\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key, lang);\n }\n }\n customExtensionsVersion = version;\n return true;\n}\n\nexport function getCustomExtensionsVersion(): number {\n return customExtensionsVersion;\n}\n\nexport function setCustomExtension(\n key: string,\n lang: SupportedLanguages\n): boolean {\n const existing = CUSTOM_EXTENSION_TO_FILE_FORMAT.get(key);\n if (existing === lang) {\n return false;\n }\n if (existing != null) {\n console.warn(\n `setCustomExtension: overriding custom mapping for \"${key}\" from \"${existing}\" to \"${lang}\"`\n );\n }\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key, lang);\n customExtensionsVersion++;\n return true;\n}\n\nexport function getCustomExtensionsMap(): ExtensionFormatMap {\n return Object.fromEntries(CUSTOM_EXTENSION_TO_FILE_FORMAT);\n}\n"],"mappings":";AAEA,MAAM,kDACJ,IAAI,IAAI;AAEV,IAAI,0BAA0B;AAE9B,MAAa,2BAA+C;CAC1D,MAAM;CACN,MAAM;CACN,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,UAAU;CACV,kBAAkB;CAClB,gBAAgB;CAChB,MAAM;CACN,UAAU;CACV,KAAK;CACL,SAAS;CACT,KAAK;CACL,aAAa;CACb,MAAM;CACN,KAAK;CACL,KAAK;CACL,GAAG;CACH,OAAO;CACP,KAAK;CACL,KAAK;CACL,IAAI;CACJ,MAAM;CACN,KAAK;CACL,KAAK;CACL,IAAI;CACJ,WAAW;CACX,KAAK;CACL,OAAO;CACP,aAAa;CACb,KAAK;CACL,GAAG;CACH,GAAG;CACH,IAAI;CACJ,KAAK;CACL,KAAK;CACL,IAAI;CACJ,KAAK;CACL,IAAI;CACJ,KAAK;CACL,OAAO;CACP,MAAM;CACN,KAAK;CACL,MAAM;CACN,MAAM;CACN,KAAK;CACL,OAAO;CACP,kBAAkB;CAClB,KAAK;CACL,KAAK;CACL,OAAO;CACP,YAAY;CACZ,IAAI;CACJ,QAAQ;CACR,MAAM;CACN,IAAI;CACJ,KAAK;CACL,KAAK;CACL,GAAG;CACH,KAAK;CACL,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,QAAQ;CACR,KAAK;CACL,GAAG;CACH,MAAM;CACN,KAAK;CACL,SAAS;CACT,MAAM;CACN,OAAO;CACP,YAAY;CACZ,YAAY;CACZ,KAAK;CACL,IAAI;CACJ,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,GAAG;CACH,KAAK;CACL,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,MAAM;CACN,KAAK;CACL,IAAI;CACJ,UAAU;CACV,IAAI;CACJ,SAAS;CACT,gBAAgB;CAChB,mBAAmB;CACnB,KAAK;CACL,OAAO;CACP,KAAK;CACL,MAAM;CACN,MAAM;CACN,MAAM;CACN,QAAQ;CACR,IAAI;CACJ,KAAK;CACL,SAAS;CACT,IAAI;CACJ,SAAS;CACT,KAAK;CACL,QAAQ;CACR,KAAK;CACL,MAAM;CACN,MAAM;CACN,KAAK;CACL,YAAY;CACZ,IAAI;CACJ,KAAK;CACL,IAAI;CACJ,KAAK;CACL,OAAO;CACP,MAAM;CACN,IAAI;CACJ,MAAM;CACN,KAAK;CACL,MAAM;CACN,MAAM;CACN,MAAM;CACN,IAAI;CACJ,MAAM;CACN,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,MAAM;CACN,IAAI;CACJ,KAAK;CACL,KAAK;CACL,OAAO;CACP,QAAQ;CACR,IAAI;CACJ,OAAO;CACP,IAAI;CACJ,MAAM;CACN,OAAO;CACP,OAAO;CACP,OAAO;CACP,SAAS;CACT,WAAW;CACX,MAAM;CACN,KAAK;CACL,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,MAAM;CACN,QAAQ;CACR,KAAK;CACL,IAAI;CACJ,MAAM;CACN,KAAK;CACL,MAAM;CACN,UAAU;CACV,IAAI;CACJ,UAAU;CACV,IAAI;CACJ,UAAU;CACV,OAAO;CACP,GAAG;CACH,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,WAAW;CACX,KAAK;CACL,SAAS;CACT,MAAM;CACN,MAAM;CACN,MAAM;CACN,MAAM;CACN,KAAK;CACL,IAAI;CACJ,KAAK;CACL,MAAM;CACN,QAAQ;CACR,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,GAAG;CACH,IAAI;CACJ,IAAI;CACJ,GAAG;CACH,MAAM;CACN,IAAI;CACJ,KAAK;CACL,KAAK;CACL,OAAO;CACP,KAAK;CACL,KAAK;CACL,IAAI;CACJ,OAAO;CACP,MAAM;CACN,KAAK;CACL,MAAM;CACN,IAAI;CACJ,KAAK;CACL,KAAK;CACL,MAAM;CACN,MAAM;CACN,QAAQ;CACR,KAAK;CACL,GAAG;CACH,YAAY;CACZ,OAAO;CACP,IAAI;CACJ,MAAM;CACN,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,QAAQ;CACR,KAAK;CACL,GAAG;CACH,GAAG;CACH,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ;CACR,IAAI;CACJ,KAAK;CACL,KAAK;CACL,OAAO;CACP,KAAK;CACL,IAAI;CACJ,KAAK;CACL,MAAM;CACN,SAAS;CACT,UAAU;CACV,SAAS;CACT,MAAM;CACN,KAAK;CACL,IAAI;CACJ,SAAS;CACT,SAAS;CACT,UAAU;CACV,WAAW;CACX,SAAS;CACT,WAAW;CACX,UAAU;CACV,aAAa;CACb,UAAU;CACV,YAAY;CACZ,YAAY;CACZ,KAAK;CACL,MAAM;CACN,OAAO;CACP,IAAI;CACJ,KAAK;CACL,IAAI;CACJ,KAAK;CACL,MAAM;CACN,MAAM;CACN,aAAa;CACb,IAAI;CACJ,KAAK;CACL,QAAQ;CACR,IAAI;CACJ,KAAK;CACL,QAAQ;CACR,IAAI;CACJ,KAAK;CACL,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,IAAI;CACJ,KAAK;CACL,SAAS;CACT,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,OAAO;CACP,MAAM;CACN,KAAK;CACL,OAAO;CACP,IAAI;CACJ,QAAQ;CACR,MAAM;CACN,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,IAAI;CACJ,MAAM;CACN,MAAM;CACN,IAAI;CACJ,KAAK;CACL,KAAK;CACL,IAAI;CACJ,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,WAAW;CACX,IAAI;CACJ,MAAM;CACN,KAAK;CACL,IAAI;CACJ,MAAM;CACN,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,KAAK;CACL,KAAK;CACL,MAAM;CACN,MAAM;CACN,KAAK;CACL,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;AACP;AAEA,SAAgB,wBAAwB,UAAsC;CAC5E,IAAI,gCAAgC,IAAI,QAAQ,GAC9C,OAAO,gCAAgC,IAAI,QAAQ,KAAK;CAG1D,IAAI,yBAAyB,aAAa,MACxC,OAAO,yBAAyB;CAIlC,MAAM,gBAAgB,SAAS,MAAM,uBAAuB;CAC5D,IAAI,iBAAiB,MAAM;EACzB,IAAI,gCAAgC,IAAI,cAAc,EAAE,GACtD,OAAO,gCAAgC,IAAI,cAAc,EAAE,KAAK;EAElE,IAAI,yBAAyB,cAAc,OAAO,MAChD,OAAO,yBAAyB,cAAc,OAAO;CAEzD;CAGA,MAAM,cAAc,SAAS,MAAM,YAAY,CAAC,GAAG,MAAM;CACzD,IAAI,gCAAgC,IAAI,WAAW,GACjD,OAAO,gCAAgC,IAAI,WAAW,KAAK;CAE7D,OAAO,yBAAyB,gBAAgB;AAClD;AAEA,SAAgB,wBACd,SACA,KACS;CACT,IAAI,WAAW,yBACb,OAAO;CAET,gCAAgC,MAAM;CACtC,KAAK,MAAM,OAAO,KAAK;EACrB,MAAM,OAAO,IAAI;EACjB,IAAI,QAAQ,MACV,gCAAgC,IAAI,KAAK,IAAI;CAEjD;CACA,0BAA0B;CAC1B,OAAO;AACT;AAEA,SAAgB,6BAAqC;CACnD,OAAO;AACT;AAEA,SAAgB,mBACd,KACA,MACS;CACT,MAAM,WAAW,gCAAgC,IAAI,GAAG;CACxD,IAAI,aAAa,MACf,OAAO;CAET,IAAI,YAAY,MACd,QAAQ,KACN,sDAAsD,IAAI,UAAU,SAAS,QAAQ,KAAK,EAC5F;CAEF,gCAAgC,IAAI,KAAK,IAAI;CAC7C;CACA,OAAO;AACT;AAEA,SAAgB,yBAA6C;CAC3D,OAAO,OAAO,YAAY,+BAA+B;AAC3D"}
|
|
1
|
+
{"version":3,"file":"getFiletypeFromFileName.js","names":[],"sources":["../../src/utils/getFiletypeFromFileName.ts"],"sourcesContent":["import type { ExtensionFormatMap, SupportedLanguages } from '../types';\n\nconst CUSTOM_EXTENSION_TO_FILE_FORMAT: Map<string, SupportedLanguages> =\n new Map();\n\nlet customExtensionsVersion = 0;\n\nexport const EXTENSION_TO_FILE_FORMAT: ExtensionFormatMap = {\n '1c': '1c',\n abap: 'abap',\n as: 'actionscript-3',\n ada: 'ada',\n adb: 'ada',\n ads: 'ada',\n adoc: 'asciidoc',\n asciidoc: 'asciidoc',\n 'component.html': 'angular-html',\n 'component.ts': 'angular-ts',\n conf: 'nginx',\n htaccess: 'apache',\n cls: 'tex',\n trigger: 'apex',\n apl: 'apl',\n applescript: 'applescript',\n scpt: 'applescript',\n ara: 'ara',\n asm: 'asm',\n s: 'riscv',\n astro: 'astro',\n awk: 'awk',\n bal: 'ballerina',\n sh: 'zsh',\n bash: 'zsh',\n bat: 'cmd',\n cmd: 'cmd',\n be: 'berry',\n beancount: 'beancount',\n bib: 'bibtex',\n bicep: 'bicep',\n 'blade.php': 'blade',\n bsl: 'bsl',\n c: 'c',\n h: 'objective-cpp',\n cs: 'csharp',\n cpp: 'cpp',\n hpp: 'cpp',\n cc: 'cpp',\n cxx: 'cpp',\n hh: 'cpp',\n cdc: 'cdc',\n cairo: 'cairo',\n clar: 'clarity',\n clj: 'clojure',\n cljs: 'clojure',\n cljc: 'clojure',\n soy: 'soy',\n cmake: 'cmake',\n 'CMakeLists.txt': 'cmake',\n cob: 'cobol',\n cbl: 'cobol',\n cobol: 'cobol',\n CODEOWNERS: 'codeowners',\n ql: 'ql',\n coffee: 'coffeescript',\n lisp: 'lisp',\n cl: 'lisp',\n lsp: 'lisp',\n log: 'log',\n v: 'verilog',\n cql: 'cql',\n cr: 'crystal',\n css: 'css',\n csv: 'csv',\n cue: 'cue',\n cypher: 'cypher',\n cyp: 'cypher',\n d: 'd',\n dart: 'dart',\n dax: 'dax',\n desktop: 'desktop',\n diff: 'diff',\n patch: 'diff',\n Dockerfile: 'dockerfile',\n dockerfile: 'dockerfile',\n env: 'dotenv',\n dm: 'dream-maker',\n edge: 'edge',\n el: 'emacs-lisp',\n ex: 'elixir',\n exs: 'elixir',\n elm: 'elm',\n erb: 'erb',\n erl: 'erlang',\n hrl: 'erlang',\n f: 'fortran-fixed-form',\n for: 'fortran-fixed-form',\n fs: 'fsharp',\n fsi: 'fsharp',\n fsx: 'fsharp',\n f03: 'f03',\n f08: 'f08',\n f18: 'f18',\n f77: 'f77',\n f90: 'fortran-free-form',\n f95: 'fortran-free-form',\n fnl: 'fennel',\n fish: 'fish',\n ftl: 'ftl',\n tres: 'gdresource',\n res: 'gdresource',\n gd: 'gdscript',\n gdshader: 'gdshader',\n gs: 'genie',\n feature: 'gherkin',\n COMMIT_EDITMSG: 'git-commit',\n 'git-rebase-todo': 'git-rebase',\n gjs: 'glimmer-js',\n gleam: 'gleam',\n gts: 'glimmer-ts',\n glsl: 'glsl',\n vert: 'glsl',\n frag: 'glsl',\n shader: 'shaderlab',\n gp: 'gnuplot',\n plt: 'gnuplot',\n gnuplot: 'gnuplot',\n go: 'go',\n graphql: 'graphql',\n gql: 'graphql',\n groovy: 'groovy',\n gvy: 'groovy',\n hack: 'hack',\n haml: 'haml',\n hbs: 'handlebars',\n handlebars: 'handlebars',\n hs: 'haskell',\n lhs: 'haskell',\n hx: 'haxe',\n hcl: 'hcl',\n hjson: 'hjson',\n hlsl: 'hlsl',\n fx: 'hlsl',\n html: 'html',\n htm: 'html',\n http: 'http',\n rest: 'http',\n hxml: 'hxml',\n hy: 'hy',\n imba: 'imba',\n ini: 'ini',\n cfg: 'ini',\n jade: 'pug',\n pug: 'pug',\n java: 'java',\n js: 'javascript',\n mjs: 'javascript',\n cjs: 'javascript',\n jinja: 'jinja',\n jinja2: 'jinja',\n j2: 'jinja',\n jison: 'jison',\n jl: 'julia',\n json: 'json',\n json5: 'json5',\n jsonc: 'jsonc',\n jsonl: 'jsonl',\n jsonnet: 'jsonnet',\n libsonnet: 'jsonnet',\n jssm: 'jssm',\n jsx: 'jsx',\n kt: 'kotlin',\n kts: 'kts',\n kql: 'kusto',\n tex: 'tex',\n ltx: 'tex',\n lean: 'lean4',\n less: 'less',\n liquid: 'liquid',\n lit: 'lit',\n ll: 'llvm',\n logo: 'logo',\n lua: 'lua',\n luau: 'luau',\n Makefile: 'makefile',\n mk: 'makefile',\n makefile: 'makefile',\n md: 'markdown',\n markdown: 'markdown',\n marko: 'marko',\n m: 'wolfram',\n mat: 'matlab',\n mdc: 'mdc',\n mdx: 'mdx',\n wiki: 'wikitext',\n mediawiki: 'wikitext',\n mmd: 'mermaid',\n mermaid: 'mermaid',\n mips: 'mipsasm',\n mojo: 'mojo',\n '🔥': 'mojo',\n move: 'move',\n nar: 'narrat',\n nf: 'nextflow',\n nim: 'nim',\n nims: 'nim',\n nimble: 'nim',\n nix: 'nix',\n nu: 'nushell',\n mm: 'objective-cpp',\n ml: 'ocaml',\n mli: 'ocaml',\n mll: 'ocaml',\n mly: 'ocaml',\n odin: 'odin',\n pas: 'pascal',\n p: 'pascal',\n pl: 'prolog',\n pm: 'perl',\n t: 'perl',\n raku: 'raku',\n p6: 'raku',\n pl6: 'raku',\n php: 'php',\n phtml: 'php',\n pls: 'plsql',\n sql: 'sql',\n po: 'po',\n polar: 'polar',\n pcss: 'postcss',\n pot: 'pot',\n potx: 'potx',\n pq: 'powerquery',\n pqm: 'powerquery',\n ps1: 'powershell',\n psm1: 'powershell',\n psd1: 'powershell',\n prisma: 'prisma',\n pro: 'prolog',\n P: 'prolog',\n properties: 'properties',\n proto: 'protobuf',\n pp: 'puppet',\n purs: 'purescript',\n py: 'python',\n pyw: 'python',\n pyi: 'python',\n // FIXME: these should be changed to a Starlark file type if/when one\n // appears in shiki. For now, Starlark is highlighted like the Python subset\n // it is.\n BUCK: 'python',\n BUILD: 'python',\n PACKAGE: 'python',\n WORKSPACE: 'python',\n Tiltfile: 'python',\n bazel: 'python',\n bxl: 'python',\n bzl: 'python',\n bzlmod: 'python',\n star: 'python',\n sky: 'python',\n qml: 'qml',\n qmldir: 'qmldir',\n qss: 'qss',\n r: 'r',\n R: 'r',\n rkt: 'racket',\n rktl: 'racket',\n razor: 'razor',\n cshtml: 'razor',\n rb: 'ruby',\n rbw: 'ruby',\n reg: 'reg',\n regex: 'regexp',\n rel: 'rel',\n rs: 'rust',\n rst: 'rst',\n rake: 'ruby',\n gemspec: 'ruby',\n jbuilder: 'ruby',\n builder: 'ruby',\n rabl: 'ruby',\n arb: 'ruby',\n ru: 'ruby',\n podspec: 'ruby',\n Gemfile: 'ruby',\n Rakefile: 'ruby',\n Guardfile: 'ruby',\n Capfile: 'ruby',\n Berksfile: 'ruby',\n Brewfile: 'ruby',\n Vagrantfile: 'ruby',\n Thorfile: 'ruby',\n Appraisals: 'ruby',\n Dangerfile: 'ruby',\n sas: 'sas',\n sass: 'sass',\n scala: 'scala',\n sc: 'scala',\n scm: 'scheme',\n ss: 'scheme',\n sld: 'scheme',\n scss: 'scss',\n sdbl: 'sdbl',\n shadergraph: 'shader',\n st: 'smalltalk',\n sol: 'solidity',\n sparql: 'sparql',\n rq: 'sparql',\n spl: 'splunk',\n config: 'ssh-config',\n do: 'stata',\n ado: 'stata',\n dta: 'stata',\n styl: 'stylus',\n stylus: 'stylus',\n svelte: 'svelte',\n swift: 'swift',\n sv: 'system-verilog',\n svh: 'system-verilog',\n service: 'systemd',\n socket: 'systemd',\n device: 'systemd',\n timer: 'systemd',\n talon: 'talonscript',\n tasl: 'tasl',\n tcl: 'tcl',\n templ: 'templ',\n tf: 'tf',\n tfvars: 'tfvars',\n toml: 'toml',\n ts: 'typescript',\n mts: 'typescript',\n cts: 'typescript',\n tsp: 'typespec',\n tsv: 'tsv',\n tsx: 'tsx',\n ttl: 'turtle',\n twig: 'twig',\n typ: 'typst',\n vv: 'v',\n vala: 'vala',\n vapi: 'vala',\n vb: 'vb',\n vbs: 'vb',\n bas: 'vb',\n vh: 'verilog',\n vhd: 'vhdl',\n vhdl: 'vhdl',\n vim: 'vimscript',\n vue: 'vue',\n 'vine.ts': 'vue-vine',\n vy: 'vyper',\n wasm: 'wasm',\n wat: 'wasm',\n wy: '文言',\n wgsl: 'wgsl',\n wit: 'wit',\n wl: 'wolfram',\n nb: 'wolfram',\n xml: 'xml',\n xsl: 'xsl',\n xslt: 'xsl',\n yaml: 'yaml',\n yml: 'yml',\n zs: 'zenscript',\n zig: 'zig',\n zsh: 'zsh',\n sty: 'tex',\n};\n\nexport function getFiletypeFromFileName(fileName: string): SupportedLanguages {\n const format = matchFiletypeFromName(fileName);\n if (format != null) {\n return format;\n }\n\n // Special files are keyed by their exact name (Dockerfile, CMakeLists.txt), but callers\n // routinely pass a repository-relative path. Retry on the basename so `docker/Dockerfile`\n // resolves the same way a top-level `Dockerfile` does. The retry only runs once the full\n // path has matched nothing, so real extensions still win (e.g. `docker/Dockerfile.ts`).\n const baseName = fileName.split(/[/\\\\]/).pop() ?? fileName;\n return baseName === fileName\n ? 'text'\n : (matchFiletypeFromName(baseName) ?? 'text');\n}\n\nfunction matchFiletypeFromName(fileName: string): SupportedLanguages | null {\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(fileName)) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(fileName) ?? 'text';\n }\n // Handle special files without extensions first\n if (Object.hasOwn(EXTENSION_TO_FILE_FORMAT, fileName)) {\n return EXTENSION_TO_FILE_FORMAT[fileName] ?? null;\n }\n\n // Try compound extensions first (e.g., .blade.php, .component.ts)\n const compoundMatch = fileName.match(/\\.([^/\\\\]+\\.[^/\\\\]+)$/);\n if (compoundMatch != null) {\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(compoundMatch[1])) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(compoundMatch[1]) ?? 'text';\n }\n if (Object.hasOwn(EXTENSION_TO_FILE_FORMAT, compoundMatch[1])) {\n return EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] ?? 'text';\n }\n }\n\n // Fall back to simple extension\n const simpleMatch = fileName.match(/\\.([^.]+)$/)?.[1] ?? '';\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(simpleMatch)) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(simpleMatch) ?? 'text';\n }\n return Object.hasOwn(EXTENSION_TO_FILE_FORMAT, simpleMatch)\n ? (EXTENSION_TO_FILE_FORMAT[simpleMatch] ?? 'text')\n : null;\n}\n\nexport function replaceCustomExtensions(\n version: number,\n map: ExtensionFormatMap\n): boolean {\n if (version <= customExtensionsVersion) {\n return false;\n }\n CUSTOM_EXTENSION_TO_FILE_FORMAT.clear();\n for (const key in map) {\n const lang = map[key];\n if (lang != null) {\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key, lang);\n }\n }\n customExtensionsVersion = version;\n return true;\n}\n\nexport function getCustomExtensionsVersion(): number {\n return customExtensionsVersion;\n}\n\nexport function setCustomExtension(\n key: string,\n lang: SupportedLanguages\n): boolean {\n const existing = CUSTOM_EXTENSION_TO_FILE_FORMAT.get(key);\n if (existing === lang) {\n return false;\n }\n if (existing != null) {\n console.warn(\n `setCustomExtension: overriding custom mapping for \"${key}\" from \"${existing}\" to \"${lang}\"`\n );\n }\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key, lang);\n customExtensionsVersion++;\n return true;\n}\n\nexport function getCustomExtensionsMap(): ExtensionFormatMap {\n return Object.fromEntries(CUSTOM_EXTENSION_TO_FILE_FORMAT);\n}\n"],"mappings":"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"}
|
package/dist/utils/platform.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ declare function resetPlatformDetection(): void;
|
|
|
9
9
|
declare function isMacLike(): boolean;
|
|
10
10
|
declare function isLinux(): boolean;
|
|
11
11
|
declare function isSafari(): boolean;
|
|
12
|
+
declare function isFirefox(): boolean;
|
|
12
13
|
//#endregion
|
|
13
|
-
export { isLinux, isMacLike, isSafari, resetPlatformDetection };
|
|
14
|
+
export { isFirefox, isLinux, isMacLike, isSafari, resetPlatformDetection };
|
|
14
15
|
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","names":[],"sources":["../../src/utils/platform.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","names":[],"sources":["../../src/utils/platform.ts"],"mappings":";;;;;;;iBAWgB;iBAOA;iBAMA;iBAIA;iBASA"}
|
package/dist/utils/platform.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
let _isMacLike = void 0;
|
|
3
3
|
let _isLinux = void 0;
|
|
4
4
|
let _isSafari = void 0;
|
|
5
|
+
let _isFirefox = void 0;
|
|
5
6
|
/**
|
|
6
7
|
* Clears the cached platform/browser detection. Detection is memoized on first
|
|
7
8
|
* call, so a test process that swaps `navigator` (e.g. to exercise Linux or
|
|
@@ -12,6 +13,7 @@ function resetPlatformDetection() {
|
|
|
12
13
|
_isMacLike = void 0;
|
|
13
14
|
_isLinux = void 0;
|
|
14
15
|
_isSafari = void 0;
|
|
16
|
+
_isFirefox = void 0;
|
|
15
17
|
}
|
|
16
18
|
function isMacLike() {
|
|
17
19
|
return _isMacLike ??= /macOS|MacIntel|iPhone|iPad|iPod/i.test(getPlatform());
|
|
@@ -22,11 +24,14 @@ function isLinux() {
|
|
|
22
24
|
function isSafari() {
|
|
23
25
|
return _isSafari ??= "safari" in window && "pushNotification" in window.safari || /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
24
26
|
}
|
|
27
|
+
function isFirefox() {
|
|
28
|
+
return _isFirefox ??= /\bFirefox\//.test(navigator.userAgent);
|
|
29
|
+
}
|
|
25
30
|
function getPlatform() {
|
|
26
31
|
const navigator = globalThis.navigator;
|
|
27
32
|
return navigator?.platform ?? navigator?.userAgentData?.platform ?? "unknown";
|
|
28
33
|
}
|
|
29
34
|
//#endregion
|
|
30
|
-
export { isLinux, isMacLike, isSafari, resetPlatformDetection };
|
|
35
|
+
export { isFirefox, isLinux, isMacLike, isSafari, resetPlatformDetection };
|
|
31
36
|
|
|
32
37
|
//# sourceMappingURL=platform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","names":[],"sources":["../../src/utils/platform.ts"],"sourcesContent":["let _isMacLike: boolean | undefined = undefined;\nlet _isLinux: boolean | undefined = undefined;\nlet _isSafari: boolean | undefined = undefined;\n\n/**\n * Clears the cached platform/browser detection. Detection is memoized on first\n * call, so a test process that swaps `navigator` (e.g. to exercise Linux or\n * Safari behavior) must reset it; otherwise the value cached by an earlier test\n * leaks across tests and no longer matches the active navigator.\n */\nexport function resetPlatformDetection(): void {\n _isMacLike = undefined;\n _isLinux = undefined;\n _isSafari = undefined;\n}\n\nexport function isMacLike(): boolean {\n return (_isMacLike ??= /macOS|MacIntel|iPhone|iPad|iPod/i.test(\n getPlatform()\n ));\n}\n\nexport function isLinux(): boolean {\n return (_isLinux ??= /Linux/i.test(getPlatform()));\n}\n\nexport function isSafari(): boolean {\n return (_isSafari ??=\n // oxlint-disable-next-line typescript/no-explicit-any\n ('safari' in window && 'pushNotification' in (window as any).safari) ||\n /^((?!chrome|android).)*safari/i.test(navigator.userAgent));\n}\n\nfunction getPlatform(): string {\n const navigator = globalThis.navigator as Navigator & {\n userAgentData?: { platform?: string };\n };\n return navigator?.platform ?? navigator?.userAgentData?.platform ?? 'unknown';\n}\n"],"mappings":";AAAA,IAAI,aAAkC,KAAA;AACtC,IAAI,WAAgC,KAAA;AACpC,IAAI,YAAiC,KAAA;;;;;;;
|
|
1
|
+
{"version":3,"file":"platform.js","names":[],"sources":["../../src/utils/platform.ts"],"sourcesContent":["let _isMacLike: boolean | undefined = undefined;\nlet _isLinux: boolean | undefined = undefined;\nlet _isSafari: boolean | undefined = undefined;\nlet _isFirefox: boolean | undefined = undefined;\n\n/**\n * Clears the cached platform/browser detection. Detection is memoized on first\n * call, so a test process that swaps `navigator` (e.g. to exercise Linux or\n * Safari behavior) must reset it; otherwise the value cached by an earlier test\n * leaks across tests and no longer matches the active navigator.\n */\nexport function resetPlatformDetection(): void {\n _isMacLike = undefined;\n _isLinux = undefined;\n _isSafari = undefined;\n _isFirefox = undefined;\n}\n\nexport function isMacLike(): boolean {\n return (_isMacLike ??= /macOS|MacIntel|iPhone|iPad|iPod/i.test(\n getPlatform()\n ));\n}\n\nexport function isLinux(): boolean {\n return (_isLinux ??= /Linux/i.test(getPlatform()));\n}\n\nexport function isSafari(): boolean {\n return (_isSafari ??=\n // oxlint-disable-next-line typescript/no-explicit-any\n ('safari' in window && 'pushNotification' in (window as any).safari) ||\n /^((?!chrome|android).)*safari/i.test(navigator.userAgent));\n}\n\n// Gecko-based Firefox builds (desktop and Android). Firefox on iOS (FxiOS)\n// renders with WebKit and is intentionally excluded.\nexport function isFirefox(): boolean {\n return (_isFirefox ??= /\\bFirefox\\//.test(navigator.userAgent));\n}\n\nfunction getPlatform(): string {\n const navigator = globalThis.navigator as Navigator & {\n userAgentData?: { platform?: string };\n };\n return navigator?.platform ?? navigator?.userAgentData?.platform ?? 'unknown';\n}\n"],"mappings":";AAAA,IAAI,aAAkC,KAAA;AACtC,IAAI,WAAgC,KAAA;AACpC,IAAI,YAAiC,KAAA;AACrC,IAAI,aAAkC,KAAA;;;;;;;AAQtC,SAAgB,yBAA+B;CAC7C,aAAa,KAAA;CACb,WAAW,KAAA;CACX,YAAY,KAAA;CACZ,aAAa,KAAA;AACf;AAEA,SAAgB,YAAqB;CACnC,OAAQ,eAAe,mCAAmC,KACxD,YAAY,CACd;AACF;AAEA,SAAgB,UAAmB;CACjC,OAAQ,aAAa,SAAS,KAAK,YAAY,CAAC;AAClD;AAEA,SAAgB,WAAoB;CAClC,OAAQ,cAEL,YAAY,UAAU,sBAAuB,OAAe,UAC7D,iCAAiC,KAAK,UAAU,SAAS;AAC7D;AAIA,SAAgB,YAAqB;CACnC,OAAQ,eAAe,cAAc,KAAK,UAAU,SAAS;AAC/D;AAEA,SAAS,cAAsB;CAC7B,MAAM,YAAY,WAAW;CAG7B,OAAO,WAAW,YAAY,WAAW,eAAe,YAAY;AACtE"}
|
|
@@ -53,6 +53,14 @@ declare class WorkerPoolManager {
|
|
|
53
53
|
isInitialized(): boolean;
|
|
54
54
|
initialize(languages?: SupportedLanguages[]): Promise<void>;
|
|
55
55
|
private initializeWorkers;
|
|
56
|
+
/**
|
|
57
|
+
* Pass worker errors to onWorkerError, or log them if no callback is set.
|
|
58
|
+
*
|
|
59
|
+
* A startup error rejects initialization so components can highlight on the
|
|
60
|
+
* main thread. Other requests wait for their own responses: worker.ts catches
|
|
61
|
+
* request errors, so this event may be unrelated to the current request.
|
|
62
|
+
* A worker that stops responding remains busy and receives no further work.
|
|
63
|
+
*/
|
|
56
64
|
private handleWorkerError;
|
|
57
65
|
private drainQueue;
|
|
58
66
|
highlightFileAST(instance: FileRendererInstance, file: FileContents): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerPoolManager.d.ts","names":[],"sources":["../../src/worker/WorkerPoolManager.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"WorkerPoolManager.d.ts","names":[],"sources":["../../src/worker/WorkerPoolManager.ts"],"mappings":";;;;UA0EU;EACR,WAAW,eAAe;EAC1B,WAAW,eAAe;;UAYlB;EACR;;KAKG,qBAAqB,uBAAuB;cAEpC;UAkCD;UAjCF;mBACS;UACT;UACA;UACA;UACA;UACA;UAEA;UACA;UAIA;UAGA;UACA;UAKA;UACA;UACA;UACA;UACA;UACA;UACA;UAEA;EAER,YACU,SAAS,qBAEf,OACA,OACA,qBACA,cACA,mBACA,uBACA,wBACC;EAeE;EAIA,mBAAmB,MAAM,eAAe;EAMxC,mBACL,MAAM,mBACL;EAMI,iBAAiB;EAKjB,mBAAmB;EAQnB,mBAAmB;EAQpB,mBACJ,OACA,qBACA,cACA,mBACA,yBACC,QAAQ,0BAA0B;EA4E9B,2BAA2B;EAI3B,wBAAwB;EAMxB,wBAAwB;UAIjB;EA6CP,wBAAwB,UAAU;EASlC,0BAA0B,UAAU;EAKpC,uBACL,WAAW,OAAO;UASZ;UAKA;EAWD,aAAa,UAAU;EAkBvB;EAIM,WAAW,YAAW,uBAA4B;UAqFjD;;;;;;;;;UA8FN;UA8BA;EA2BD,iBACL,UAAU,sBACV,MAAM;EAqBD,wBAAwB,MAAM,eAAe;UAe5C;EAgCD,gBACL,MAAM,cACN,sBACA,oBACA,mBACC;EAaI,iBACL,UAAU,sBACV,MAAM;EAqBD,wBAAwB,MAAM,mBAAmB;UAehD;EAgCD,gBACL,MAAM,kBACN,sBACA,oBACA,gBAAgB,YAAY,6BAC5B,qCACC;EAYI;UAqBC;UAIA;UAUA;UAWA;EAOD,YAAY;UAwBX;UA+DA;UA0CA;UAcM;UAyDN;UAuGA;UACA;UAMA;UAYA;UAqBA;UAmCA;UAeA;UAUA;UA8BA;UAOA;UAOA;UAWA;UASA;UAgBA;UAeA;UAWA;UAUA;UAOA;UAMA;UAOA;UAOA;UAkBA;UAQA;UASA;UAMA;UAQA;UAYA;UAYA;UAQA;UAiBA;UAiBA;UAKA;UAIC;UAWD"}
|
|
@@ -9,6 +9,7 @@ import { areFileRenderOptionsEqual } from "../utils/areFileRenderOptionsEqual.js
|
|
|
9
9
|
import { getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName } from "../utils/getFiletypeFromFileName.js";
|
|
10
10
|
import { isFilePlainText } from "../utils/isFilePlainText.js";
|
|
11
11
|
import { renderFileWithHighlighter } from "../utils/renderFileWithHighlighter.js";
|
|
12
|
+
import { WorkerPoolTaskCanceledError, WorkerPoolTerminatedError, WorkerPoolWorkerError, isHandledWorkerPoolError, markWorkerErrorReported } from "./errors.js";
|
|
12
13
|
import { areDiffTargetsEqual } from "../utils/areDiffTargetsEqual.js";
|
|
13
14
|
import { areFilesEqual } from "../utils/areFilesEqual.js";
|
|
14
15
|
import { areDiffRenderOptionsEqual } from "../utils/areDiffRenderOptionsEqual.js";
|
|
@@ -23,16 +24,6 @@ import LRUMapPkg from "lru_map";
|
|
|
23
24
|
//#region src/worker/WorkerPoolManager.ts
|
|
24
25
|
const IGNORE_RESPONSE = Symbol("IGNORE_RESPONSE");
|
|
25
26
|
const DEFAULT_WORKER_INITIALIZATION_TIMEOUT = 1e4;
|
|
26
|
-
var WorkerPoolTerminatedError = class extends Error {
|
|
27
|
-
constructor() {
|
|
28
|
-
super("WorkerPoolManager: operation canceled because the pool terminated");
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
var WorkerPoolTaskCanceledError = class extends Error {
|
|
32
|
-
constructor() {
|
|
33
|
-
super("WorkerPoolManager: operation canceled before the task completed");
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
27
|
var WorkerPoolManager = class {
|
|
37
28
|
options;
|
|
38
29
|
highlighter;
|
|
@@ -239,7 +230,7 @@ var WorkerPoolManager = class {
|
|
|
239
230
|
if (this.initialized === true) return;
|
|
240
231
|
else if (this.initialized === false) {
|
|
241
232
|
const { lifecycleGeneration } = this;
|
|
242
|
-
|
|
233
|
+
const initialization = new Promise((resolve, reject) => {
|
|
243
234
|
(async () => {
|
|
244
235
|
try {
|
|
245
236
|
const themes = getThemes(this.renderOptions.theme);
|
|
@@ -290,7 +281,9 @@ var WorkerPoolManager = class {
|
|
|
290
281
|
}
|
|
291
282
|
})();
|
|
292
283
|
});
|
|
284
|
+
this.initialized = initialization;
|
|
293
285
|
this.queueBroadcastStateChanges();
|
|
286
|
+
return initialization;
|
|
294
287
|
} else return this.initialized;
|
|
295
288
|
}
|
|
296
289
|
async initializeWorkers(resolvedThemes, resolvedLanguages) {
|
|
@@ -353,13 +346,29 @@ var WorkerPoolManager = class {
|
|
|
353
346
|
if (timeoutId != null) clearTimeout(timeoutId);
|
|
354
347
|
}
|
|
355
348
|
}
|
|
356
|
-
|
|
357
|
-
|
|
349
|
+
/**
|
|
350
|
+
* Pass worker errors to onWorkerError, or log them if no callback is set.
|
|
351
|
+
*
|
|
352
|
+
* A startup error rejects initialization so components can highlight on the
|
|
353
|
+
* main thread. Other requests wait for their own responses: worker.ts catches
|
|
354
|
+
* request errors, so this event may be unrelated to the current request.
|
|
355
|
+
* A worker that stops responding remains busy and receives no further work.
|
|
356
|
+
*/
|
|
357
|
+
handleWorkerError(managedWorker, event) {
|
|
358
|
+
const { onWorkerError } = this.options;
|
|
359
|
+
if (onWorkerError != null) try {
|
|
360
|
+
onWorkerError(event, managedWorker.worker);
|
|
361
|
+
} catch (hookError) {
|
|
362
|
+
console.error("WorkerPoolManager: onWorkerError threw:", hookError);
|
|
363
|
+
}
|
|
364
|
+
else console.error("Worker error:", event, managedWorker);
|
|
358
365
|
const { pendingSetupRequestId } = managedWorker;
|
|
359
366
|
if (pendingSetupRequestId == null) return;
|
|
360
367
|
const task = this.activeTaskById.get(pendingSetupRequestId);
|
|
361
368
|
if (task?.type !== "initialize") return;
|
|
362
|
-
|
|
369
|
+
const error = errorFromWorkerErrorEvent(event);
|
|
370
|
+
if (onWorkerError != null) markWorkerErrorReported(error);
|
|
371
|
+
task.reject(error);
|
|
363
372
|
this.cleanWorkerAndTask(managedWorker, task);
|
|
364
373
|
}
|
|
365
374
|
drainQueue = () => {
|
|
@@ -490,6 +499,7 @@ var WorkerPoolManager = class {
|
|
|
490
499
|
}
|
|
491
500
|
queueInitialization(languages) {
|
|
492
501
|
this.initialize(languages).catch((error) => {
|
|
502
|
+
if (isHandledWorkerPoolError(error)) return;
|
|
493
503
|
console.error(error);
|
|
494
504
|
});
|
|
495
505
|
}
|
|
@@ -922,6 +932,11 @@ function normalizeWorkerError(error) {
|
|
|
922
932
|
}
|
|
923
933
|
return new Error(String(error));
|
|
924
934
|
}
|
|
935
|
+
function errorFromWorkerErrorEvent(event) {
|
|
936
|
+
const cause = "error" in event ? event.error : void 0;
|
|
937
|
+
const message = "message" in event && typeof event.message === "string" && event.message !== "" ? event.message : cause instanceof Error ? cause.message : "the worker script failed to load (the error event carries no message)";
|
|
938
|
+
return new WorkerPoolWorkerError(`WorkerPoolManager: worker failed: ${message}`, cause instanceof Error ? { cause } : void 0);
|
|
939
|
+
}
|
|
925
940
|
//#endregion
|
|
926
941
|
export { WorkerPoolManager };
|
|
927
942
|
|