diff --git a/.config/kak/autoload/lsp.kak b/.config/kak/autoload/lsp.kak index 40b21fe1..fa4100b2 100644 --- a/.config/kak/autoload/lsp.kak +++ b/.config/kak/autoload/lsp.kak @@ -2,6 +2,32 @@ eval %sh{kak-lsp} # eval %sh{kak-lsp-diags} +define-command -override -hidden lsp-do-send-async %{ + echo -quoting shell -to-file /tmp/kak-lsp.txt %reg{a} + echo -quoting shell -to-file %opt{lsp_fifo} %reg{a} + echo -to-file %opt{lsp_fifo} ' ' + # nop %sh{ notify-send "this runs!" } +} + +define-command -hidden lsp-do-send-sync %{ + unset-option buffer lsp_do_send_maybe_sync + evaluate-commands %sh{ + tmp=$(mktemp -q -d -t 'kak-lsp-sync.XXXXXX' 2>/dev/null || mktemp -q -d) + pipe=${tmp}/fifo + if ! mkfifo ${pipe}; then + echo 'fail failed to create fifo' + exit + fi + trap "rm -f ${pipe}; rmdir ${tmp} 2>/dev/null" EXIT INT QUIT + printf >${kak_opt_lsp_fifo} "%s '%s' " \ + "${kak_quoted_reg_a}" "${pipe}" + cat ${pipe} + } +} + + + + # mappings map global user l ': enter-user-mode lsp' -docstring 'LSP mode'