diff options
author | Stefan Haller <stefan@haller-berlin.de> | 2023-03-26 14:04:09 +0200 |
---|---|---|
committer | Stefan Haller <stefan@haller-berlin.de> | 2023-04-13 13:14:00 +0200 |
commit | 659d668e16c3aac63ca7c41bba06003b6b1f8023 (patch) | |
tree | c35e2369269851793d05b9d666ddb002c0b9068d /pkg/gui/controllers/helpers | |
parent | 7bbcec965bb6606c661287f3a729a1de08debd81 (diff) |
Implement edit presets
Diffstat (limited to 'pkg/gui/controllers/helpers')
-rw-r--r-- | pkg/gui/controllers/helpers/files_helper.go | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/pkg/gui/controllers/helpers/files_helper.go b/pkg/gui/controllers/helpers/files_helper.go index 72be6e4e5..29aa19ce1 100644 --- a/pkg/gui/controllers/helpers/files_helper.go +++ b/pkg/gui/controllers/helpers/files_helper.go @@ -34,19 +34,32 @@ func NewFilesHelper( var _ IFilesHelper = &FilesHelper{} func (self *FilesHelper) EditFile(filename string) error { - return self.EditFileAtLine(filename, 1) + cmdStr, editInTerminal := self.git.File.GetEditCmdStr(filename) + return self.callEditor(cmdStr, editInTerminal) } func (self *FilesHelper) EditFileAtLine(filename string, lineNumber int) error { - cmdStr, err := self.git.File.GetEditCmdStr(filename, lineNumber) - if err != nil { - return self.c.Error(err) + cmdStr, editInTerminal := self.git.File.GetEditAtLineCmdStr(filename, lineNumber) + return self.callEditor(cmdStr, editInTerminal) +} + +func (self *FilesHelper) EditFileAtLineAndWait(filename string, lineNumber int) error { + cmdStr := self.git.File.GetEditAtLineAndWaitCmdStr(filename, lineNumber) + + // Always suspend, regardless of the value of the editInTerminal config, + // since we want to prevent interacting with the UI until the editor + // returns, even if the editor doesn't use the terminal + return self.callEditor(cmdStr, true) +} + +func (self *FilesHelper) callEditor(cmdStr string, editInTerminal bool) error { + if editInTerminal { + return self.c.RunSubprocessAndRefresh( + self.os.Cmd.NewShell(cmdStr), + ) } - self.c.LogAction(self.c.Tr.Actions.EditFile) - return self.c.RunSubprocessAndRefresh( - self.os.Cmd.NewShell(cmdStr), - ) + return self.os.Cmd.NewShell(cmdStr).Run() } func (self *FilesHelper) OpenFile(filename string) error { |