feat: fennelize gitsigns config

This commit is contained in:
Youwen Wu 2025-02-01 14:28:07 -08:00
parent 74e58bf808
commit bfc960ff3b
Signed by: youwen5
GPG key ID: 865658ED1FE61EC3
2 changed files with 118 additions and 60 deletions

63
fnl/plugins/gitsigns.fnl Normal file
View file

@ -0,0 +1,63 @@
{1 :gitsigns.nvim
:after (fn []
((. (require :gitsigns) :setup) {:on_attach (fn [bufnr]
(local gitsigns
(require :gitsigns))
(fn map [mode l r opts]
(set-forcibly! opts
(or opts
{}))
(set opts.buffer
bufnr)
(vim.keymap.set mode
l r
opts))
(map :n "]c"
(fn []
(if vim.wo.diff
(vim.cmd.normal {1 "]c"
:bang true})
(gitsigns.nav_hunk :next))))
(map :n "[c"
(fn []
(if vim.wo.diff
(vim.cmd.normal {1 "[c"
:bang true})
(gitsigns.nav_hunk :prev))))
(map :n :<leader>gs
gitsigns.stage_hunk)
(map :n :<leader>gr
gitsigns.reset_hunk)
(map :v :<leader>gs
(fn []
(gitsigns.stage_hunk [(vim.fn.line ".")
(vim.fn.line :v)])))
(map :v :<leader>gr
(fn []
(gitsigns.reset_hunk [(vim.fn.line ".")
(vim.fn.line :v)])))
(map :n :<leader>gS
gitsigns.stage_buffer)
(map :n :<leader>gu
gitsigns.undo_stage_hunk)
(map :n :<leader>gR
gitsigns.reset_buffer)
(map :n :<leader>gp
gitsigns.preview_hunk)
(map :n :<leader>gb
(fn []
(gitsigns.blame_line {:full true})))
(map :n :<leader>gb
gitsigns.toggle_current_line_blame)
(map :n :<leader>gd
gitsigns.diffthis)
(map :n :<leader>gD
(fn []
(gitsigns.diffthis "~")))
(map :n :<leader>gtd
gitsigns.toggle_deleted)
(map [:o :x] :ih
":<C-U>Gitsigns select_hunk<CR>"))}))
:event :BufEnter}

115
lua/plugins/gitsigns.lua generated
View file

@ -1,60 +1,55 @@
return { -- [nfnl] Compiled from ./fnl/plugins/gitsigns.fnl by https://github.com/Olical/nfnl, do not edit.
"gitsigns.nvim", local function _1_()
event = "BufEnter", local function _2_(bufnr)
after = function() local gitsigns = require("gitsigns")
require("gitsigns").setup({ local function map(mode, l, r, opts)
on_attach = function(bufnr) opts = (opts or {})
local gitsigns = require("gitsigns") opts.buffer = bufnr
return vim.keymap.set(mode, l, r, opts)
local function map(mode, l, r, opts) end
opts = opts or {} local function _3_()
opts.buffer = bufnr if vim.wo.diff then
vim.keymap.set(mode, l, r, opts) return vim.cmd.normal({"]c", bang = true})
end else
return gitsigns.nav_hunk("next")
-- Navigation end
map("n", "]c", function() end
if vim.wo.diff then map("n", "]c", _3_)
vim.cmd.normal({ "]c", bang = true }) local function _5_()
else if vim.wo.diff then
gitsigns.nav_hunk("next") return vim.cmd.normal({"[c", bang = true})
end else
end) return gitsigns.nav_hunk("prev")
end
map("n", "[c", function() end
if vim.wo.diff then map("n", "[c", _5_)
vim.cmd.normal({ "[c", bang = true }) map("n", "<leader>gs", gitsigns.stage_hunk)
else map("n", "<leader>gr", gitsigns.reset_hunk)
gitsigns.nav_hunk("prev") local function _7_()
end return gitsigns.stage_hunk({vim.fn.line("."), vim.fn.line("v")})
end) end
map("v", "<leader>gs", _7_)
-- Actions local function _8_()
map("n", "<leader>gs", gitsigns.stage_hunk) return gitsigns.reset_hunk({vim.fn.line("."), vim.fn.line("v")})
map("n", "<leader>gr", gitsigns.reset_hunk) end
map("v", "<leader>gs", function() map("v", "<leader>gr", _8_)
gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) map("n", "<leader>gS", gitsigns.stage_buffer)
end) map("n", "<leader>gu", gitsigns.undo_stage_hunk)
map("v", "<leader>gr", function() map("n", "<leader>gR", gitsigns.reset_buffer)
gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) map("n", "<leader>gp", gitsigns.preview_hunk)
end) local function _9_()
map("n", "<leader>gS", gitsigns.stage_buffer) return gitsigns.blame_line({full = true})
map("n", "<leader>gu", gitsigns.undo_stage_hunk) end
map("n", "<leader>gR", gitsigns.reset_buffer) map("n", "<leader>gb", _9_)
map("n", "<leader>gp", gitsigns.preview_hunk) map("n", "<leader>gb", gitsigns.toggle_current_line_blame)
map("n", "<leader>gb", function() map("n", "<leader>gd", gitsigns.diffthis)
gitsigns.blame_line({ full = true }) local function _10_()
end) return gitsigns.diffthis("~")
map("n", "<leader>gb", gitsigns.toggle_current_line_blame) end
map("n", "<leader>gd", gitsigns.diffthis) map("n", "<leader>gD", _10_)
map("n", "<leader>gD", function() map("n", "<leader>gtd", gitsigns.toggle_deleted)
gitsigns.diffthis("~") return map({"o", "x"}, "ih", ":<C-U>Gitsigns select_hunk<CR>")
end) end
map("n", "<leader>gtd", gitsigns.toggle_deleted) return require("gitsigns").setup({on_attach = _2_})
end
-- Text object return {"gitsigns.nvim", after = _1_, event = "BufEnter"}
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>")
end,
})
end,
}