# zmodload zsh/zprof

funcpath="$HOME/.local/share/zsh/autoload"
FPATH="$funcpath:$FPATH"
autoload ${=$(cd "$funcpath" && echo *)}
unset funcpath
fpath=($HOME/.local/share/zsh/site-functions $fpath)

source ~/.config/zsh/zsh-completion.zsh

autoload colors && colors
export CLICOLOR=1

# disable XOFF (Ctrl-S)
# stty stop undef
stty -ixon

setopt PROMPT_SUBST
setopt AUTO_PUSHD
setopt PUSHD_IGNORE_DUPS
setopt PUSHD_SILENT
alias d='dirs -v'
for index ({1..9}) alias "$index"="cd +${index}"; unset index

WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'

# bindkey -e
bindkey -v

export KEYTIMEOUT=1

bindkey -M vicmd '~' vi-swap-case
bindkey -M vicmd 'u' undo
bindkey -M vicmd 'U' redo
bindkey -M vicmd "?" history-incremental-pattern-search-backward
bindkey -M vicmd "/" history-incremental-pattern-search-forward

bindkey -M viins '^?' backward-delete-char # backspace
bindkey -M viins '^[[Z' reverse-menu-complete # shift-tab
bindkey -M viins '^a' beginning-of-line
bindkey -M viins '^e' end-of-line
bindkey -M viins '^h' backward-delete-char
bindkey -M viins '^k' kill-line
bindkey -M viins '^n' down-history
bindkey -M viins '^p' up-history
bindkey -M viins '^u' backward-kill-line
bindkey -M viins '^w' backward-delete-word
bindkey -M viins '^y' yank

autoload -U edit-command-line
zle -N edit-command-line
bindkey '^f' edit-command-line

bindkey ' ' magic-space

autoload zmv

setopt SHARE_HISTORY
setopt EXTENDED_HISTORY
setopt HIST_FIND_NO_DUPS
setopt HIST_REDUCE_BLANKS
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
setopt HISTIGNORESPACE
HISTSIZE=1000000
SAVEHIST=1000000
HISTFILE=~/.local/state/zsh_history
HIST_STAMPS="%d/%m/%y %T"

REPORTTIME=10

source ~/.config/zsh/shell-extras.sh
source ~/.config/zsh/zsh-alias.zsh
source ~/.config/zsh/zsh-func.zsh

eval "$(starship init zsh)"

TRAPEXIT() {
  if [[ ! -o login ]]; then
    . ~/.config/zsh/.zlogout
  fi
}

# zprof
