Let wrapLinesInDiffView govern the two main panes

Working in a diff used to mean the staging view, and this option said
whether the long lines there were wrapped. The main view does that work
now, and the option has had nothing to govern since the staging view went
away. Both panes wrap whatever they are given.

Make the option their wrap setting instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Haller
2026-10-05 11:20:32 +02:00
co-authored by Claude Opus 5
parent 8248d1b502
commit b2d8b688a1
3 changed files with 47 additions and 0 deletions
+4
View File
@@ -70,6 +70,10 @@ func (gui *Gui) RefreshMainView(opts *types.ViewUpdateOpts, context types.Contex
if mainContext := gui.mainContextForView(view); mainContext != nil {
mainContext.SetContentIsDiff(types.ContentIsDiff(opts.Task))
// A diff is wrapped as the user asks; anything else a main pane shows is prose
// or a log, and reads as badly cut off at the edge of the pane as it would
// anywhere else.
view.Wrap = !mainContext.ContentIsDiff() || gui.c.UserConfig().Gui.WrapLinesInDiffView
}
if err := gui.runTaskForView(view, opts.Task); err != nil {
@@ -0,0 +1,42 @@
package main_view
import (
"strings"
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var longLine = "start " + strings.Repeat("word ", 40) + "end"
var WrapOnlyTheDiff = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Turning wrapping off for diffs leaves everything else the main view shows wrapped",
ExtraCmdArgs: []string{},
Skip: false,
SetupConfig: func(cfg *config.AppConfig) {
cfg.GetUserConfig().Gui.WrapLinesInDiffView = false
},
SetupRepo: func(shell *Shell) {
shell.CreateFileAndAdd("file1", "one\n")
shell.Commit(longLine)
shell.UpdateFile("file1", "one\n"+longLine+"\n")
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
// The option is about diffs, so the added line runs off the edge of the pane in
// one piece.
t.Views().Files().
IsFocused().
Tap(func() {
t.Views().Main().ContainsViewLines(Contains("start").Contains("end"))
})
// A branch's commit log is no diff, and the option leaves it alone: the same
// text is laid out over as many lines as it takes.
t.Views().Branches().
Focus()
t.Views().Main().
ContainsViewLines(Contains("end").DoesNotContain("start"))
},
})
+1
View File
@@ -485,6 +485,7 @@ var tests = []*components.IntegrationTest{
main_view.StageUnderUnsupportedDiffRenderer,
main_view.StartPatchFromAnotherCommit,
main_view.UnstageDiffLines,
main_view.WrapOnlyTheDiff,
misc.ConfirmOnQuit,
misc.CopyConfirmationMessageToClipboard,
misc.CopyToClipboard,