diff options
| author | Kyren223 <ulmliad223@gmail.com> | 2024-10-27 23:55:50 +0200 |
|---|---|---|
| committer | Kyren223 <ulmliad223@gmail.com> | 2024-10-27 23:55:50 +0200 |
| commit | da5359364637eddbadcc188121c1a3e38afebba3 (patch) | |
| tree | f64659e5c4daa85631246f08f50596b37fc1d2ac | |
| parent | b1d9342211c3c4942757cf607943a8cbeb81f976 (diff) | |
Split the git.lua into 4 separate plugins
| -rw-r--r-- | .config/nvim/lua/custom/plugins/diffview.lua | 20 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/git.lua | 96 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/gitsigns.lua | 31 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/neogit.lua | 33 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/octo.lua | 23 |
5 files changed, 107 insertions, 96 deletions
diff --git a/.config/nvim/lua/custom/plugins/diffview.lua b/.config/nvim/lua/custom/plugins/diffview.lua new file mode 100644 index 0000000..875e458 --- /dev/null +++ b/.config/nvim/lua/custom/plugins/diffview.lua @@ -0,0 +1,20 @@ +return { + 'sindrets/diffview.nvim', + cmd = { 'DiffviewOpen', 'DiffviewClose', 'DiffviewFileHistory' }, + keys = { + { '<leader>gd', '<cmd>DiffviewOpen<cr>' }, + { '<leader>gl', '<cmd>DiffviewFileHistory<cr>' }, + }, + opts = function() + local quit_keymap = { 'n', 'q', '<cmd>DiffviewClose<cr>', { desc = 'Quit the diffview' } } + return { + enhanced_diff_hl = true, + default = { winbar_info = true }, + keymaps = { + view = { quit_keymap }, + file_panel = { quit_keymap }, + file_history_panel = { quit_keymap }, + }, + } + end, +} diff --git a/.config/nvim/lua/custom/plugins/git.lua b/.config/nvim/lua/custom/plugins/git.lua deleted file mode 100644 index 9137c94..0000000 --- a/.config/nvim/lua/custom/plugins/git.lua +++ /dev/null @@ -1,96 +0,0 @@ -local quit_keymap = { 'n', 'q', '<cmd>DiffviewClose<cr>', { desc = 'Quit the diffview' } } -local diffview_opts = { - enhanced_diff_hl = true, - default = { winbar_info = true }, - keymaps = { - view = { quit_keymap }, - file_panel = { quit_keymap }, - file_history_panel = { quit_keymap }, - }, -} - -local neogit_opts = { - commit_editor = { spell_check = false }, - mappings = { - commit_editor = { - ['<C-y>'] = 'Submit', - ['<C-n>'] = 'Abort', - }, - commit_editor_I = { - ['<C-y>'] = 'Submit', - ['<C-n>'] = 'Abort', - }, - popup = { - ['p'] = 'PushPopup', - ['P'] = 'PullPopup', - }, - }, -} - -local function octo_config() - require('octo').setup({ suppress_missing_scope = { projects_v2 = true } }) - - vim.treesitter.language.register('markdown', 'octo') - vim.api.nvim_create_autocmd('FileType', { - pattern = 'octo', - callback = function() - -- Autocomplete for @ (user mention) and # (issue) - vim.keymap.set('i', '@', '@<C-x><C-o>', { silent = true, buffer = true }) - vim.keymap.set('i', '#', '#<C-x><C-o>', { silent = true, buffer = true }) - end, - }) -end - --- Helpers -local function stage_visual_chunk() - require('gitsigns').stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) -end -local function reset_visual_chunk() - require('gitsigns').reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) -end - --- GitHub Keymaps -local search_open_issues_by_me = '<cmd>Octo search is:issue is:open author:@me<cr>' -vim.keymap.set('n', '<leader>gi', '<cmd>Octo issue search<cr>', { desc = '[G]ithub [I]ssues (local)' }) -vim.keymap.set('n', '<leader>pr', '<cmd>Octo pr search<cr>', { desc = 'Github [PR]s (local)' }) -vim.keymap.set('n', '<leader>gI', search_open_issues_by_me, { desc = '[G]ithub [I]ssues (global)' }) -vim.keymap.set('n', '<leader>pR', '<cmd>Octo search is:pr author:@me<cr>', { desc = 'Github [PR]s (global)' }) - --- Git keymaps -vim.keymap.set('n', '<leader>gB', '<cmd>Gitsigns toggle_current_line_blame<cr>', { desc = '[G]it [B]lame Line' }) -vim.keymap.set('n', '<leader>gD', '<cmd>Gitsigns toggle_deleted<cr>', { desc = '[G]it [D]eleted' }) -vim.keymap.set('n', '<leader>gb', '<cmd>Neogit branch<cr>', { desc = '[G]it [B]ranch' }) -vim.keymap.set('n', '<leader>gd', '<cmd>DiffviewOpen<cr>', { desc = '[G]it [D]iff' }) -vim.keymap.set('n', '<leader>gl', '<cmd>DiffviewFileHistory<cr>', { desc = '[G]it [L]og (diffview)' }) -vim.keymap.set('n', '<leader>gs', '<cmd>Neogit<cr>', { desc = '[G]it [S]tatus' }) -vim.keymap.set('n', '<leader>gL', '<cmd>Neogit log<cr>', { desc = '[G]it [L]og (neogit)' }) -vim.keymap.set('n', '<leader>gc', '<cmd>Neogit commit<cr>', { desc = '[G]it [C]ommit' }) -vim.keymap.set('n', '<leader>gp', '<cmd>Neogit push<cr>', { desc = '[G]it [P]ush' }) -vim.keymap.set('n', '<leader>gP', '<cmd>Neogit pull<cr>', { desc = '[G]it [P]ull' }) -vim.keymap.set('n', '<leader>gr', '<cmd>Neogit rebase<cr>', { desc = '[G]it [R]ebase' }) -vim.keymap.set('n', '<leader>gm', '<cmd>Neogit merge<cr>', { desc = '[G]it [M]erge' }) - --- Hunk Keymaps -vim.keymap.set('n', '<leader>hp', '<cmd>Gitsigns preview_hunk<cr>', { desc = '[H]unk [P]review' }) -vim.keymap.set('n', '<leader>hs', '<cmd>Gitsigns stage_hunk<cr>', { desc = '[H]unk [S]tage' }) -vim.keymap.set('n', '<leader>hr', '<cmd>Gitsigns reset_hunk<cr>', { desc = '[H]unk [R]eset' }) -vim.keymap.set('v', '<leader>hs', stage_visual_chunk, { desc = '[H]unk [S]tage' }) -vim.keymap.set('v', '<leader>hr', reset_visual_chunk, { desc = '[H]unk [S]tage' }) -vim.keymap.set('n', '<leader>hS', '<cmd>Gitsigns stage_buffer<cr>', { desc = '[S]tage Buffer' }) -vim.keymap.set('n', '<leader>hR', '<cmd>Gitsigns reset_buffer<cr>', { desc = '[R]eset Buffer' }) -vim.keymap.set('n', '<leader>hu', '<cmd>Gitsigns undo_stage_hunk<cr>', { desc = '[H]unk [U]ndo' }) - -return { - { - 'NeogitOrg/neogit', - opts = neogit_opts, - cmd = 'Neogit', - }, - { 'pwntester/octo.nvim', config = octo_config, cmd = 'Octo' }, - { 'lewis6991/gitsigns.nvim', config = true, cmd = 'Gitsigns', event = 'VeryLazy' }, - { - 'sindrets/diffview.nvim', - opts = diffview_opts, - cmd = { 'DiffviewOpen', 'DiffviewClose', 'DiffviewFileHistory' }, - }, -} diff --git a/.config/nvim/lua/custom/plugins/gitsigns.lua b/.config/nvim/lua/custom/plugins/gitsigns.lua new file mode 100644 index 0000000..3d16f32 --- /dev/null +++ b/.config/nvim/lua/custom/plugins/gitsigns.lua @@ -0,0 +1,31 @@ +return { + 'lewis6991/gitsigns.nvim', + cmd = 'Gitsigns', + event = 'VeryLazy', + config = function() + require('gitsigns').setup() + + local function stage_visual_chunk() + require('gitsigns').stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end + local function reset_visual_chunk() + require('gitsigns').reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end + + vim.keymap.set('n', '<leader>gD', '<cmd>Gitsigns toggle_deleted<cr>', { desc = '[G]it [D]eleted' }) + vim.keymap.set('n', '<leader>hp', '<cmd>Gitsigns preview_hunk<cr>', { desc = '[H]unk [P]review' }) + vim.keymap.set('n', '<leader>hs', '<cmd>Gitsigns stage_hunk<cr>', { desc = '[H]unk [S]tage' }) + vim.keymap.set('n', '<leader>hr', '<cmd>Gitsigns reset_hunk<cr>', { desc = '[H]unk [R]eset' }) + vim.keymap.set('v', '<leader>hs', stage_visual_chunk, { desc = '[H]unk [S]tage' }) + vim.keymap.set('v', '<leader>hr', reset_visual_chunk, { desc = '[H]unk [S]tage' }) + vim.keymap.set('n', '<leader>hS', '<cmd>Gitsigns stage_buffer<cr>', { desc = '[S]tage Buffer' }) + vim.keymap.set('n', '<leader>hR', '<cmd>Gitsigns reset_buffer<cr>', { desc = '[R]eset Buffer' }) + vim.keymap.set('n', '<leader>hu', '<cmd>Gitsigns undo_stage_hunk<cr>', { desc = '[H]unk [U]ndo' }) + vim.keymap.set( + 'n', + '<leader>gB', + '<cmd>Gitsigns toggle_current_line_blame<cr>', + { desc = '[G]it [B]lame Line' } + ) + end, +} diff --git a/.config/nvim/lua/custom/plugins/neogit.lua b/.config/nvim/lua/custom/plugins/neogit.lua new file mode 100644 index 0000000..e1e164f --- /dev/null +++ b/.config/nvim/lua/custom/plugins/neogit.lua @@ -0,0 +1,33 @@ +return { + 'NeogitOrg/neogit', + cmd = 'Neogit', + keys = { + { '<leader>gb', '<cmd>Neogit branch<cr>' }, + { '<leader>gs', '<cmd>Neogit<cr>' }, + { '<leader>gL', '<cmd>Neogit log<cr>' }, + { '<leader>gc', '<cmd>Neogit commit<cr>' }, + { '<leader>gp', '<cmd>Neogit push<cr>' }, + { '<leader>gP', '<cmd>Neogit pull<cr>' }, + { '<leader>gr', '<cmd>Neogit rebase<cr>' }, + { '<leader>gm', '<cmd>Neogit merge<cr>' }, + }, + opts = function() + return { + commit_editor = { spell_check = false }, + mappings = { + commit_editor = { + ['<C-y>'] = 'Submit', + ['<C-n>'] = 'Abort', + }, + commit_editor_I = { + ['<C-y>'] = 'Submit', + ['<C-n>'] = 'Abort', + }, + popup = { + ['p'] = 'PushPopup', + ['P'] = 'PullPopup', + }, + }, + } + end, +} diff --git a/.config/nvim/lua/custom/plugins/octo.lua b/.config/nvim/lua/custom/plugins/octo.lua new file mode 100644 index 0000000..26c1dbb --- /dev/null +++ b/.config/nvim/lua/custom/plugins/octo.lua @@ -0,0 +1,23 @@ +return { + 'pwntester/octo.nvim', + cmd = 'Octo', + keys = { + { '<leader>gi', '<cmd>Octo issue search<cr>', desc = '[G]ithub [I]ssues (local)' }, + { '<leader>pr', '<cmd>Octo pr search<cr>', desc = 'Github [PR]s (local)' }, + { '<leader>gI', '<cmd>Octo search is:issue is:open author:@me<cr>', desc = '[G]ithub [I]ssues (global)' }, + { '<leader>pR', '<cmd>Octo search is:pr author:@me<cr>', desc = 'Github [PR]s (global)' }, + }, + config = function() + require('octo').setup({ suppress_missing_scope = { projects_v2 = true } }) + + vim.treesitter.language.register('markdown', 'octo') + vim.api.nvim_create_autocmd('FileType', { + pattern = 'octo', + callback = function() + -- Autocomplete for @ (user mention) and # (issue) + vim.keymap.set('i', '@', '@<C-x><C-o>', { silent = true, buffer = true }) + vim.keymap.set('i', '#', '#<C-x><C-o>', { silent = true, buffer = true }) + end, + }) + end, +} |
