24 lines
823 B
Fennel
24 lines
823 B
Fennel
;; language server protocols via mason
|
|
(let
|
|
[neodev (require :neodev)
|
|
mason (require :mason)
|
|
mason-lspconfig (require :mason-lspconfig)
|
|
{: language-servers : lsp-attach} (require :personalize)
|
|
]
|
|
(neodev.setup)
|
|
(mason.setup)
|
|
(mason-lspconfig.setup {:ensure_installed (vim.tbl_keys language-servers)})
|
|
(mason-lspconfig.setup_handlers
|
|
[(fn [server_name] (let
|
|
[server (. (require :lspconfig) server_name)
|
|
cmp-nvim-lsp (require :cmp_nvim_lsp)
|
|
settings (. language-servers server_name)
|
|
]
|
|
(server.setup
|
|
{:capabilities (cmp-nvim-lsp.default_capabilities (vim.lsp.protocol.make_client_capabilities))
|
|
:on_attach lsp-attach
|
|
:settings settings
|
|
:filetypes (or settings.filetypes [])})))
|
|
]))
|
|
|