diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-06-04 18:42:09 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-06-04 18:43:00 +0800 |
commit | abf1eb828f956ac95b76b252cc8fe0198090eca8 (patch) | |
tree | 5246b651fc5ddb31d74fe273b08ee2f533f8c591 /store/config/nvim/lua/setup/plugins/gitsigns.lua | |
parent | 30d3f94f11996259ca968e5f732f03e0d10e5233 (diff) | |
download | crupest-abf1eb828f956ac95b76b252cc8fe0198090eca8.tar.gz crupest-abf1eb828f956ac95b76b252cc8fe0198090eca8.tar.bz2 crupest-abf1eb828f956ac95b76b252cc8fe0198090eca8.zip |
chore(config): move dir.
Diffstat (limited to 'store/config/nvim/lua/setup/plugins/gitsigns.lua')
-rw-r--r-- | store/config/nvim/lua/setup/plugins/gitsigns.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/store/config/nvim/lua/setup/plugins/gitsigns.lua b/store/config/nvim/lua/setup/plugins/gitsigns.lua new file mode 100644 index 0000000..957c661 --- /dev/null +++ b/store/config/nvim/lua/setup/plugins/gitsigns.lua @@ -0,0 +1,40 @@ +local function setup() + local gitsigns = require('gitsigns') + + gitsigns.setup { + on_attach = function(bufnr) + 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) + + map('n', '[c', function() + if vim.wo.diff then + vim.cmd.normal({ '[c', bang = true }) + else + gitsigns.nav_hunk('prev') + end + end) + + -- Actions + map('n', '<leader>gc', gitsigns.preview_hunk) + map('n', '<leader>gt', gitsigns.toggle_deleted) + map('n', '<leader>gd', gitsigns.diffthis) + map('n', '<leader>gb', function() gitsigns.blame_line { full = true } end) + end + } +end + +return { + setup = setup +} |