summaryrefslogtreecommitdiffstats
path: root/pkg/commands
diff options
context:
space:
mode:
authorRyooooooga <eial5q265e5@gmail.com>2022-04-22 21:54:03 +0900
committerRyooooooga <eial5q265e5@gmail.com>2022-04-23 17:39:12 +0900
commite5730cb80bffe835725f94d40e7ea28838f45f91 (patch)
tree762c2c0c83ccfbc36b6891befc9463439aa5e6e6 /pkg/commands
parent8b103b16bd3a06d0e661e507832459fae7ec1198 (diff)
fix: improve default editCommandTemplate
Diffstat (limited to 'pkg/commands')
-rw-r--r--pkg/commands/git_commands/file.go13
-rw-r--r--pkg/commands/git_commands/file_test.go26
2 files changed, 27 insertions, 12 deletions
diff --git a/pkg/commands/git_commands/file.go b/pkg/commands/git_commands/file.go
index 1837ee4a4..898c26e33 100644
--- a/pkg/commands/git_commands/file.go
+++ b/pkg/commands/git_commands/file.go
@@ -5,7 +5,6 @@ import (
"strconv"
"github.com/go-errors/errors"
- "github.com/jesseduffield/lazygit/pkg/config"
"github.com/jesseduffield/lazygit/pkg/utils"
)
@@ -59,14 +58,16 @@ func (self *FileCommands) GetEditCmdStr(filename string, lineNumber int) (string
}
editCmdTemplate := self.UserConfig.OS.EditCommandTemplate
- if editCmdTemplate == config.DefaultEditCommandTemplate {
+ if len(editCmdTemplate) == 0 {
switch editor {
- case "emacs", "nano", "vi", "vim":
- editCmdTemplate = "{{editor}} +{{line}} {{filename}}"
+ case "emacs", "nano", "vi", "vim", "nvim":
+ editCmdTemplate = "{{editor}} +{{line}} -- {{filename}}"
case "subl":
- editCmdTemplate = "{{editor}} {{filename}}:{{line}}"
+ editCmdTemplate = "{{editor}} -- {{filename}}:{{line}}"
case "code":
- editCmdTemplate = "{{editor}} -r --goto {{filename}}:{{line}}"
+ editCmdTemplate = "{{editor}} -r --goto -- {{filename}}:{{line}}"
+ default:
+ editCmdTemplate = "{{editor}} -- {{filename}}"
}
}
return utils.ResolvePlaceholderString(editCmdTemplate, templateValues), nil
diff --git a/pkg/commands/git_commands/file_test.go b/pkg/commands/git_commands/file_test.go
index 61482054b..4b9128dfe 100644
--- a/pkg/commands/git_commands/file_test.go
+++ b/pkg/commands/git_commands/file_test.go
@@ -47,7 +47,7 @@ func TestEditFileCmdStr(t *testing.T) {
gitConfigMockResponses: nil,
test: func(cmdStr string, err error) {
assert.NoError(t, err)
- assert.Equal(t, `nano +1 "test"`, cmdStr)
+ assert.Equal(t, `nano "test"`, cmdStr)
},
},
{
@@ -61,7 +61,7 @@ func TestEditFileCmdStr(t *testing.T) {
gitConfigMockResponses: map[string]string{"core.editor": "nano"},
test: func(cmdStr string, err error) {
assert.NoError(t, err)
- assert.Equal(t, `nano +1 "test"`, cmdStr)
+ assert.Equal(t, `nano "test"`, cmdStr)
},
},
{
@@ -79,7 +79,7 @@ func TestEditFileCmdStr(t *testing.T) {
gitConfigMockResponses: nil,
test: func(cmdStr string, err error) {
assert.NoError(t, err)
- assert.Equal(t, `nano +1 "test"`, cmdStr)
+ assert.Equal(t, `nano "test"`, cmdStr)
},
},
{
@@ -97,7 +97,7 @@ func TestEditFileCmdStr(t *testing.T) {
gitConfigMockResponses: nil,
test: func(cmdStr string, err error) {
assert.NoError(t, err)
- assert.Equal(t, `emacs +1 "test"`, cmdStr)
+ assert.Equal(t, `emacs "test"`, cmdStr)
},
},
{
@@ -112,7 +112,7 @@ func TestEditFileCmdStr(t *testing.T) {
gitConfigMockResponses: nil,
test: func(cmdStr string, err error) {
assert.NoError(t, err)
- assert.Equal(t, `vi +1 "test"`, cmdStr)
+ assert.Equal(t, `vi "test"`, cmdStr)
},
},
{
@@ -127,7 +127,7 @@ func TestEditFileCmdStr(t *testing.T) {
gitConfigMockResponses: nil,
test: func(cmdStr string, err error) {
assert.NoError(t, err)
- assert.Equal(t, `vi +1 "file/with space"`, cmdStr)
+ assert.Equal(t, `vi "file/with space"`, cmdStr)
},
},
{
@@ -144,6 +144,20 @@ func TestEditFileCmdStr(t *testing.T) {
assert.Equal(t, `vim +1 "open file/at line"`, cmdStr)
},
},
+ {
+ filename: "default edit command template",
+ configEditCommand: "vim",
+ configEditCommandTemplate: "",
+ runner: oscommands.NewFakeRunner(t),
+ getenv: func(env string) string {
+ return ""
+ },
+ gitConfigMockResponses: nil,
+ test: func(cmdStr string, err error) {
+ assert.NoError(t, err)
+ assert.Equal(t, `vim +1 -- "default edit command template"`, cmdStr)
+ },
+ },
}
for _, s := range scenarios {