this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 78 lines 2.5 kB view raw
1(import-macros {: use} :relude) 2 3(use nvim {: fun : cmd : opt : map :buf-map bmap}) 4(use picker) 5(import-macros logger :nvim.logger) 6(import-macros {: augroup : defcommand} :nvim) 7 8(let [lsp vim.lsp 9 border :rounded] 10 (set lsp.handlers.textDocument/hover (lsp.with lsp.handlers.hover {:border border})) 11 (set lsp.handlers.textDocument/signatureHelp (lsp.with lsp.handlers.signature_help {:border border})) 12 (vim.diagnostic.config {:float {:border border}})) 13 14(augroup hauleth-lsp 15 (on LspAttach 16 (let [bufnr args.buf 17 client (vim.lsp.get_client_by_id args.data.client_id)] 18 ((. (require :fidget) :setup) {}) 19 (logger.inspect client) 20 (local capable? 21 (fn [capability] 22 (. client.server_capabilities capability))) 23 (when (capable? :declarationProvider) 24 (bmap :n :gD #(vim.lsp.buf.declaration))) 25 (when (capable? :documentFormattingProvider) 26 (bmap :n :Q #(vim.lsp.buf.format))) 27 ))) 28 29(augroup hauleth-lsp-diagnostics 30 (on CursorHold "*" (vim.diagnostic.open_float {:focus false}))) 31 32 33(fn setup [name opts] 34 (vim.lsp.enable name) 35 (vim.lsp.config name opts)) 36 37(setup :rust_analyzer { 38 :root_markers [ "Cargo.lock" ".git" ".jj" ] 39 :filetypes [ "rust" ] 40 :cmd [vim.g.lsp_paths.rust_analyzer] 41 :settings {:rust-analyzer {:files {:excludeDirs [".direnv"]}}}}) 42 43; (setup :expert { 44; :root_markers [ "mix.exs" ".git" ".jj" ] 45; :filetypes [ "elixir" "eelixir" "heex" ] 46; :cmd [vim.g.lsp_paths.expert "--stdio"]}) 47 48(setup :dexter { 49 :root_markers [ "mix.exs" ".git" ".jj" ] 50 :filetypes [ "elixir" "eelixir" "heex" ] 51 :cmd [vim.g.lsp_paths.dexter "lsp"]}) 52 53(setup :elp { 54 :root_markers [ "rebar.config" ] 55 :filetypes [ "erlang" ] 56 :cmd [vim.g.lsp_paths.elp "server"] 57 }) 58 59; (setup :zls {}) 60 61;(setup :nixd { 62; :autostart true 63; :cmd [vim.g.lsp_paths.nixd] 64; }) 65 66(setup :typos_lsp { 67 :autostart true 68 :cmd [vim.g.lsp_paths.typos_lsp]}) 69 70; (setup :taplo { 71; :filetypes [ "toml" ] 72; :cmd [vim.g.lsm_paths.taplo :lsp :stdio]}) 73 74; (augroup lsp-direnv (on User :DirenvLoaded (cmd.LspStart))) 75 76(defcommand LspRestart {:nargs 1} 77 (vim.lsp.enable (tostring args) false) 78 (vim.lsp.enable (tostring args) true))