summaryrefslogtreecommitdiff
path: root/fnl/plugins/lsp/lspconfig.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'fnl/plugins/lsp/lspconfig.fnl')
-rw-r--r--fnl/plugins/lsp/lspconfig.fnl32
1 files changed, 17 insertions, 15 deletions
diff --git a/fnl/plugins/lsp/lspconfig.fnl b/fnl/plugins/lsp/lspconfig.fnl
index cca52a4..84c460f 100644
--- a/fnl/plugins/lsp/lspconfig.fnl
+++ b/fnl/plugins/lsp/lspconfig.fnl
@@ -11,32 +11,34 @@
(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 mason-opts [servers]
- {:ensure_installed (vim.tbl_keys servers) :automatic_installation true})
+ (let [servers (require :plugins.lsp.servers)]
+ {:ensure_installed (vim.tbl_keys servers)
+ :automatic_installation true
+ :handlers [handlers]}))
(fn config []
+ (on-attach)
(let [diagnostics (require :plugins.lsp.diagnostics)
- lspconfig (require :lspconfig)
lspconfig-win (require :lspconfig.ui.windows)
- mason-lspconfig (require :mason-lspconfig)
- servers (require :plugins.lsp.servers)]
+ mason-lspconfig (require :mason-lspconfig)]
(diagnostics.setup)
- (on-attach)
(set lspconfig-win.default_options.border :single)
- (mason-lspconfig.setup (mason-opts servers))
- (mason-lspconfig.setup_handlers [(fn [server-name]
- (let [server-config (. lspconfig
- server-name)
- opts (or (. servers server-name)
- {})]
- (tset opts :capabilities
- (capabilities))
- (server-config.setup opts)))])))
+ (mason-lspconfig.setup (mason-opts))
+ (mason-lspconfig.setup_handlers [setup-handler])))
{1 :neovim/nvim-lspconfig
:event :BufReadPost
:dependencies [:mason.nvim
:williamboman/mason-lspconfig.nvim
- :b0o/SchemaStore.nvim
+ :b0o/schemastore.nvim
:hrsh7th/cmp-nvim-lsp]
: config}