1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-11-25 22:32:13 +02:00

implement quick commit when no files staged, if configured to do so

This commit is contained in:
Davyd McColl
2020-11-18 16:17:16 +02:00
committed by Jesse Duffield
parent e05c41828c
commit 26d5444919
3 changed files with 26 additions and 12 deletions

1
.gitignore vendored
View File

@@ -31,3 +31,4 @@ test/integration/*/used_config/
# these sample hooks waste too space space
test/integration/*/expected/.git_keep/hooks/
!.git_keep/
lazygit.exe

View File

@@ -17,16 +17,17 @@ type UserConfig struct {
}
type GuiConfig struct {
ScrollHeight int `yaml:"scrollHeight"`
ScrollPastBottom bool `yaml:"scrollPastBottom"`
MouseEvents bool `yaml:"mouseEvents"`
SkipUnstageLineWarning bool `yaml:"skipUnstageLineWarning"`
SkipStashWarning bool `yaml:"skipStashWarning"`
SidePanelWidth float64 `yaml:"sidePanelWidth"`
ExpandFocusedSidePanel bool `yaml:"expandFocusedSidePanel"`
MainPanelSplitMode string `yaml:"mainPanelSplitMode"`
Theme ThemeConfig `yaml:"theme"`
CommitLength CommitLengthConfig `yaml:"commitLength"`
ScrollHeight int `yaml:"scrollHeight"`
ScrollPastBottom bool `yaml:"scrollPastBottom"`
MouseEvents bool `yaml:"mouseEvents"`
SkipUnstageLineWarning bool `yaml:"skipUnstageLineWarning"`
SkipStashWarning bool `yaml:"skipStashWarning"`
SidePanelWidth float64 `yaml:"sidePanelWidth"`
ExpandFocusedSidePanel bool `yaml:"expandFocusedSidePanel"`
MainPanelSplitMode string `yaml:"mainPanelSplitMode"`
Theme ThemeConfig `yaml:"theme"`
CommitLength CommitLengthConfig `yaml:"commitLength"`
SkipNoStagedFilesWarning bool `yaml:"skipNoStagedFilesWarning"`
}
type ThemeConfig struct {
@@ -280,7 +281,8 @@ func GetDefaultConfig() *UserConfig {
SelectedLineBgColor: []string{"default"},
SelectedRangeBgColor: []string{"blue"},
},
CommitLength: CommitLengthConfig{Show: true},
CommitLength: CommitLengthConfig{Show: true},
SkipNoStagedFilesWarning: false,
},
Git: GitConfig{
Paging: PagingConfig{

View File

@@ -301,8 +301,19 @@ func (gui *Gui) commitPrefixConfigForRepo() *config.CommitPrefixConfig {
return &cfg
}
func (gui *Gui) canCommitNow() bool {
if gui.Config.GetUserConfig().Gui.SkipNoStagedFilesWarning {
err := gui.GitCommand.StageAll()
return err == nil
}
if len(gui.stagedFiles()) > 0 {
return true
}
return false
}
func (gui *Gui) handleCommitPress() error {
if len(gui.stagedFiles()) == 0 {
if !gui.canCommitNow() {
return gui.promptToStageAllAndRetry(gui.handleCommitPress)
}