--[[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣷⣦⣄⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠚⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠗⢀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣄⡉⠓⠦⣌⡙⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⢋⣡⠴⠚⢉⣠⣤⣀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣶⣿⣿⣿⣿⣿⣷⣦⣄⡉⠓⠦⣌⡙⠻⢿⣿⣿⣿⣿⣿⣿⡿⠟⢋⣡⠴⠚⢉⣠⣴⣾⣿⣿⣿⣿⣿⣶⣤ ⠀⠀⠀⠀⠀⠀⠀⠀⠐⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠓⠦⣌⡙⠻⠟⢋⣡⠴⠚⢉⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⠂ ⠀⠀⠀⠀⢀⣠⣴⣆⡈⠻⢿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠃⠘⢉⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⡿⠟⢁⣰⣦⣄⡀ ⠀⠀⠐⠾⣿⣿⣿⣿⣿⣷⣦⣌⡙⠻⢿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⡿⠟⢋⣡⣴⣾⣿⣿⣿⣿⣿⠷⠂ ⠀⢸⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣌⡙⠻⢿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⡿⠟⢋⣡⣴⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⡇ ⠀⢸⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣌⡙⠻⢿⣿⣷⣦⣄⡉⠛⠿⠿⠛⢉⣠⣴⣾⣿⡿⠟⢋⣡⣴⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⡇ ⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣌⡙⠻⢿⣿⣷⡆⢰⣾⣿⡿⠟⢋⣡⣴⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉ ⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣌⡙⠃⠘⢋⣡⣴⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⠿⠛⠉ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⡇⢸⠿⠛⠉ __ _ _ / _|___ ___| |_ __ _ ___| | __ | ||_ /____/ __| __/ _` |/ __| |/ / | _/ /_____\__ \ || (_| | (__| < |_|/___| |___/\__\__,_|\___|_|\_\ Neovim 0.12 configuration (c) Frank Zechert 2026 ]] return { { "lewis6991/gitsigns.nvim", opts = { signs = vim.g.ui.symbols.git.signs, signs_staged = vim.g.ui.symbols.git.signs_staged, signs_staged_enable = true, signcolumn = true, numhl = false, linehl = false, word_diff = false, attach_to_untracked = true, current_line_blame = false, current_line_blame_opts = { virt_text = true, virt_text_pos = 'eol', delay = 1000, ignore_whitespace = false, virt_text_priority = 100, use_focus = true, }, current_line_blame_formatter = ', - ', blame_formatter = nil, sign_priority = 6, on_attach = function(bufnr) local gitsigns = require("gitsigns") vim.keymap.set("n", "]c", function() if vim.wo.diff then vim.cmd.normal({ "]c", bang = true }) else gitsigns.nav_hunk("next") end end, { buffer = bufnr, desc = "Jump to Next Hunk" }) vim.keymap.set("n", "[c", function() if vim.wo.diff then vim.cmd.normal({ "[c", bang = true }) else gitsigns.nav_hunk("prev") end end, { buffer = bufnr, desc = "Jump to Previous Hunk" }) vim.keymap.set("n", "hs", gitsigns.stage_hunk, { buffer = bufnr, desc = "Stage Hunk" }) vim.keymap.set("n", "hr", gitsigns.reset_hunk, { buffer = bufnr, desc = "Reset Hunk" }) vim.keymap.set("v", "hs", function() gitsigns.stage_hunk({vim .fn.line("."), vim.fn.line("v")}) end, { buffer = bufnr, desc = "Stage Hunk" }) vim.keymap.set("v", "hr", function() gitsigns.stage_reset({vim .fn.line("."), vim.fn.line("v")}) end, { buffer = bufnr, desc = "Reset Hunk" }) vim.keymap.set("n", "hS", gitsigns.stage_buffer, { buffer = bufnr, desc = "Stage Buffer" }) vim.keymap.set("n", "hR", gitsigns.stage_buffer, { buffer = bufnr, desc = "Reset Buffer" }) vim.keymap.set("n", "hp", gitsigns.preview_hunk, { buffer = bufnr, desc = "Preview Hunk" }) vim.keymap.set("n", "hi", gitsigns.preview_hunk_inline, { buffer = bufnr, desc = "Preview Hunk Inline" }) vim.keymap.set("n", "hb", function() gitsigns.blame_line({ full = true }) end, { buffer = bufnr, desc = "Blame Line" }) vim.keymap.set("n", "tb", gitsigns.toggle_current_line_blame, { buffer = bufnr, desc = "Toggle Blame Line" }) vim.keymap.set("n", "hB", function() require("gitsigns").blame() end, { buffer = bufnr, desc = "Blame Split Window" }) vim.keymap.set("n", "hd", gitsigns.diffthis, { buffer = bufnr, desc = "Diff This Against INDEX" }) vim.keymap.set("n", "hD", function() gitsigns.diffthis("~") end, { buffer = bufnr, desc = "Diff This Against HEAD" }) vim.keymap.set("n", "hq", gitsigns.setqflist, { buffer = bufnr, desc = "Buffer Git Hunks QFList" }) vim.keymap.set("n", "hQ", function() gitsigns.setqflist("all") end, { buffer = bufnr, desc = "Project Git Hunks QFList" }) vim.keymap.set("n", "tw", gitsigns.toggle_word_diff, { buffer = bufnr, desc = "Toggle Word Diff" }) vim.keymap.set({"o", "x"}, "ih", gitsigns.select_hunk, { desc = "Select Hunk" }) end } } }