mirror of
https://github.com/wfxr/forgit.git
synced 2026-09-10 15:26:16 -04:00
Improve forgit::diff
* Show additional context on enter compared to preview * Show selected diff range in fzf prompt
This commit is contained in:
parent
bd8fce74a6
commit
bb4514a359
|
|
@ -102,13 +102,16 @@ function forgit::diff -d "git diff viewer" --argument-names arg1 arg2
|
|||
end
|
||||
end
|
||||
|
||||
set preview "forgit::extract_file {} | xargs git diff --color=always $commits -- | $forgit_diff_pager"
|
||||
|
||||
set preview_cmd "forgit::extract_file {} | xargs -I% git diff --color=always $commits -- % | $forgit_diff_pager"
|
||||
# Show additional context on enter compared to preview
|
||||
set enter_cmd "forgit::extract_file {} | xargs -I% git diff --color=always -U10000 $commits -- % | $forgit_diff_pager"
|
||||
|
||||
set opts "
|
||||
$FORGIT_FZF_DEFAULT_OPTS
|
||||
+m -0 --bind=\"enter:execute($preview |env LESS='-r' less)\"
|
||||
--preview=\"$preview\"
|
||||
+m -0 --bind=\"enter:execute($enter_cmd | env LESS='-r' less)\"
|
||||
--preview=\"$preview_cmd\"
|
||||
$FORGIT_DIFF_FZF_OPTS
|
||||
--prompt=\"$commits > \"
|
||||
"
|
||||
|
||||
eval git diff --name-status $commits -- $files* |
|
||||
|
|
|
|||
|
|
@ -54,12 +54,16 @@ forgit::diff() {
|
|||
fi
|
||||
}
|
||||
repo="$(git rev-parse --show-toplevel)"
|
||||
cmd="cd '$repo' && echo {} |sed 's/.*] *//' | sed 's/ -> / /' |xargs -I% git diff --color=always $commits -- % | $forgit_diff_pager"
|
||||
get_files="cd '$repo' && echo {} | sed 's/.*] *//' | sed 's/ -> / /'"
|
||||
preview_cmd="$get_files | xargs -I% git diff --color=always $commits -- % | $forgit_diff_pager"
|
||||
# Show additional context on enter compared to preview
|
||||
enter_cmd="$get_files | xargs -I% git diff --color=always -U10000 $commits -- % | $forgit_diff_pager"
|
||||
opts="
|
||||
$FORGIT_FZF_DEFAULT_OPTS
|
||||
+m -0 --bind=\"enter:execute($cmd |LESS='-r' less)\"
|
||||
--preview=\"$cmd\"
|
||||
+m -0 --bind=\"enter:execute($enter_cmd | LESS='-r' less)\"
|
||||
--preview=\"$preview_cmd\"
|
||||
$FORGIT_DIFF_FZF_OPTS
|
||||
--prompt=\"$commits > \"
|
||||
"
|
||||
eval "git diff --name-status $commits -- ${files[*]} | sed -E 's/^([[:alnum:]]+)[[:space:]]+(.*)$/[\1]\t\2/'" |
|
||||
sed 's/\t/ -> /2' | expand -t 8 |
|
||||
|
|
|
|||
Loading…
Reference in a new issue