diff options
Diffstat (limited to 'mergetools/vimdiff')
| -rw-r--r-- | mergetools/vimdiff | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/mergetools/vimdiff b/mergetools/vimdiff new file mode 100644 index 0000000000..96f6209a04 --- /dev/null +++ b/mergetools/vimdiff @@ -0,0 +1,70 @@ +diff_cmd () { + "$merge_tool_path" -R -f -d \ + -c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE" +} + +merge_cmd () { + case "$1" in + *vimdiff) + if $base_present + then + "$merge_tool_path" -f -d -c '4wincmd w | wincmd J' \ + "$LOCAL" "$BASE" "$REMOTE" "$MERGED" + else + "$merge_tool_path" -f -d -c 'wincmd l' \ + "$LOCAL" "$MERGED" "$REMOTE" + fi + ;; + *vimdiff1) + "$merge_tool_path" -f -d \ + -c 'echon "Resolve conflicts leftward then save. Use :cq to abort."' \ + "$LOCAL" "$REMOTE" + ret="$?" + if test "$ret" -eq 0 + then + cp -- "$LOCAL" "$MERGED" + fi + return "$ret" + ;; + *vimdiff2) + "$merge_tool_path" -f -d -c 'wincmd l' \ + "$LOCAL" "$MERGED" "$REMOTE" + ;; + *vimdiff3) + if $base_present + then + "$merge_tool_path" -f -d -c 'hid | hid | hid' \ + "$LOCAL" "$REMOTE" "$BASE" "$MERGED" + else + "$merge_tool_path" -f -d -c 'hid | hid' \ + "$LOCAL" "$REMOTE" "$MERGED" + fi + ;; + esac +} + +translate_merge_tool_path() { + case "$1" in + nvimdiff*) + echo nvim + ;; + gvimdiff*) + echo gvim + ;; + vimdiff*) + echo vim + ;; + esac +} + +exit_code_trustable () { + true +} + +list_tool_variants () { + for prefix in '' g n; do + for suffix in '' 1 2 3; do + echo "${prefix}vimdiff${suffix}" + done + done +} |
