;; LSP installer. (module config.lsp.lsp-installer {autoload {util util}}) (def- opts {:on_attach: ((require :config.lsp.handlers).on_attach) :capabilities ((require :config.lsp.handlers).capabilities)}) (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-opts (require :config.lsp.settings.sumneko-lua)] (vim.tbl_deep_extend :force sumneko-lua-opts opts))) (when (= server.name :pyright) (let [pyright-opts (require :config.lsp.settings.pyright)] (vim.tbl_deep_extend :force pyright-opts opts)))) (let [(ok? lsp-installer) util.load-plugin :lsp-installer] (when ok? (lsp-installer.on_server_ready (fn [server] (let [opts (get-server-opts server)] server:setup opts)))))