Show Exit Code of Last Command in Zsh
Recently I came across this ASCII cast. My attention was caught by zsh configuration, that @kui is using. It prints exit code of last command before prompt:

Let's look at the implementation.
https://github.com/kui/dotfiles/blob/master/dotfiles/zshrc#L411-L413
...
user="%F{$(color_code_from_str "$USER")}%n"
host="%F{$(color_code_from_str "$HOST")}%m"
PROMPT='%(?.%F{243}.%F{red})%U${(l:COLUMNS:: :)?}%u
'"$user"'%f@'"$host"'%f:%F{yellow}%~ $(for f in "${prompt_opts[@]}"; "$f")
%(?.%f.%F{red})%(!.#.$)%f '
...
Zsh has two prompts: default - PROMPT and the right prompt RPROMPT.
The code above constructs default prompt using multiple pieces of data such
as $USER and $HOST environment variables.
Let's look more closely at this:
%U${(l:COLUMNS:: :)?}%u
$U- anchor for starting underlined text.(l:COLUMNS:: :)- pads the left side of the parameter with spaces (given between the last two: :) until a width of $COLUMNS is reached.?- in context of${...}is equalent to$?- a shell variable that store exit status code of last command.%u- the end of underlined text.
That's how it works. More about this can be found here:
I don't want to draw this line everytime, so I used a different approach:

The exit code is displayed in right prompt only when it differs from zero (0 - a code for successful exit).
Here is the implementation from .zshrc:
...
function check_last_exit_code() {
local LAST_EXIT_CODE=$?
if [[ $LAST_EXIT_CODE -ne 0 ]]; then
local EXIT_CODE_PROMPT=' '
EXIT_CODE_PROMPT+="%{$fg[red]%}-%{$reset_color%}"
EXIT_CODE_PROMPT+="%{$fg_bold[red]%}$LAST_EXIT_CODE%{$reset_color%}"
EXIT_CODE_PROMPT+="%{$fg[red]%}-%{$reset_color%}"
echo "$EXIT_CODE_PROMPT"
fi
}
...
RPROMPT='$(check_last_exit_code)$(git_prompt_string)'
...