summaryrefslogtreecommitdiff
path: root/fnl/config/lsp/lsp-installer.fnl
blob: 3649566b726a9b754d757c9d63b51ae22b4f8a66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
;; LSP installer.
(module config.lsp.lsp-installer
  {autoload {util util}})

(def- opts 
  (let [handlers (require :config.lsp.handlers)]
    {:on_attach: handlers.on_attach
     :capabilities 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.settings opts)))
  (when (= server.name :pyright)
    (let [pyright-opts (require :config.lsp.settings.pyright)]
      (vim.tbl_deep_extend :force pyright-opts.settings opts)))
  opts)


(let [lsp-installer (util.load-plugin :nvim-lsp-installer)]
  (lsp-installer.on_server_ready (fn [server]
    (let [opts (get-server-opts server)]
      (server:setup opts)))))