mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-01-10 04:07:18 +02:00
Add the IncreaseContextInDiffView
function
This commit is contained in:
parent
c99d373e13
commit
e1cf6912db
16
pkg/gui/diff_context_size.go
Normal file
16
pkg/gui/diff_context_size.go
Normal file
@ -0,0 +1,16 @@
|
||||
package gui
|
||||
|
||||
func isShowingDiff(gui *Gui) bool {
|
||||
key := gui.currentStaticContext().GetKey()
|
||||
|
||||
return key == FILES_CONTEXT_KEY || key == COMMIT_FILES_CONTEXT_KEY || key == STASH_CONTEXT_KEY || key == BRANCH_COMMITS_CONTEXT_KEY || key == SUB_COMMITS_CONTEXT_KEY || key == MAIN_STAGING_CONTEXT_KEY || key == MAIN_PATCH_BUILDING_CONTEXT_KEY
|
||||
}
|
||||
|
||||
func (gui *Gui) IncreaseContextInDiffView() error {
|
||||
if isShowingDiff(gui) {
|
||||
gui.Config.GetUserConfig().Git.DiffContextSize = gui.Config.GetUserConfig().Git.DiffContextSize + 1
|
||||
return gui.postRefreshUpdate(gui.currentStaticContext())
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
82
pkg/gui/diff_context_size_test.go
Normal file
82
pkg/gui/diff_context_size_test.go
Normal file
@ -0,0 +1,82 @@
|
||||
package gui
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/jesseduffield/gocui"
|
||||
"github.com/jesseduffield/lazygit/pkg/commands/patch"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
const diffForTest = `diff --git a/pkg/gui/diff_context_size.go b/pkg/gui/diff_context_size.go
|
||||
index 0da0a982..742b7dcf 100644
|
||||
--- a/pkg/gui/diff_context_size.go
|
||||
+++ b/pkg/gui/diff_context_size.go
|
||||
@@ -9,12 +9,12 @@ func getRefreshFunction(gui *Gui) func()error {
|
||||
}
|
||||
} else if key == MAIN_STAGING_CONTEXT_KEY {
|
||||
return func() error {
|
||||
- selectedLine := gui.Views.Secondary.SelectedLineIdx()
|
||||
+ selectedLine := gui.State.Panels.LineByLine.GetSelectedLineIdx()
|
||||
return gui.handleRefreshStagingPanel(false, selectedLine)
|
||||
}
|
||||
} else if key == MAIN_PATCH_BUILDING_CONTEXT_KEY {
|
||||
`
|
||||
|
||||
func setupGuiForTest(gui *Gui) {
|
||||
gui.g = &gocui.Gui{}
|
||||
gui.Views.Main, _ = gui.prepareView("main")
|
||||
gui.Views.Secondary, _ = gui.prepareView("secondary")
|
||||
gui.GitCommand.PatchManager = &patch.PatchManager{}
|
||||
gui.refreshLineByLinePanel(diffForTest, "", false, 11)
|
||||
}
|
||||
|
||||
func TestIncreasesContextInDiffViewByOneInContextWithDiff(t *testing.T) {
|
||||
contexts := []func(gui *Gui) Context {
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Files },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.BranchCommits },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.CommitFiles },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Stash },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Staging },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.PatchBuilding },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.SubCommits },
|
||||
}
|
||||
|
||||
for _, c := range contexts {
|
||||
gui := NewDummyGui()
|
||||
context := c(gui)
|
||||
setupGuiForTest(gui)
|
||||
gui.Config.GetUserConfig().Git.DiffContextSize = 1
|
||||
gui.pushContextDirect(context)
|
||||
|
||||
gui.IncreaseContextInDiffView()
|
||||
|
||||
assert.Equal(t, 2, gui.Config.GetUserConfig().Git.DiffContextSize, string(context.GetKey()))
|
||||
}
|
||||
}
|
||||
|
||||
func TestDoesntIncreaseContextInDiffViewInContextWithoutDiff(t *testing.T) {
|
||||
contexts := []func(gui *Gui) Context {
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Status },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Submodules },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Remotes },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Normal },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.ReflogCommits },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.RemoteBranches },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Tags },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.Merging },
|
||||
func(gui *Gui) Context { return gui.State.Contexts.CommandLog },
|
||||
}
|
||||
|
||||
for _, c := range contexts {
|
||||
gui := NewDummyGui()
|
||||
context := c(gui)
|
||||
setupGuiForTest(gui)
|
||||
gui.Config.GetUserConfig().Git.DiffContextSize = 1
|
||||
gui.pushContextDirect(context)
|
||||
|
||||
gui.IncreaseContextInDiffView()
|
||||
|
||||
assert.Equal(t, 1, gui.Config.GetUserConfig().Git.DiffContextSize, string(context.GetKey()))
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user