From 3f83d1014654264129a02c8c8f8c6bbaab4b3f16 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Fri, 1 Mar 2024 10:53:53 +0000 Subject: [PATCH] fix(patch): unhandled unsupported language error fall back to rendering line without formatting in the future we should lazy load other/ all languages --- .../components/events/content/Patch.svelte | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/lib/components/events/content/Patch.svelte b/src/lib/components/events/content/Patch.svelte index 52eecf9..9c3110c 100644 --- a/src/lib/components/events/content/Patch.svelte +++ b/src/lib/components/events/content/Patch.svelte @@ -46,6 +46,19 @@ return '#' } } + let getFortmattedDiffHtml = ( + change: Change, + language: string + ): string | undefined => { + try { + return hljs.highlight( + change.type == 'normal' ? change.content : change.content.substring(1), + { language } + ).value + } catch { + return undefined + } + }
@@ -170,16 +183,19 @@ class:pb-3={index === file.chunks.length - 1 && i === chunk.changes.length - 1} > - - {@html hljs.highlight( - change.type == 'normal' + {#if getFortmattedDiffHtml(change, (file.to || file.from) + ?.split('.') + .pop() || '')} + + {@html getFortmattedDiffHtml( + change, + (file.to || file.from)?.split('.').pop() || '' + )} + {:else} + {change.type == 'normal' ? change.content - : change.content.substring(1), - { - language: - (file.to || file.from)?.split('.').pop() || '', - } - ).value} + : change.content.substring(1)} + {/if} {#if (change.type == 'normal' ? change.content : change.content.substring(1)).length === 0}