diff --git a/lua/mappings.lua b/lua/mappings.lua index 5685114..1b69251 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -18,11 +18,12 @@ s("n", "", " BufferNext ", { desc = "Next buffer" s("n", "", " BufferPrevious ", { desc = "Previous buffer" }) s('n', 'p', " BufferPin ", { desc = "Pin/Unpin buffer" }) - +s('n', '', 'wq', { desc = 'Write and exit'} ) s("n", "ZZ", " q! ", { desc = "Quit without saving" }) s("n", "q:", "") s('n', 'H', require('treesj').toggle) s('n', 'ff', " Telescope find_files follow=true ") +s('v', 'ff', '"hy:Telescope find_files follow=true default_text=h', default_opts) s('n', 'fg', " Telescope live_grep ") s('v', 'fg', '"hy:Telescope live_grep default_text=h', default_opts) s('n', 'fF', " Telescope find_files follow=true no_ignore=true hidden=true ") @@ -46,8 +47,18 @@ for _, key in ipairs({"A", "Z", "E", "Q", "S", "D"}) do s({ 'n' }, "", "g'" .. key, { desc = "Jump to mark " .. key }) end +s("n", "tw", " set wrap! ", { desc = "toggle line wrap" }) + +local toggle_lsp_virtual_text = function () + vim.diagnostic.config({ + virtual_text = not vim.diagnostic.config().virtual_text + }) +end +s("n", "tv", toggle_lsp_virtual_text, { desc = "toggle virtual text for diagnostics" }) + + function copy_filename_and_line () - local filename = vim.fn.expand("%:t") + local filename = vim.fn.expand("%") local line = vim.fn.line(".") local text = filename .. ":" .. line vim.fn.setreg("+", text) @@ -62,11 +73,13 @@ function moveCursorToMouse() vim.fn.setpos(".", { 0, mousePos.line, mousePos.column, 0 }) end -function hover() - if dap.session() then - dapui.eval() - else - vim.lsp.buf.signature_help() +function dap_or(func) + return function () + if dap.session() then + dapui.eval() + else + func() + end end end @@ -96,10 +109,10 @@ vim.api.nvim_create_autocmd('LspAttach', { s('n', 'gD', vim.lsp.buf.declaration, { buffer = ev.buf, desc = "Goto declaration" }) s('n', 'gd', telescope.lsp_definitions, { buffer = ev.buf, desc = "Goto definition" }) s( {'n', 'v'}, 'K', vim.lsp.buf.hover, { buffer = ev.buf, desc = "lsp Hover" }) - s( {'n', 'v'}, '', hover, { buffer = ev.buf, desc = "dap eval" }) + s( {'n', 'v'}, '', dap_or(vim.lsp.buf.signature_help), { buffer = ev.buf, desc = "dap eval" }) s( {'n', 'v'}, '', - function() moveCursorToMouse() vim.lsp.buf.hover() end, + function() moveCursorToMouse() dap_or(vim.lsp.buf.hover)() end, { buffer = ev.buf, desc = "Hover" } ) s('n', 'gi', telescope.lsp_implementations, { buffer = ev.buf, desc = "Goto implementation" }) diff --git a/lua/plugins.lua b/lua/plugins.lua index a2d6dea..5eaa84d 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -267,6 +267,7 @@ local plugins = { "lewis6991/gitsigns.nvim", config = function() require('gitsigns').setup({ + word_diff = true, on_attach = function(bufnr) local gs = package.loaded.gitsigns @@ -556,6 +557,17 @@ local plugins = { 'jakemason/ouroboros', dependencies = { "nvim-lua/plenary.nvim" } }, + { + "folke/trouble.nvim", + config = function () require("trouble").setup() end, + cmd = "Trouble", + }, + { + "andrewradev/linediff.vim", + config = function() + vim.keymap.set({ "n", "v" }, "d", ":Linediff ", { desc = "Linediff" }) + end + }, } return plugins