From 9ae371fc6c94765862719a2c57554ab98794cecd Mon Sep 17 00:00:00 2001
From: Gustaf Rydholm <gustaf.rydholm@gmail.com>
Date: Wed, 6 Apr 2022 22:37:29 +0200
Subject: feat(lsp installer): add fnl config

---
 fnl/config/lsp/lsp-installer.fnl | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 fnl/config/lsp/lsp-installer.fnl

(limited to 'fnl')

diff --git a/fnl/config/lsp/lsp-installer.fnl b/fnl/config/lsp/lsp-installer.fnl
new file mode 100644
index 0000000..a32ee9b
--- /dev/null
+++ b/fnl/config/lsp/lsp-installer.fnl
@@ -0,0 +1,26 @@
+;; 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)))))
-- 
cgit v1.2.3-70-g09d2