summaryrefslogtreecommitdiff
path: root/dot_config/nvim/fnl/plugins
diff options
context:
space:
mode:
authorChloé Vulquin <code@toast.bunkerlabs.net>2024-08-06 14:11:59 +0200
committerChloé Vulquin <code@toast.bunkerlabs.net>2024-08-06 14:11:59 +0200
commit7425eda3e544fcb1ce81a09c5ff49d839e58ac94 (patch)
treee74368e016160f5c7aa5b532b46c9190e21fc32e /dot_config/nvim/fnl/plugins
parentnvim: expand .lua gitattributes, mark as non-diffable (diff)
nvim: rework lsp module
There's still some improvements to be made, but this is cleaner. We lose global caps defaults, but those made no sense to begin with. We do also lose caps overrides, I'll add them back in if I need them. In the process, we gain `every?` and `executable?`. There's also a misc comp print vim.inspect to vim.print change.
Diffstat (limited to '')
-rw-r--r--dot_config/nvim/fnl/plugins/lsp/attach.fnl4
-rw-r--r--dot_config/nvim/fnl/plugins/lsp/capabilities.fnl1
-rw-r--r--dot_config/nvim/fnl/plugins/lsp/init.fnl19
3 files changed, 9 insertions, 15 deletions
diff --git a/dot_config/nvim/fnl/plugins/lsp/attach.fnl b/dot_config/nvim/fnl/plugins/lsp/attach.fnl
index 83a68aa..ed2eb2d 100644
--- a/dot_config/nvim/fnl/plugins/lsp/attach.fnl
+++ b/dot_config/nvim/fnl/plugins/lsp/attach.fnl
@@ -20,8 +20,8 @@
(· :wa lbf.add_workspace_folder & :desc "add folder")
(· :wr lbf.remove_workspace_folder & :desc "remove folder")
- (· :wl #(print (vim.inspect (lbf.list_workspace_folders))) &
- :desc "list folders")]
+ (· :wl #(vim.print (lbf.list_workspace_folders))) &
+ :desc "list folders"]
ll (map #(assoc $ 1 (.. :<localleader><localleader> (. $ 1))) ll)]
(vim.api.nvim_buf_set_option b :omnifunc :v:lua.vim.lsp.omnifunc)
(recc :which-key :add
diff --git a/dot_config/nvim/fnl/plugins/lsp/capabilities.fnl b/dot_config/nvim/fnl/plugins/lsp/capabilities.fnl
deleted file mode 100644
index 607602c..0000000
--- a/dot_config/nvim/fnl/plugins/lsp/capabilities.fnl
+++ /dev/null
@@ -1 +0,0 @@
-nil
diff --git a/dot_config/nvim/fnl/plugins/lsp/init.fnl b/dot_config/nvim/fnl/plugins/lsp/init.fnl
index 445eae1..0522c32 100644
--- a/dot_config/nvim/fnl/plugins/lsp/init.fnl
+++ b/dot_config/nvim/fnl/plugins/lsp/init.fnl
@@ -1,4 +1,6 @@
(import-macros {:mixed-table · : recc} :toast.macros)
+(local {: assoc} (require :toast.core))
+(local {: executable?} (require :toast.nvim))
(fn gopts [plist]
{:clangd {}
@@ -16,20 +18,13 @@
:zls {}})
(local attach (require :plugins.lsp.attach))
-(local caps (require :plugins.lsp.capabilities))
[(· :neovim/nvim-lspconfig &
:config (fn [_ opts]
(each [k v (pairs opts)]
- (set v.on_attach (or attach v.on_attach))
- (when (= :table (type caps))
- (set v.capabilities (or v.capabilities caps)))
(let [s (. (require :lspconfig) k)
- c (or v.cmd s.document_config.default_config.cmd)]
- (when (not= 0 (vim.fn.executable (. c 1)))
- (s.setup v)))))
- :opts (fn []
- (let [plist (fn [...]
- (local p (recc :lspconfig.util :root_pattern ...))
- #(p $))]
- (gopts plist))))]
+ c (or v.cmd s.document_config.default_config.cmd)
+ att (or attach v.on_attach)]
+ (when (executable? (. c 1))
+ (s.setup (assoc v :on_attach att))))))
+ :opts #(gopts (partial recc :lspconfig.util :root_pattern)))]