diff --git a/.config/kak/autoload/lsp.kak b/.config/kak/autoload/lsp.kak index 9c470c29..adaed0bd 100644 --- a/.config/kak/autoload/lsp.kak +++ b/.config/kak/autoload/lsp.kak @@ -213,3 +213,27 @@ hook -group lsp-filetype-typst global BufSetOption filetype=typst %{ define-command lsp-check-inline-diagnostic %{ # we write a python script for this } + +define-command lsp-diag-set %{ + evaluate-commands %sh{ + printf 'set %s\n' "$kak_opt_lsp_inline_diagnostics" >/tmp/diag-in + read result < /tmp/diag-out + if [ "$result" != "ok" ]; then + echo "info 'failed'" + else + echo "nop" + fi + } +} + +define-command -params 2 lsp-diag-query %{ + evaluate-commands %sh{ + printf 'query %s %s\n' "$1" "$2" >/tmp/diag-in + read result < /tmp/diag-out + if [ "$result" = "true" ]; then + echo "info 'true'" + else + echo "info 'false'" + fi + } +} diff --git a/.config/kak/scripts/lsp-diags.py b/.config/kak/scripts/lsp-diags.py index 3ff98a40..88a34444 100755 --- a/.config/kak/scripts/lsp-diags.py +++ b/.config/kak/scripts/lsp-diags.py @@ -65,14 +65,12 @@ def main(): diagnostics = parse_specs(payload) _ = outfile.write("ok\n") outfile.flush() - print("ok", flush=True) elif line.startswith("query "): _, pos = line.split(" ", 1) l, c = map(int, pos.strip().split()) result = is_cursor_in_any((l, c), diagnostics) _ = outfile.write("true\n" if result else "false\n") outfile.flush() - print("ok", flush=True) elif line == "exit": break