# ╔══════════════════════════════════════════════════════════════════╗
# ║  arch-dev :: aliases                                            ║
# ╚══════════════════════════════════════════════════════════════════╝

# ── Navigation ────────────────────────────────────────────────────────────────
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias ~='cd ~'
alias -- -='cd -'

# ── ls / eza ──────────────────────────────────────────────────────────────────
alias ls='eza --icons --group-directories-first --color=always'
alias ll='eza -la --icons --git --group-directories-first --color=always'
alias lt='eza --tree --icons --level=2 --color=always'
alias ltt='eza --tree --icons --level=3 --color=always'

# ── bat (better cat) ──────────────────────────────────────────────────────────
alias cat='bat --style=plain --paging=never --color=never'
alias catn='bat --style=numbers --paging=never --color=never'
alias catp='bat --style=full --paging=never'

# ── Editor ────────────────────────────────────────────────────────────────────
alias v='nvim'
alias vi='nvim'
alias vim='nvim'
alias vdiff='nvim -d'

# ── Git (tearless mobile ref bindings) ────────────────────────────────────────
alias g='git'
alias gs='git status'
alias gl='git log --oneline --graph --decorate --color'
alias glo='git log --oneline -20'
alias gd='git diff'
alias gds='git diff --staged'
alias ga='git add'
alias gaa='git add -A'
alias gc='git commit'
alias gcm='git commit -m'
alias gp='git push'
alias gpl='git pull'
alias gco='git checkout'
alias gcb='git checkout -b'
alias gst='git stash'
alias gstp='git stash pop'
alias lg='lazygit'

# ── Shell utils ───────────────────────────────────────────────────────────────
alias grep='grep --color=auto'
alias rg='ripgrep'
alias src='source ~/.zshrc && echo "↻ zshrc reloaded"'
alias cls='clear'
alias path='echo $PATH | tr ":" "\n"'

# ── System (btop > top) ───────────────────────────────────────────────────────
alias top='btop'
alias df='df -h'
alias du='du -h'
alias free='free -h'

# ── Safety nets ───────────────────────────────────────────────────────────────
# trash-cli installed from AUR — rm is still available for scripts
alias rm='echo "Use trash or /bin/rm"; false'
alias tp='trash-put'
alias tl='trash-list'

# ── Python ────────────────────────────────────────────────────────────────────
alias py='python'
alias py3='python3'
alias pip='pip3'
alias venv='python -m venv'
alias va='source .venv/bin/activate'
alias vd='deactivate'

# ── Perl ──────────────────────────────────────────────────────────────────────
alias pl='perl'
alias plcheck='perl -wc'          # syntax check a file
alias plcritic='perlcritic'

# ── arch-dev meta ─────────────────────────────────────────────────────────────
alias pacman-list='pacman -Qqe'                       # list explicitly installed
alias pacman-orphans='pacman -Qtdq'                   # list orphaned packages
alias aur-update='yay -Syu --aur'

# ── Snapshot shortcuts ────────────────────────────────────────────────────────
alias snap='snapshot'
alias snaps='snapshots'
alias snapd='diff-state'
alias snapr='rollback'
