| 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 |
| } |