aboutsummaryrefslogtreecommitdiffstats
path: root/crates/turtle/src/shell/atuin.fish
diff options
context:
space:
mode:
Diffstat (limited to 'crates/turtle/src/shell/atuin.fish')
-rw-r--r--crates/turtle/src/shell/atuin.fish102
1 files changed, 0 insertions, 102 deletions
diff --git a/crates/turtle/src/shell/atuin.fish b/crates/turtle/src/shell/atuin.fish
deleted file mode 100644
index 2b469383..00000000
--- a/crates/turtle/src/shell/atuin.fish
+++ /dev/null
@@ -1,102 +0,0 @@
-if not set -q ATUIN_SESSION; or test "$ATUIN_SHLVL" != "$SHLVL"
- set -gx ATUIN_SESSION (atuin uuid)
- set -gx ATUIN_SHLVL $SHLVL
-end
-set --erase ATUIN_HISTORY_ID
-
-function _atuin_osc133_command_executed
- set -q ATUIN_PTY_PROXY_ACTIVE; or return
- test -n "$ATUIN_HISTORY_ID"; or return
-
- printf '\033]133;C\a'
-end
-
-function _atuin_osc133_command_finished --argument-names exit_code
- set -q ATUIN_PTY_PROXY_ACTIVE; or return
- test -n "$ATUIN_HISTORY_ID"; or return
-
- printf '\033]133;D;%s;history_id=%s;session_id=%s\a' "$exit_code" "$ATUIN_HISTORY_ID" "$ATUIN_SESSION"
-end
-
-function _atuin_preexec --on-event fish_preexec
- if not test -n "$fish_private_mode"
- set -g ATUIN_HISTORY_ID (atuin history start -- "$argv[1]" 2>/dev/null)
- _atuin_osc133_command_executed
- end
-end
-
-function _atuin_postexec --on-event fish_postexec
- set -l s $status
-
- if test -n "$ATUIN_HISTORY_ID"
- _atuin_osc133_command_finished $s
- ATUIN_LOG=error atuin history end --exit $s -- $ATUIN_HISTORY_ID &>/dev/null &
- disown
- end
-
- set --erase ATUIN_HISTORY_ID
-end
-
-function _atuin_search
- set -l keymap_mode
- switch $fish_key_bindings
- case fish_vi_key_bindings fish_hybrid_key_bindings
- switch $fish_bind_mode
- case default
- set keymap_mode vim-normal
- case insert
- set keymap_mode vim-insert
- end
- case '*'
- set keymap_mode emacs
- end
-
- set -l ATUIN_H
- set -l ATUIN_STATUS 0
-
- # In fish 3.4 and above we can use `"$(some command)"` to keep multiple lines separate;
- # but to support fish 3.3 we need to use `(some command | string collect)`.
- # https://fishshell.com/docs/current/relnotes.html#id24 (fish 3.4 "Notable improvements and fixes")
- set ATUIN_H (ATUIN_SHELL=fish ATUIN_LOG=error ATUIN_QUERY=(commandline -b) atuin search --keymap-mode=$keymap_mode $argv -i 3>&1 1>&2 2>&3 3>&- | string collect)
- set ATUIN_STATUS $pipestatus[1]
-
- if test "$ATUIN_STATUS" -ne 0
- test -n "$ATUIN_H"; and printf '%s\n' "$ATUIN_H" >&2
- commandline -f repaint
- return "$ATUIN_STATUS"
- end
-
- set ATUIN_H (string trim -- $ATUIN_H | string collect) # trim whitespace
-
- if test -n "$ATUIN_H"
- if string match --quiet '__atuin_accept__:*' "$ATUIN_H"
- set -l ATUIN_HIST (string replace "__atuin_accept__:" "" -- "$ATUIN_H" | string collect)
- commandline -r "$ATUIN_HIST"
- commandline -f repaint
- commandline -f execute
- return
- else
- commandline -r "$ATUIN_H"
- end
- end
-
- commandline -f repaint
-end
-
-function _atuin_bind_up
- # Fallback to fish's builtin up-or-search if we're in search or paging mode
- if commandline --search-mode; or commandline --paging-mode
- up-or-search
- return
- end
-
- # Only invoke atuin if we're on the top line of the command
- set -l lineno (commandline --line)
-
- switch $lineno
- case 1
- _atuin_search --shell-up-key-binding
- case '*'
- up-or-search
- end
-end