diff options
Diffstat (limited to 'pkg/gui/files_panel.go')
-rw-r--r-- | pkg/gui/files_panel.go | 46 |
1 files changed, 1 insertions, 45 deletions
diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go index db4bd3a54..1ec32e708 100644 --- a/pkg/gui/files_panel.go +++ b/pkg/gui/files_panel.go @@ -5,18 +5,12 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/gui/filetree" "github.com/jesseduffield/lazygit/pkg/gui/types" - "github.com/jesseduffield/lazygit/pkg/utils" ) // list panel functions func (gui *Gui) getSelectedFileNode() *filetree.FileNode { - selectedLine := gui.State.Panels.Files.SelectedLineIdx - if selectedLine == -1 { - return nil - } - - return gui.State.FileTreeViewModel.GetItemAtIndex(selectedLine) + return gui.State.Contexts.Files.GetSelectedFileNode() } func (gui *Gui) getSelectedFile() *models.File { @@ -96,44 +90,6 @@ func (gui *Gui) promptToContinueRebase() error { }) } -// Let's try to find our file again and move the cursor to that. -// If we can't find our file, it was probably just removed by the user. In that -// case, we go looking for where the next file has been moved to. Given that the -// user could have removed a whole directory, we continue iterating through the old -// nodes until we find one that exists in the new set of nodes, then move the cursor -// to that. -// prevNodes starts from our previously selected node because we don't need to consider anything above that -func (gui *Gui) findNewSelectedIdx(prevNodes []*filetree.FileNode, currNodes []*filetree.FileNode) int { - getPaths := func(node *filetree.FileNode) []string { - if node == nil { - return nil - } - if node.File != nil && node.File.IsRename() { - return node.File.Names() - } else { - return []string{node.Path} - } - } - - for _, prevNode := range prevNodes { - selectedPaths := getPaths(prevNode) - - for idx, node := range currNodes { - paths := getPaths(node) - - // If you started off with a rename selected, and now it's broken in two, we want you to jump to the new file, not the old file. - // This is because the new should be in the same position as the rename was meaning less cursor jumping - foundOldFileInRename := prevNode.File != nil && prevNode.File.IsRename() && node.Path == prevNode.File.PreviousName - foundNode := utils.StringArraysOverlap(paths, selectedPaths) && !foundOldFileInRename - if foundNode { - return idx - } - } - } - - return -1 -} - func (gui *Gui) onFocusFile() error { gui.takeOverMergeConflictScrolling() return nil |