function kak-session function _kak_connect_or_create set -l session_name $argv[1] set argv $argv[2..] set -l socket_paths \ "$XDG_RUNTIME_DIR/kakoune/$session_name" \ "{TMPDIR}/kakoune-$USER/$session_name" end # we treat the first file as the target set -l targ $argv[1] set -l root "" set -l gitdir (env -C (path dirname $targ) git rev-parse --show-toplevel) set session_name (string replace -r '[^a-zA-A0-9_-]' '_' (path basename $gitdir)) # handle file:line syntax, TODO later _kak_connect_or_create $session_name $argv end