Setup lsp
This commit is contained in:
parent
73d12881f9
commit
5eff7fed68
4 changed files with 54 additions and 2 deletions
|
@ -26,6 +26,7 @@ DOTS = ['alacritty', 'bash', 'direnv', 'git', 'nvim', 'profile', 'xinit']
|
||||||
dependencies = [
|
dependencies = [
|
||||||
'acpi',
|
'acpi',
|
||||||
'alacritty',
|
'alacritty',
|
||||||
|
'clang',
|
||||||
'curl',
|
'curl',
|
||||||
'firefox',
|
'firefox',
|
||||||
'git',
|
'git',
|
||||||
|
|
|
@ -36,7 +36,11 @@
|
||||||
:g (cmd "Goyo" "goyo")
|
:g (cmd "Goyo" "goyo")
|
||||||
:l (cmd "Limelight!!" "limelight")}
|
:l (cmd "Limelight!!" "limelight")}
|
||||||
|
|
||||||
;; TODO: lsp binds
|
:l {:name "+lsp"
|
||||||
:l {:name "+lsp"}}
|
:a (cmd "Lspsaga code_action" "code actions")
|
||||||
|
:d (cmd "Lspsaga hover_doc" "show docs")
|
||||||
|
:f (cmd "Lspsaga lsp_finder" "finder")
|
||||||
|
:r (cmd "Lspsaga rename" "rename")
|
||||||
|
:g [vim.lsp.buf.definition "go to definition"]}}
|
||||||
|
|
||||||
{:prefix "<Leader>"})
|
{:prefix "<Leader>"})
|
||||||
|
|
37
nvim/.config/nvim/fnl/modules/lsp.fnl
Normal file
37
nvim/.config/nvim/fnl/modules/lsp.fnl
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
(module modules.lsp
|
||||||
|
{require {a aniseed.core
|
||||||
|
lsp lspconfig
|
||||||
|
lsp_signature lsp_signature
|
||||||
|
rust-tools rust-tools
|
||||||
|
utils utils}})
|
||||||
|
|
||||||
|
(fn on_attach [client bufnr]
|
||||||
|
(lsp_signature.on_attach)
|
||||||
|
(if client.resolved_capabilities.document_highlight
|
||||||
|
(do
|
||||||
|
(utils.highlight "LspReferenceRead" {:gui "underline"})
|
||||||
|
(utils.highlight "LspReferenceText" {:gui "underline"})
|
||||||
|
(utils.highlight "LspReferenceWrite" {:gui "underline"}))))
|
||||||
|
|
||||||
|
(fn init-lsp [lsp-name ?opts]
|
||||||
|
"Initialize a language server"
|
||||||
|
(let [merged-opts (a.merge {:on_attach on_attach} (or ?opts {}))]
|
||||||
|
((. lsp lsp-name :setup) merged-opts)))
|
||||||
|
|
||||||
|
;; Rust extra caps
|
||||||
|
(let [caps (vim.lsp.protocol.make_client_capabilities)]
|
||||||
|
;; TODO: fix
|
||||||
|
(set caps.textDocument.completion.completionItem.snippetSupport true)
|
||||||
|
(set caps.textDocument.completion.completionItem.resolveSupport
|
||||||
|
{:properties ["documentation" "detail" "additionalTextEdits"]})
|
||||||
|
(lsp.rust_analyzer.setup
|
||||||
|
{:capabilities caps
|
||||||
|
:on_attach (fn [...]
|
||||||
|
(on_attach ...))}))
|
||||||
|
;; TODO: fix
|
||||||
|
;(rust-tools.setup
|
||||||
|
; {:tools {:inlay_hints {:show_parameter_hints false}}}))}))
|
||||||
|
|
||||||
|
(init-lsp :bashls)
|
||||||
|
(init-lsp :clangd)
|
||||||
|
(init-lsp :vimls)
|
10
nvim/.config/nvim/fnl/modules/plugins/lspsaga.fnl
Normal file
10
nvim/.config/nvim/fnl/modules/plugins/lspsaga.fnl
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
(module modules.plugins.lspsaga
|
||||||
|
{require {saga lspsaga}})
|
||||||
|
|
||||||
|
(saga.init_lsp_saga
|
||||||
|
{:border_style "round"
|
||||||
|
:finder_action_keys
|
||||||
|
{:open "<Cr>"
|
||||||
|
:vsplit :v
|
||||||
|
:split :s
|
||||||
|
:quit :q}})
|
Loading…
Reference in a new issue