diff options
Diffstat (limited to 'mergetools/vimdiff')
-rw-r--r-- | mergetools/vimdiff | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/mergetools/vimdiff b/mergetools/vimdiff new file mode 100644 index 0000000..abc8ce4 --- /dev/null +++ b/mergetools/vimdiff @@ -0,0 +1,59 @@ +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 + ;; + *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 '' 2 3; do + echo "${prefix}vimdiff${suffix}" + done + done +} |