212 lines
6.1 KiB
Lua
212 lines
6.1 KiB
Lua
return {
|
|
{
|
|
"tanvirtin/vgit.nvim",
|
|
dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons" },
|
|
-- Lazy loading on 'VimEnter' event is necessary.
|
|
event = "VimEnter",
|
|
config = function()
|
|
require("vgit").setup(
|
|
-- keymaps = {
|
|
-- ["n <C-k>"] = {
|
|
-- function()
|
|
-- require("vgit").hunk_up()
|
|
-- end,
|
|
-- desc = "VGit Hunk Up",
|
|
-- },
|
|
-- ["n <C-j>"] = {
|
|
-- function()
|
|
-- require("vgit").hunk_down()
|
|
-- end,
|
|
-- desc = "VGit Hunk Down",
|
|
-- },
|
|
-- ["n <leader>gs"] = {
|
|
-- function()
|
|
-- require("vgit").buffer_hunk_stage()
|
|
-- end,
|
|
-- desc = "VGit Stage Hunk",
|
|
-- },
|
|
-- ["n <leader>gr"] = {
|
|
-- function()
|
|
-- require("vgit").buffer_hunk_reset()
|
|
-- end,
|
|
-- desc = "VGit Reset Hunk",
|
|
-- },
|
|
-- ["n <leader>gp"] = {
|
|
-- function()
|
|
-- require("vgit").buffer_hunk_preview()
|
|
-- end,
|
|
-- desc = "VGit Preview Hunk",
|
|
-- },
|
|
-- ["n <leader>gb"] = {
|
|
-- function()
|
|
-- require("vgit").buffer_blame_preview()
|
|
-- end,
|
|
-- desc = "VGit Blame Preview",
|
|
-- },
|
|
-- ["n <leader>gf"] = {
|
|
-- function()
|
|
-- require("vgit").buffer_diff_preview()
|
|
-- end,
|
|
-- desc = "VGit Diff Preview",
|
|
-- },
|
|
-- ["n <leader>gh"] = {
|
|
-- function()
|
|
-- require("vgit").buffer_history_preview()
|
|
-- end,
|
|
-- desc = "VGit History Preview",
|
|
-- },
|
|
-- ["n <leader>gu"] = {
|
|
-- function()
|
|
-- require("vgit").buffer_reset()
|
|
-- end,
|
|
-- desc = "VGit Reset Buffer",
|
|
-- },
|
|
-- ["n <leader>gcm"] = {
|
|
-- function()
|
|
-- require("vgit").project_commit_preview()
|
|
-- end,
|
|
-- desc = "VGit Commit Preview",
|
|
-- },
|
|
-- ["n <leader>gcc"] = {
|
|
-- function()
|
|
-- require("vgit").project_commits_preview()
|
|
-- end,
|
|
-- desc = "VGit Commits Preview",
|
|
-- },
|
|
-- ["n <leader>gcl"] = {
|
|
-- function()
|
|
-- require("vgit").project_logs_preview()
|
|
-- end,
|
|
-- desc = "VGit Logs Preview",
|
|
-- },
|
|
-- ["n <leader>gd"] = {
|
|
-- function()
|
|
-- require("vgit").project_diff_preview()
|
|
-- end,
|
|
-- desc = "VGit Project Diff",
|
|
-- },
|
|
-- ["n <leader>gx"] = {
|
|
-- function()
|
|
-- require("vgit").toggle_diff_preference()
|
|
-- end,
|
|
-- desc = "VGit Toggle Diff Preference",
|
|
-- },
|
|
-- },
|
|
)
|
|
end,
|
|
|
|
vim.keymap.set("n", "<C-k>", function()
|
|
require("vgit").hunk_up()
|
|
end, { desc = "VGit Hunk Up" }),
|
|
|
|
vim.keymap.set("n", "<C-j>", function()
|
|
require("vgit").hunk_down()
|
|
end, { desc = "VGit Hunk Down" }),
|
|
|
|
vim.keymap.set("n", "<leader>gs", function()
|
|
require("vgit").buffer_hunk_stage()
|
|
end, { desc = "VGit Stage Hunk" }),
|
|
|
|
vim.keymap.set("n", "<leader>gr", function()
|
|
require("vgit").buffer_hunk_reset()
|
|
end, { desc = "VGit Reset Hunk" }),
|
|
|
|
vim.keymap.set("n", "<leader>gp", function()
|
|
require("vgit").buffer_hunk_preview()
|
|
end, { desc = "VGit Preview Hunk" }),
|
|
|
|
vim.keymap.set("n", "<leader>gb", function()
|
|
require("vgit").buffer_blame_preview()
|
|
end, { desc = "VGit Blame Preview" }),
|
|
|
|
vim.keymap.set("n", "<leader>gf", function()
|
|
require("vgit").buffer_diff_preview()
|
|
end, { desc = "VGit Diff Preview" }),
|
|
|
|
vim.keymap.set("n", "<leader>gh", function()
|
|
require("vgit").buffer_history_preview()
|
|
end, { desc = "VGit History Preview" }),
|
|
|
|
vim.keymap.set("n", "<leader>gu", function()
|
|
require("vgit").buffer_reset()
|
|
end, { desc = "VGit Reset Buffer" }),
|
|
|
|
vim.keymap.set("n", "<leader>gcm", function()
|
|
require("vgit").project_commit_preview()
|
|
end, { desc = "VGit Commit Preview" }),
|
|
|
|
vim.keymap.set("n", "<leader>gcc", function()
|
|
require("vgit").project_commits_preview()
|
|
end, { desc = "VGit Commits Preview" }),
|
|
|
|
vim.keymap.set("n", "<leader>gcl", function()
|
|
require("vgit").project_logs_preview()
|
|
end, { desc = "VGit Logs Preview" }),
|
|
|
|
vim.keymap.set("n", "<leader>gd", function()
|
|
require("vgit").project_diff_preview()
|
|
end, { desc = "VGit Project Diff" }),
|
|
|
|
vim.keymap.set("n", "<leader>gx", function()
|
|
require("vgit").toggle_diff_preference()
|
|
end, { desc = "VGit Toggle Diff Preference" }),
|
|
},
|
|
|
|
{
|
|
"lewis6991/gitsigns.nvim",
|
|
opts = {
|
|
signs = {
|
|
add = { text = "┃" },
|
|
change = { text = "┃" },
|
|
delete = { text = "_" },
|
|
topdelete = { text = "‾" },
|
|
changedelete = { text = "~" },
|
|
untracked = { text = "┆" },
|
|
},
|
|
signs_staged = {
|
|
add = { text = "┃" },
|
|
change = { text = "┃" },
|
|
delete = { text = "_" },
|
|
topdelete = { text = "‾" },
|
|
changedelete = { text = "~" },
|
|
untracked = { text = "┆" },
|
|
},
|
|
signs_staged_enable = true,
|
|
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
|
numhl = true, -- Toggle with `:Gitsigns toggle_numhl`
|
|
linehl = true, -- Toggle with `:Gitsigns toggle_linehl`
|
|
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
|
watch_gitdir = {
|
|
follow_files = true,
|
|
},
|
|
auto_attach = true,
|
|
attach_to_untracked = false,
|
|
current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
|
current_line_blame_opts = {
|
|
virt_text = true,
|
|
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
|
|
delay = 300,
|
|
ignore_whitespace = true,
|
|
virt_text_priority = 100,
|
|
},
|
|
current_line_blame_formatter = "<author>, <author_time:%R> - <summary>",
|
|
sign_priority = 6,
|
|
update_debounce = 100,
|
|
status_formatter = nil, -- Use default
|
|
max_file_length = 40000, -- Disable if file is longer than this (in lines)
|
|
preview_config = {
|
|
-- Options passed to nvim_open_win
|
|
border = "single",
|
|
style = "minimal",
|
|
relative = "cursor",
|
|
row = 0,
|
|
col = 1,
|
|
},
|
|
|
|
vim.keymap.set("n", "<leader>gr", "<cmd>Gitsigns refresh<CR>", { desc = "Gitsigns Refresh" }),
|
|
vim.keymap.set("n", "<leader>gs", "<cmd>Gitsigns toggle_signs<CR>", { desc = "Gitsigns ToggleSigns" }),
|
|
vim.keymap.set("n", "<leader>gl", "<cmd>Gitsigns toggle_linehl<CR>", { desc = "Gitsigns ToggleLine" }),
|
|
vim.keymap.set("n", "<leader>gw", "<cmd>Gitsigns toggle_word_diff<CR>", { desc = "Gitsigns ToggleWord" }),
|
|
},
|
|
},
|
|
}
|