Skip to content

Commit

Permalink
feat(prompt): no building happens unless prompt is being used
Browse files Browse the repository at this point in the history
  • Loading branch information
olets committed Apr 28, 2020
1 parent 0dc3eba commit e86b359
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 33 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,16 +131,16 @@ Choose between

Name | Type | Description | Default
---|---|---|---
`GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES` | integer Boolean | Put the Git status info on the same line as the Git ref info? | `1`
`GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF` | integer Boolean | Put the Git ref info (HEAD, behind/ahead, upsteam, tag) on the same as he non-Git info? | `1`
`GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS` | integer Boolean | Show the stash, assume-unchanged, and skip-worktree counts | 1
`GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES` | null or `1` | Put the Git status info on the same line as the Git ref info? | `1`
`GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF` | null or `1` | Put the Git ref info (HEAD, behind/ahead, upsteam, tag) on the same as he non-Git info? | `1`
`GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS` | null or `1` | Show the stash, assume-unchanged, and skip-worktree counts | `1`

Set variables in `.zshrc` before loading Git Prompt Kit. For example, to show a single-line prompt:
Set variables to in `.zshrc` before loading Git Prompt Kit. For example, to show a single-line prompt:

```shell
# ~/.zshrc
# --- snip ---
GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES=0
GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES=
zinit light olets/git-prompt-kit
```

Expand Down
37 changes: 9 additions & 28 deletions git-prompt-kit.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ GIT_PROMPT_KIT_DEFAULT_HOST=${GIT_PROMPT_KIT_DEFAULT_HOST-}
GIT_PROMPT_KIT_DEFAULT_REMOTE=${GIT_PROMPT_KIT_DEFAULT_REMOTE-origin}
GIT_PROMPT_KIT_DEFAULT_USER=${GIT_PROMPT_KIT_DEFAULT_USER-}
GIT_PROMPT_KIT_HIDE_TOOL_NAMES=${GIT_PROMPT_KIT_HIDE_TOOL_NAMES:-1}
GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES=${GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES:-1}
GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES=${GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES-1}
GIT_PROMPT_KIT_LOCAL=${GIT_PROMPT_KIT_LOCAL-local}
GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF=${GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF:-1}
GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF=${GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF-1}
GIT_PROMPT_KIT_PROMPT_CHAR_NORMAL=${GIT_PROMPT_KIT_PROMPT_CHAR_NORMAL-%%}
GIT_PROMPT_KIT_PROMPT_CHAR_ROOT=${GIT_PROMPT_KIT_PROMPT_CHAR_ROOT-#}
GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS=${GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS:-1}
GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS=${GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS-1}
GIT_PROMPT_KIT_SHOW_INACTIVE_CONTEXT=${GIT_PROMPT_KIT_SHOW_INACTIVE_CONTEXT:-1}
GIT_PROMPT_KIT_SHOW_INACTIVE_STATUS=${GIT_PROMPT_KIT_SHOW_INACTIVE_STATUS:-1}
GIT_PROMPT_KIT_USE_DEFAULT_PROMPT=${GIT_PROMPT_KIT_USE_DEFAULT_PROMPT:-1}
Expand Down Expand Up @@ -58,9 +58,6 @@ GIT_PROMPT_KIT_COLOR_USER=${GIT_PROMPT_KIT_COLOR_USER:-109}

function _git_prompt_kit_update_git() {
emulate -L zsh
typeset -g _GIT_PROMPT_KIT_GIT_FIRST_LINE=
typeset -g _GIT_PROMPT_KIT_GIT_SECOND_LINE=
typeset -g _GIT_PROMPT_KIT_GIT_THIRD_LINE=
typeset -g GIT_PROMPT_KIT_ACTION=
typeset -g GIT_PROMPT_KIT_AHEAD=
typeset -g GIT_PROMPT_KIT_ASSUMED_UNCHANGED=
Expand Down Expand Up @@ -257,27 +254,8 @@ function _git_prompt_kit_update_git() {

(( GIT_PROMPT_KIT_HIDE_TOOL_NAMES )) || ref_status="Git $GIT_PROMPT_KIT_REF"

if (( GIT_PROMPT_KIT_USE_DEFAULT_PROMPT )); then
# If setting the prompt, assemble sections
if ! (( GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES )); then
(( GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS )) && ref_status+="$GIT_PROMPT_KIT_STATUS_EXTENDED"
ref_status+="$GIT_PROMPT_KIT_STATUS"
ref_status+="${GIT_PROMPT_KIT_ACTION:+$GIT_PROMPT_KIT_ACTION}%f"
fi

if (( GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF )); then
_GIT_PROMPT_KIT_GIT_FIRST_LINE=$GIT_PROMPT_KIT_REF
else
_GIT_PROMPT_KIT_GIT_FIRST_LINE+=$'\n'
_GIT_PROMPT_KIT_GIT_SECOND_LINE=$GIT_PROMPT_KIT_REF
fi

if (( GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES )); then
_GIT_PROMPT_KIT_GIT_SECOND_LINE+=$'\n'
(( GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS )) && _GIT_PROMPT_KIT_GIT_THIRD_LINE+="$GIT_PROMPT_KIT_STATUS_EXTENDED"
_GIT_PROMPT_KIT_GIT_THIRD_LINE+="$GIT_PROMPT_KIT_STATUS"
_GIT_PROMPT_KIT_GIT_THIRD_LINE+="${GIT_PROMPT_KIT_ACTION:+$GIT_PROMPT_KIT_ACTION}%f"
fi
fi
}

Expand Down Expand Up @@ -329,9 +307,12 @@ _git_prompt_kit_build_prompt() {
prompt+='$GIT_PROMPT_KIT_CUSTOM'

# Git
prompt+='${_GIT_PROMPT_KIT_GIT_FIRST_LINE:+ $_GIT_PROMPT_KIT_GIT_FIRST_LINE}'
prompt+='${_GIT_PROMPT_KIT_GIT_SECOND_LINE:+$_GIT_PROMPT_KIT_GIT_SECOND_LINE}'
prompt+='${_GIT_PROMPT_KIT_GIT_THIRD_LINE:+$_GIT_PROMPT_KIT_GIT_THIRD_LINE}'
prompt+='${GIT_PROMPT_KIT_HEAD:+${${GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF:+ }:-\n}}' # Git ? (no break ? ' ' : '\n')
prompt+='$GIT_PROMPT_KIT_REF'
prompt+='${GIT_PROMPT_KIT_HEAD:+${${GIT_PROMPT_KIT_LINEBREAK_BEFORE_GIT_FILES:+\n}:- }}' # Git ? (break ? '\n' : ' ')
prompt+='${GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS:+${GIT_PROMPT_KIT_STATUS_EXTENDED:+$GIT_PROMPT_KIT_STATUS_EXTENDED }}'
prompt+='${GIT_PROMPT_KIT_STATUS:+$GIT_PROMPT_KIT_STATUS }'
prompt+='$GIT_PROMPT_KIT_ACTION'

# Prompt character
prompt+=$'\n'
Expand Down

0 comments on commit e86b359

Please sign in to comment.