mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-25 12:24:47 +02:00
Allow using <
/>
and ,
/.
in sticky range select mode in patch explorer
They still cancel hunk selection mode, setting it to line selection mode, but if range selection mode is on, we keep it on.
This commit is contained in:
parent
56a6ee6afb
commit
d3940729eb
@ -123,6 +123,12 @@ func (s *State) SetLineSelectMode() {
|
||||
s.selectMode = LINE
|
||||
}
|
||||
|
||||
func (s *State) DismissHunkSelectMode() {
|
||||
if s.SelectingHunk() {
|
||||
s.selectMode = LINE
|
||||
}
|
||||
}
|
||||
|
||||
// For when you move the cursor without holding shift (meaning if we're in
|
||||
// a non-sticky range select, we'll cancel it)
|
||||
func (s *State) SelectLine(newSelectedLineIdx int) {
|
||||
@ -239,7 +245,7 @@ func (s *State) CurrentLineNumber() int {
|
||||
}
|
||||
|
||||
func (s *State) AdjustSelectedLineIdx(change int) {
|
||||
s.SetLineSelectMode()
|
||||
s.DismissHunkSelectMode()
|
||||
s.SelectLine(s.selectedLineIdx + change)
|
||||
}
|
||||
|
||||
@ -256,12 +262,12 @@ func (s *State) PlainRenderSelected() string {
|
||||
}
|
||||
|
||||
func (s *State) SelectBottom() {
|
||||
s.SetLineSelectMode()
|
||||
s.DismissHunkSelectMode()
|
||||
s.SelectLine(s.patch.LineCount() - 1)
|
||||
}
|
||||
|
||||
func (s *State) SelectTop() {
|
||||
s.SetLineSelectMode()
|
||||
s.DismissHunkSelectMode()
|
||||
s.SelectLine(0)
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,7 @@ import (
|
||||
// (sticky range, press 'v') -> no range
|
||||
// (sticky range, press 'escape') -> no range
|
||||
// (sticky range, press arrow) -> sticky range
|
||||
// (sticky range, press `<`/`>` or `,`/`.`) -> sticky range
|
||||
// (sticky range, press shift+arrow) -> nonsticky range
|
||||
// (nonsticky range, press 'v') -> no range
|
||||
// (nonsticky range, press 'escape') -> no range
|
||||
@ -138,19 +139,18 @@ var RangeSelect = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
SelectedLines(
|
||||
Contains("line 8"),
|
||||
).
|
||||
// (sticky range, press '>') -> sticky range
|
||||
Press(keys.Universal.ToggleRangeSelect).
|
||||
SelectedLines(
|
||||
Contains("line 8"),
|
||||
).
|
||||
SelectNextItem().
|
||||
Press(keys.Universal.GotoBottom).
|
||||
SelectedLines(
|
||||
Contains("line 8"),
|
||||
Contains("line 9"),
|
||||
Contains("line 10"),
|
||||
).
|
||||
// (sticky range, press 'escape') -> no range
|
||||
PressEscape().
|
||||
SelectedLines(
|
||||
Contains("line 9"),
|
||||
Contains("line 10"),
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user