summaryrefslogtreecommitdiffstats
path: root/pkg/gui/files_panel.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/files_panel.go')
-rw-r--r--pkg/gui/files_panel.go46
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