|
| 1 | +-- nmap <leader>gs :G<cr> |
| 2 | +-- nmap <leader>gp :Git push<CR> |
| 3 | +-- nmap <leader>gc :Git commitf<CR> |
| 4 | +-- nmap <leader>gh <Plug>(GitGutterPreviewHunk) |
| 5 | +-- nmap <leader>ga <Plug>(GitGutterStageHunk) |
| 6 | +-- nmap <leader>gu <Plug>(GitGutterUndoHunk) |
| 7 | +-- " Git log |
| 8 | +-- nmap <leader>gl :GV<cr> |
| 9 | +-- nmap <leader>glf :GV!<cr> |
| 10 | +-- nmap <leader>glb :GV --first-parent<cr> |
| 11 | +return { |
| 12 | + { |
| 13 | + 'tpope/vim-fugitive', |
| 14 | + config = function() |
| 15 | + vim.keymap.set('n', '<leader>gs', '<Cmd>:G<CR>', { desc = '[G]it [S]atus' }) |
| 16 | + vim.keymap.set('n', '<leader>gp', '<Cmd>:Git push<CR>', { desc = '[G]it [P]ush' }) |
| 17 | + vim.keymap.set('n', '<leader>gc', '<Cmd>:Git commit<CR>', { desc = '[G]it [C]ommit' }) |
| 18 | + end, |
| 19 | + }, |
| 20 | + { |
| 21 | + 'lewis6991/gitsigns.nvim', |
| 22 | + opts = { |
| 23 | + signs = { |
| 24 | + add = { text = '┃' }, |
| 25 | + change = { text = '┃' }, |
| 26 | + delete = { text = '_' }, |
| 27 | + topdelete = { text = '‾' }, |
| 28 | + changedelete = { text = '~' }, |
| 29 | + untracked = { text = '┆' }, |
| 30 | + }, |
| 31 | + current_line_blame = false, |
| 32 | + on_attach = function(bufnr) |
| 33 | + local gitsigns = require 'gitsigns' |
| 34 | + local function map(mode, l, r, opts) |
| 35 | + opts = opts or {} |
| 36 | + opts.buffer = bufnr |
| 37 | + vim.keymap.set(mode, l, r, opts) |
| 38 | + end |
| 39 | + -- Navigation |
| 40 | + |
| 41 | + -- Navigation |
| 42 | + map('n', '}} }', function() |
| 43 | + if vim.wo.diff then |
| 44 | + vim.cmd.normal { ']c', bang = true } |
| 45 | + else |
| 46 | + gitsigns.nav_hunk 'next' |
| 47 | + end |
| 48 | + end) |
| 49 | + |
| 50 | + map('n', '{{', function() |
| 51 | + if vim.wo.diff then |
| 52 | + vim.cmd.normal { '[c', bang = true } |
| 53 | + else |
| 54 | + gitsigns.nav_hunk 'prev' |
| 55 | + end |
| 56 | + end) |
| 57 | + |
| 58 | + map('n', '<leader>ga', gitsigns.stage_hunk) |
| 59 | + map('v', '<leader>ga', function() |
| 60 | + gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } |
| 61 | + end) |
| 62 | + map('n', '<leader>gA', gitsigns.undo_stage_hunk) |
| 63 | + map('n', '<leader>gu', gitsigns.reset_hunk) |
| 64 | + map('v', '<leader>gu', function() |
| 65 | + gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } |
| 66 | + end) |
| 67 | + map('n', '<leader>gp', gitsigns.preview_hunk) |
| 68 | + map('n', '<leader>gb', function() |
| 69 | + gitsigns.blame_line { full = true } |
| 70 | + end) |
| 71 | + map('n', '<leader>gd', gitsigns.diffthis) |
| 72 | + -- map('n', '<leader>gS', gitsigns.stage_buffer) |
| 73 | + -- map('n', '<leader>gR', gitsigns.reset_buffer) |
| 74 | + -- map('n', '<leader>gD', function() |
| 75 | + -- gitsigns.diffthis '~' |
| 76 | + -- end) |
| 77 | + -- map('n', '<leader>td', gitsigns.toggle_deleted) |
| 78 | + end, |
| 79 | + }, |
| 80 | + }, |
| 81 | +} |
0 commit comments