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 | b7d674cac0aa21bac00c7c26f0d51bd65ec19f13 (patch) | |
tree | 0839e5b087fe6c3d711f4a4e0e365d49b6e53193 /store/config/nvim/lua/setup/plugins/gitsigns.lua | |
parent | 166bdbc8bfb89b007b1a9ede885af5582074481c (diff) | |
download | crupest-b7d674cac0aa21bac00c7c26f0d51bd65ec19f13.tar.gz crupest-b7d674cac0aa21bac00c7c26f0d51bd65ec19f13.tar.bz2 crupest-b7d674cac0aa21bac00c7c26f0d51bd65ec19f13.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 +} |