neovim

Personal neovim configuration files
git clone git://gtms.dev/neovim
Log | Files | Refs

gitsigns.lua (1631B)


      1 if not pcall(require, 'gitsigns') then
      2   return
      3 end
      4 
      5 local gsigns = require('gitsigns')
      6 
      7 local get_theme = function()
      8   local dark_theme = { add = '│', change = '│', delete = '│', topdelete = '‾', changedelete = '│' }
      9   local light_theme = { add = ' ', change = ' ', delete = ' ', topdelete = ' ', changedelete = ' ' }
     10 
     11   if vim.opt.background:get() == 'light' then
     12     return light_theme
     13   end
     14 
     15   return dark_theme
     16 end
     17 
     18 local theme = get_theme()
     19 gsigns.setup {
     20   signs = {
     21     add = { text = theme.add },
     22     change = { text = theme.change },
     23     delete = { text = theme.delete },
     24     topdelete = { text = theme.topdelete },
     25     changedelete = { text = theme.changedelete },
     26   },
     27 }
     28 
     29 vim.keymap.set('n', '<leader>hl', gsigns.next_hunk, { desc = 'Git Next Hunk' })
     30 vim.keymap.set('n', '<leader>hh', gsigns.prev_hunk, { desc = 'Git Previous Hunk' })
     31 vim.keymap.set('n', '<leader>hs', gsigns.stage_hunk, { desc = 'Git Stage Hunk' })
     32 vim.keymap.set('n', '<leader>hu', gsigns.undo_stage_hunk, { desc = 'Git Undo Stage Hunk' })
     33 vim.keymap.set('n', '<leader>hr', gsigns.reset_hunk, { desc = 'Git Reset Hunk' })
     34 vim.keymap.set('n', '<leader>hR', gsigns.reset_buffer, { desc = 'Git Reset Buffer' })
     35 vim.keymap.set('n', '<leader>hp', gsigns.preview_hunk, { desc = 'Git Preview Hunk' })
     36 vim.keymap.set('n', '<leader>hb', gsigns.toggle_current_line_blame, { desc = 'Git Toggle Blame Line' })
     37 vim.keymap.set('n', '<leader>hn', gsigns.toggle_numhl, { desc = 'Git Highlight Num' })
     38 vim.keymap.set('o', 'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>')
     39 vim.keymap.set('x', 'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>')