@@ -23,6 +23,7 @@ while test $# -ne 0 ; do
2323 esac
2424 shift
2525done
26+ echo " IGNORE_SPACE='$( jjfzf_config get jj-fzf.whitespace-mode) '" >> $JJFZF_TEMPD /preview.env
2627
2728# == Config ==
2829export JJFZF_REVSET_OVERRIDE=" $JJFZF_TEMPD /log_revset"
@@ -41,13 +42,17 @@ jjfzf_full_commit()
4142 set -Eeuo pipefail
4243 test -z " ${1-} " && # may be revset
4344 exit 0
44- jjfzf_jjlog " $JJFZF_LOG_DETAILED_CONFIG " $JJFZF_COLOR --no-graph -r " $1 " -p \
45- -T ' "\n" ++ concat( builtin_log_oneline , builtin_log_detailed , diff.stat() , "\n" )'
45+ IGNORE_SPACE=
46+ test -r " $JJFZF_TEMPD /preview.env" && . $JJFZF_TEMPD /preview.env # IGNORE_SPACE
47+ test -z " $IGNORE_SPACE " && DIFF_COMMENT=' ""' || DIFF_COMMENT=" \" diff $IGNORE_SPACE \\ n\" "
48+ jjfzf_jjlog " $JJFZF_LOG_DETAILED_CONFIG " $JJFZF_COLOR $IGNORE_SPACE --no-graph -r " $1 " -p \
49+ -T ' "\n" ++ concat( builtin_log_oneline , builtin_log_detailed , diff.stat() , "\n", ' " $DIFF_COMMENT " ' )'
4650)
4751export -f jjfzf_full_commit
4852jjfzf_log_detailed # for preview, assigns $JJFZF_LOG_DETAILED_CONFIG
4953
5054# == jjfzf_full_history ==
55+ # Browse revset history in pager
5156jjfzf_full_history ()
5257(
5358 set -Eeuo pipefail
@@ -234,6 +239,24 @@ KEY[undo]="Alt-Z"
234239RUN[undo]=" jjfzf_run jj --no-pager undo"
235240DOC[undo]=' Use `jj undo` to undo the last operation performed by `jj` that was not previously undone.'
236241
242+ # Whitespace toggle
243+ KEY[nospace]=" Ctrl-B"
244+ DOC[nospace]=' Cycle between preview diff display with and without whitespace.'
245+ BINDINGS+=( --bind " ctrl-b:execute-silent( jjfzf_whitespace_cycle )+refresh-preview" )
246+ jjfzf_whitespace_cycle ()
247+ (
248+ CURRENT_WHITESPACE=$( jjfzf_config get jj-fzf.whitespace-mode)
249+ WHITESPACE_MODES=(" --ignore-space-change" " --ignore-all-space" " " )
250+ index=0
251+ for i in " ${! WHITESPACE_MODES[@]} " ; do
252+ [[ " ${WHITESPACE_MODES[$i]} " == " $CURRENT_WHITESPACE " ]] && { index=$i && break ; }
253+ done
254+ next_index=$(( (index + 1 ) % ${# WHITESPACE_MODES[@]} ))
255+ jjfzf_config set jj-fzf.whitespace-mode " ${WHITESPACE_MODES[$next_index]} "
256+ sed " s/^IGNORE_SPACE=.*/IGNORE_SPACE='${WHITESPACE_MODES[$next_index]} '/" -i $JJFZF_TEMPD /preview.env
257+ )
258+ export -f jjfzf_whitespace_cycle
259+
237260# Describe
238261KEY[describe]=" Ctrl-D"
239262RUN[describe]=" jjfzf_describe_commit {2}"
0 commit comments