]> git.armaanb.net Git - admone.git/blobdiff - admone.zsh
Move loose code
[admone.git] / admone.zsh
index 6c1dd1957af8e1ca39f2a571401de1c30ddf957b..8f13a010b526453a85590dcfa7eae7bdeff6811f 100644 (file)
@@ -23,13 +23,13 @@ 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,46 +80,46 @@ function zle-keymap-select zle-line-init zle-line-finish {
   zle -R
 }
 
-set-prompt() {
+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"
+  upper+="${BLOCK_LEFT}$($THE_COMMAND)${BLOCK_RIGHT}"
 
   for (( i = 0; i < $NUM_FUNCS; i++ )); do
     THE_COMMAND="$(echo $INCLUDE | cut -d ';' -f $(($i + 2)))"
-    upper+="$BLOCK_SEPARATOR$BLOCK_LEFT$($THE_COMMAND)$BLOCK_RIGHT"
+    upper+="${BLOCK_SEPARATOR}${BLOCK_LEFT}$(${THE_COMMAND})${BLOCK_RIGHT}"
   done
 
   # Add line above
-  [[ -v PS1_NL ]] && echo || PS1_NL=
-
-  PROMPT=$upper$'\n'$lower
+  PROMPT=${upper}$'\n'${lower}
 }
 
+set-oneline-prompt() {
+  PROMPT="${FORMAT_LOWER}${PROMPT_CHAR}%f%b "
+  RPROMPT=""
 
-# Set everything!
-if [[ $TRANSIENT_PROMPT == "1" ]]; then
-  SHORT_PROMPT=$FORMAT_SHORT$SHORT_PROMPT' '%f%b
+  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-transient-prompt() {
-    if [[ $PROMPT != $SHORT_PROMPT ]]; then
-      PROMPT=$SHORT_PROMPT
-      zle .reset-prompt
-    fi
-  }
+# Set everything!
+set-prompt() {
+  NUM_FUNCS="$(echo $INCLUDE | grep -o ';' | wc -l)"
+  THE_COMMAND="$(echo $INCLUDE | cut -d ';' -f 1)"
 
-  zle-line-finish() {
-    set-transient-prompt
-  }
+  if [[ $TWO_LINE == "1" ]]; then
+    set-twoline-prompt
+  else
+    set-oneline-prompt
+  fi
 
-  trap 'set-transient-prompt; return 130' INT
-fi
+  [[ -v PS1_NL ]] && echo || PS1_NL=
+}
 
 if [[ ! $(echo $INCLUDE | grep -q "vcs") ]]; then
   zstyle ':vcs_info:*' check-for-changes true