Run action completion on saves with prompts at the right time

This commit is contained in:
Zachary Yedidia 2019-12-29 18:23:17 -05:00
parent 1b73abcfd0
commit da643a0c1f
2 changed files with 14 additions and 9 deletions

View file

@ -638,10 +638,10 @@ func (h *BufPane) Save() bool {
if h.Buf.Path == "" {
h.SaveAs()
} else {
h.saveBufToFile(h.Buf.Path)
h.saveBufToFile(h.Buf.Path, "Save")
}
return true
return false
}
// SaveAs saves the buffer to disk with the given name
@ -655,16 +655,15 @@ func (h *BufPane) SaveAs() bool {
InfoBar.Error("Error parsing arguments: ", err)
return
}
h.saveBufToFile(filename)
h.saveBufToFile(filename, "SaveAs")
}
})
return true
return false
}
// This function saves the buffer to `filename` and changes the buffer's path and name
// to `filename` if the save is successful
func (h *BufPane) saveBufToFile(filename string) {
func (h *BufPane) saveBufToFile(filename string, action string) {
err := h.Buf.SaveAs(filename)
if err != nil {
if strings.HasSuffix(err.Error(), "permission denied") {
@ -678,6 +677,7 @@ func (h *BufPane) saveBufToFile(filename string) {
h.Buf.SetName(filename)
InfoBar.Message("Saved " + filename)
}
h.completeAction(action)
}
})
} else {
@ -687,6 +687,7 @@ func (h *BufPane) saveBufToFile(filename string) {
h.Buf.Path = filename
h.Buf.SetName(filename)
InfoBar.Message("Saved " + filename)
h.completeAction(action)
}
}

View file

@ -361,8 +361,8 @@ func (h *BufPane) execAction(action func(*BufPane) bool, name string, cursor int
_, isMulti := MultiActions[name]
if (!isMulti && cursor == 0) || isMulti {
if h.PluginCB("pre" + name) {
asuccess := action(h)
psuccess := h.PluginCB("on" + name)
success := action(h)
success = success && h.PluginCB("on"+name)
if isMulti {
if recording_macro {
@ -372,13 +372,17 @@ func (h *BufPane) execAction(action func(*BufPane) bool, name string, cursor int
}
}
return asuccess && psuccess
return success
}
}
return false
}
func (h *BufPane) completeAction(action string) {
h.PluginCB("on" + action)
}
func (h *BufPane) HasKeyEvent(e Event) bool {
_, ok := BufKeyBindings[e]
return ok