From d3f68e913454fb9cfa555ab112a23c3d86e6bec4 Mon Sep 17 00:00:00 2001 From: aktersnurra Date: Thu, 21 Apr 2022 23:52:07 +0200 Subject: refactor: lsp installer --- fnl/config/lsp/lsp-installer.fnl | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'fnl/config/lsp') diff --git a/fnl/config/lsp/lsp-installer.fnl b/fnl/config/lsp/lsp-installer.fnl index 72bef8e..358ba1c 100644 --- a/fnl/config/lsp/lsp-installer.fnl +++ b/fnl/config/lsp/lsp-installer.fnl @@ -1,20 +1,28 @@ ;; LSP installer. (module config.lsp.lsp-installer {autoload {util util}}) -(def- opts (let [handlers (require :config.lsp.handlers)] - {"on_attach:" handlers.on_attach +(defn- handler-opts [] (let [handlers (require :config.lsp.handlers)] + {:on_attach handlers.on-attach :capabilities handlers.capabilities})) +(defn- jsonls-opts [] + (let [jsonls-opts (require :config.lsp.settings.jsonls)] + (vim.tbl_deep_extend :force jsonls-opts (handler-opts)))) + +(defn- sumneko-lua-opts [] + (let [sumneko-lua (require :config.lsp.settings.sumneko-lua)] + (vim.tbl_deep_extend :force sumneko-lua.opts (handler-opts)))) + +(defn- pyright-opts [] + (let [pyright (require :config.lsp.settings.pyright)] + (vim.tbl_deep_extend :force pyright.opts (handler-opts)))) + (defn- get-server-opts [server] - (when (= server.name :jsonls) - (let [jsonls-opts (require :config.lsp.settings.jsonls)] - (vim.tbl_deep_extend :force jsonls-opts opts))) - (when (= server.name :sumneko_lua) - (let [sumneko-lua (require :config.lsp.settings.sumneko-lua)] - (vim.tbl_deep_extend :force sumneko-lua.opts opts))) - (when (= server.name :pyright) - (let [pyright (require :config.lsp.settings.pyright)] - (vim.tbl_deep_extend :force pyright.opts opts))) opts) + (match server.name + "jsonls" (jsonls-opts) + "pyright" (pyright-opts) + "sumneko_lua" (sumneko-lua-opts) + _ (handler-opts))) (let [lsp-installer (util.load-plugin :nvim-lsp-installer)] (lsp-installer.on_server_ready (fn [server] -- cgit v1.2.3-70-g09d2