]> git.ipfire.org Git - thirdparty/git.git/commitdiff
mergetools: add support for nvimdiff (neovim) family
authorpudinha <rogi@skylittlesystem.org>
Wed, 29 Jul 2020 21:31:13 +0000 (22:31 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 29 Jul 2020 21:44:49 +0000 (14:44 -0700)
Signed-off-by: pudinha <rogi@skylittlesystem.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash
git-mergetool--lib.sh
mergetools/nvimdiff [new file with mode: 0644]
mergetools/vimdiff

index ee468ea3b041ca573eb412739443230211cc6043..aed08f8df5c553a359fe4d0fb3b60fc221cb15ac 100644 (file)
@@ -1712,8 +1712,8 @@ _git_diff ()
 }
 
 __git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
-                       tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc
-                       codecompare smerge
+                       tkdiff vimdiff nvimdiff gvimdiff xxdiff araxis p4merge
+                       bc codecompare smerge
 "
 
 _git_difftool ()
index 29fecc340fd11a2a35efe3aabdb8639881ab1c09..2defef28cd931fc9dca041ee7ec0ea5d440c3dd7 100644 (file)
@@ -304,11 +304,14 @@ list_merge_tool_candidates () {
                tools="$tools smerge"
        fi
        case "${VISUAL:-$EDITOR}" in
+       *nvim*)
+               tools="$tools nvimdiff vimdiff emerge"
+               ;;
        *vim*)
-               tools="$tools vimdiff emerge"
+               tools="$tools vimdiff nvimdiff emerge"
                ;;
        *)
-               tools="$tools emerge vimdiff"
+               tools="$tools emerge vimdiff nvimdiff"
                ;;
        esac
 }
diff --git a/mergetools/nvimdiff b/mergetools/nvimdiff
new file mode 100644 (file)
index 0000000..04a5bb0
--- /dev/null
@@ -0,0 +1 @@
+. "$MERGE_TOOLS_DIR/vimdiff"
index 3925e1fc3e2dad92d3567e81a245b2785eb6f960..abc8ce4ec44e190812ba46b39b8ba2dec1cc14fe 100644 (file)
@@ -5,7 +5,7 @@ diff_cmd () {
 
 merge_cmd () {
        case "$1" in
-       gvimdiff|vimdiff)
+       *vimdiff)
                if $base_present
                then
                        "$merge_tool_path" -f -d -c '4wincmd w | wincmd J' \
@@ -15,11 +15,11 @@ merge_cmd () {
                                "$LOCAL" "$MERGED" "$REMOTE"
                fi
                ;;
-       gvimdiff2|vimdiff2)
+       *vimdiff2)
                "$merge_tool_path" -f -d -c 'wincmd l' \
                        "$LOCAL" "$MERGED" "$REMOTE"
                ;;
-       gvimdiff3|vimdiff3)
+       *vimdiff3)
                if $base_present
                then
                        "$merge_tool_path" -f -d -c 'hid | hid | hid' \
@@ -34,10 +34,13 @@ merge_cmd () {
 
 translate_merge_tool_path() {
        case "$1" in
-       gvimdiff|gvimdiff2|gvimdiff3)
+       nvimdiff*)
+               echo nvim
+               ;;
+       gvimdiff*)
                echo gvim
                ;;
-       vimdiff|vimdiff2|vimdiff3)
+       vimdiff*)
                echo vim
                ;;
        esac
@@ -48,7 +51,7 @@ exit_code_trustable () {
 }
 
 list_tool_variants () {
-       for prefix in '' g; do
+       for prefix in '' g n; do
                for suffix in '' 2 3; do
                        echo "${prefix}vimdiff${suffix}"
                done