#!/bin/zsh

autoload -U add-zsh-hook

__keep_preexec() {
  KEEP_META_command="$1"
  KEEP_META_tty=${KEEP_META_tty:-$(tty)}
}

add-zsh-hook preexec __keep_preexec

keep() {
  if [[ $ZSH_SUBSHELL -le 2 ]]; then
    export KEEP_META_command
  fi
  export KEEP_META_tty
  command keep "$@"
}

alias @='keep --save'
alias @@='keep --get'

# Shell completions
. <(command keep --generate-completion zsh)

___keep_complete() {
    local mode="$1"
    local -a words
    words=(keep "$mode" "${words[@]:1}")
    ((CURRENT++))
    _keep
}

___keep_save_completion() { ___keep_complete --save; }
___keep_get_completion() { ___keep_complete --get; }

compdef ___keep_save_completion @
compdef ___keep_get_completion @@
