diff --git a/.config/kak/autoload/lsp.kak b/.config/kak/autoload/lsp.kak index fa4100b2..3609f8d8 100644 --- a/.config/kak/autoload/lsp.kak +++ b/.config/kak/autoload/lsp.kak @@ -3,13 +3,16 @@ 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 -debug ===BEGIN-LSP + # echo -quoting shell -debug %reg{a} + # echo -debug ===END-LSP 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 %{ +define-command -override -hidden lsp-do-send-sync %{ + nop %sh{ notify-send 'this runs' } 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) @@ -285,3 +288,34 @@ hook -group lsp-filetype-typst global BufSetOption filetype=typst %{ # lsp-menu %arg{@} # } +define-command lsp-inlay-hint-raw %{ + evaluate-commands %sh{ + tmp=$(mktemp -d) + pipe="${tmp}/fifo" + mkfifo "$pipe" || { echo "fail failed to create fifo"; exit 1; } + trap "rm -f \"$pipe\"; rmdir \"$tmp\"" EXIT INT QUIT + + reg_a="$kak_session + $kak_client + true + false + $kak_buffile + $kak_timestamp + $kak_opt_filetype + $kak_opt_lsp_language_id + $kak_opt_lsp_servers + $kak_opt_lsp_semantic_tokens + $kak_opt_lsp_config + $kak_opt_lsp_server_initialization_options + map-end + textDocument/inlayHint + $kak_buf_line_count" + + printf "%s '%s' " "$reg_a" "$pipe" > "$kak_opt_lsp_fifo" + + raw=$(cat "$pipe") + raw_escaped=$(printf %s "$raw" | sed "s/'/''/g") + printf "set-register z '%s'\n" "$raw_escaped" + } +} + diff --git a/.config/kak/ltex-dict.kak b/.config/kak/ltex-dict.kak new file mode 100644 index 00000000..e69de29b