mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-08-07 22:02:56 +03:00
Update status to differentiate the main vs linked worktrees
This commit is contained in:
committed by
Jesse Duffield
parent
afc4aedd4f
commit
60872c91e6
@@ -45,7 +45,17 @@ func (gui *Gui) resetHelpersAndControllers() {
|
|||||||
patchBuildingHelper := helpers.NewPatchBuildingHelper(helperCommon)
|
patchBuildingHelper := helpers.NewPatchBuildingHelper(helperCommon)
|
||||||
stagingHelper := helpers.NewStagingHelper(helperCommon)
|
stagingHelper := helpers.NewStagingHelper(helperCommon)
|
||||||
mergeConflictsHelper := helpers.NewMergeConflictsHelper(helperCommon)
|
mergeConflictsHelper := helpers.NewMergeConflictsHelper(helperCommon)
|
||||||
refreshHelper := helpers.NewRefreshHelper(helperCommon, refsHelper, rebaseHelper, patchBuildingHelper, stagingHelper, mergeConflictsHelper, gui.fileWatcher)
|
worktreeHelper := helpers.NewWorktreeHelper(helperCommon)
|
||||||
|
refreshHelper := helpers.NewRefreshHelper(
|
||||||
|
helperCommon,
|
||||||
|
refsHelper,
|
||||||
|
rebaseHelper,
|
||||||
|
patchBuildingHelper,
|
||||||
|
stagingHelper,
|
||||||
|
mergeConflictsHelper,
|
||||||
|
worktreeHelper,
|
||||||
|
gui.fileWatcher,
|
||||||
|
)
|
||||||
diffHelper := helpers.NewDiffHelper(helperCommon)
|
diffHelper := helpers.NewDiffHelper(helperCommon)
|
||||||
cherryPickHelper := helpers.NewCherryPickHelper(
|
cherryPickHelper := helpers.NewCherryPickHelper(
|
||||||
helperCommon,
|
helperCommon,
|
||||||
@@ -100,6 +110,7 @@ func (gui *Gui) resetHelpersAndControllers() {
|
|||||||
appStatusHelper,
|
appStatusHelper,
|
||||||
),
|
),
|
||||||
Search: helpers.NewSearchHelper(helperCommon),
|
Search: helpers.NewSearchHelper(helperCommon),
|
||||||
|
Worktree: worktreeHelper,
|
||||||
}
|
}
|
||||||
|
|
||||||
gui.CustomCommandsClient = custom_commands.NewClient(
|
gui.CustomCommandsClient = custom_commands.NewClient(
|
||||||
|
@@ -47,6 +47,7 @@ type Helpers struct {
|
|||||||
AppStatus *AppStatusHelper
|
AppStatus *AppStatusHelper
|
||||||
WindowArrangement *WindowArrangementHelper
|
WindowArrangement *WindowArrangementHelper
|
||||||
Search *SearchHelper
|
Search *SearchHelper
|
||||||
|
Worktree *WorktreeHelper
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewStubHelpers() *Helpers {
|
func NewStubHelpers() *Helpers {
|
||||||
@@ -80,5 +81,6 @@ func NewStubHelpers() *Helpers {
|
|||||||
AppStatus: &AppStatusHelper{},
|
AppStatus: &AppStatusHelper{},
|
||||||
WindowArrangement: &WindowArrangementHelper{},
|
WindowArrangement: &WindowArrangementHelper{},
|
||||||
Search: &SearchHelper{},
|
Search: &SearchHelper{},
|
||||||
|
Worktree: &WorktreeHelper{},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -28,6 +28,7 @@ type RefreshHelper struct {
|
|||||||
patchBuildingHelper *PatchBuildingHelper
|
patchBuildingHelper *PatchBuildingHelper
|
||||||
stagingHelper *StagingHelper
|
stagingHelper *StagingHelper
|
||||||
mergeConflictsHelper *MergeConflictsHelper
|
mergeConflictsHelper *MergeConflictsHelper
|
||||||
|
worktreeHelper *WorktreeHelper
|
||||||
fileWatcher types.IFileWatcher
|
fileWatcher types.IFileWatcher
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,6 +39,7 @@ func NewRefreshHelper(
|
|||||||
patchBuildingHelper *PatchBuildingHelper,
|
patchBuildingHelper *PatchBuildingHelper,
|
||||||
stagingHelper *StagingHelper,
|
stagingHelper *StagingHelper,
|
||||||
mergeConflictsHelper *MergeConflictsHelper,
|
mergeConflictsHelper *MergeConflictsHelper,
|
||||||
|
worktreeHelper *WorktreeHelper,
|
||||||
fileWatcher types.IFileWatcher,
|
fileWatcher types.IFileWatcher,
|
||||||
) *RefreshHelper {
|
) *RefreshHelper {
|
||||||
return &RefreshHelper{
|
return &RefreshHelper{
|
||||||
@@ -47,6 +49,7 @@ func NewRefreshHelper(
|
|||||||
patchBuildingHelper: patchBuildingHelper,
|
patchBuildingHelper: patchBuildingHelper,
|
||||||
stagingHelper: stagingHelper,
|
stagingHelper: stagingHelper,
|
||||||
mergeConflictsHelper: mergeConflictsHelper,
|
mergeConflictsHelper: mergeConflictsHelper,
|
||||||
|
worktreeHelper: worktreeHelper,
|
||||||
fileWatcher: fileWatcher,
|
fileWatcher: fileWatcher,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -635,8 +638,16 @@ func (self *RefreshHelper) refreshStatus() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
name := presentation.GetBranchTextStyle(currentBranch.Name).Sprint(currentBranch.Name)
|
name := presentation.GetBranchTextStyle(currentBranch.Name).Sprint(currentBranch.Name)
|
||||||
repoName := utils.GetCurrentRepoName()
|
|
||||||
status += fmt.Sprintf("%s → %s ", repoName, name)
|
var repoName string
|
||||||
|
worktreeName := self.worktreeHelper.GetCurrentWorktreeName()
|
||||||
|
if len(worktreeName) > 0 {
|
||||||
|
worktreeName = fmt.Sprintf("[%s]", worktreeName)
|
||||||
|
repoName = self.worktreeHelper.GetMainWorktreeName()
|
||||||
|
} else {
|
||||||
|
repoName = utils.GetCurrentRepoName()
|
||||||
|
}
|
||||||
|
status += fmt.Sprintf("%s%s → %s ", repoName, worktreeName, name)
|
||||||
|
|
||||||
self.c.SetViewContent(self.c.Views().Status, status)
|
self.c.SetViewContent(self.c.Views().Status, status)
|
||||||
}
|
}
|
||||||
|
43
pkg/gui/controllers/helpers/worktree_helper.go
Normal file
43
pkg/gui/controllers/helpers/worktree_helper.go
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
package helpers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"path/filepath"
|
||||||
|
)
|
||||||
|
|
||||||
|
type IWorktreeHelper interface {
|
||||||
|
GetMainWorktreeName() string
|
||||||
|
GetCurrentWorktreeName() string
|
||||||
|
}
|
||||||
|
|
||||||
|
type WorktreeHelper struct {
|
||||||
|
c *HelperCommon
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewWorktreeHelper(c *HelperCommon) *WorktreeHelper {
|
||||||
|
return &WorktreeHelper{
|
||||||
|
c: c,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *WorktreeHelper) GetMainWorktreeName() string {
|
||||||
|
for _, worktree := range self.c.Model().Worktrees {
|
||||||
|
if worktree.Main {
|
||||||
|
return filepath.Base(worktree.Path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *WorktreeHelper) GetCurrentWorktreeName() string {
|
||||||
|
for _, worktree := range self.c.Model().Worktrees {
|
||||||
|
if worktree.Current {
|
||||||
|
if worktree.Main {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return worktree.Name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
Reference in New Issue
Block a user