fennel-ls
change
commit fb1de6d77474e283c47eca595d43d984e5c7a6f9
author Alpha Chen <alpha@kejadlen.dev>
date
parent 8b0da080
diff --git a/.config/nvim/fnl/lsp.fnl b/.config/nvim/fnl/lsp.fnl
index a358b1b4..5ae23b23 100644
--- a/.config/nvim/fnl/lsp.fnl
+++ b/.config/nvim/fnl/lsp.fnl
@@ -1,5 +1,18 @@
+(local lspconfig (require :lspconfig))
 (local {: lsp} vim)
 
+;;; fennel-ls
+
+(let [configs (require :lspconfig.configs)]
+  (tset configs :fennel-ls
+        {:default_config {:cmd [:/opt/homebrew/bin/fennel-ls]
+                          :filetypes [:fennel]
+                          :root_dir #(lspconfig.util.find_git_ancestor $1)
+                          :settings {}}}))
+
+(let [{: fennel-ls} lspconfig]
+  (fennel-ls.setup (vim.lsp.protocol.make_client_capabilities)))
+
 ;; (lsp.set_log_level :debug)
 
 ;; default hover windows to have borders
@@ -47,8 +60,7 @@
   (set client.resolved_capabilities.document_formatting false))
 
 (fn setup-lsp [lsp config]
-  (let [lspconfig (require :lspconfig)
-        {: setup} (. lspconfig lsp)]
+  (let [{: setup} (. lspconfig lsp)]
     (setup (or config {:on_attach on-attach}))))
 
 (let [fmt #{:formatCommand $1 :formatStdin true}
@@ -84,6 +96,7 @@
                                :typescriptreact
                                :vue]})
   (setup-lsp :elmls)
+  (setup-lsp :fennel-ls)
   (setup-lsp :pylsp {:on_attach (on-attach-do attach-navic disable-fmt)})
   (setup-lsp :pyright
              {:on_attach on-attach
@@ -95,3 +108,4 @@
   (setup-lsp :tsserver {:on_attach (on-attach-do attach-navic disable-fmt)})
   (setup-lsp :typeprof)
   (setup-lsp :vuels {:on_attach (on-attach-do attach-navic disable-fmt)}))
+