diff --git a/nvim/.config/nvim/lua/plug/_cmp.lua b/nvim/.config/nvim/lua/plug/_cmp.lua deleted file mode 100644 index a5e7393..0000000 --- a/nvim/.config/nvim/lua/plug/_cmp.lua +++ /dev/null @@ -1,40 +0,0 @@ -local lsp = require("lsp-zero") -lsp.preset("recommended") -lsp.on_attach(function(client, bufnr) - require("lsp-format").on_attach(client, bufnr) -end) -lsp.nvim_workspace() -lsp.setup_nvim_cmp({ - sources = { - { name = 'path' }, { name = 'nvim_lsp', keyword_length = 2 }, - { name = 'pandoc_references' }, { name = 'buffer', keyword_length = 3 }, - { name = 'luasnip', keyword_length = 2 }, { name = 'tmux' }, - { name = 'otter' }, { name = 'latex_symbols' }, { name = 'vCard' }, - { name = 'nvim_lua' }, { name = 'buffer' }, { name = 'spell' } - }, - documentation = { - max_height = 50, - max_width = 90, - border = 'rounded', - col_offset = 0, - side_padding = 1, - winhighlight = 'Normal:Normal,FloatBorder:Normal,CursorLine:Visual,Search:None', - zindex = 1001 - } -}) -lsp.setup() -vim.diagnostic.config { virtual_text = true } - -local cmp = require 'cmp' --- `/` cmdline setup. -cmp.setup.cmdline('/', { - mapping = cmp.mapping.preset.cmdline(), - sources = { { name = 'buffer' } } -}) --- `:` cmdline setup. -cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ { name = 'path' } }, { - { name = 'cmdline', option = { ignore_cmds = { 'Man', '!' } } } - }) -}) diff --git a/nvim/.config/nvim/lua/plug/_lsp.lua b/nvim/.config/nvim/lua/plug/_lsp.lua index 4bd08b7..8acd3cc 100644 --- a/nvim/.config/nvim/lua/plug/_lsp.lua +++ b/nvim/.config/nvim/lua/plug/_lsp.lua @@ -1,3 +1,87 @@ --- The arch package defaults to the following directory -require'navigator'.setup() -require"lsp_signature".setup() +local lsp = require("lsp-zero") + +vim.diagnostic.config { virtual_text = true } + +lsp.preset({ + name = "recommended", + set_lsp_keymaps = false, + suggest_lsp_servers = true +}) +lsp.on_attach(function(client, bufnr) + require("lsp-format").on_attach(client, bufnr) + local map = vim.keymap.set + map('n', '[d', 'lua vim.diagnostic.goto_prev()', + { buffer = bufnr, desc = 'Previous diagnostic' }) + map('n', ']d', 'lua vim.diagnostic.goto_next()', + { buffer = bufnr, desc = 'Next diagnostic' }) + map('n', '[e', + 'lua vim.diagnostic.goto_prev({severity = vim.diagnostic.severity.ERROR})', + { buffer = bufnr, desc = 'Previous error' }) + map('n', ']e', + 'lua vim.diagnostic.goto_next({severity = vim.diagnostic.severity.ERROR})', + { buffer = bufnr, desc = 'Next error' }) + + local prefix = require('which-key').register + prefix({ ['l'] = { name = "+lsp" } }) + map('n', 'li', 'LspInfo', + { buffer = bufnr, desc = 'Lsp Info' }) + map('n', 'ld', 'lua vim.diagnostic.open_float()', + { buffer = bufnr, desc = 'Line diagnostics' }) + map('n', 'la', 'lua vim.lsp.buf.code_action()', + { buffer = bufnr, desc = 'Codeactions' }) + map('n', 'ln', 'lua vim.lsp.buf.rename()', + { buffer = bufnr, desc = 'Rename element' }) + map('n', 'lr', 'lua vim.lsp.buf.references()', + { buffer = bufnr, desc = 'References' }) + if client.server_capabilities.document_formatting then + map('n', 'lf', "lua vim.lsp.buf.formatting()", + { buffer = bufnr, desc = 'Format document' }) + end + + map('n', 'K', 'lua vim.lsp.buf.hover()', + { buffer = bufnr, desc = 'Hover definition' }) + map('n', 'gd', 'lua vim.lsp.buf.definition()', + { buffer = bufnr, desc = 'Definition' }) + map('n', 'gD', 'lua vim.lsp.buf.declaration()', + { buffer = bufnr, desc = 'Declaration' }) + map('n', 'gs', 'lua vim.lsp.buf.signature_help()', + { buffer = bufnr, desc = 'Signature help' }) + map('n', 'gI', 'lua vim.lsp.buf.implementation()', + { buffer = bufnr, desc = 'Implementation' }) + map('n', 'gt', 'lua vim.lsp.buf.type_definition()', + { buffer = bufnr, desc = 'Type definition' }) +end) +lsp.nvim_workspace() +lsp.setup_nvim_cmp({ + sources = { + { name = 'path' }, { name = 'nvim_lsp', keyword_length = 2 }, + { name = 'pandoc_references' }, { name = 'buffer', keyword_length = 3 }, + { name = 'luasnip', keyword_length = 2 }, { name = 'tmux' }, + { name = 'otter' }, { name = 'latex_symbols' }, { name = 'vCard' }, + { name = 'nvim_lua' }, { name = 'buffer' }, { name = 'spell' } + }, + documentation = { + max_height = 50, + max_width = 90, + border = 'rounded', + col_offset = 0, + side_padding = 1, + winhighlight = 'Normal:Normal,FloatBorder:Normal,CursorLine:Visual,Search:None', + zindex = 1001 + } +}) +lsp.setup() + +local cmp = require 'cmp' +-- `/` cmdline setup. +cmp.setup.cmdline('/', { + mapping = cmp.mapping.preset.cmdline(), + sources = { { name = 'buffer' } } +}) +-- `:` cmdline setup. +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ { name = 'path' } }, { + { name = 'cmdline', option = { ignore_cmds = { 'Man', '!' } } } + }) +})