summaryrefslogtreecommitdiffstats
path: root/.config/nvim
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/lua/plugin_settings.lua143
1 files changed, 80 insertions, 63 deletions
diff --git a/.config/nvim/lua/plugin_settings.lua b/.config/nvim/lua/plugin_settings.lua
index 48c25f2..1025c00 100644
--- a/.config/nvim/lua/plugin_settings.lua
+++ b/.config/nvim/lua/plugin_settings.lua
@@ -461,69 +461,86 @@ require 'colorizer'.setup()
461-- gitsigns.nvim {{{ -- 461-- gitsigns.nvim {{{ --
462 462
463require('gitsigns').setup { 463require('gitsigns').setup {
464 signs = { 464 signs = {
465 add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'}, 465 add = { text = '│' },
466 change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, 466 change = { text = '│' },
467 delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, 467 delete = { text = '_' },
468 topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, 468 topdelete = { text = '‾' },
469 changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, 469 changedelete = { text = '~' },
470 470 untracked = { text = '┆' },
471 }, 471 },
472 signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` 472 signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
473 numhl = false, -- Toggle with `:Gitsigns toggle_numhl` 473 numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
474 linehl = false, -- Toggle with `:Gitsigns toggle_linehl` 474 linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
475 word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` 475 word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
476 keymaps = { 476 watch_gitdir = {
477 -- Default keymap options 477 follow_files = true
478 noremap = true, 478 },
479 479 attach_to_untracked = true,
480 ['n ]c'] = { expr = true, "&diff ? ']c' : '<cmd>lua require\"gitsigns.actions\".next_hunk()<CR>'"}, 480 current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
481 ['n [c'] = { expr = true, "&diff ? '[c' : '<cmd>lua require\"gitsigns.actions\".prev_hunk()<CR>'"}, 481 current_line_blame_opts = {
482 482 virt_text = true,
483 ['n <leader>hs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>', 483 virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
484 ['v <leader>hs'] = '<cmd>lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>', 484 delay = 1000,
485 ['n <leader>hu'] = '<cmd>lua require"gitsigns".undo_stage_hunk()<CR>', 485 ignore_whitespace = false,
486 ['n <leader>hr'] = '<cmd>lua require"gitsigns".reset_hunk()<CR>', 486 },
487 ['v <leader>hr'] = '<cmd>lua require"gitsigns".reset_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>', 487 current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
488 ['n <leader>hR'] = '<cmd>lua require"gitsigns".reset_buffer()<CR>', 488 sign_priority = 6,
489 ['n <leader>hp'] = '<cmd>lua require"gitsigns".preview_hunk()<CR>', 489 update_debounce = 100,
490 ['n <leader>hb'] = '<cmd>lua require"gitsigns".blame_line(true)<CR>', 490 status_formatter = nil, -- Use default
491 ['n <leader>hS'] = '<cmd>lua require"gitsigns".stage_buffer()<CR>', 491 max_file_length = 40000, -- Disable if file is longer than this (in lines)
492 ['n <leader>hU'] = '<cmd>lua require"gitsigns".reset_buffer_index()<CR>', 492 preview_config = {
493 493 -- Options passed to nvim_open_win
494 -- Text objects 494 border = 'single',
495 ['o ih'] = ':<C-U>lua require"gitsigns.actions".select_hunk()<CR>', 495 style = 'minimal',
496 ['x ih'] = ':<C-U>lua require"gitsigns.actions".select_hunk()<CR>' 496 relative = 'cursor',
497 }, 497 row = 0,
498 watch_gitdir = { 498 col = 1
499 interval = 1000, 499 },
500 follow_files = true 500 yadm = {
501 }, 501 enable = true
502 attach_to_untracked = true, 502 },
503 current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` 503
504 current_line_blame_opts = { 504 on_attach = function(bufnr)
505 virt_text = true, 505 local gs = package.loaded.gitsigns
506 virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' 506
507 delay = 1000, 507 local function map(mode, l, r, opts)
508 }, 508 opts = opts or {}
509 current_line_blame_formatter_opts = { 509 opts.buffer = bufnr
510 relative_time = false 510 vim.keymap.set(mode, l, r, opts)
511 }, 511 end
512 sign_priority = 6, 512
513 update_debounce = 100, 513 -- Navigation
514 status_formatter = nil, -- Use default 514 map('n', ']c', function()
515 max_file_length = 40000, 515 if vim.wo.diff then return ']c' end
516 preview_config = { 516 vim.schedule(function() gs.next_hunk() end)
517 -- Options passed to nvim_open_win 517 return '<Ignore>'
518 border = 'single', 518 end, {expr=true})
519 style = 'minimal', 519
520 relative = 'cursor', 520 map('n', '[c', function()
521 row = 0, 521 if vim.wo.diff then return '[c' end
522 col = 1 522 vim.schedule(function() gs.prev_hunk() end)
523 }, 523 return '<Ignore>'
524 yadm = { 524 end, {expr=true})
525 enable = true 525
526 }, 526 -- Actions
527 map('n', '<leader>hs', gs.stage_hunk)
528 map('n', '<leader>hr', gs.reset_hunk)
529 map('v', '<leader>hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
530 map('v', '<leader>hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
531 map('n', '<leader>hS', gs.stage_buffer)
532 map('n', '<leader>hu', gs.undo_stage_hunk)
533 map('n', '<leader>hR', gs.reset_buffer)
534 map('n', '<leader>hp', gs.preview_hunk)
535 map('n', '<leader>hb', function() gs.blame_line{full=true} end)
536 map('n', '<leader>tb', gs.toggle_current_line_blame)
537 map('n', '<leader>hd', gs.diffthis)
538 map('n', '<leader>hD', function() gs.diffthis('~') end)
539 map('n', '<leader>td', gs.toggle_deleted)
540
541 -- Text object
542 map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
543 end
527} 544}
528 545
529-- }}} gitsigns.nvim -- 546-- }}} gitsigns.nvim --