Add a preview to _forgit_clean (#383)

This commit is contained in:
sandr01d 2024-04-19 21:12:16 +02:00 committed by GitHub
parent a6efc540ba
commit bc408f155c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 0 deletions

View file

@ -335,6 +335,7 @@ export FORGIT_LOG_FZF_OPTS='
| `FORGIT_LOG_FORMAT` | git log format | `%C(auto)%h%d %s %C(black)%C(bold)%cr%Creset` |
| `FORGIT_PREVIEW_CONTEXT` | lines of diff context in preview mode | 3 |
| `FORGIT_FULLSCREEN_CONTEXT` | lines of diff context in fullscreen mode | 10 |
| `FORGIT_DIR_VIEW` | command used to preview directories | `tree` if available, otherwise `find` |
# 📦 Optional dependencies

View file

@ -132,6 +132,7 @@ _forgit_log_format=${FORGIT_LOG_FORMAT:-%C(auto)%h%d %s %C(black)%C(bold)%cr%Cre
_forgit_log_preview_options=("--graph" "--pretty=format:$_forgit_log_format" "--color=always" "--abbrev-commit" "--date=relative")
_forgit_fullscreen_context=${FORGIT_FULLSCREEN_CONTEXT:-10}
_forgit_preview_context=${FORGIT_PREVIEW_CONTEXT:-3}
_forgit_dir_view=${FORGIT_DIR_VIEW:-$(hash tree &> /dev/null && echo 'tree' || echo 'find')}
_forgit_pager() {
local pager
@ -471,6 +472,16 @@ _forgit_stash_push() {
_forgit_git_stash_push ${msg:+-m "$msg"} -u "${files[@]}"
}
_forgit_clean_preview() {
local path
path=$1
if [[ -d "$path" ]]; then
eval "$_forgit_dir_view \"$path\""
else
git diff --color=always /dev/null "$path" | _forgit_pager diff
fi
}
# git clean selector
_forgit_clean() {
_forgit_inside_work_tree || return 1
@ -480,6 +491,7 @@ _forgit_clean() {
_forgit_parse_array _forgit_clean_git_opts "$FORGIT_CLEAN_GIT_OPTS"
opts="
$FORGIT_FZF_DEFAULT_OPTS
--preview=\"$FORGIT clean_preview {}\"
-m -0
$FORGIT_CLEAN_FZF_OPTS
"
@ -976,6 +988,7 @@ private_commands=(
"checkout_file_preview"
"cherry_pick_from_branch_preview"
"cherry_pick_preview"
"clean_preview"
"diff_enter"
"file_preview"
"ignore_preview"