This commit is contained in:
Zachary Yedidia 2021-03-02 17:16:54 -05:00
commit ae114a766c
2 changed files with 21 additions and 16 deletions

View File

@ -1454,9 +1454,9 @@ func (h *BufPane) ClearInfo() bool {
return true
}
// Quit this will close the current tab or view that is open
func (h *BufPane) Quit() bool {
quit := func() {
// ForceQuit closes the current tab or view even if there are unsaved changes
// (no prompt)
func (h *BufPane) ForceQuit() bool {
h.Buf.Close()
if len(MainTab().Panes) > 1 {
h.Unsplit()
@ -1467,26 +1467,30 @@ func (h *BufPane) Quit() bool {
InfoBar.Close()
runtime.Goexit()
}
}
return true
}
// Quit this will close the current tab or view that is open
func (h *BufPane) Quit() bool {
if h.Buf.Modified() {
if config.GlobalSettings["autosave"].(float64) > 0 {
// autosave on means we automatically save when quitting
h.SaveCB("Quit", func() {
quit()
h.ForceQuit()
})
} else {
InfoBar.YNPrompt("Save changes to "+h.Buf.GetName()+" before closing? (y,n,esc)", func(yes, canceled bool) {
if !canceled && !yes {
quit()
h.ForceQuit()
} else if !canceled && yes {
h.SaveCB("Quit", func() {
quit()
h.ForceQuit()
})
}
})
}
} else {
quit()
h.ForceQuit()
}
return true
}

View File

@ -666,6 +666,7 @@ var BufKeyActions = map[string]BufKeyAction{
"Escape": (*BufPane).Escape,
"Quit": (*BufPane).Quit,
"QuitAll": (*BufPane).QuitAll,
"ForceQuit": (*BufPane).ForceQuit,
"AddTab": (*BufPane).AddTab,
"PreviousTab": (*BufPane).PreviousTab,
"NextTab": (*BufPane).NextTab,