summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-10-27 23:55:50 +0200
committerKyren223 <ulmliad223@gmail.com>2024-10-27 23:55:50 +0200
commitda5359364637eddbadcc188121c1a3e38afebba3 (patch)
treef64659e5c4daa85631246f08f50596b37fc1d2ac /.config
parentb1d9342211c3c4942757cf607943a8cbeb81f976 (diff)
Split the git.lua into 4 separate plugins
Diffstat (limited to '.config')
-rw-r--r--.config/nvim/lua/custom/plugins/diffview.lua20
-rw-r--r--.config/nvim/lua/custom/plugins/git.lua96
-rw-r--r--.config/nvim/lua/custom/plugins/gitsigns.lua31
-rw-r--r--.config/nvim/lua/custom/plugins/neogit.lua33
-rw-r--r--.config/nvim/lua/custom/plugins/octo.lua23
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,
+}