# Put this in ~/.zshrc
# source ~/.config/zsh/extra-zshrc

# https://zsh.sourceforge.io/Doc/Release/Parameters.html#Parameters-Used-By-The-Shell
export HISTORY_IGNORE="(ls|ll|la|cd|pwd|exit)"
export HISTSIZE=100000000
export SAVEHIST=$HISTSIZE

# https://zsh.sourceforge.io/Doc/Release/Options.html
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_FIND_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_NO_FUNCTIONS
setopt HIST_NO_STORE
setopt HIST_REDUCE_BLANKS
setopt HIST_SAVE_NO_DUPS

# https://stackoverflow.com/q/12382499
bindkey "^[[1;3C" forward-word
bindkey "^[[1;3D" backward-word

# omz
# https://github.com/ohmyzsh/ohmyzsh/issues/5700
DISABLE_AUTO_TITLE="true"
# https://github.com/ohmyzsh/ohmyzsh/issues/10291
DISABLE_UNTRACKED_FILES_DIRTY="true"
# https://github.com/ohmyzsh/ohmyzsh/issues/5569
DISABLE_MAGIC_FUNCTIONS="true"

# nvim
if command -v nvim &> /dev/null; then
    export EDITOR=nvim
    export VISUAL=nvim
    export GIT_EDITOR=nvim
fi

# go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
# Depend on your company
# Please copy this manually to ~/.zshrc
export GOPRIVATE=github.com/make-go-great,github.com/haunt98

# fzf
# https://github.com/junegunn/fzf#environment-variables
if command -v fd &> /dev/null; then
    export FZF_DEFAULT_COMMAND="fd --type file"
    export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
    export FZF_ALT_C_COMMAND="fd --type directory"
fi

# https://github.com/catppuccin/fzf
export FZF_DEFAULT_OPTS=" \
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
--color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8"

# Alias
alias g="git"
alias moe="make"

# https://sw.kovidgoyal.net/kitty/faq/
alias kssh="kitty +kitten ssh"

# https://restic.readthedocs.io/en/latest/manual_rest.html
export RESTIC_PASSWORD_FILE=$HOME/.restic_password_file

# https://difftastic.wilfred.me.uk/git.html
if command -v difft &> /dev/null; then
    export GIT_EXTERNAL_DIFF=difft
fi

# https://github.com/sharkdp/vivid
if command -v vivid &> /dev/null; then
    export LS_COLORS="$(vivid generate ~/.config/vivid/catppuccin-mocha.yml)"
fi
