AutoYADM commit: 2025-05-21 20:26:39

This commit is contained in:
Daniel Fichtinger 2025-05-21 20:26:39 -04:00
parent 20b9a13713
commit b0ef9796be
2 changed files with 36 additions and 5 deletions

View file

@ -1,6 +1,11 @@
function kak-session -w kak --description "kakoune where sessions are derived from parent git dirs" function kak-session -w kak --description "kakoune where sessions are derived from parent git dirs. First arg may be -nokakdaemon."
# TODO(enricozb): https://github.com/enricozb/tabs.kak/issues/12 # TODO(enricozb): https://github.com/enricozb/tabs.kak/issues/12
if test "$argv[1]" = -nokakdaemon
set -f nokakdaemon
set argv $argv[2..]
end
set files # all arguments without a `-` prefix set files # all arguments without a `-` prefix
set flags # all arguments with a `-` prefix set flags # all arguments with a `-` prefix
@ -35,6 +40,32 @@ function kak-session -w kak --description "kakoune where sessions are derived fr
return 1 return 1
end end
# function newsession
# if test "$argv[1]" = -nokakdaemon
# set -f nokakdaemon
# set argv $argv[2..]
# end
# set session_id $argv[1]
# set argv $argv[2..]
# if not command kak -l | rg -xqF "$session_id"
# set fifo_dir (mktemp -d --suffix=kak-init.XXXXXX)
# set fifo "$fifo_dir/fifo"
# mkfifo "$fifo"
# if not set -fq nokakdaemon
# setsid kak -d -s "$session_id" -E "cd %[$kakroot]; echo -to-file $fifo ready" &
# # once $fifo has data, the kakoune server has initialized.
# cat $fifo >/dev/null
# command rm -r "$fifo_dir"
# command kak -c "$session_id" $argv
# else
# command kak -s "$session_id" -e "cd %[$kakroot]" $argv
# end
# end
# end
set kakroot (fdup '\.kakroot|\.kakrc.local|\.local.kakrc|kakrc' $files[1]) set kakroot (fdup '\.kakroot|\.kakrc.local|\.local.kakrc|kakrc' $files[1])
if test -n "$kakroot" if test -n "$kakroot"
set session_id (echo -n "$(path basename "$kakroot")" | tr --complement '[:alpha:]_-' '-') set session_id (echo -n "$(path basename "$kakroot")" | tr --complement '[:alpha:]_-' '-')
@ -48,7 +79,7 @@ function kak-session -w kak --description "kakoune where sessions are derived fr
set fifo "$fifo_dir/fifo" set fifo "$fifo_dir/fifo"
mkfifo "$fifo" mkfifo "$fifo"
if not set -gq nokakdaemon if not set -fq nokakdaemon
setsid kak -d -s "$session_id" -E "cd %[$kakroot]; echo -to-file $fifo ready" & setsid kak -d -s "$session_id" -E "cd %[$kakroot]; echo -to-file $fifo ready" &
# once $fifo has data, the kakoune server has initialized. # once $fifo has data, the kakoune server has initialized.
@ -80,11 +111,11 @@ function kak-session -w kak --description "kakoune where sessions are derived fr
set fifo "$fifo_dir/fifo" set fifo "$fifo_dir/fifo"
mkfifo "$fifo" mkfifo "$fifo"
if not set -gq nokakdaemon if not set -fq nokakdaemon
setsid kak -d -s "$session_id" -E "cd %[$git_dir]; echo -to-file $fifo ready" & setsid kak -d -s "$session_id" -E "cd %[$git_dir]; echo -to-file $fifo ready" &
cat $fifo >/dev/null cat $fifo >/dev/null
command rm -r "$fifo_dir" command rm -r "$fifo_dir"
command kak -c "$session_id" -e 'try%{ delete-buffer *scratch* }' $flags $files command kak -c "$session_id" -e 'try %{ delete-buffer *scratch* }' $flags $files
else else
command kak -s "$session_id" -e "cd %[$git_dir]" $flags $files command kak -s "$session_id" -e "cd %[$git_dir]" $flags $files
end end

View file

@ -1,6 +1,6 @@
function kakrc --description "Edit kakrc. -c to force a new session." function kakrc --description "Edit kakrc. -c to force a new session."
if test "$argv[1]" != -c || test "$argv[1]" != new if test "$argv[1]" != -c || test "$argv[1]" != new
kak-session ~/.config/kak/kakrc kak-session -nokakdaemon ~/.config/kak/kakrc
else else
kak -e 'cd ~/.config/kak' ~/.config/kak/kakrc kak -e 'cd ~/.config/kak' ~/.config/kak/kakrc
end end