/
bluesboy
/
dotfiles
Обзор
Документация
Войти
/
bluesboy
/
dotfiles
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
config/nvim/lua/plugins/git/gitsigns.lua
100 строк
3 KB
Bluesboy
Add descriptions
09 мар 2026, 07:21
09 мар 2026, 07:21
568139e
Код
Авторство
О чём код?
return { { "lewis6991/gitsigns.nvim", event = { "BufReadPost", "BufNewFile" }, opts = { signs = { add = { text = "▎" }, change = { text = "▎" }, delete = { text = "_" }, topdelete = { text = "‾" }, changedelete = { text = "~" }, }, signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` numhl = false, -- Toggle with `:Gitsigns toggle_numhl` linehl = false, -- Toggle with `:Gitsigns toggle_linehl` word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` watch_gitdir = { interval = 1000, follow_files = true, }, attach_to_untracked = true, current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame` current_line_blame_opts = { virt_text = true, virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align' delay = 300, ignore_whitespace = false, }, sign_priority = 6, update_debounce = 100, status_formatter = nil, -- Use default max_file_length = 40000, preview_config = { -- Options passed to nvim_open_win border = "single", style = "minimal", relative = "cursor", row = 0, col = 1, }, on_attach = function(bufnr) local gs = package.loaded.gitsigns local function map(mode, lhs, rhs, opts) opts = opts or {} opts.buffer = bufnr vim.keymap.set(mode, lhs, rhs, opts) end -- Navigation map("n", "]c", function() if vim.wo.diff then return "]c" end vim.schedule(function() gs.next_hunk() end) return "<Ignore>" end, { expr = true }) map("n", "[c", function() if vim.wo.diff then return "[c" end vim.schedule(function() gs.prev_hunk() end) return "<Ignore>" end, { expr = true }) -- Actions map("n", "<leader>hs", gs.stage_hunk, { desc = "Stage hunk" }) map("n", "<leader>hr", gs.reset_hunk, { desc = "Reset hunk" }) map("n", "<leader>hS", gs.stage_buffer, { desc = "Stage buffer" }) map("n", "<leader>hu", gs.undo_stage_hunk, { desc = "Unstage hunk" }) map("n", "<leader>hR", gs.reset_buffer, { desc = "Reset buffer" }) map("n", "<leader>hp", gs.preview_hunk, { desc = "Preview hunk" }) map("n", "<leader>hb", function() gs.blame_line({ full = true }) end, { desc = "Blame" }) map("n", "<leader>hd", gs.diffthis, { desc = "Diff" }) map("n", "<leader>hD", function() gs.diffthis("~") end, { desc = "Toggle diff" }) map("n", "<leader>tb", gs.toggle_current_line_blame, { desc = "Toggle line blame" }) map("n", "<leader>td", gs.toggle_deleted, { desc = "Toggle deleted hunks" }) map("v", "<leader>hs", function() gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, { desc = "Stage selected" }) map("v", "<leader>hr", function() gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, { desc = "Reset selected" }) -- Text object map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", { desc = "Select hunk" }) end, }, }, }