diff options
Diffstat (limited to 'nvim/lua/lsp.lua')
| -rw-r--r-- | nvim/lua/lsp.lua | 55 | 
1 files changed, 55 insertions, 0 deletions
| diff --git a/nvim/lua/lsp.lua b/nvim/lua/lsp.lua new file mode 100644 index 0000000..b7fad3e --- /dev/null +++ b/nvim/lua/lsp.lua @@ -0,0 +1,55 @@ +require('mason').setup() + +vim.lsp.enable('lua-language-server') + +local bufnr = vim.api.nvim_get_current_buf() +vim.keymap.set('n', '<leader>a',  +  function() +    vim.cmd.RustLsp('codeAction') +  end, +  { silent = true, buffer = bufnr } +) + +vim.keymap.set('n', 'K', +  function() +    vim.cmd.RustLsp({'hover', 'actions'}) +  end, +  { silent = true, buffer = bufnr } +) + + +local cmp = require('cmp') +cmp.setup({ +    mapping = cmp.mapping.preset.insert({ +      ['<C-p>'] = cmp.mapping.select_prev_item({behavior = cmp.SelectBehavior.Select}), +      ['<C-n>'] = cmp.mapping.select_next_item({behavior = cmp.SelectBehavior.Select}), +      ['<C-b>'] = cmp.mapping.scroll_docs(-4), +      ['<C-f>'] = cmp.mapping.scroll_docs(4), +      ['<C-Space>'] = cmp.mapping.complete(), +      ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. +    }), +    sources = cmp.config.sources({ +      { name = 'nvim_lsp' }, +    }, { +    { name = 'buffer' }, +  }) +}) + +cmp.setup.cmdline({ '/', '?' }, { +  mapping = cmp.mapping.preset.cmdline(), +  sources = { +    { name = 'buffer' } +  } +}) + +cmp.setup.cmdline(':', { +  mapping = cmp.mapping.preset.cmdline(), +  sources = cmp.config.sources({ +    { name = 'path' } +  }, { +    { name = 'cmdline' } +  }), +  matching = { disallow_symbol_nonprefix_matching = false } +}) + +require('lsp_signature').setup() | 
