text editor selection: follow unix defacto standards (#356)

Currently, `tea` only supports the $EDITOR env var to open the user's preferred editor (used for reviewing pull requests).

Standard \*nix practice is, however, to check for $VISUAL first and only then use $EDITOR as fallback.
This is also done by Git itself, see man git-var(1).
(Actually, the order there is $GIT_EDITOR > core.editor > $VISUAL > $EDITOR > vi)

Co-authored-by: plgruener <pl.gruener@gmail.com>
Reviewed-on: https://gitea.com/gitea/tea/pulls/356
Reviewed-by: Norwin <noerw@noreply.gitea.io>
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: plgruener <plgruener@noreply.gitea.io>
Co-committed-by: plgruener <plgruener@noreply.gitea.io>
This commit is contained in:
plgruener 2021-06-21 20:08:27 +08:00 committed by 6543
parent df724b4006
commit 3129e60a73
2 changed files with 7 additions and 4 deletions

View File

@ -63,7 +63,7 @@ func ReviewPull(ctx *context.TeaContext, idx int64) error {
return task.CreatePullReview(ctx, idx, state, comment, codeComments) return task.CreatePullReview(ctx, idx, state, comment, codeComments)
} }
// DoDiffReview (1) fetches & saves diff in tempfile, (2) starts $EDITOR to comment on diff, // DoDiffReview (1) fetches & saves diff in tempfile, (2) starts $VISUAL or $EDITOR to comment on diff,
// (3) parses resulting file into code comments. // (3) parses resulting file into code comments.
func DoDiffReview(ctx *context.TeaContext, idx int64) ([]gitea.CreatePullReviewComment, error) { func DoDiffReview(ctx *context.TeaContext, idx int64) ([]gitea.CreatePullReviewComment, error) {
tmpFile, err := task.SavePullDiff(ctx, idx) tmpFile, err := task.SavePullDiff(ctx, idx)

View File

@ -107,10 +107,13 @@ func ParseDiffComments(diffFile string) ([]gitea.CreatePullReviewComment, error)
// OpenFileInEditor opens filename in a text editor, and blocks until the editor terminates. // OpenFileInEditor opens filename in a text editor, and blocks until the editor terminates.
func OpenFileInEditor(filename string) error { func OpenFileInEditor(filename string) error {
editor := os.Getenv("EDITOR") editor := os.Getenv("VISUAL")
if editor == "" { if editor == "" {
fmt.Println("No $EDITOR env is set, defaulting to vim") editor = os.Getenv("EDITOR")
editor = "vim" if editor == "" {
fmt.Println("No $VISUAL or $EDITOR env is set, defaulting to vim")
editor = "vi"
}
} }
// Get the full executable path for the editor. // Get the full executable path for the editor.