Compare commits

..

10 commits

Author SHA1 Message Date
Antoine Vaure
649e32838d add autocmd to reload buffers when neogit change something 2025-06-06 17:42:02 +02:00
Antoine Vaure
2a5b5bb6ce dap virtual text at end of line 2025-06-06 17:41:46 +02:00
Antoine Vaure
d36bfac0a2 change mappings for hover 2025-06-06 17:41:17 +02:00
Antoine Vaure
245cdf2668 add comment to for vscode cpptools on nix 2025-06-05 09:07:38 +02:00
ant
a3f51ad33f f3 to pause in when debugging 2025-06-04 19:05:34 +02:00
ant
61b0ed3154 use clang-format 2025-06-04 19:05:34 +02:00
ant
7dac9b74ee increase max-join-length in treesj 2025-06-04 19:05:34 +02:00
ant
9e3cb2246c remove dap-utils 2025-06-04 19:05:34 +02:00
ant
e2921d966b add bind to jump to next/previous lsp error 2025-06-04 19:05:34 +02:00
ant
780c269b7c add bind to copy filename and position 2025-06-04 19:05:34 +02:00
3 changed files with 63 additions and 23 deletions

View file

@ -28,6 +28,7 @@ dap.adapters.cppdbg = {
id = 'cppdbg', id = 'cppdbg',
type = 'executable', type = 'executable',
command = '/nix/store/gwags66qlqr6qmblwp0v6crkb6ca2qr1-vscode-extension-ms-vscode-cpptools-1.22.2/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7', 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}", cwd = "${workspaceFolder}",
} }

View file

@ -46,6 +46,17 @@ for _, key in ipairs({"A", "Z", "E", "Q", "S", "D"}) do
s({ 'n' }, "<A-" .. string.lower(key) .. ">", "g'" .. key, { desc = "Jump to mark " .. key }) s({ 'n' }, "<A-" .. string.lower(key) .. ">", "g'" .. key, { desc = "Jump to mark " .. key })
end 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<c-g>", copy_filename_and_line, { desc = "Copy filename and line"})
function moveCursorToMouse() function moveCursorToMouse()
local mousePos = vim.fn.getmousepos() local mousePos = vim.fn.getmousepos()
vim.fn.setpos(".", { 0, mousePos.line, mousePos.column, 0 }) vim.fn.setpos(".", { 0, mousePos.line, mousePos.column, 0 })
@ -55,7 +66,7 @@ function hover()
if dap.session() then if dap.session() then
dapui.eval() dapui.eval()
else else
vim.lsp.buf.hover() vim.lsp.buf.signature_help()
end end
end end
@ -69,17 +80,30 @@ vim.api.nvim_create_autocmd('LspAttach', {
s('n', '<leader>e', vim.diagnostic.open_float, { buffer = ev.buf, desc = "Show diagnostics" }) s('n', '<leader>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_prev, { buffer = ev.buf, desc = "Previous diagnostic" })
s('n', ']]', vim.diagnostic.goto_next, { buffer = ev.buf, desc = "Next 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', '<leader>q', vim.diagnostic.setloclist, { buffer = ev.buf, desc = "Set location list" }) s('n', '<leader>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', vim.lsp.buf.declaration, { buffer = ev.buf, desc = "Goto declaration" })
s('n', 'gd', telescope.lsp_definitions, { buffer = ev.buf, desc = "Goto definition" }) 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'}, '<c-k>', hover, { buffer = ev.buf, desc = "dap eval" })
s( s(
{'n', 'v'}, '<RightMouse>', {'n', 'v'}, '<RightMouse>',
function() moveCursorToMouse() hover() end, function() moveCursorToMouse() vim.lsp.buf.hover() end,
{ buffer = ev.buf, desc = "Hover" } { buffer = ev.buf, desc = "Hover" }
) )
s('n', 'gi', telescope.lsp_implementations, { buffer = ev.buf, desc = "Goto implementation" }) s('n', 'gi', telescope.lsp_implementations, { buffer = ev.buf, desc = "Goto implementation" })
s('n', '<C-k>', vim.lsp.buf.signature_help, { buffer = ev.buf, desc = "Signature help" }) -- s('n', '<c-k>', vim.lsp.buf.signature_help, { buffer = ev.buf, desc = "Signature help" })
s('n', '<leader>D', vim.lsp.buf.type_definition, { buffer = ev.buf, desc = "Goto type definition" }) s('n', '<leader>D', vim.lsp.buf.type_definition, { buffer = ev.buf, desc = "Goto type definition" })
s('n', '<leader>ra', vim.lsp.buf.rename, { buffer = ev.buf, desc = "Rename" }) s('n', '<leader>ra', vim.lsp.buf.rename, { buffer = ev.buf, desc = "Rename" })
s({ 'n', 'v' }, '<leader>ca', vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Code action" }) s({ 'n', 'v' }, '<leader>ca', vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Code action" })
@ -103,15 +127,14 @@ function continue()
end end
end end
s('n', '<leader>b', dap.toggle_breakpoint, { desc = "Toggle breakpoint" }) local pb = require('persistent-breakpoints.api')
s('n', '<leader>B', function() s('n', '<leader>b', pb.toggle_breakpoint, { desc = "Toggle breakpoint" })
local condition = vim.fn.input("Condition: ", "", "customlist,Complete") s('n', '<leader>l', pb.set_log_point, { desc = "Set logpoint" })
dap.set_breakpoint(condition) s('n', '<leader>B', pb.set_conditional_breakpoint , { desc = "Add conditional breakpoint" })
end, { desc = "Add conditional breakpoint" })
-- watchpoint
s('n', '<leader>w', dapui.elements.watches.add, { desc = "Add watch" }) s('n', '<leader>w', dapui.elements.watches.add, { desc = "Add watch" })
s('v', '<leader>w', dapui.elements.watches.add, { desc = "Add watch" }) s('v', '<leader>w', dapui.elements.watches.add, { desc = "Add watch" })
s('n', '<f2>', dapui.toggle, { desc = "Toggle debygger UI" }) s('n', '<f2>', dapui.toggle, { desc = "Toggle debygger UI" })
s('n', '<f3>', dap.pause, { desc = "Pause" })
s('n', '<f5>', continue, { desc = "Continue" }) s('n', '<f5>', continue, { desc = "Continue" })
s('n', '<f4>', dap.restart, { desc = "Restart" }) s('n', '<f4>', dap.restart, { desc = "Restart" })
s('n', '<f6>', dap.step_into, { desc = "Step into" }) s('n', '<f6>', dap.step_into, { desc = "Step into" })

View file

@ -224,32 +224,21 @@ local plugins = {
dependencies = { 'nvim-treesitter/nvim-treesitter' }, dependencies = { 'nvim-treesitter/nvim-treesitter' },
opts = { opts = {
use_default_keymaps = false, use_default_keymaps = false,
max_join_length = 1200, max_join_length = 36000,
}, },
}, },
{ {
"rmagatti/auto-session", "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() config = function()
require("auto-session").setup({ require("auto-session").setup({
log_level = "error", log_level = "error",
pre_save_cmds = { pre_save_cmds = {
function() function()
require("dap-utils").store_breakpoints("./.breakpoints")
vim.api.nvim_exec_autocmds('User', {pattern = 'SessionSavePre'}) vim.api.nvim_exec_autocmds('User', {pattern = 'SessionSavePre'})
end end
}, },
post_restore_cmds = { post_restore_cmds = {
function() function()
require("dap-utils").restore_breakpoints("./.breakpoints")
end end
}, },
pre_delete_cmds = { pre_delete_cmds = {
@ -393,6 +382,12 @@ local plugins = {
} }
} }
}) })
vim.api.nvim_create_autocmd("User", {
pattern = "NeogitStatusRefreshed",
callback = function()
vim.cmd("set autoread | checktime")
end
})
end end
}, },
{ {
@ -459,7 +454,9 @@ local plugins = {
"theHamsta/nvim-dap-virtual-text", "theHamsta/nvim-dap-virtual-text",
lazy = false, lazy = false,
dependencies = { "mfussenegger/nvim-dap", "nvim-treesitter/nvim-treesitter" }, dependencies = { "mfussenegger/nvim-dap", "nvim-treesitter/nvim-treesitter" },
opts = {} opts = {
virt_text_pos = 'eol'
}
}, },
{ {
'echasnovski/mini.align', 'echasnovski/mini.align',
@ -495,6 +492,11 @@ local plugins = {
uncrustify = { uncrustify = {
prepend_args = { "-c", "./scripts/uncrustify.cfg" }, prepend_args = { "-c", "./scripts/uncrustify.cfg" },
}, },
["clang-format"] = {
prepend_args = {
"--style", "file:" .. vim.fn.expand("~/clang-format.yaml")
},
}
}, },
formatters_by_ft = { formatters_by_ft = {
@ -514,6 +516,20 @@ local plugins = {
end end
require("conform").format({ async = true, lsp_format = "fallback", range = range }) require("conform").format({ async = true, lsp_format = "fallback", range = range })
end, { range = true }) 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"}, "<leader>fl", ":FormatClang<cr>", { desc = "Format with clang"})
end end
}, },
{ {