slick-0.1.4 is not a library.
slick
async ZSH prompt in Rust inspired by:
How to use
Install:
cargo install slick
check your PATH $HOME/.cargo/bin/slick
Then add this to your .zshrc
:
zle -N zle-keymap-select
zle -N zle-line-init
zmodload zsh/datetime
autoload -Uz add-zsh-hook
add-zsh-hook precmd slick_prompt_precmd
add-zsh-hook preexec slick_prompt_preexec
typeset -g slick_prompt_data=" "
typeset -g slick_prompt_timestamp=$EPOCHSECONDS
function slick_prompt_refresh {
if ! read -r slick_prompt_data <&$1; then
slick_prompt_data=" "
fi
PROMPT=$(slick prompt -k "$KEYMAP" -r $? -d $slick_prompt_data -t $slick_prompt_timestamp)
zle reset-prompt
zle -F $1
exec {1}<&-
}
function zle-line-init zle-keymap-select {
PROMPT=$(slick prompt -k "$KEYMAP" -r $? -d $slick_prompt_data -t $slick_prompt_timestamp)
zle && zle reset-prompt
}
function slick_prompt_precmd() {
exec {FD}< <(slick precmd)
zle -F $FD slick_prompt_refresh
}
function slick_prompt_preexec() {
typeset -g slick_prompt_timestamp=$EPOCHSECONDS
}
zle -N zle-line-init
zle -N zle-keymap-select
autoload -Uz add-zsh-hook
add-zsh-hook precmd slick_prompt_precmd
add-zsh-hook preexec slick_prompt_preexec