summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
l---------init.vim2
-rw-r--r--lua/completions.lua16
-rw-r--r--lua/lsp.lua39
3 files changed, 35 insertions, 22 deletions
diff --git a/init.vim b/init.vim
index bc11895..031965f 120000
--- a/init.vim
+++ b/init.vim
@@ -1 +1 @@
/nix/store/2c32chzx6k2w0n18ijnsdlkklj58dx2h-home-manager-files/.config/nvim/init.vim \ No newline at end of file /nix/store/qk7sa1a8bvgzs4419vwlqdp715l2c2a0-home-manager-files/.config/nvim/init.vim \ No newline at end of file
diff --git a/lua/completions.lua b/lua/completions.lua
index f7598a6..770de43 100644
--- a/lua/completions.lua
+++ b/lua/completions.lua
@@ -14,6 +14,22 @@ cmp.setup({
14 c = cmp.mapping.close(), 14 c = cmp.mapping.close(),
15 }), 15 }),
16 ['<CR>'] = cmp.mapping.confirm({ select = true }), 16 ['<CR>'] = cmp.mapping.confirm({ select = true }),
17
18 ['<C-n>'] = cmp.mapping(function(fallback)
19 if cmp.visible() then
20 cmp.select_next_item()
21 else
22 fallback()
23 end
24 end, { 'i', 's' }),
25
26 ['<C-p>'] = cmp.mapping(function(fallback)
27 if cmp.visible() then
28 cmp.select_prev_item()
29 else
30 fallback()
31 end
32 end, { 'i', 's' }),
17 }, 33 },
18 sources = cmp.config.sources({ 34 sources = cmp.config.sources({
19 { name = 'nvim_lsp' }, 35 { name = 'nvim_lsp' },
diff --git a/lua/lsp.lua b/lua/lsp.lua
index 7509593..257f5a3 100644
--- a/lua/lsp.lua
+++ b/lua/lsp.lua
@@ -6,26 +6,19 @@ local on_attach = function(client, bufnr)
6 buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') 6 buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
7 7
8 -- Mappings. 8 -- Mappings.
9 local opts = { noremap=true, silent=true } 9 local bufopts = { noremap=true, silent=true, buffer=bufnr }
10 buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts) 10 vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
11 buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts) 11 vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
12 buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts) 12 vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
13 buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) 13 vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
14 buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) 14 vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
15 buf_set_keymap('n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
16 buf_set_keymap('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
17 buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
18 buf_set_keymap('n', '<leader>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
19 buf_set_keymap('n', '[g', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
20 buf_set_keymap('n', ']g', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
21 buf_set_keymap('n', '<leader>q', '<cmd>lua vim.diagnostic.set_qflist()<CR>', opts)
22 15
23 -- Set some keybinds conditional on server capabilities 16 local opts = { noremap=true, silent=true }
24 if client.server_capabilities.document_formatting then 17 vim.keymap.set('n', '<space>d', vim.diagnostic.open_float, opts)
25 buf_set_keymap("n", "<leader>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts) 18 vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
26 elseif client.server_capabilities.document_range_formatting then 19 vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
27 buf_set_keymap("n", "<leader>f", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts) 20 vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
28 end 21 vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
29end 22end
30 23
31local servers = { "hls", "rnix", "bashls" } 24local servers = { "hls", "rnix", "bashls" }
@@ -35,11 +28,13 @@ for _, lsp in ipairs(servers) do
35 } 28 }
36end 29end
37 30
38local capabilities = vim.lsp.protocol.make_client_capabilities() 31local capabilities = require('cmp_nvim_lsp')
32 .update_capabilities(vim.lsp.protocol.make_client_capabilities())
33
39capabilities.textDocument.completion.completionItem.snippetSupport = true 34capabilities.textDocument.completion.completionItem.snippetSupport = true
40 35
41nvim_lsp.rust_analyzer.setup { 36nvim_lsp.rust_analyzer.setup {
42 capabilities = capabilities, 37 on_attach = on_attach,
43 settings = { 38 settings = {
44 ["rust-analyzer"] = { 39 ["rust-analyzer"] = {
45 procMacro = { 40 procMacro = {
@@ -53,6 +48,8 @@ nvim_lsp.rust_analyzer.setup {
53} 48}
54 49
55nvim_lsp.ccls.setup { 50nvim_lsp.ccls.setup {
51 capabilities = capabilities,
52 on_attach = on_attach,
56 init_options = { 53 init_options = {
57 index = { 54 index = {
58 threads = 0; 55 threads = 0;