From 076805ccf4983657a8a9a485341a1b85e01cc1a6 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Sun, 7 Jan 2024 11:50:34 +0100 Subject: Move mason-lspconfig logic to a separate file --- fnl/plugins/lsp/mason-lspconfig.fnl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 fnl/plugins/lsp/mason-lspconfig.fnl (limited to 'fnl/plugins/lsp/mason-lspconfig.fnl') diff --git a/fnl/plugins/lsp/mason-lspconfig.fnl b/fnl/plugins/lsp/mason-lspconfig.fnl new file mode 100644 index 0000000..3e34c32 --- /dev/null +++ b/fnl/plugins/lsp/mason-lspconfig.fnl @@ -0,0 +1,22 @@ +;; Mason lspconfig setup + +(fn capabilities [] + (let [cmp-lsp (require :cmp_nvim_lsp)] + (cmp-lsp.default_capabilities (vim.lsp.protocol.make_client_capabilities)))) + +(fn handlers [server] + (let [servers (require :plugins.lsp.servers) + lspconfig (require :lspconfig)] + (let [config (. lspconfig server) + opts (or (. servers server) {})] + (tset opts :capabilities (capabilities)) + (config.setup opts)))) + +(fn setup [] + (let [mason-lspconfig (require :mason-lspconfig) + servers (require :plugins.lsp.servers)] + (mason-lspconfig.setup {:ensure_installed (vim.tbl_keys servers) + :automatic_installation true + :handlers [handlers]}))) + +{: setup} -- cgit v1.2.3-70-g09d2