From 3f1f808b9eeb3f7cd923c6b89fbb57583202e76d Mon Sep 17 00:00:00 2001 From: Dustin Firebaugh Date: Sat, 8 Mar 2025 23:51:58 -0500 Subject: Full-file syntax highlighting for diff pages (#33766) Fix #33358, fix #21970 This adds a step in the `GitDiffForRender` that does syntax highlighting for the entire file and then only references lines from that syntax highlighted code. This allows things like multi-line comments to be syntax highlighted correctly. --------- Co-authored-by: wxiaoguang --- modules/highlight/highlight.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'modules/highlight') diff --git a/modules/highlight/highlight.go b/modules/highlight/highlight.go index d7ab3f7afd..77f24fa3f3 100644 --- a/modules/highlight/highlight.go +++ b/modules/highlight/highlight.go @@ -11,6 +11,7 @@ import ( gohtml "html" "html/template" "io" + "path" "path/filepath" "strings" "sync" @@ -83,7 +84,7 @@ func Code(fileName, language, code string) (output template.HTML, lexerName stri } if lexer == nil { - if val, ok := highlightMapping[filepath.Ext(fileName)]; ok { + if val, ok := highlightMapping[path.Ext(fileName)]; ok { // use mapped value to find lexer lexer = lexers.Get(val) } -- cgit v1.2.3