From 7f7eead5f7fd3248dbfcde3ee50e02952d5b5c43 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Fri, 28 Mar 2025 08:58:48 -0400 Subject: [PATCH] feat(parser/diff): default max diff lines 50 --- internal/parser/diff/meta.go | 1 + internal/parser/diff/parser.go | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/internal/parser/diff/meta.go b/internal/parser/diff/meta.go index 7f9dfc4..563b564 100644 --- a/internal/parser/diff/meta.go +++ b/internal/parser/diff/meta.go @@ -21,6 +21,7 @@ type Conf struct { AlwaysHide bool ForceQuitOnDiff bool MaxDiffLength int `default:"2048"` // just for reference + MaxDiffLines int `default:"50"` // just for reference } } } diff --git a/internal/parser/diff/parser.go b/internal/parser/diff/parser.go index b1a98d1..1799f22 100644 --- a/internal/parser/diff/parser.go +++ b/internal/parser/diff/parser.go @@ -68,10 +68,13 @@ func (*Diff) Run(results []stage.ExecutorResult, confAny any) ( if output.MaxDiffLength == 0 { // real default value output.MaxDiffLength = 2048 } + if output.MaxDiffLines == 0 { // real default value + output.MaxDiffLines = 50 + } // Convert answer to string and split by lines + truncated := false answerStr := string(answer) resultStr := result.Files[output.FileName] - truncated := false if len(answerStr) > output.MaxDiffLength { answerStr = answerStr[:output.MaxDiffLength] truncated = true @@ -82,6 +85,14 @@ func (*Diff) Run(results []stage.ExecutorResult, confAny any) ( } answerLines := strings.Split(answerStr, "\n") resultLines := strings.Split(resultStr, "\n") + if len(answerLines) > output.MaxDiffLines { + answerLines = answerLines[:output.MaxDiffLines] + truncated = true + } + if len(resultLines) > output.MaxDiffLines { + resultLines = resultLines[:output.MaxDiffLines] + truncated = true + } diffs := patienceDiff( answerLines, resultLines,