diff options
Diffstat (limited to '.config/nvim/lua')
| -rw-r--r-- | .config/nvim/lua/custom/git.lua | 62 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/TODO-git.lua | 32 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/TODO-overseer.lua | 2 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/motions.lua | 8 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/neotree.lua | 2 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/todo-comments.lua | 4 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/ui.lua | 6 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/utility.lua | 9 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/telescope.lua | 1 |
9 files changed, 86 insertions, 40 deletions
diff --git a/.config/nvim/lua/custom/git.lua b/.config/nvim/lua/custom/git.lua new file mode 100644 index 0000000..b30deb5 --- /dev/null +++ b/.config/nvim/lua/custom/git.lua @@ -0,0 +1,62 @@ +local set = vim.keymap.set +local gitsigns = require('gitsigns') +gitsigns.setup() +require('neogit').setup({}) +require('octo').setup() +require('diffview').setup({ + enhanced_diff_hl = true, + default = { winbar_info = true }, + keymaps = { + view = { + { 'n', 'q', '<cmd>DiffviewClose<cr>', { desc = 'Quit the diffview' } }, + }, + file_panel = { + { 'n', 'q', '<cmd>DiffviewClose<cr>', { desc = 'Quit the diffview' } }, + }, + file_history_panel = { + { 'n', 'q', '<cmd>DiffviewClose<cr>', { desc = 'Quit the diffview' } }, + }, + }, +}) + +vim.treesitter.language.register('markdown', 'octo') +-- Autocomplete for @ (user mention) and # (issue) +-- Works in GitHub issues/PRs (for octo.nvim) +vim.api.nvim_create_autocmd('FileType', { + pattern = 'octo', + callback = function() + 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, +}) + +-- GitHub keymaps +set('n', '<leader>gi', '<cmd>Octo issue search<cr>', { desc = '[G]ithub [I]ssues' }) +set('n', '<leader>pr', '<cmd>Octo issue search<cr>', { desc = 'Github [PR]s' }) + +-- Git keymaps +set('n', '<leader>gb', gitsigns.toggle_current_line_blame, { desc = '[G]it [B]lame Line' }) +set('n', '<leader>gD', gitsigns.toggle_deleted, { desc = '[G]it [D]eleted' }) +set('n', '<leader>gd', '<cmd>DiffviewOpen<cr>', { desc = '[G]it [D]iff' }) +set('n', '<leader>gl', '<cmd>DiffviewFileHistory<cr>', { desc = '[G]it [L]og' }) +set('n', '<leader>gs', '<cmd>Neogit<cr>', { desc = '[G]it [S]tatus' }) +set('n', '<leader>ga', 'TODO:', { desc = '[G]it [A]dd' }) +set('n', '<leader>gc', 'TODO:', { desc = '[G]it [C]ommit' }) +set('n', '<leader>gp', 'TODO:', { desc = '[G]it [P]ush' }) +set('n', '<leader>gP', 'TODO:', { desc = '[G]it [P]ull' }) + +-- Hunk Keymaps +local function stage_visual_chunk() + gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) +end +local function reset_visual_chunk() + gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) +end +set('n', '<leader>hp', gitsigns.preview_hunk, { desc = '[H]unk [P]review' }) +set('n', '<leader>hs', gitsigns.stage_hunk, { desc = '[H]unk [S]tage' }) +set('n', '<leader>hr', gitsigns.reset_hunk, { desc = '[H]unk [R]eset' }) +set('v', '<leader>hs', stage_visual_chunk, { desc = '[H]unk [S]tage' }) +set('v', '<leader>hr', reset_visual_chunk, { desc = '[H]unk [S]tage' }) +set('n', '<leader>hS', gitsigns.stage_buffer, { desc = '[S]tage Buffer' }) +set('n', '<leader>hR', gitsigns.reset_buffer, { desc = '[R]eset Buffer' }) +set('n', '<leader>hu', gitsigns.undo_stage_hunk, { desc = '[H]unk [U]ndo' }) diff --git a/.config/nvim/lua/custom/plugins/TODO-git.lua b/.config/nvim/lua/custom/plugins/TODO-git.lua index bd022b9..565d19c 100644 --- a/.config/nvim/lua/custom/plugins/TODO-git.lua +++ b/.config/nvim/lua/custom/plugins/TODO-git.lua @@ -1,28 +1,14 @@ return { - { + 'NeogitOrg/neogit', + dependencies = { + 'nvim-lua/plenary.nvim', + 'nvim-telescope/telescope.nvim', + 'sindrets/diffview.nvim', + 'tpope/vim-fugitive', 'lewis6991/gitsigns.nvim', - config = function() - require('gitsigns').setup() - vim.keymap.set('n', '<leader>gp', ':Gitsigns preview_hunk<cr>', { desc = '[G]it [P]review' }) - vim.keymap.set('n', '<leader>gb', ':Gitsigns toggle_current_line_blame<cr>', { desc = '[G]it [B]lame' }) - end, - }, - { 'tpope/vim-fugitive' }, - { 'sindrets/diffview.nvim' }, - { 'pwntester/octo.nvim', - config = function() - require('octo').setup() - vim.treesitter.language.register('markdown', 'octo') - - vim.api.nvim_create_autocmd('FileType', { - pattern = 'octo', - callback = function() - 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, - }) - vim.keymap.set('n', '<leader>gi', ':Octo issue search<cr>', { desc = '[G]thub [I]ssues' }) - end, }, + config = function() + require('custom.git') + end, } diff --git a/.config/nvim/lua/custom/plugins/TODO-overseer.lua b/.config/nvim/lua/custom/plugins/TODO-overseer.lua index 6362f2a..a597f51 100644 --- a/.config/nvim/lua/custom/plugins/TODO-overseer.lua +++ b/.config/nvim/lua/custom/plugins/TODO-overseer.lua @@ -5,6 +5,6 @@ return { require('overseer').setup({ templates = { 'builtin', 'user.c_build_make' }, }) - vim.keymap.set('n', '<leader>r', ':OverseerRun<cr>', { desc = '[R]un Task' }) + vim.keymap.set('n', '<leader>r', '<cmd>OverseerRun<cr>', { desc = '[R]un Task' }) end, } diff --git a/.config/nvim/lua/custom/plugins/motions.lua b/.config/nvim/lua/custom/plugins/motions.lua index 71abb97..b06981c 100644 --- a/.config/nvim/lua/custom/plugins/motions.lua +++ b/.config/nvim/lua/custom/plugins/motions.lua @@ -2,10 +2,10 @@ return { { 'christoomey/vim-tmux-navigator', config = function() - vim.keymap.set('n', 'C-h', ':TmuxNavigatorLeft<CR>') - vim.keymap.set('n', 'C-j', ':TmuxNavigatorDown<CR>') - vim.keymap.set('n', 'C-k', ':TmuxNavigatorUp<CR>') - vim.keymap.set('n', 'C-l', ':TmuxNavigatorRight<CR>') + vim.keymap.set('n', 'C-h', '<cmd>TmuxNavigatorLeft<CR>') + vim.keymap.set('n', 'C-j', '<cmd>TmuxNavigatorDown<CR>') + vim.keymap.set('n', 'C-k', '<cmd>TmuxNavigatorUp<CR>') + vim.keymap.set('n', 'C-l', '<cmd>TmuxNavigatorRight<CR>') end, }, { diff --git a/.config/nvim/lua/custom/plugins/neotree.lua b/.config/nvim/lua/custom/plugins/neotree.lua index b8a4ee9..661ab40 100644 --- a/.config/nvim/lua/custom/plugins/neotree.lua +++ b/.config/nvim/lua/custom/plugins/neotree.lua @@ -10,6 +10,6 @@ return { open_files_do_not_replace_types = { 'terminal', 'Trouble', 'qf', 'edgy' }, }, config = function() - vim.keymap.set('n', '<leader>nt', ':Neotree toggle reveal left<cr>', { desc = '[N]eotree [T]oggle' }) + vim.keymap.set('n', '<leader>nt', '<cmd>Neotree toggle reveal left<cr>', { desc = '[N]eotree [T]oggle' }) end, } diff --git a/.config/nvim/lua/custom/plugins/todo-comments.lua b/.config/nvim/lua/custom/plugins/todo-comments.lua index a404874..6d8b58f 100644 --- a/.config/nvim/lua/custom/plugins/todo-comments.lua +++ b/.config/nvim/lua/custom/plugins/todo-comments.lua @@ -88,7 +88,7 @@ return { -- pattern = [[\b(KEYWORDS)\b]], }, }) - vim.keymap.set('n', '<leader>st', ':TodoTelescope keywords=TODO,FIX<cr>', { desc = '[S]earch [T]odos' }) - vim.keymap.set('n', '<leader>lt', ':TodoTrouble<cr>', { desc = '[L]ist [T]odos' }) + vim.keymap.set('n', '<leader>st', '<cmd>TodoTelescope keywords=TODO,FIX<cr>', { desc = '[S]earch [T]odos' }) + vim.keymap.set('n', '<leader>lt', '<cmd>TodoTrouble<cr>', { desc = '[L]ist [T]odos' }) end, } diff --git a/.config/nvim/lua/custom/plugins/ui.lua b/.config/nvim/lua/custom/plugins/ui.lua index 052be12..e5f06f9 100644 --- a/.config/nvim/lua/custom/plugins/ui.lua +++ b/.config/nvim/lua/custom/plugins/ui.lua @@ -16,14 +16,14 @@ return { auto_enable = true, }, }) - vim.keymap.set('n', '<leader>cp', ':CccPick<cr>', { desc = '[C]olor [P]icker' }) - vim.keymap.set('n', '<leader>ct', ':CccHighlighterToggle<cr>', { desc = '[C]olor [T]oggle' }) + vim.keymap.set('n', '<leader>cp', '<cmd<CccPick<cr>', { desc = '[C]olor [P]icker' }) + vim.keymap.set('n', '<leader>ct', '<cmd>CccHighlighterToggle<cr>', { desc = '[C]olor [T]oggle' }) end, }, { 'RRethy/vim-illuminate', config = function() - vim.keymap.set('n', '<leader>it', ':IlluminateToggle<cr>', { desc = '[I]lluminate [Tloggle]' }) + vim.keymap.set('n', '<leader>it', '<cmd>IlluminateToggle<cr>', { desc = '[I]lluminate [Tloggle]' }) end, }, { diff --git a/.config/nvim/lua/custom/plugins/utility.lua b/.config/nvim/lua/custom/plugins/utility.lua index 79eac83..4951f05 100644 --- a/.config/nvim/lua/custom/plugins/utility.lua +++ b/.config/nvim/lua/custom/plugins/utility.lua @@ -11,10 +11,7 @@ return { vim.keymap.set('n', '<C-s>', session.search_session, { desc = '[S]ession Manager' }) end, }, - { - 'wakatime/vim-wakatime', - lazy = false, - }, + { 'wakatime/vim-wakatime', lazy = false }, { 'AckslD/nvim-neoclip.lua', dependencies = { @@ -34,7 +31,7 @@ return { }, }) -- NOTE: Using `plus` to set the plus register to the selected value - vim.keymap.set('n', '<leader>nc', ':Telescope neoclip plus<cr>', { desc = '[N]eo[c]lip History' }) + vim.keymap.set('n', '<leader>nc', '<cmd>Telescope neoclip plus<cr>', { desc = '[N]eo[c]lip History' }) end, }, { @@ -54,5 +51,5 @@ return { -- NOTE: No keybindings, use `:Spectre` or `:Spectre <file>` -- Spectre has no undo, so it should be rarely used, -- which is why no keybindings are defined - { 'nvim-pack/nvim-spectre', }, + { 'nvim-pack/nvim-spectre' }, } diff --git a/.config/nvim/lua/custom/telescope.lua b/.config/nvim/lua/custom/telescope.lua index bb6ec62..2be1c78 100644 --- a/.config/nvim/lua/custom/telescope.lua +++ b/.config/nvim/lua/custom/telescope.lua @@ -43,6 +43,7 @@ vim.keymap.set('n', '<leader>ps', builtin.lsp_workspace_symbols, { desc = '[P]ro vim.keymap.set('n', '<leader>sb', builtin.git_branches, { desc = '[S]earch [B]ranches' }) vim.keymap.set('n', '<leader>sc', builtin.git_commits, { desc = '[S]earch [C]ommits' }) + -- TODO: Look into the following -- builtin.git_commits -- builtin.git_branches |
