refactor(zsh): Simplify code

This commit is contained in:
Ahmad Ansori Palembani 2024-07-15 12:15:36 +07:00
parent 93b32a8f43
commit 7b2924075f
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6

View file

@ -1,4 +1,5 @@
#!/bin/env zsh #!/bin/env zsh
autoload -Uz vcs_info autoload -Uz vcs_info
precmd_vcs_info() { vcs_info } precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info ) precmd_functions+=( precmd_vcs_info )
@ -10,35 +11,29 @@ zstyle ':vcs_info:git:*' formats '%F{5} %b %F{1}%c%u %f'
zstyle ':vcs_info:git*+set-message:*' hooks git-untracked zstyle ':vcs_info:git*+set-message:*' hooks git-untracked
zstyle ':vcs_info:*' enable git zstyle ':vcs_info:*' enable git
+vi-git-untracked() { +vi-git-untracked() {
# Return early if we're not in git dir
[ $(git rev-parse --is-inside-work-tree 2> /dev/null) = 'true' ] || return 0
# git status ahead # git status ahead
if [[ $(git status --porcelain -b | grep '^## [^ ]\+ .*ahead') ]]; then [ $(git status --porcelain -b | grep '^## [^ ]\+ .*ahead') ] && \
hook_com[unstaged]+='%F{1}⇡%f' hook_com[unstaged]+='%F{1}⇡%f'
fi
# git untracked # git untracked
if [ $(git rev-parse --is-inside-work-tree 2> /dev/null) = 'true' ] && \ [ $(git ls-files --other --directory --exclude-standard --no-empty-directory | sed q | wc -l | tr -d ' ') = 1 ] && \
[ $(git ls-files --other --directory --exclude-standard --no-empty-directory | sed q | wc -l | tr -d ' ') = 1 ] ; then
hook_com[unstaged]+='%F{1}?%f' hook_com[unstaged]+='%F{1}?%f'
fi
} }
function zle-line-init zle-keymap-select { function zle-line-init zle-keymap-select {
PS1=" PS1="""
%B%F{blue}%~ \$vcs_info_msg_0_ %B%F{blue}%~ \$vcs_info_msg_0_
%F{green}${${KEYMAP/vicmd/N }/(main|viins)/}$>%f%b " %F{green}${${KEYMAP/vicmd/N }/(main|viins)/}$>%f%b """
PS2="%B%F{blue}?>%f%b " PS2="%B%F{blue}?>%f%b "
# RPS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}" # RPS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}"
# RPS2=$RPS1 # RPS2=$RPS1
if [[ ${KEYMAP} == vicmd ]] || if [[ ${KEYMAP} == vicmd ]] || [[ $1 = 'block' ]]; then
[[ $1 = 'block' ]]; then
echo -ne '\e[1 q' echo -ne '\e[1 q'
elif [[ ${KEYMAP} == main ]] || [[ ${KEYMAP} == viins ]] || [[ ${KEYMAP} = '' ]] || [[ $1 = 'beam' ]]; then
elif [[ ${KEYMAP} == main ]] ||
[[ ${KEYMAP} == viins ]] ||
[[ ${KEYMAP} = '' ]] ||
[[ $1 = 'beam' ]]; then
echo -ne '\e[5 q' echo -ne '\e[5 q'
fi fi