From c5dece31ace32153b5175f2a3df1f6c9d5b1200d Mon Sep 17 00:00:00 2001 From: hyper Date: Sat, 26 Oct 2024 14:21:22 +0800 Subject: [PATCH] gitsigns keymapping --- lazy-lock.json | 4 ++-- lua/plugins/editing.lua | 2 +- lua/plugins/visuals.lua | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 96269f9..cadc359 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -16,9 +16,9 @@ "neo-tree.nvim": { "branch": "v3.x", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" }, "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, "nvim-cmp": { "branch": "main", "commit": "29fb4854573355792df9e156cb779f0d31308796" }, - "nvim-lspconfig": { "branch": "master", "commit": "85afd4b936acd62b578c2e2d8e86541fb972c32e" }, + "nvim-lspconfig": { "branch": "master", "commit": "28b205ebe73a18f401e040585106f9bafd8ff21f" }, "nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" }, - "nvim-treesitter": { "branch": "master", "commit": "f6c5a58e3bbbedd2a31d04e5aa6f9997df20e3df" }, + "nvim-treesitter": { "branch": "master", "commit": "48fc5d1dfe3dded8028826dfee7526e26212c73b" }, "nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" }, "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, diff --git a/lua/plugins/editing.lua b/lua/plugins/editing.lua index 0ca4160..a1c01a3 100644 --- a/lua/plugins/editing.lua +++ b/lua/plugins/editing.lua @@ -60,7 +60,7 @@ return { -- generic vim.keymap.set('n', 'l', builtin.live_grep, { desc = 'Telescope live grep' }) - vim.keymap.set('n', 'h', builtin.help_tags, { desc = 'Telescope help tags' }) + vim.keymap.set('n', 'H', builtin.help_tags, { desc = 'Telescope help tags' }) vim.keymap.set('n', 't', function() vim.cmd [[TodoTelescope]] end, { desc = 'Telescope Todo' }) diff --git a/lua/plugins/visuals.lua b/lua/plugins/visuals.lua index 06c68aa..2e818cb 100644 --- a/lua/plugins/visuals.lua +++ b/lua/plugins/visuals.lua @@ -45,7 +45,39 @@ return { },{ "lewis6991/gitsigns.nvim", config = function() - require('gitsigns').setup() + require('gitsigns').setup{ + on_attach = function(bufnr) + local gitsigns = require('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 + vim.cmd.normal({']c', bang = true}) + else + gitsigns.nav_hunk('next') + end + end, {desc = "Next Git Hunk"}) + + map('n', '[c', function() + if vim.wo.diff then + vim.cmd.normal({'[c', bang = true}) + else + gitsigns.nav_hunk('prev') + end + end, {desc = "Prev Git Hunk"}) + + map('n', 'hs', gitsigns.stage_hunk) + map('n', 'hr', gitsigns.reset_hunk) + map('v', 'hs', function() gitsigns.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end) + map('v', 'hr', function() gitsigns.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end) + end + } end } }