···
(import-macros {: use} :relude)
3
-
(use nvim {: cmd : opt :buf-map bmap})
3
+
(use nvim {: fun : cmd : opt :buf-map bmap})
6
+
(use lspconfig.configs)
(import-macros logger :nvim.logger)
(import-macros {: augroup} :nvim)
···
(tset (require :lspconfig.ui.windows) :default_options {:border border})
(set lsp.handlers.textDocument/hover (lsp.with lsp.handlers.hover {:border border}))
(set lsp.handlers.textDocument/signatureHelp (lsp.with lsp.handlers.signature_help {:border border}))
14
-
(vim.diagnostic.config {:float {:border border} :virtual_text false})
15
+
(vim.diagnostic.config {:float {:border border} :virtual_text false}))
17
-
(fn on_attach [client]
18
-
(cmd.packadd! :fidget.nvim)
19
-
((. (require :fidget) :setup) {})
20
-
(logger.inspect client)
23
-
(. client.server_capabilities capability)))
24
-
(augroup lsp-diagnostics
25
-
(on CursorHold "*" (vim.diagnostic.open_float {:focus false}))
26
-
(on BufEnter,CursorHold,InsertLeave "*" (vim.lsp.codelens.refresh)))
27
-
(when (capable? :hoverProvider)
28
-
(bmap :n :K #(vim.lsp.buf.hover)))
29
-
(when (capable? :declarationProvider)
30
-
(bmap :n :gD #(vim.lsp.buf.declaration)))
31
-
(when (capable? :referencesProvider)
32
-
(bmap :n :gr #(picker.lsp_references)))
33
-
(when (capable? :documentFormattingProvider)
34
-
(bmap :n :Q #(vim.lsp.buf.format)))
35
-
(when (capable? :documentSymbolProvider)
36
-
(bmap :n :gO #(picker.lsp_document_symbols))))
17
+
; workaround for Lexical to not spit out the snippets params
18
+
(let [old vim.lsp.util.parse_snippet]
19
+
(set vim.lsp.util.parse_snippet (fn [input]
20
+
(let [result (fun.match input "[^[:keyword:]]")]
22
+
(input:sub 1 result)))))
24
+
(augroup hauleth-lsp
26
+
(let [bufnr args.buf
27
+
client (vim.lsp.get_client_by_id args.data.client_id)]
28
+
(cmd.packadd! :fidget.nvim)
29
+
((. (require :fidget) :setup) {})
30
+
(logger.inspect client)
33
+
(. client.server_capabilities capability)))
34
+
(augroup lsp-diagnostics
35
+
(on CursorHold "*" (vim.diagnostic.open_float {:focus false}))
36
+
(on BufEnter,CursorHold,InsertLeave "*" (vim.lsp.codelens.refresh)))
37
+
(when (capable? :hoverProvider)
38
+
(bmap :n :K #(vim.lsp.buf.hover)))
39
+
(when (capable? :declarationProvider)
40
+
(bmap :n :gD #(vim.lsp.buf.declaration)))
41
+
(when (capable? :referencesProvider)
42
+
(bmap :n :gr #(picker.lsp_references)))
43
+
(when (capable? :documentFormattingProvider)
44
+
(bmap :n :Q #(vim.lsp.buf.format)))
45
+
(when (capable? :documentSymbolProvider)
46
+
(bmap :n :gO #(picker.lsp_document_symbols))))))
50
+
(set configs.lexical {
53
+
:filetypes ["elixir" "eelixir" "heex"]
54
+
:root_dir (fn [fname]
55
+
(let [project ((lspconfig.util.root_pattern ".git") fname)]
(set lspconfig.util.default_config
(vim.tbl_extend :force lspconfig.util.default_config
40
-
{:autostart false : on_attach}))
61
+
{:autostart false}))
(vim.diagnostic.config {:virtual_text false})
···
{:settings {:rust-analyzer {:files {:excludeDirs [".direnv"]}}}})
52
-
:settings {:elixirLS {:dialyzerEnabled false}}})
73
+
; {:cmd [:elixir-ls]
74
+
; :settings {:elixirLS {:dialyzerEnabled false}}})
76
+
{:cmd [:lexical :start]})
82
+
; {:autostart true})
(augroup lsp-direnv (on User :DirenvLoaded (cmd.LspStart)))