summaryrefslogtreecommitdiff
path: root/config/essentials/nvim
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2023-09-20 11:56:03 +0200
committerRaymaekers Luca <raymaekers.luca@gmail.com>2023-09-20 11:56:03 +0200
commit3058dbb2fc8913e5a3484b191f076a0df26d235f (patch)
tree570a7c1a6a6146202dff296b3eb6876ffb645ccf /config/essentials/nvim
parentecca3740145157b468064258974f505cc5c6771b (diff)
[nvim] use gitsigns in favor of gitgutter
Diffstat (limited to 'config/essentials/nvim')
-rw-r--r--config/essentials/nvim/after/plugin/gitsigns.lua82
-rw-r--r--config/essentials/nvim/lua/user/packer.lua3
2 files changed, 83 insertions, 2 deletions
diff --git a/config/essentials/nvim/after/plugin/gitsigns.lua b/config/essentials/nvim/after/plugin/gitsigns.lua
new file mode 100644
index 0000000..025f70d
--- /dev/null
+++ b/config/essentials/nvim/after/plugin/gitsigns.lua
@@ -0,0 +1,82 @@
+require('gitsigns').setup {
+ signs = {
+ add = { text = '│' },
+ change = { text = '│' },
+ delete = { text = '_' },
+ topdelete = { text = '‾' },
+ changedelete = { text = '~' },
+ untracked = { 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 = {
+ follow_files = true
+ },
+ attach_to_untracked = true,
+ current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
+ current_line_blame_opts = {
+ virt_text = true,
+ virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
+ delay = 1000,
+ ignore_whitespace = false,
+ },
+ current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
+ sign_priority = 6,
+ update_debounce = 100,
+ status_formatter = nil, -- Use default
+ max_file_length = 40000, -- Disable if file is longer than this (in lines)
+ preview_config = {
+ -- Options passed to nvim_open_win
+ border = 'single',
+ style = 'minimal',
+ relative = 'cursor',
+ row = 0,
+ col = 1
+ },
+ yadm = {
+ enable = false
+ },
+ on_attach = function(bufnr)
+ local gs = package.loaded.gitsigns
+
+ local function map(mode, l, r, opts)
+ opts = opts or {}
+ opts.buffer = bufnr
+ vim.keymap.set(mode, l, r, 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)
+ map('n', '<leader>hr', gs.reset_hunk)
+ map('v', '<leader>hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
+ map('v', '<leader>hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
+ map('n', '<leader>hS', gs.stage_buffer)
+ map('n', '<leader>hu', gs.undo_stage_hunk)
+ map('n', '<leader>hR', gs.reset_buffer)
+ map('n', '<leader>hp', gs.preview_hunk)
+ map('n', '<leader>hb', function() gs.blame_line{full=true} end)
+ map('n', '<leader>tb', gs.toggle_current_line_blame)
+ map('n', '<leader>hd', gs.diffthis)
+ map('n', '<leader>hD', function() gs.diffthis('~') end)
+ map('n', '<leader>td', gs.toggle_deleted)
+
+ -- Text object
+ map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
+ end
+
+}
diff --git a/config/essentials/nvim/lua/user/packer.lua b/config/essentials/nvim/lua/user/packer.lua
index 4a174bc..a717e7c 100644
--- a/config/essentials/nvim/lua/user/packer.lua
+++ b/config/essentials/nvim/lua/user/packer.lua
@@ -18,8 +18,6 @@ return require('packer').startup(function(use)
use { 'uZer/pywal16.nvim', as = 'pywal16' }
use('norcalli/nvim-colorizer.lua')
- use('airblade/vim-gitgutter')
-
use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
use('nvim-treesitter/playground')
use('theRealCarneiro/hyprland-vim-syntax')
@@ -30,6 +28,7 @@ return require('packer').startup(function(use)
use('tpope/vim-commentary')
-- use('tpope/vim-endwise')
use('tpope/vim-fugitive')
+ use('lewis6991/gitsigns.nvim')
use('tpope/vim-repeat')
use('tpope/vim-surround')
use('tpope/vim-vinegar')