summaryrefslogtreecommitdiff
path: root/fnl/plugins/lsp.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'fnl/plugins/lsp.fnl')
-rw-r--r--fnl/plugins/lsp.fnl30
1 files changed, 28 insertions, 2 deletions
diff --git a/fnl/plugins/lsp.fnl b/fnl/plugins/lsp.fnl
index f04ba86..482916a 100644
--- a/fnl/plugins/lsp.fnl
+++ b/fnl/plugins/lsp.fnl
@@ -1,3 +1,29 @@
-;; Lsp plugins.
+;; LSP configuration.
-[(require :plugins.lsp.lspconfig) (require :plugins.lsp.mason)]
+(λ config []
+ (vim.api.nvim_create_autocmd :LspAttach
+ {:callback (λ [args]
+ (let [{: on-attach} (require :plugins.lsp.keymaps)]
+ (on-attach args.buf)))})
+ (let [diagnostics (require :plugins.lsp.diagnostics)
+ mason-lspconfig (require :plugins.lsp.mason-lspconfig)]
+ (diagnostics.setup)
+ (mason-lspconfig.setup)))
+
+(local icons (require :settings.icons))
+
+[{1 :neovim/nvim-lspconfig
+ :event :BufNew
+ :dependencies [:mason.nvim
+ :williamboman/mason-lspconfig.nvim
+ :b0o/schemastore.nvim
+ :saghen/blink.cmp]
+ : config}
+ {1 :williamboman/mason.nvim
+ :cmd :Mason
+ :keys [{1 :<leader>m 2 :<cmd>Mason<cr> :desc :Mason}]
+ :opts {:ui {:border :single
+ :icons {:package_installed (.. (. icons :checkmark) " ")
+ :package_pending (.. (. icons :arrow-right) " ")
+ :package_uninstalled (.. (. icons :close) " ")}}
+ :max_concurrent_installers 10}}]