From 9db4508ce1a7b371e69d34a4c53f2194164b6808 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani Date: Mon, 8 Feb 2021 09:20:07 -0500 Subject: [PATCH] Add oneline option --- README.md | 2 +- admone.zsh | 30 +++++++++++++++++++++++------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 35adbb1..4703ae8 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Configuration is done by modifying the variables set at the start of the script. ## My design requirements - No dependency on OhMyZSH - Quick to load - - 2 lines + - 2 lines (if wanted) - Git integration - Easily extensible - Bracketed sections diff --git a/admone.zsh b/admone.zsh index 6c1dd19..56eadfe 100644 --- a/admone.zsh +++ b/admone.zsh @@ -23,13 +23,14 @@ BLOCK_LEFT="[" BLOCK_RIGHT="]" # BLOCK_LEFT="(" # BLOCK_RIGHT=")" -SHOW_0_EXIT_CODE="0" +SHOW_0_EXIT_CODE="1" INCLUDE="admone-pwd;admone-vcs;admone-exit-code" FORMAT_LOWER="%B%F{%(?.cyan.red)}" TRANSIENT_PROMPT="0" # This is buggy SHORT_PROMPT="➤" FORMAT_SHORT="%B%F{%(?.cyan.red)}" +TWO_LINE="0" zstyle ':vcs_info:git:*' formats '%b%u%c' zstyle ':vcs_info:git:*' actionformats '%b|%a%u%c' @@ -80,15 +81,16 @@ function zle-keymap-select zle-line-init zle-line-finish { zle -R } -set-prompt() { +NUM_FUNCS="$(echo $INCLUDE | grep -o ';' | wc -l)" +THE_COMMAND="$(echo $INCLUDE | cut -d ';' -f 1)" +[[ -v PS1_NL ]] && echo || PS1_NL= + +set-twoline-prompt() { # Reset prompts upper="${PRE_UPPER}" lower="${PRE_LOWER}${FORMAT_LOWER}${PROMPT_CHAR}%f%b " # Add in functions as defined above - NUM_FUNCS="$(echo $INCLUDE | grep -o ';' | wc -l)" - - THE_COMMAND="$(echo $INCLUDE | cut -d ';' -f 1)" upper+="$BLOCK_LEFT$($THE_COMMAND)$BLOCK_RIGHT" for (( i = 0; i < $NUM_FUNCS; i++ )); do @@ -97,13 +99,27 @@ set-prompt() { done # Add line above - [[ -v PS1_NL ]] && echo || PS1_NL= - PROMPT=$upper$'\n'$lower } +set-oneline-prompt() { + PROMPT="${FORMAT_LOWER}${PROMPT_CHAR}%f%b " + RPROMPT="" + for (( i = 0; i <= $NUM_FUNCS; i++ )); do + THE_COMMAND="$(echo $INCLUDE | cut -d ';' -f $(($i + 1)))" + RPROMPT+="$BLOCK_LEFT$($THE_COMMAND)$BLOCK_RIGHT" + done +} # Set everything! +set-prompt() { + if [[ $TWO_LINE == "1" ]]; then + set-twoline-prompt + else + set-oneline-prompt + fi +} + if [[ $TRANSIENT_PROMPT == "1" ]]; then SHORT_PROMPT=$FORMAT_SHORT$SHORT_PROMPT' '%f%b -- 2.39.2