diff options
author | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2024-01-07 11:50:34 +0100 |
---|---|---|
committer | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2024-01-07 11:50:34 +0100 |
commit | 076805ccf4983657a8a9a485341a1b85e01cc1a6 (patch) | |
tree | 15e675632e11d8afc1086453c646869df72f6d46 /fnl/plugins/lsp/mason-lspconfig.fnl | |
parent | cd876f8e53385c63b3b3048a0917dd58786e1467 (diff) |
Move mason-lspconfig logic to a separate file
Diffstat (limited to 'fnl/plugins/lsp/mason-lspconfig.fnl')
-rw-r--r-- | fnl/plugins/lsp/mason-lspconfig.fnl | 22 |
1 files changed, 22 insertions, 0 deletions
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} |