From 780c269b7cf75e7e935920acd7252d57db5aadbf Mon Sep 17 00:00:00 2001 From: ant Date: Wed, 4 Jun 2025 18:49:55 +0200 Subject: [PATCH 01/10] add bind to copy filename and position --- lua/mappings.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lua/mappings.lua b/lua/mappings.lua index b04d219..da852bf 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -46,6 +46,17 @@ for _, key in ipairs({"A", "Z", "E", "Q", "S", "D"}) do s({ 'n' }, "", "g'" .. key, { desc = "Jump to mark " .. key }) end +function copy_filename_and_line () + local filename = vim.fn.expand("%:t") + local line = vim.fn.line(".") + local text = filename .. ":" .. line + vim.fn.setreg("+", text) + vim.print(text) +end + +s({ 'n' }, "y", copy_filename_and_line, { desc = "Copy filename and line"}) + + function moveCursorToMouse() local mousePos = vim.fn.getmousepos() vim.fn.setpos(".", { 0, mousePos.line, mousePos.column, 0 }) From e2921d966bf3f0a55cb100fe43f0b65654a097cd Mon Sep 17 00:00:00 2001 From: ant Date: Wed, 4 Jun 2025 18:50:13 +0200 Subject: [PATCH 02/10] add bind to jump to next/previous lsp error --- lua/mappings.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lua/mappings.lua b/lua/mappings.lua index da852bf..d720358 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -80,6 +80,18 @@ vim.api.nvim_create_autocmd('LspAttach', { s('n', 'e', vim.diagnostic.open_float, { buffer = ev.buf, desc = "Show diagnostics" }) s('n', '[[', vim.diagnostic.goto_prev, { buffer = ev.buf, desc = "Previous diagnostic" }) s('n', ']]', vim.diagnostic.goto_next, { buffer = ev.buf, desc = "Next diagnostic" }) + s( 'n', ']e', + function () + vim.diagnostic.goto_next({severity=vim.diagnostic.severity.ERROR, wrap = true}) + end, + { buffer = ev.buf, desc = "Next error" } + ) + s( 'n', '[e', + function () + vim.diagnostic.goto_prev({severity=vim.diagnostic.severity.ERROR, wrap = true}) + end, + { buffer = ev.buf, desc = "Previous error" } + ) s('n', 'q', vim.diagnostic.setloclist, { buffer = ev.buf, desc = "Set location list" }) 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" }) From 9e3cb2246c4f06d99497d24554a32365cfe5e651 Mon Sep 17 00:00:00 2001 From: ant Date: Wed, 4 Jun 2025 18:53:42 +0200 Subject: [PATCH 03/10] remove dap-utils --- lua/mappings.lua | 10 ++++------ lua/plugins.lua | 11 ----------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/lua/mappings.lua b/lua/mappings.lua index d720358..c60fe67 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -126,12 +126,10 @@ function continue() end end -s('n', 'b', dap.toggle_breakpoint, { desc = "Toggle breakpoint" }) -s('n', 'B', function() - local condition = vim.fn.input("Condition: ", "", "customlist,Complete") - dap.set_breakpoint(condition) -end, { desc = "Add conditional breakpoint" }) --- watchpoint +local pb = require('persistent-breakpoints.api') +s('n', 'b', pb.toggle_breakpoint, { desc = "Toggle breakpoint" }) +s('n', 'l', pb.set_log_point, { desc = "Set logpoint" }) +s('n', 'B', pb.set_conditional_breakpoint , { desc = "Add conditional breakpoint" }) s('n', 'w', dapui.elements.watches.add, { desc = "Add watch" }) s('v', 'w', dapui.elements.watches.add, { desc = "Add watch" }) s('n', '', dapui.toggle, { desc = "Toggle debygger UI" }) diff --git a/lua/plugins.lua b/lua/plugins.lua index 14286f4..1c13830 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -229,27 +229,16 @@ local plugins = { }, { "rmagatti/auto-session", - dependencies = { - "niuiic/dap-utils.nvim", - dependencies = { - "niuiic/core.nvim", - "mfussenegger/nvim-dap", - "rcarriga/nvim-dap-ui", - "nvim-telescope/telescope.nvim", - } - }, config = function() require("auto-session").setup({ log_level = "error", pre_save_cmds = { function() - require("dap-utils").store_breakpoints("./.breakpoints") vim.api.nvim_exec_autocmds('User', {pattern = 'SessionSavePre'}) end }, post_restore_cmds = { function() - require("dap-utils").restore_breakpoints("./.breakpoints") end }, pre_delete_cmds = { From 7dac9b74ee616e77d55ae273ae5a991cecb6107e Mon Sep 17 00:00:00 2001 From: ant Date: Wed, 4 Jun 2025 18:54:14 +0200 Subject: [PATCH 04/10] increase max-join-length in treesj --- lua/plugins.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/plugins.lua b/lua/plugins.lua index 1c13830..04add89 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -224,7 +224,7 @@ local plugins = { dependencies = { 'nvim-treesitter/nvim-treesitter' }, opts = { use_default_keymaps = false, - max_join_length = 1200, + max_join_length = 36000, }, }, { From 61b0ed3154365c02f73a4075f3b04fd916849d7f Mon Sep 17 00:00:00 2001 From: ant Date: Wed, 4 Jun 2025 18:56:48 +0200 Subject: [PATCH 05/10] use clang-format --- lua/plugins.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lua/plugins.lua b/lua/plugins.lua index 04add89..dd82f38 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -484,6 +484,11 @@ local plugins = { uncrustify = { prepend_args = { "-c", "./scripts/uncrustify.cfg" }, }, + ["clang-format"] = { + prepend_args = { + "--style", "file:" .. vim.fn.expand("~/clang-format.yaml") + }, + } }, formatters_by_ft = { @@ -503,6 +508,20 @@ local plugins = { end require("conform").format({ async = true, lsp_format = "fallback", range = range }) end, { range = true }) + + -- vim.api.nvim_create_user_command("FormatClang", function(args) + -- local range = nil + -- if args.count ~= -1 then + -- local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] + -- range = { + -- start = { args.line1, 0 }, + -- ["end"] = { args.line2, end_line:len() }, + -- } + -- end + -- require("conform").format({ formatters = { "clang-format" }, range = range }) + -- end, { range = true }) + -- + -- vim.keymap.set({"v"}, "fl", ":FormatClang", { desc = "Format with clang"}) end }, { From a3f51ad33fd530145c9d49ec9cc3181ae98c525b Mon Sep 17 00:00:00 2001 From: ant Date: Wed, 4 Jun 2025 18:57:05 +0200 Subject: [PATCH 06/10] f3 to pause in when debugging --- lua/mappings.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/mappings.lua b/lua/mappings.lua index c60fe67..a513ee3 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -133,6 +133,7 @@ s('n', 'B', pb.set_conditional_breakpoint , { desc = "Add conditional br s('n', 'w', dapui.elements.watches.add, { desc = "Add watch" }) s('v', 'w', dapui.elements.watches.add, { desc = "Add watch" }) s('n', '', dapui.toggle, { desc = "Toggle debygger UI" }) +s('n', '', dap.pause, { desc = "Pause" }) s('n', '', continue, { desc = "Continue" }) s('n', '', dap.restart, { desc = "Restart" }) s('n', '', dap.step_into, { desc = "Step into" }) From 245cdf2668b8f0f85bd305275b23ab9af5c2aa15 Mon Sep 17 00:00:00 2001 From: Antoine Vaure Date: Thu, 5 Jun 2025 09:07:04 +0200 Subject: [PATCH 07/10] add comment to for vscode cpptools on nix --- lua/configs/dap.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/configs/dap.lua b/lua/configs/dap.lua index 88a1de0..fe2a15a 100644 --- a/lua/configs/dap.lua +++ b/lua/configs/dap.lua @@ -28,6 +28,7 @@ dap.adapters.cppdbg = { id = 'cppdbg', type = 'executable', command = '/nix/store/gwags66qlqr6qmblwp0v6crkb6ca2qr1-vscode-extension-ms-vscode-cpptools-1.22.2/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7', + -- NIXPKGS_ALLOW_UNFREE=1 nix build --impure --no-link --print-out-paths nixpkgs#vscode-extensions.ms-vscode.cpptools cwd = "${workspaceFolder}", } From d36bfac0a247f44baa03360b764c4620f7689331 Mon Sep 17 00:00:00 2001 From: Antoine Vaure Date: Fri, 6 Jun 2025 17:41:17 +0200 Subject: [PATCH 08/10] change mappings for hover --- lua/mappings.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lua/mappings.lua b/lua/mappings.lua index a513ee3..5685114 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -66,7 +66,7 @@ function hover() if dap.session() then dapui.eval() else - vim.lsp.buf.hover() + vim.lsp.buf.signature_help() end end @@ -95,14 +95,15 @@ vim.api.nvim_create_autocmd('LspAttach', { s('n', 'q', vim.diagnostic.setloclist, { buffer = ev.buf, desc = "Set location list" }) 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', hover, { buffer = ev.buf, desc = "Hover" }) + 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'}, '', - function() moveCursorToMouse() hover() end, + function() moveCursorToMouse() vim.lsp.buf.hover() end, { buffer = ev.buf, desc = "Hover" } ) s('n', 'gi', telescope.lsp_implementations, { buffer = ev.buf, desc = "Goto implementation" }) - s('n', '', vim.lsp.buf.signature_help, { buffer = ev.buf, desc = "Signature help" }) + -- s('n', '', vim.lsp.buf.signature_help, { buffer = ev.buf, desc = "Signature help" }) s('n', 'D', vim.lsp.buf.type_definition, { buffer = ev.buf, desc = "Goto type definition" }) s('n', 'ra', vim.lsp.buf.rename, { buffer = ev.buf, desc = "Rename" }) s({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Code action" }) From 2a5b5bb6cef10466a70d3ce859a317f1804be739 Mon Sep 17 00:00:00 2001 From: Antoine Vaure Date: Fri, 6 Jun 2025 17:41:46 +0200 Subject: [PATCH 09/10] dap virtual text at end of line --- lua/plugins.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lua/plugins.lua b/lua/plugins.lua index dd82f38..8ba1339 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -448,7 +448,9 @@ local plugins = { "theHamsta/nvim-dap-virtual-text", lazy = false, dependencies = { "mfussenegger/nvim-dap", "nvim-treesitter/nvim-treesitter" }, - opts = {} + opts = { + virt_text_pos = 'eol' + } }, { 'echasnovski/mini.align', From 649e32838dbc466a600f20458813a1f839cdf325 Mon Sep 17 00:00:00 2001 From: Antoine Vaure Date: Fri, 6 Jun 2025 17:42:02 +0200 Subject: [PATCH 10/10] add autocmd to reload buffers when neogit change something --- lua/plugins.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lua/plugins.lua b/lua/plugins.lua index 8ba1339..a2d6dea 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -382,6 +382,12 @@ local plugins = { } } }) + vim.api.nvim_create_autocmd("User", { + pattern = "NeogitStatusRefreshed", + callback = function() + vim.cmd("set autoread | checktime") + end + }) end }, {