From 89a1b92ee3fd09005f537f78d8c76798c345bf52 Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Sat, 26 Jul 2025 13:09:38 -0400 Subject: [PATCH] AutoYADM commit: 2025-07-26 13:09:38 --- .config/kak/autoload/lsp.kak | 85 +++++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 31 deletions(-) diff --git a/.config/kak/autoload/lsp.kak b/.config/kak/autoload/lsp.kak index d91d3ed7..d4c2b9be 100644 --- a/.config/kak/autoload/lsp.kak +++ b/.config/kak/autoload/lsp.kak @@ -178,20 +178,20 @@ define-command lsp-off %{ map global user l ': lsp-enter' -docstring 'LSP' map -docstring 'lsp off' global user ': try lsp-off' -# define-command -hidden lsp-filetype-hooks-update %{ -# try %{ remove-hooks global lsp-filetypes } -# # convert the str-list into regex of form (a|b|c|...) -# hook -group lsp-filetypes global WinSetOption %exp~filetype=%sh{ -# printf '%s\n' "($kak_opt_lsp_filetypes)" | sed 's/ /|/g' -# }~ %{ -# lsp-on -# } -# } -# lsp-filetype-hooks-update +define-command -hidden lsp-filetype-hooks-update %{ + try %{ remove-hooks global lsp-filetypes } + # convert the str-list into regex of form (a|b|c|...) + hook -group lsp-filetypes global WinSetOption %exp~filetype=%sh{ + printf '%s\n' "($kak_opt_lsp_filetypes)" | sed 's/ /|/g' + }~ %{ + lsp-on + } +} +lsp-filetype-hooks-update -# hook global WinSetOption lsp_filetypes=.* lsp-filetype-hooks-update -# hook global BufSetOption lsp_filetypes=.* lsp-filetype-hooks-update -# hook global GlobalSetOption lsp_filetypes=.* lsp-filetype-hooks-update +hook global WinSetOption lsp_filetypes=.* lsp-filetype-hooks-update +hook global BufSetOption lsp_filetypes=.* lsp-filetype-hooks-update +hook global GlobalSetOption lsp_filetypes=.* lsp-filetype-hooks-update remove-hooks global lsp-filetype-python hook -group lsp-filetype-python global BufSetOption filetype=python %{ @@ -328,28 +328,51 @@ hook -group lsp-filetype-fish global BufSetOption filetype=fish %{ } } +# TODO: toggle between two markdown configs + +declare-option -hidden str markdown_lsp_marksman %{ + [marksman] + root_globs = [".marksman.toml", ".git"] + args = ["server"] +} + +declare-option -hidden str markdown_lsp_harper %{ + [harper-ls] + root_globs = ["*"] + args = ["--stdio"] + command = "harper-ls" + settings_section = "_" + [harper-ls.settings._.harper-ls] + diagnosticSeverity = "hint" + [harper-ls.settings._.harper-ls.linters] + LongSentences = false + Dashes = false + UnclosedQuotes = false + WrongQuotes = false +} + +define-command -hidden markdown-lsp-with-harper %{ + set-option buffer lsp_servers %exp{ + %opt{markdown_lsp_marksman} + %opt{markdown_lsp_harper} + } +} + +define-command -hidden markdown-lsp-without-harper %{ + set-option buffer lsp_servers %exp{ + %opt{markdown_lsp_marksman} + } +} + remove-hooks global lsp-filetype-markdown hook -group lsp-filetype-markdown global BufSetOption filetype=markdown %{ - set-option buffer lsp_servers %{ - [marksman] - root_globs = [".marksman.toml", ".git"] - args = ["server"] - - [harper-ls] - root_globs = ["*"] - args = ["--stdio"] - command = "harper-ls" - settings_section = "_" - [harper-ls.settings._.harper-ls] - diagnosticSeverity = "hint" - [harper-ls.settings._.harper-ls.linters] - LongSentences = false - Dashes = false - UnclosedQuotes = false - WrongQuotes = false - } + markdown-lsp-without-harper } +declare-filetype-mode markdown +map global markdown h ':markdown-lsp-with-harper' +map global markdown ':markdown-lsp-without-harper' + remove-hooks global lsp-filetype-typst hook -group lsp-filetype-typst global BufSetOption filetype=typst %{ set-option buffer lsp_servers %{