my dotz
2
fork

Configure Feed

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

Add nvim config

j3s 1632686d b906ee1e

+55
+55
.config/nvim/init.vim
··· 1 + call plug#begin() 2 + Plug 'junegunn/vim-easy-align' 3 + Plug 'neovim/nvim-lspconfig' 4 + call plug#end() 5 + 6 + " go LSP 7 + lua << EOF 8 + require'lspconfig'.gopls.setup{} 9 + EOF 10 + 11 + " set keybinds for go LSP 12 + lua << EOF 13 + local nvim_lsp = require('lspconfig') 14 + 15 + -- Use an on_attach function to only map the following keys 16 + -- after the language server attaches to the current buffer 17 + local on_attach = function(client, bufnr) 18 + local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end 19 + local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end 20 + 21 + --Enable completion triggered by <c-x><c-o> 22 + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') 23 + 24 + -- Mappings. 25 + local opts = { noremap=true, silent=true } 26 + 27 + -- See `:help vim.lsp.*` for documentation on any of the below functions 28 + buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts) 29 + buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts) 30 + buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts) 31 + buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) 32 + buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) 33 + buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts) 34 + buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) 35 + buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts) 36 + buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) 37 + buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) 38 + buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts) 39 + buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) 40 + buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts) 41 + buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts) 42 + buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts) 43 + buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts) 44 + buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts) 45 + 46 + end 47 + 48 + -- Use a loop to conveniently call 'setup' on multiple servers and 49 + -- map buffer local keybindings when the language server attaches 50 + local servers = { "gopls", "rust_analyzer" } 51 + for _, lsp in ipairs(servers) do 52 + nvim_lsp[lsp].setup { on_attach = on_attach } 53 + end 54 + EOF 55 +