mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-31 14:24:25 +03:00
Select same commit again after pressing "e" to edit a commit
When editing a commit, the index of the current commit can change; for example, when merge commits are involved, or when working with stacked branches where "update-ref" commands may be added above the selected commit. Reselect the current commit after pressing "e"; this requires doing the refresh blocking on the main thread. (Another option that I considered was to use a SYNC refresh, and then select the new line with an OnUIThread inside the Then function. This also works, but results in a very visible lag.)
This commit is contained in:
@ -392,7 +392,16 @@ func (self *LocalCommitsController) edit(commit *models.Commit) error {
|
||||
return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func(gocui.Task) error {
|
||||
self.c.LogAction(self.c.Tr.Actions.EditCommit)
|
||||
err := self.c.Git().Rebase.EditRebase(commit.Sha)
|
||||
return self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err)
|
||||
return self.c.Helpers().MergeAndRebase.CheckMergeOrRebaseWithRefreshOptions(
|
||||
err,
|
||||
types.RefreshOptions{Mode: types.BLOCK_UI, Then: func() {
|
||||
_, index, ok := lo.FindIndexOf(self.c.Model().Commits, func(c *models.Commit) bool {
|
||||
return c.Sha == commit.Sha
|
||||
})
|
||||
if ok {
|
||||
self.context().SetSelectedLineIdx(index)
|
||||
}
|
||||
}})
|
||||
})
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user