]> git.rmz.io Git - dotfiles.git/blobdiff - zsh/lib/prompt.zsh
zsh: only print task prompt if task is installed
[dotfiles.git] / zsh / lib / prompt.zsh
diff --git a/zsh/lib/prompt.zsh b/zsh/lib/prompt.zsh
deleted file mode 100644 (file)
index 3ca62a4..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-# Setup the prompt with pretty colors
-setopt prompt_subst
-autoload colors; colors;
-
-hostcolor=cyan
-[[ $(hostname) == "tardis" ]]  && hostcolor=red
-
-precmd() {
-  PROMPT=$'%T $(task_today_list)%n@%{$fg[$hostcolor]%}%m$(jobs_prompt)%-0>..>$(git_prompt_status)%>>\n'
-  PROMPT+=$'$(virtualenv_prompt)%(?..%{$fg_bold[white]%}%?)%{$reset_color%}$(vi_prompt_info)%{%(!.$fg[red]❰.$fg[green]❱)%1G%} '
-  RPROMPT='%{$fg[green]%}%~%{$reset_color%}'
-}
-
-jobs_prompt() {
-  printf '%s' "%(1j. $fg_bold[white]↵%{$fg_bold[red]%}%j.)%{$reset_color%}"
-}
-
-vi_prompt_info() {
-  local vicmd="$fg_bold[green]❰$reset_color%1G"
-  local viins="$fg_bold[blue]❱$reset_color%1G"
-  local map=${KEYMAP:-viins}
-  printf '%s' "%{${${map/vicmd/$vicmd}/(main|viins)/$viins}%}"
-}
-
-function zle-line-init zle-line-finish zle-keymap-select {
-  zle reset-prompt
-  zle -R
-}
-
-# zle -N zle-line-init
-# zle -N zle-line-finish
-zle -N zle-keymap-select
-
-# reset zle on resize
-TRAPWINCH() {
-  zle && { zle reset-prompt; zle -R  }
-}
-
-# Get the status of the working tree
-git_prompt_status() {
-  if ! git rev-parse --is-inside-work-tree &>/dev/null; then
-    return
-  fi
-  local oid head ahead behind
-  local added deleted modified renamed unmerged untracked dirty
-  # Use porcelain status for easy parsing.
-  local status_cmd="git status --porcelain=v2 -b"
-
-  # Get current status.
-  while IFS=$'\n' read line; do
-    if [[ "$line" == \#\ * ]]; then
-      [[ "$line" =~ '# branch.oid ([0-9a-f]+)' ]]         && oid=$match[1]
-      [[ "$line" =~ '# branch.head (.*)' ]]               && head=$match[1]
-      [[ "$line" =~ '# branch.upstream (.*)' ]]           && upstream=$match[1]
-      [[ "$line" =~ '# branch.ab \+([0-9]+) -([0-9]+)' ]] && ahead=$match[1] && behind=$match[2]
-    else
-      # Count added, deleted, modified, renamed, unmerged, untracked, dirty.
-      # T (type change) is undocumented, see http://git.io/FnpMGw.
-      # index
-      [[ "$line" == 1\ M[.MTD]\ * ]]      && (( updated++ ))
-      [[ "$line" == 1\ [AC][.MTD]\ * ]]   && (( added++ ))
-      [[ "$line" == 1\ D[.MT]\ * ]]       && (( deleted++ ))
-      [[ "$line" == 2\ R[.MTD]\ * ]]      && (( renamed++ ))
-
-      # work tree
-      [[ "$line" == 1\ [.MARCT]A\ * ]]    && (( added++ , modified++ ))  # intend-to-add
-      [[ "$line" == 1\ [.MARCT]M\ * ]]    && (( modified++ ))
-      [[ "$line" == 1\ [.MARCT]D\ * ]]    && (( deleted_wt++ ))
-      [[ "$line" == \?\ * ]]              && (( untracked++ ))
-
-      # merge conflicts
-      [[ "$line" == u\ (AA|DD|U?|?U)\ * ]] && (( unmerged++ ))
-
-      #TODO more info for submodules?
-    fi
-  done < <(${(z)status_cmd} 2> /dev/null)
-
-  local git_status=" "
-
-  # Format branch and commit
-  git_status+="%{$fg_bold[green]%}$head"
-  git_status+="%{$fg_no_bold[yellow]%}(${oid[1,8]})"
-
-  # Format upstream
-  git_status+="%{$fg[blue]%}"
-  [[ -z "$upstream" ]] && git_status+=" Ɇ"
-  (( ahead  > 0 ))     && git_status+=" >$ahead"
-  (( behind > 0 ))     && git_status+=" <$behind"
-
-  # Format push
-  git_status+="%{$fg_bold[blue]%}"
-  push_ab=( $(git rev-list --left-right --count @...@{push} 2>/dev/null) )
-  if (( $? == 0 )); then
-    (( push_ab[1] > 0 )) && git_status+=" ⮝$push_ab[1]"
-    (( push_ab[2] > 0 )) && git_status+=" ⮟$push_ab[2]"
-  fi
-
-  # Format stashed
-  git_status+="%{$fg_bold[cyan]%}"
-  stashed=$(git stash list | wc -l)
-  (( stashed > 0 )) && git_status+=" ⋎$stashed"
-
-  # Format index
-  git_status+="%{$fg_no_bold[green]%}"
-  (( updated > 0 )) && git_status+=" *$updated"
-  (( added   > 0 )) && git_status+=" +$added"
-  (( deleted > 0 )) && git_status+=" -$deleted"
-  (( renamed > 0 )) && git_status+=" ≈$renamed"
-
-  # Format working tree
-  git_status+="%{$fg_no_bold[red]%}"
-  (( modified   > 0 )) && git_status+=" *$modified"
-  (( deleted_wt > 0 )) && git_status+=" -$deleted_wt"
-  (( untracked  > 0 )) && git_status+=" +$untracked"
-  git_status+="%{$fg_no_bold[magenta]%}"
-  (( unmerged   > 0 )) && git_status+=" ♒$unmerged"
-
-  git_status+="%{$reset_color%}"
-
-  echo $git_status
-}
-
-function virtualenv_prompt() {
-  if [[ -z $VIRTUAL_ENV ]] then
-    echo ""
-  else
-    echo "(${VIRTUAL_ENV##*/}) "
-  fi
-}
-
-function print_if_fits() {
-  local zero length
-
-  zero='%([BSUbfksu]|([FB]|){*})'
-  length=${#${(S%%)1//$~zero/}}
-  echo "%-$length(l.$1.)"
-}
-
-function task_today_list() {
-  local task_cmd=(task rc.verbose:nothing)
-  local task_count=$($task_cmd $($task_cmd _get rc.report.today.filter) count)
-
-  local task_status=""
-  task_status+="%{$fg_bold[red]%} $task_count "
-  task_status+="%{$reset_color%}"
-  echo $task_status
-}