Run action completion on saves with prompts at the right time
This commit is contained in:
parent
1b73abcfd0
commit
da643a0c1f
2 changed files with 14 additions and 9 deletions
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue