summaryrefslogtreecommitdiffstats
path: root/pkg/commands
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2021-04-01 20:27:06 +1100
committerJesse Duffield <jessedduffield@gmail.com>2021-04-01 20:40:02 +1100
commiteb5418968374a2f4cc3888b24b672d8b5ecdb2ed (patch)
treeaa382cb9b728d556ed24e47558d417cccc067bec /pkg/commands
parente8e59306fcd20fb9ef73424f07893bce32edd442 (diff)
support GIT_EDITOR
Diffstat (limited to 'pkg/commands')
-rw-r--r--pkg/commands/files.go7
-rw-r--r--pkg/commands/git_test.go2
2 files changed, 6 insertions, 3 deletions
diff --git a/pkg/commands/files.go b/pkg/commands/files.go
index 328853a79..5443b7d04 100644
--- a/pkg/commands/files.go
+++ b/pkg/commands/files.go
@@ -315,11 +315,14 @@ func (c *GitCommand) ResetAndClean() error {
}
// EditFile opens a file in a subprocess using whatever editor is available,
-// falling back to core.editor, VISUAL, EDITOR, then vi
+// falling back to core.editor, GIT_EDITOR, VISUAL, EDITOR, then vi
func (c *GitCommand) EditFile(filename string) (*exec.Cmd, error) {
editor := c.GetConfigValue("core.editor")
if editor == "" {
+ editor = c.OSCommand.Getenv("GIT_EDITOR")
+ }
+ if editor == "" {
editor = c.OSCommand.Getenv("VISUAL")
}
if editor == "" {
@@ -331,7 +334,7 @@ func (c *GitCommand) EditFile(filename string) (*exec.Cmd, error) {
}
}
if editor == "" {
- return nil, errors.New("No editor defined in $VISUAL, $EDITOR, or git config")
+ return nil, errors.New("No editor defined in $GIT_EDITOR, $VISUAL, $EDITOR, or git config")
}
splitCmd := str.ToArgv(fmt.Sprintf("%s %s", editor, c.OSCommand.Quote(filename)))
diff --git a/pkg/commands/git_test.go b/pkg/commands/git_test.go
index ab0f9c5ac..5f24eacf3 100644
--- a/pkg/commands/git_test.go
+++ b/pkg/commands/git_test.go
@@ -2013,7 +2013,7 @@ func TestEditFile(t *testing.T) {
return "", nil
},
func(cmd *exec.Cmd, err error) {
- assert.EqualError(t, err, "No editor defined in $VISUAL, $EDITOR, or git config")
+ assert.EqualError(t, err, "No editor defined in $GIT_EDITOR, $VISUAL, $EDITOR, or git config")
},
},
{