summaryrefslogtreecommitdiffstats
path: root/pkg/gui/recent_repos_panel.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-09-29 09:02:44 +1000
committerJesse Duffield <jessedduffield@gmail.com>2020-09-29 18:21:59 +1000
commit914fb361732c116b3db6bd47bd9d08bb9f15a608 (patch)
tree57284367b095f1c895573bcc0f5def3def7238ea /pkg/gui/recent_repos_panel.go
parentb882ac9e066bce21c18d73122005f06acfda3bfa (diff)
allow entering and returning from submodule
Diffstat (limited to 'pkg/gui/recent_repos_panel.go')
-rw-r--r--pkg/gui/recent_repos_panel.go32
1 files changed, 18 insertions, 14 deletions
diff --git a/pkg/gui/recent_repos_panel.go b/pkg/gui/recent_repos_panel.go
index 677836172..ab17ee8d3 100644
--- a/pkg/gui/recent_repos_panel.go
+++ b/pkg/gui/recent_repos_panel.go
@@ -17,24 +17,14 @@ func (gui *Gui) handleCreateRecentReposMenu() error {
// we won't show the current repo hence the -1
menuItems := make([]*menuItem, reposCount-1)
for i, path := range recentRepoPaths[1:reposCount] {
- innerPath := path
+ path := path // cos we're closing over the loop variable
menuItems[i] = &menuItem{
displayStrings: []string{
- filepath.Base(innerPath),
- yellow.Sprint(innerPath),
+ filepath.Base(path),
+ yellow.Sprint(path),
},
onPress: func() error {
- env.UnsetGitDirEnvs()
- if err := os.Chdir(innerPath); err != nil {
- return err
- }
- newGitCommand, err := commands.NewGitCommand(gui.Log, gui.OSCommand, gui.Tr, gui.Config)
- if err != nil {
- return err
- }
- gui.GitCommand = newGitCommand
- gui.State.Modes.Filtering.Path = ""
- return gui.Errors.ErrSwitchRepo
+ return gui.dispatchSwitchToRepo(path)
},
}
}
@@ -42,6 +32,20 @@ func (gui *Gui) handleCreateRecentReposMenu() error {
return gui.createMenu(gui.Tr.SLocalize("RecentRepos"), menuItems, createMenuOptions{showCancel: true})
}
+func (gui *Gui) dispatchSwitchToRepo(path string) error {
+ env.UnsetGitDirEnvs()
+ if err := os.Chdir(path); err != nil {
+ return err
+ }
+ newGitCommand, err := commands.NewGitCommand(gui.Log, gui.OSCommand, gui.Tr, gui.Config)
+ if err != nil {
+ return err
+ }
+ gui.GitCommand = newGitCommand
+ gui.State.Modes.Filtering.Path = ""
+ return gui.Errors.ErrSwitchRepo
+}
+
// updateRecentRepoList registers the fact that we opened lazygit in this repo,
// so that we can open the same repo via the 'recent repos' menu
func (gui *Gui) updateRecentRepoList() error {