trixy/fnl/plugins/lsp-zero.fnl
2025-07-23 22:52:11 +02:00

64 lines
1.4 KiB
Fennel
Executable file

(local lsp (require :lsp-zero))
(lsp.preset)
(local lspconfig (require :lspconfig))
(lspconfig.lua_ls.setup (lsp.nvim_lua_ls))
(local mason (require :mason))
(mason.setup)
(local mason-lspc (require :mason-lspconfig))
(mason-lspc.setup
{ :ensure-installed
[ :fennel-ls
:lua-language-server
:python-lsp-server
:ltex-ls
:zls
:rust-analyzer ]
:automatic_installation true })
(local cmp (require :cmp))
(local cmp_action (lsp.cmp_action))
(lsp.on_attach (fn [_ bufnr] lsp.default_keymaps {:buffer bufnr}))
(lspconfig.pylsp.setup
{ :setings { :pylsp { :plugins { :pycodestyle
{ :ignore [:W391 :E303 :E226]
:maxLineLength 120 } }}}})
(lsp.setup)
(local fennel-ls lspconfig.fennel_ls)
(fennel-ls.setup {})
(local rustan lspconfig.rust_analyzer)
(rustan.setup {})
(lspconfig.racket_langserver.setup {})
(lspconfig.zls.setup {})
(cmp.setup
{ :mapping
{ :<CR> (cmp.mapping.confirm {:select true})
:<Tab> (cmp.mapping
(fn [fallback]
(if (cmp.visible)
(cmp.select_next_item)
(fallback)) [:i :s] ))
:<S-Tab> (cmp.mapping
(fn [fallback]
(if (cmp.visible)
(cmp.select_prev_item)
(fallback)) [:i :s] ))
:<C-Space> cmp.mapping.complete
:<C-f> cmp_action.luasnip_jump_forward
:<C-b> cmp_action.luasnip_jump_backward }})