aboutsummaryrefslogtreecommitdiffstats
path: root/lua/plugins/gitsigns.lua
blob: 6dd6145d619bfcf8022b345b031fe2b833838f18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
return {
  "lewis6991/gitsigns.nvim",
  event = "VeryLazy",
  opts = {
    signcolumn = false,
    numhl = true,
    current_line_blame = false, -- arranca apagado; se activa con el toggle
    current_line_blame_opts = {
      virt_text = true,
      virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
      delay = 300,
      ignore_whitespace = false,
    },
    current_line_blame_formatter = "  <author>, <author_time:%R> · <summary>",
    on_attach = function(bufnr)
      local gitsigns = require "gitsigns"
      vim.keymap.set("n", "<leader>hs", gitsigns.stage_hunk, { buffer = bufnr })
      vim.keymap.set("n", "<leader>hu", gitsigns.undo_stage_hunk, { buffer = bufnr })
      vim.keymap.set("n", "<leader>hr", gitsigns.reset_hunk, { buffer = bufnr })
      vim.keymap.set("n", "<leader>hp", gitsigns.preview_hunk, { buffer = bufnr })
      vim.keymap.set("n", "<leader>hj", gitsigns.next_hunk, { buffer = bufnr })
      vim.keymap.set("n", "<leader>hk", gitsigns.prev_hunk, { buffer = bufnr })
      -- Toggle del blame virtual (autor que modificó la línea)
      vim.keymap.set("n", "<leader>hb", gitsigns.toggle_current_line_blame, { buffer = bufnr, desc = "Toggle blame línea" })
    end,
    max_file_length = 10000,
  },
}