Skip to content

Commit 106e467

Browse files
committed
Cleanup
1 parent 6b0ebf8 commit 106e467

File tree

4 files changed

+112
-114
lines changed

4 files changed

+112
-114
lines changed

init.lua

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ require("lazy").setup({
1818
require("plugins.NeoTree"),
1919
require("plugins.auto_pairs"),
2020
-- require("plugins.Bufferline"),
21-
require("plugins.git_signs"),
2221
require("plugins.which_key"),
2322
require("plugins.my_terminal"),
2423
require("plugins.lualine"),
@@ -69,7 +68,6 @@ require("lazy").setup({
6968
require("plugins.mdx"),
7069
require("plugins.inline"),
7170
require("plugins.git"),
72-
require("plugins.gitlink"),
7371
require("plugins.chatbot"),
7472
require("plugins.rovo-dev"),
7573
-- require("plugins.smooth_scroll"),

lua/plugins/git.lua

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,116 @@ return {
1919
{ "<leader>F", mode = "n", "<cmd>Fugit2<cr>", desc = "Git UI (Fugit2)" },
2020
},
2121
},
22+
23+
{
24+
"lewis6991/gitsigns.nvim",
25+
opts = {
26+
signs = {
27+
add = { text = "" },
28+
change = { text = "" },
29+
delete = { text = "" },
30+
topdelete = { text = "" },
31+
changedelete = { text = "~" },
32+
},
33+
on_attach = function(bufnr)
34+
local gitsigns = require("gitsigns")
35+
36+
local function map(mode, l, r, opts)
37+
opts = opts or {}
38+
opts.buffer = bufnr
39+
vim.keymap.set(mode, l, r, opts)
40+
end
41+
42+
-- Navigation
43+
map("n", "<leader>g]c", function()
44+
if vim.wo.diff then
45+
vim.cmd.normal({ "<leader>g]c", bang = true })
46+
else
47+
gitsigns.nav_hunk("next")
48+
end
49+
end, { desc = "󰅁 next git change" })
50+
51+
map("n", "<leader>g[c", function()
52+
if vim.wo.diff then
53+
vim.cmd.normal({ "<leader>g[c", bang = true })
54+
else
55+
gitsigns.nav_hunk("prev")
56+
end
57+
end, { desc = "󰅂 previous git change" })
58+
59+
-- Actions
60+
-- visual mode
61+
map("v", "<leader>gss", function()
62+
gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
63+
end, { desc = " stage hunk" })
64+
65+
map("v", "<leader>grr", function()
66+
gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
67+
end, { desc = "󰍉 reset hunk" })
68+
69+
-- normal mode
70+
map("n", "<leader>gs", gitsigns.stage_hunk, { desc = " stage hunk" })
71+
map("n", "<leader>gr", gitsigns.reset_hunk, { desc = "󰍉 reset hunk" })
72+
73+
map("n", "<leader>gS", gitsigns.stage_buffer, { desc = "󰈙 stage buffer" })
74+
map("n", "<leader>gu", gitsigns.undo_stage_hunk, { desc = " undo stage hunk" })
75+
76+
map("n", "<leader>gR", gitsigns.reset_buffer, { desc = "󰁯 reset buffer" })
77+
map("n", "<leader>gp", gitsigns.preview_hunk, { desc = " preview hunk" })
78+
map("n", "<leader>gb", gitsigns.blame_line, { desc = "󰊢 blame line" })
79+
80+
map("n", "<leader>gd", gitsigns.diffthis, { desc = " diff against index" })
81+
82+
map("n", "<leader>gD", function()
83+
gitsigns.diffthis("@")
84+
end, { desc = "󰜘 diff against last commit" })
85+
86+
-- Toggles
87+
88+
map("n", "<leader>gt", gitsigns.toggle_current_line_blame, { desc = "󱂈 toggle blame line" })
89+
90+
map("n", "<leader>gD", gitsigns.preview_hunk_inline, { desc = "󰮘 show deleted inline" })
91+
end,
92+
},
93+
},
94+
95+
{
96+
"ruifm/gitlinker.nvim",
97+
dependencies = "nvim-lua/plenary.nvim",
98+
config = function()
99+
require("gitlinker").setup({
100+
opts = {
101+
add_current_line_on_normal_mode = true,
102+
print_url = true,
103+
action_callback = require("gitlinker.actions").copy_to_clipboard,
104+
},
105+
mappings = nil,
106+
})
107+
108+
local linker = require("gitlinker")
109+
local actions = require("gitlinker.actions")
110+
111+
-- 1. Copy Link (Normal & Visual)
112+
vim.keymap.set("n", "<leader>gc", function()
113+
linker.get_buf_range_url("n")
114+
end, { desc = "Git: Copy link to clipboard" })
115+
vim.keymap.set("v", "<leader>gc", function()
116+
linker.get_buf_range_url("v")
117+
end, { desc = "Git: Copy link to clipboard" })
118+
119+
-- 2. Open in Browser (Normal & Visual)
120+
vim.keymap.set("n", "<leader>go", function()
121+
linker.get_buf_range_url("n", { action_callback = actions.open_in_browser })
122+
end, { desc = "Git: Open in browser" })
123+
124+
vim.keymap.set("v", "<leader>go", function()
125+
linker.get_buf_range_url("v", { action_callback = actions.open_in_browser })
126+
end, { desc = "Git: Open in browser" })
127+
128+
-- 3. Repo Homepage
129+
vim.keymap.set("n", "<leader>gg", function()
130+
linker.get_repo_url()
131+
end, { desc = "Git: Copy repo homepage" })
132+
end,
133+
},
22134
}

lua/plugins/git_signs.lua

Lines changed: 0 additions & 73 deletions
This file was deleted.

lua/plugins/gitlink.lua

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)