# Our ZSH configuration

############### ALIASES ####################

# Load bottom with the proper color scheme
if command -v btm &>/dev/null; then
  alias btm="btm --theme=gruvbox"
fi

# Remap ls to use lsd
if command -v lsd &>/dev/null; then
  alias ls="lsd"
  # Add alias for la to call lsd -lah
  alias la="lsd -lah"
fi

# Replace cat with bat
if command -v bat &>/dev/null; then
  alias cat="bat"
fi

# Alias cd to z for zoxide
if command -v zoxide &>/dev/null; then
  alias cd="z"
fi

# Alias vim to nvim
if command -v nvim &>/dev/null; then
  alias vim="nvim"
fi

# Alias for stow --dotfiles
if command -v stow &>/dev/null; then
  alias stow.="stow --dotfiles"
fi

############### END ALIASES ###############

############### BEGIN EXPORTS #############

# Exporting $HOME/.local/bin for Zed
export PATH=$HOME/.local/bin:$PATH

# Export my local-progs directory to find executables
if [[ -d "$HOME/local-progs" ]]; then
  export PATH=$HOME/local-progs/:$PATH
fi

# Pre-configure settings for zsh-vi-mode
function zvm_config() {
	ZVM_CURSOR_STYLE_ENABLED=false
	ZVM_VI_EDITOR=nvim
}

############### END EXPORTS ###############

# Add in our fzf integrations for zsh
# Comment if you don't want the fzf integration
if command -v fzf &>/dev/null; then 
  source <(fzf --zsh)
fi

# Enable vi mode for zsh
if [[ -f "$HOME/local-progs/zsh-vi-mode/zsh-vi-mode.plugin.zsh" ]]; then
  source $HOME/local-progs/zsh-vi-mode/zsh-vi-mode.plugin.zsh
fi

# We want to make sure that autocompletions are loaded
autoload -Uz compinit && compinit

# Initialize zoxide
if command -v zoxide &>/dev/null; then
  eval "$(zoxide init zsh)"
fi

# Finally we want to use starship for our prompt
# (because rust that's why)
if command -v starship &>/dev/null; then
  eval "$(starship init zsh)"
fi
