2021-05-14 01:31:15 -06:00
|
|
|
ATUIN_SESSION=$(atuin uuid)
|
|
|
|
export ATUIN_SESSION
|
2021-05-09 11:47:41 -06:00
|
|
|
|
2021-04-26 04:50:31 -06:00
|
|
|
_atuin_preexec() {
|
2022-08-23 10:26:42 -06:00
|
|
|
local id; id=$(atuin history start -- "$1")
|
2022-06-07 15:28:06 -06:00
|
|
|
export ATUIN_HISTORY_ID="${id}"
|
2021-04-26 04:50:31 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
_atuin_precmd() {
|
2022-01-25 11:33:25 -07:00
|
|
|
local EXIT="$?"
|
2021-04-26 04:50:31 -06:00
|
|
|
|
2022-01-25 11:33:25 -07:00
|
|
|
[[ -z "${ATUIN_HISTORY_ID}" ]] && return
|
2021-04-26 04:50:31 -06:00
|
|
|
|
2022-08-23 10:26:42 -06:00
|
|
|
(RUST_LOG=error atuin history end --exit "${EXIT}" -- "${ATUIN_HISTORY_ID}" &) > /dev/null 2>&1
|
2021-04-26 04:50:31 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
__atuin_history ()
|
|
|
|
{
|
2022-01-25 11:33:25 -07:00
|
|
|
tput rmkx
|
2022-12-18 11:26:09 -07:00
|
|
|
# shellcheck disable=SC2048,SC2086
|
|
|
|
HISTORY="$(RUST_LOG=error atuin search $* -i -- "${READLINE_LINE}" 3>&1 1>&2 2>&3)"
|
2022-01-25 11:33:25 -07:00
|
|
|
tput smkx
|
2021-04-26 04:50:31 -06:00
|
|
|
|
|
|
|
READLINE_LINE=${HISTORY}
|
|
|
|
READLINE_POINT=${#READLINE_LINE}
|
|
|
|
}
|
|
|
|
|
2022-02-15 15:54:25 -07:00
|
|
|
if [[ -n "${BLE_VERSION-}" ]]; then
|
|
|
|
blehook PRECMD-+=_atuin_precmd
|
|
|
|
blehook PREEXEC-+=_atuin_preexec
|
2022-01-25 11:33:25 -07:00
|
|
|
else
|
|
|
|
precmd_functions+=(_atuin_precmd)
|
|
|
|
preexec_functions+=(_atuin_preexec)
|
|
|
|
fi
|
2021-04-26 04:50:31 -06:00
|
|
|
|
2022-06-07 15:28:06 -06:00
|
|
|
if [[ -z ${ATUIN_NOBIND} ]]; then
|
2022-01-25 11:33:25 -07:00
|
|
|
bind -x '"\C-r": __atuin_history'
|
2022-12-18 11:26:09 -07:00
|
|
|
bind -x '"\e[A": __atuin_history --shell-up-key-binding'
|
|
|
|
bind -x '"\eOA": __atuin_history --shell-up-key-binding'
|
2021-05-08 07:17:22 -06:00
|
|
|
fi
|