mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-10 07:36:27 -04:00
feat: add configurable branch name whitespace replacement
Closes #2663 Adds a new config option `git.branchWhitespaceReplacement` that allows users to specify the character used to replace whitespace in branch names. By default, spaces are replaced with dashes ('-'), but teams that prefer underscores or other characters can now configure this behavior. Example config: ```yaml git: branchWhitespaceReplacement: '_' ``` Changes: - Added `BranchWhitespaceReplacement` config option (default: '-') - Updated `SanitizedBranchName` to accept replacement parameter - Added `SanitizedBranchNameWithConfig` helper method on RefsHelper - Updated all callers to use the new config-aware method
This commit is contained in:
parent
443452ad6a
commit
83b182bbe0
|
|
@ -306,6 +306,10 @@ type GitConfig struct {
|
|||
CommitPrefixes map[string][]CommitPrefixConfig `yaml:"commitPrefixes"`
|
||||
// See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md#predefined-branch-name-prefix
|
||||
BranchPrefix string `yaml:"branchPrefix"`
|
||||
// Specifies the character used to replace whitespace in branch names when creating new branches.
|
||||
// By default, spaces are replaced with dashes ("-").
|
||||
// Some teams use underscores ("_") or other characters.
|
||||
BranchWhitespaceReplacement string `yaml:"branchWhitespaceReplacement"`
|
||||
// If true, parse emoji strings in commit messages e.g. render :rocket: as 🚀
|
||||
// (This should really be under 'gui', not 'git')
|
||||
ParseEmoji bool `yaml:"parseEmoji"`
|
||||
|
|
@ -855,6 +859,7 @@ func GetDefaultConfig() *UserConfig {
|
|||
DisableForcePushing: false,
|
||||
CommitPrefixes: map[string][]CommitPrefixConfig(nil),
|
||||
BranchPrefix: "",
|
||||
BranchWhitespaceReplacement: "-",
|
||||
ParseEmoji: false,
|
||||
TruncateCopiedCommitHashesTo: 12,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -707,7 +707,7 @@ func (self *BranchesController) rename(branch *models.Branch) error {
|
|||
InitialContent: branch.Name,
|
||||
HandleConfirm: func(newBranchName string) error {
|
||||
self.c.LogAction(self.c.Tr.Actions.RenameBranch)
|
||||
if err := self.c.Git().Branch.Rename(branch.Name, helpers.SanitizedBranchName(newBranchName)); err != nil {
|
||||
if err := self.c.Git().Branch.Rename(branch.Name, self.c.Helpers().Refs.SanitizedBranchNameWithConfig(newBranchName)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -366,7 +366,7 @@ func (self *RefsHelper) NewBranch(from string, fromFormattedName string, suggest
|
|||
InitialContent: suggestedBranchName,
|
||||
HandleConfirm: func(response string) error {
|
||||
self.c.LogAction(self.c.Tr.Actions.CreateBranch)
|
||||
newBranchName := SanitizedBranchName(response)
|
||||
newBranchName := self.SanitizedBranchNameWithConfig(response)
|
||||
newBranchFunc := self.c.Git().Branch.New
|
||||
if newBranchName != suggestedBranchName {
|
||||
newBranchFunc = self.c.Git().Branch.NewWithoutTracking
|
||||
|
|
@ -429,7 +429,7 @@ func (self *RefsHelper) MoveCommitsToNewBranch() error {
|
|||
InitialContent: suggestedBranchName,
|
||||
HandleConfirm: func(response string) error {
|
||||
self.c.LogAction(self.c.Tr.MoveCommitsToNewBranch)
|
||||
newBranchName := SanitizedBranchName(response)
|
||||
newBranchName := self.SanitizedBranchNameWithConfig(response)
|
||||
return self.c.WithWaitingStatus(self.c.Tr.MovingCommitsToNewBranchStatus, func(gocui.Task) error {
|
||||
return f(newBranchName)
|
||||
})
|
||||
|
|
@ -576,10 +576,20 @@ func (self *RefsHelper) CanMoveCommitsToNewBranch() *types.DisabledReason {
|
|||
return nil
|
||||
}
|
||||
|
||||
// SanitizedBranchName will remove all spaces in favor of a dash "-" to meet
|
||||
// git's branch naming requirement.
|
||||
func SanitizedBranchName(input string) string {
|
||||
return strings.ReplaceAll(input, " ", "-")
|
||||
// SanitizedBranchName will remove all spaces in favor of the specified replacement
|
||||
// character to meet git's branch naming requirement.
|
||||
func SanitizedBranchName(input string, replacement string) string {
|
||||
return strings.ReplaceAll(input, " ", replacement)
|
||||
}
|
||||
|
||||
// SanitizedBranchNameWithConfig returns a sanitized branch name using the
|
||||
// user's configured whitespace replacement character.
|
||||
func (self *RefsHelper) SanitizedBranchNameWithConfig(input string) string {
|
||||
replacement := self.c.UserConfig().Git.BranchWhitespaceReplacement
|
||||
if replacement == "" {
|
||||
replacement = "-"
|
||||
}
|
||||
return SanitizedBranchName(input, replacement)
|
||||
}
|
||||
|
||||
// Checks if the given branch name is a remote branch, and returns the name of
|
||||
|
|
|
|||
Loading…
Reference in a new issue