diff --git a/pkg/gui/patch_exploring/state.go b/pkg/gui/patch_exploring/state.go index 074793f8e..4bbe881a1 100644 --- a/pkg/gui/patch_exploring/state.go +++ b/pkg/gui/patch_exploring/state.go @@ -7,6 +7,7 @@ import ( "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/patch" "github.com/jesseduffield/lazygit/pkg/utils" + "github.com/samber/lo" ) // State represents the current state of the patch explorer context i.e. when @@ -177,15 +178,13 @@ func (s *State) SelectLine(newSelectedLineIdx int) { s.selectLineWithoutRangeCheck(newSelectedLineIdx) } +func (s *State) clampLineIdx(lineIdx int) int { + return lo.Clamp(lineIdx, 0, len(s.patchLineIndices)-1) +} + // This just moves the cursor without caring about range select func (s *State) selectLineWithoutRangeCheck(newSelectedLineIdx int) { - if newSelectedLineIdx < 0 { - newSelectedLineIdx = 0 - } else if newSelectedLineIdx > len(s.patchLineIndices)-1 { - newSelectedLineIdx = len(s.patchLineIndices) - 1 - } - - s.selectedLineIdx = newSelectedLineIdx + s.selectedLineIdx = s.clampLineIdx(newSelectedLineIdx) } func (s *State) SelectNewLineForRange(newSelectedLineIdx int) {