diff options
| author | Robert Günzler <r@gnzler.io> | 2020-12-07 19:15:23 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2021-01-21 19:39:11 +0100 |
| commit | 04db98668639cb0b431d50e5963f6b156d728078 (patch) | |
| tree | 4bec29af1c9c34852e974be06301f74de4802199 /.vim/lua/conf/lsp.lua | |
| parent | 9b8005439ac351ded8f6286aefa2378d25d7add5 (diff) | |
vim: big update; move lots of things to lua
Diffstat (limited to '')
| -rw-r--r-- | .vim/lua/conf/lsp.lua | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/.vim/lua/conf/lsp.lua b/.vim/lua/conf/lsp.lua new file mode 100644 index 0000000..4249de5 --- /dev/null +++ b/.vim/lua/conf/lsp.lua @@ -0,0 +1,51 @@ +-- lsp config + +local lsp = require 'lspconfig' +local util = require 'lspconfig.util' + +local function my_attach(client) + -- attach completion + require 'completion'.on_attach(client) + + -- do lsp mappings + vim.fn.nvim_buf_set_keymap(0, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>', + {noremap=true, silent=true}) + vim.fn.nvim_buf_set_keymap(0, 'n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<cr>', + {noremap=true, silent=true}) + vim.fn.nvim_buf_set_keymap(0, 'n', 'grr', '<cmd>lua vim.lsp.buf.rename()<cr>', + {noremap=true, silent=true}) + vim.fn.nvim_buf_set_keymap(0, 'i', '<c-h>', '<cmd>lua vim.lsp.buf.signature_help()<cr>', + {noremap=true, silent=true}) + + -- nnoremap <silent> gD <cmd> lua vim.lsp.buf.declaration()<CR> + -- nnoremap <silent> gd <cmd> lua vim.lsp.buf.definition()<CR> + -- nnoremap <silent> gT <cmd> lua vim.lsp.buf.type_definition()<CR> + -- nnoremap <silent> gI <cmd> lua vim.lsp.buf.implementation()<CR> + -- nnoremap <silent> gr <cmd> lua vim.lsp.buf.references()<CR> + -- nnoremap <silent> g0 <cmd> lua vim.lsp.buf.document_symbol()<CR> + -- nnoremap <silent> gW <cmd> lua vim.lsp.buf.workspace_symbol()<CR> + -- nnoremap <silent> ;h <cmd> lua vim.lsp.buf.hover()<CR> + -- nnoremap <silent> ;s <cmd> lua vim.lsp.buf.signature_help()<CR> +end + +-- lsp.ccls.setup{ +-- on_attach = my_attach, +-- } + +lsp.gopls.setup{ + on_attach = my_attach, + root_dir = util.root_pattern('go.mod', '.git'), + -- NOTE: this is done to avoid the gopls warning about being outside gopath + -- message_level = vim.lsp.protocol.MessageType.Error, +} + +lsp.sumneko_lua.setup{ + cmd = { 'lua-language-server' }; + on_attach = my_attach; +} + +lsp.rust_analyzer.setup{ + cmd = { 'env', 'CARGO_TARGET_DIR=/tmp', 'rust-analyzer' }, + on_attach = my_attach, + +} |