better Git integration with diffview

This commit is contained in:
Oliver Ladner 2024-05-14 14:45:27 +02:00
commit 9509babd9e
6 changed files with 33 additions and 12 deletions

View file

@ -5,6 +5,7 @@
"conform.nvim": { "branch": "master", "commit": "3d59cbd01a4b74124c5a6fb23b8cc63e5c2db3d5" }, "conform.nvim": { "branch": "master", "commit": "3d59cbd01a4b74124c5a6fb23b8cc63e5c2db3d5" },
"copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" }, "copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" },
"copilot.lua": { "branch": "master", "commit": "f7612f5af4a7d7615babf43ab1e67a2d790c13a6" }, "copilot.lua": { "branch": "master", "commit": "f7612f5af4a7d7615babf43ab1e67a2d790c13a6" },
"diffview.nvim": { "branch": "main", "commit": "3dc498c9777fe79156f3d32dddd483b8b3dbd95f" },
"gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" }, "gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
"kanagawa.nvim": { "branch": "master", "commit": "860e4f80df71221d18bf2cd9ef1deb4d364274d2" }, "kanagawa.nvim": { "branch": "master", "commit": "860e4f80df71221d18bf2cd9ef1deb4d364274d2" },
"lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" }, "lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" },

View file

@ -0,0 +1,6 @@
return {
"sindrets/diffview.nvim",
tag = "main",
--event = "VeryLazy",
opts = {},
}

View file

@ -11,12 +11,12 @@ return {
changedelete = { text = "~" }, changedelete = { text = "~" },
}, },
on_attach = function(bufnr) on_attach = function(bufnr)
vim.keymap.set( --vim.keymap.set(
"n", -- "n",
"<leader>ggh", -- "<leader>ggh",
require("gitsigns").preview_hunk, -- require("gitsigns").preview_hunk,
{ buffer = bufnr, desc = "Preview git hunk" } -- { buffer = bufnr, desc = "Preview git hunk" }
) --)
-- don't override the built-in and fugitive keymaps -- don't override the built-in and fugitive keymaps
local gs = package.loaded.gitsigns local gs = package.loaded.gitsigns

View file

@ -56,7 +56,8 @@ return {
{ "searchcount" }, { "searchcount" },
{ {
"buffers", "buffers",
show_filename_only = false, --show_filename_only = false,
show_filename_only = true,
--fmt = function(str) --fmt = function(str)
-- return str:sub(1, 1) -- return str:sub(1, 1)
--end, --end,

View file

@ -27,7 +27,6 @@ return {
["<leader>f"] = { name = "find shit" }, ["<leader>f"] = { name = "find shit" },
["<leader>g"] = { name = "git" }, ["<leader>g"] = { name = "git" },
["<leader>gl"] = { name = "git log" }, ["<leader>gl"] = { name = "git log" },
["<leader>gd"] = { name = "git diff" },
["<leader>q"] = { name = "trouble this buffer" }, ["<leader>q"] = { name = "trouble this buffer" },
["<leader>Q"] = { name = "trouble all buffers" }, ["<leader>Q"] = { name = "trouble all buffers" },
}, },

View file

@ -4,9 +4,8 @@
vim.g.mapleader = " " vim.g.mapleader = " "
--vim.keymap.set("n", "<leader>r", vim.cmd.Ex, { noremap = true, desc = "netrw File Browser" }) -- netrw file explorer --vim.keymap.set("n", "<leader>r", vim.cmd.Ex, { noremap = true, desc = "netrw File Browser" }) -- netrw file explorer
--vim.keymap.set("n", "<leader>e", ":Oil<CR>", { desc = "File navigation" })
vim.keymap.set("n", "<leader>e", ":Oil --float<CR>", { desc = "Oil" })
--vim.keymap.set("n", "<leader>e", "<cmd>lua require('oil').toggle_float('.')<CR>", { noremap = true, silent = true }) --vim.keymap.set("n", "<leader>e", "<cmd>lua require('oil').toggle_float('.')<CR>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>e", ":Oil --float<CR>", { desc = "Oil" })
-- List recently opened files -- List recently opened files
vim.keymap.set("n", "<leader>fo", ":Telescope oldfiles<CR>", { noremap = true, desc = "File history" }) vim.keymap.set("n", "<leader>fo", ":Telescope oldfiles<CR>", { noremap = true, desc = "File history" })
@ -27,7 +26,7 @@ vim.keymap.set(
vim.keymap.set("n", "<leader><leader>", ":Telescope buffers<CR>", { noremap = true, desc = "Show open buffers" }) vim.keymap.set("n", "<leader><leader>", ":Telescope buffers<CR>", { noremap = true, desc = "Show open buffers" })
-- todo-comments.nvim -- todo-comments.nvim
vim.keymap.set("n", "<leader>ft", ":TodoTelescope<CR>", { noremap = true, desc = "Find TODOs" }) vim.keymap.set("n", "<leader>ft", ":TodoTelescope<CR>", { noremap = true, desc = "Find TODOs" })
vim.keymap.set("n", "<leader>gs", ":Telescope git_status<CR>", { noremap = true, desc = "Git status" }) --vim.keymap.set("n", "<leader>gs", ":Telescope git_status<CR>", { noremap = true, desc = "Git status" })
vim.keymap.set( vim.keymap.set(
"n", "n",
"<leader>gla", "<leader>gla",
@ -35,7 +34,22 @@ vim.keymap.set(
{ noremap = true, desc = "Git log (across all files)" } { noremap = true, desc = "Git log (across all files)" }
) )
vim.keymap.set("n", "<leader>glf", ":Telescope git_bcommits<CR>", { noremap = true, desc = "Git log (this file)" }) vim.keymap.set("n", "<leader>glf", ":Telescope git_bcommits<CR>", { noremap = true, desc = "Git log (this file)" })
vim.keymap.set("n", "<leader>gdp", ":Gitsigns diffthis<CR>", { noremap = true, desc = "Git diff previous (this file)" }) --vim.keymap.set("n", "<leader>gdp", ":Gitsigns diffthis<CR>", { noremap = true, desc = "Git diff previous (this file)" })
--vim.keymap.set("n", "<leader>gd", ":Gitsigns diffthis<CR>", { noremap = true, desc = "Git diff previous (this file)" })
vim.keymap.set("n", "<leader>gd", function()
if next(require("diffview.lib").views) == nil then
vim.cmd("DiffviewOpen")
else
vim.cmd("DiffviewClose")
end
--end, { noremap = true, desc = "Diff this shit" })
end, { noremap = true, desc = "Toggle diff/stage UI " })
vim.keymap.set(
"n",
"<leader>gb",
":Gitsigns toggle_current_line_blame<CR>",
{ noremap = true, desc = "Toggle git blame" }
)
-- Remapping of existing Vim key binds -- Remapping of existing Vim key binds
vim.keymap.set("n", "w", "W") -- skip punctuation when moving to start of next word vim.keymap.set("n", "w", "W") -- skip punctuation when moving to start of next word