Switch to normal zsh %F/%f prompt escapes to avoid "eval" and extra variables.
Wrap whole thing in anonymous function so the existing `local`
statements actually work. Then switch '...' to eager "..." so
stuff actually works with local variables. And local-ize the
remaining variables that are used only in prompt construction.
- When the previous command's return status is non-zero and the prompt
is redrawn, graphical errors sometimes arise due to the fg{red} not
being escaped.
Problem
On detached-refs, the git prompt is very slow because it uses a command
to output all refs, which takes 32s on the twitter internal git repo.
Solution
Use git-rev-parse instead of git-show-ref to only output the head ref.
Runtime drops to 0.03 seconds.
Note
Interestingly, git-rev-parse isn't slow without the --head arguement so
I'll probably be cooking up a patch for the git team to speed this up
eventually, but it's still pointless to sigpipe git as it walks the
filesystem.
steeef theme sets colors depending on $TERM, however if %F is
used, it must be closed by %f instead of %{$reset_color%}.
Further on, all %f directives have been replaced by %F and color
support of current TERM is checked more properly.
Removed references for official git __git_ps1() functions.
Change to use omz function git_prompt* functions like:
- git_prompt_info() -> branch name
- git_prompt_status() -> check if untracked, modified, added,
stashed file are in the current git repo
- git_remote_status() -> check if current repo is ahead, behind,
or diverged.
These functions returns string automatically added to your PS1;
these are customizable via exporting ZSH_THEME_GIT_PROMPT*
* Moved git information to left prompt, with
support for:
* +ZSH_THEME_GIT_PROMPT_UNTRACKED, MODIFIED,
STASHED, ADDED, UPSTREAM STATUS
(if applicable)
* Removed right prompt
* Refactored following Google's guidelines for
scripts [ http://goo.gl/oJSXH2 ]
* Using local variables where applicable
Fixes a bug where color of status arrow in prompt is red even when the exit code was zero (or success). This fix correclty returns green arrow on success and red for non-success exit code.
in the trapd00r theme vcs info is already displayed on the first line if in a version controlled directory. the second vcs info was displayed at the end of the second line without providing additional information. this was removed.