diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-09-29 09:02:44 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-09-29 18:21:59 +1000 |
commit | 914fb361732c116b3db6bd47bd9d08bb9f15a608 (patch) | |
tree | 57284367b095f1c895573bcc0f5def3def7238ea /pkg/gui/recent_repos_panel.go | |
parent | b882ac9e066bce21c18d73122005f06acfda3bfa (diff) |
allow entering and returning from submodule
Diffstat (limited to 'pkg/gui/recent_repos_panel.go')
-rw-r--r-- | pkg/gui/recent_repos_panel.go | 32 |
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 { |