Replaced fugitive and signify with gitsigns

This commit is contained in:
2025-10-02 11:59:20 +01:00
parent 9b09ee5e87
commit 0d58c69b6d
3 changed files with 90 additions and 31 deletions

View File

@@ -12,6 +12,70 @@ return {
{ "<leader>h", group = "[H]arpoon" },
{ "<leader>x", group = "[X] Trouble" },
},
gitsigns = {
{
"<leader>gs",
function()
require("gitsigns").stage_hunk()
end,
desc = "[G]it [S]tage Hunk",
mode = { "n", "v" },
},
{
"<leader>gr",
function()
require("gitsigns").reset_hunk()
end,
desc = "[G]it [R]eset Hunk",
mode = { "n", "v" },
},
{
"<leader>gp",
function()
require("gitsigns").preview_hunk()
end,
desc = "[G]it [P]review Hunk",
mode = "n",
},
{
"<leader>gb",
function()
package.loaded.gitsigns.blame_line()
end,
desc = "[G]it [B]lame Line",
mode = "n",
},
{
"]c",
function()
if vim.wo.diff then
return "]c"
end
vim.schedule(function()
require("gitsigns").next_hunk()
end)
return "<Ignore>"
end,
desc = "Next Hunk",
mode = "n",
expr = true,
},
{
"[c",
function()
if vim.wo.diff then
return "[c"
end
vim.schedule(function()
require("gitsigns").prev_hunk()
end)
return "<Ignore>"
end,
desc = "Previous Hunk",
mode = "n",
expr = true,
},
},
harpoon = {
{
"<leader>ha",

View File

@@ -60,26 +60,6 @@ return { -- UI components and other visual elements are declared here
require("window-picker").setup()
end,
},
{ -- Adds git related signs to the gutter, as well as utilities for managing changes
"mhinz/vim-signify",
event = "VimEnter",
config = function()
-- defer config for 5ms. Old vim plugins can be janky in neovim
vim.defer_fn(function()
vim.g.signify_sign_show_count = 0
vim.g.signify_sign_add = ""
vim.g.signify_sign_change = ""
vim.g.signify_sign_delete = "_"
vim.g.signify_sign_delete_first_line = ""
vim.g.signify_sign_change_delete = "~"
vim.cmd.highlight({ "SignifySignAdd", "guifg=#449dab" })
vim.cmd.highlight({ "SignifySignChange", "guifg=#6183bb" })
vim.cmd.highlight({ "SignifySignDelete", "guifg=#914c54" })
vim.cmd.highlight({ "link", "SignifySignDeleteFirstLine", "SignifySignDelete" })
vim.cmd.highlight({ "link", "SignifySignChangeDelete", "SignifySignChange" })
end, 5)
end,
},
-- Modular, configurable status bar
{
"nvim-lualine/lualine.nvim",

View File

@@ -40,7 +40,22 @@ return { -- General programming utilities go here
dependencies = { "nvim-lua/plenary.nvim" },
keys = require("config.keys").todo_comments,
},
"tpope/vim-fugitive", -- Also want to add fugitive, since it's apparently a great git plugin
{
"lewis6991/gitsigns.nvim",
event = "VimEnter",
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
require("gitsigns").setup({
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
},
})
end,
},
"jlfwong/vim-mercenary", -- Mercenary is the mercurial equivalent of fugitive
{ -- Oil is a very nice buffer-based filetree editor
"stevearc/oil.nvim",