add toggle shortcut for diffview
authorLukas Hägele <lukas.haegele93@web.de>
Sun, 11 Oct 2026 07:13:23 +0000 (09:13 +0200)
committerLukas Hägele <lukas.haegele93@web.de>
Sun, 11 Oct 2026 07:13:23 +0000 (09:13 +0200)
lua/config/plugins/diffview-plus.lua

index b1398d5ab5b147f46b978619f938a0e291f4876d..8e7f567ac6bdadb54e28b8981db3a6453dff536f 100644 (file)
@@ -1,12 +1,37 @@
 return {
     "dlyongemallo/diffview-plus.nvim",
     version = "*",
-    -- optional: lazy-load on command
-    -- cmd = {
-    --     "DiffviewOpen",
-    --     "DiffviewToggle",
-    --     "DiffviewFileHistory",
-    --     "DiffviewDiffFiles",
-    --     "DiffviewLog",
-    -- },
+    config = function()
+      require("diffview").setup({
+        enhanced_diff_hl = true,
+      })
+
+      -- Toggle diffview open/close
+      vim.keymap.set('n', '<leader>dv', '<cmd>DiffviewToggle<cr>', { desc = 'Toggle Diffview' })
+
+--[[
+      -- Diff working directory
+      vim.keymap.set('n', '<leader>do', '<cmd>DiffviewOpen<cr>', { desc = 'Diffview open' })
+      vim.keymap.set('n', '<leader>dc', '<cmd>DiffviewClose<cr>', { desc = 'Diffview close' })
+
+      -- File history
+      vim.keymap.set('n', '<leader>dh', '<cmd>DiffviewFileHistory %<cr>', { desc = 'File history (current file)' })
+      vim.keymap.set('n', '<leader>dH', '<cmd>DiffviewFileHistory<cr>', { desc = 'File history (repo)' })
+
+      -- Visual mode: history for selection
+      vim.keymap.set('v', '<leader>dh', "<Esc><cmd>'<,'>DiffviewFileHistory --follow<CR>", { desc = 'Range history' })
+
+      -- Single line history
+      vim.keymap.set('n', '<leader>dl', '<cmd>.DiffviewFileHistory --follow<CR>', { desc = 'Line history' })
+
+      -- Diff against main/master branch (useful before merging)
+      vim.keymap.set('n', '<leader>dm', function()
+        -- Try main first, fall back to master
+        local result = vim.fn.systemlist({ 'git', 'rev-parse', '--verify', 'main' })
+        local ok = vim.v.shell_error == 0 and result[1] ~= nil and result[1] ~= ''
+        local branch = ok and 'main' or 'master'
+        vim.cmd('DiffviewOpen ' .. branch)
+      end, { desc = 'Diff against main/master' })
+---]]
+    end
 }