summaryrefslogtreecommitdiffstats
path: root/modules/highlight
diff options
context:
space:
mode:
authormrsdizzie <info@mrsdizzie.com>2020-07-07 18:30:21 -0400
committerGitHub <noreply@github.com>2020-07-08 01:30:21 +0300
commit078d2fbd4c386d0cf37378078443f5f8dbe89f37 (patch)
tree43be7a0241e20c214b5f2f5d0c0c75ecafdaf967 /modules/highlight
parent30399cf04ad7578c67d4268878df071cac515fc9 (diff)
downloadgitea-078d2fbd4c386d0cf37378078443f5f8dbe89f37.tar.gz
gitea-078d2fbd4c386d0cf37378078443f5f8dbe89f37.zip
Remove newline when highlighting random chunks of code (#12180)
* Remove newline when highlighting random chunks of code Somewhere when tokenizing a newline gets added to code formatted by chroma. This breaks the case of 'added-code' inside of an 'added-line' in a diff. Just remove any newline when processing chunks of code since we don't need it. Fixes #12172 * don't process empty lines * This is the proper way to fix this by telling chroma not to add the newline in the first place
Diffstat (limited to 'modules/highlight')
-rw-r--r--modules/highlight/highlight.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/highlight/highlight.go b/modules/highlight/highlight.go
index 90590d220b..5d66e4c32d 100644
--- a/modules/highlight/highlight.go
+++ b/modules/highlight/highlight.go
@@ -14,6 +14,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ "github.com/alecthomas/chroma"
"github.com/alecthomas/chroma/formatters/html"
"github.com/alecthomas/chroma/lexers"
"github.com/alecthomas/chroma/styles"
@@ -68,7 +69,7 @@ func Code(fileName, code string) string {
lexer = lexers.Fallback
}
- iterator, err := lexer.Tokenise(nil, string(code))
+ iterator, err := lexer.Tokenise(&chroma.TokeniseOptions{State: "root", Nested: true}, string(code))
if err != nil {
log.Error("Can't tokenize code: %v", err)
return code