11#! /usr/bin/env bash
22# shellcheck disable=2016
33
4+ GIT_FUZZY_STATUS_ADD_KEY=${GIT_FUZZY_STATUS_ADD_KEY:- Alt-S}
5+ GIT_FUZZY_STATUS_EDIT_KEY=${GIT_FUZZY_STATUS_EDIT_KEY:- Alt-E}
6+ GIT_FUZZY_STATUS_COMMIT_KEY=${GIT_FUZZY_STATUS_EDIT_KEY:- Alt-C}
7+ GIT_FUZZY_STATUS_RESET_KEY=${GIT_FUZZY_STATUS_RESET_KEY:- Alt-R}
8+ GIT_FUZZY_STATUS_DISCARD_KEY=${GIT_FUZZY_STATUS_DISCARD_KEY:- Alt-U}
9+
410GF_STATUS_HEADER='
511Type to filter. ' " ${WHITE} Enter${NORMAL} to ${GREEN} ACCEPT${NORMAL} " '
612
713 ' " ${GRAY} -- (${NORMAL} *${GRAY} ) editor: ${MAGENTA}${EDITOR} ${NORMAL}${GF_EDITOR_ARGS}${NORMAL} " '
8- ' " * ${GREEN}${BOLD} edit ✎${NORMAL} ${WHITE} Alt-E ${NORMAL} " '
9- ' " ${GREEN} all ☑${NORMAL} ${WHITE} Alt-A${NORMAL} ${GREEN} stage ${BOLD} ⇡${NORMAL} ${WHITE} Alt-S $ {NORMAL} ${RED}${BOLD} discard ✗${NORMAL} ${WHITE} Alt-U ${NORMAL} " '
10- ' " ${GREEN} none ☐${NORMAL} ${WHITE} Alt-D${NORMAL} ${GREEN} reset ${RED}${BOLD} ⇣${NORMAL} ${WHITE} Alt-R $ {NORMAL} * ${RED}${BOLD} commit ${NORMAL}${RED} ⇧${NORMAL} ${WHITE} Alt-C ${NORMAL} " '
14+ ' " * ${GREEN}${BOLD} edit ✎${NORMAL} ${WHITE} $GIT_FUZZY_STATUS_EDIT_KEY ${NORMAL} " '
15+ ' " ${GREEN} all ☑${NORMAL} ${WHITE} Alt-A${NORMAL} ${GREEN} stage ${BOLD} ⇡${NORMAL} ${WHITE} $GIT_FUZZY_STATUS_ADD_KEY $ {NORMAL} ${RED}${BOLD} discard ✗${NORMAL} ${WHITE} $GIT_FUZZY_STATUS_DISCARD_KEY ${NORMAL} " '
16+ ' " ${GREEN} none ☐${NORMAL} ${WHITE} Alt-D${NORMAL} ${GREEN} reset ${RED}${BOLD} ⇣${NORMAL} ${WHITE} $GIT_FUZZY_STATUS_RESET_KEY $ {NORMAL} * ${RED}${BOLD} commit ${NORMAL}${RED} ⇧${NORMAL} ${WHITE} $GIT_FUZZY_STATUS_COMMIT_KEY ${NORMAL} " '
1117
1218'
1319gf_fzf_status () {
@@ -16,21 +22,21 @@ gf_fzf_status() {
1622
1723 gf_fzf -m --header " $GF_STATUS_HEADER " \
1824 --header-lines=2 \
19- --expect=' alt-e,alt-c ' \
25+ --expect=' $GIT_FUZZY_STATUS_EDIT_KEY,$GIT_FUZZY_STATUS_COMMIT_KEY ' \
2026 --nth=2 \
2127 --preview ' git fuzzy helper status_preview_content {1} {2..}' \
22- --bind " alt-s :execute-silent(git fuzzy helper status_add {+2..})+down+$RELOAD " \
23- --bind " alt-r :execute-silent(git fuzzy helper status_reset {+2..})+down+$RELOAD " \
24- --bind " alt-u :execute-silent(git fuzzy helper status_discard {2..})+$RELOAD "
28+ --bind " $GIT_FUZZY_STATUS_ADD_KEY :execute-silent(git fuzzy helper status_add {+2..})+down+$RELOAD " \
29+ --bind " $GIT_FUZZY_STATUS_RESET_KEY :execute-silent(git fuzzy helper status_reset {+2..})+down+$RELOAD " \
30+ --bind " $GIT_FUZZY_STATUS_DISCARD_KEY :execute-silent(git fuzzy helper status_discard {2..})+$RELOAD "
2531}
2632
2733gf_status_interpreter () {
2834 CONTENT=" $( cat -) "
2935 HEAD=" $( echo " $CONTENT " | head -n1) "
3036 TAIL=" $( echo " $CONTENT " | tail -n +2) "
31- if [ " $HEAD " = ' alt-e ' ]; then
37+ if [ " $HEAD " = " $GIT_FUZZY_STATUS_EDIT_KEY " ]; then
3238 eval " git fuzzy helper status_edit $( echo " $TAIL " | cut -c4- | join_lines_quoted) "
33- elif [ " $HEAD " = ' alt-c ' ]; then
39+ elif [ " $HEAD " = " $GIT_FUZZY_STATUS_COMMIT_KEY " ]; then
3440 eval " git fuzzy helper status_commit"
3541 else
3642 echo " $TAIL " | cut -c4-
0 commit comments