From bfc960ff3b2a085da2f93bfe071a1fc4cd853aef Mon Sep 17 00:00:00 2001 From: Youwen Wu Date: Sat, 1 Feb 2025 14:28:07 -0800 Subject: [PATCH] feat: fennelize gitsigns config --- fnl/plugins/gitsigns.fnl | 63 +++++++++++++++++++++ lua/plugins/gitsigns.lua | 115 +++++++++++++++++++-------------------- 2 files changed, 118 insertions(+), 60 deletions(-) create mode 100644 fnl/plugins/gitsigns.fnl diff --git a/fnl/plugins/gitsigns.fnl b/fnl/plugins/gitsigns.fnl new file mode 100644 index 0000000..027bdbb --- /dev/null +++ b/fnl/plugins/gitsigns.fnl @@ -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 :gs + gitsigns.stage_hunk) + (map :n :gr + gitsigns.reset_hunk) + (map :v :gs + (fn [] + (gitsigns.stage_hunk [(vim.fn.line ".") + (vim.fn.line :v)]))) + (map :v :gr + (fn [] + (gitsigns.reset_hunk [(vim.fn.line ".") + (vim.fn.line :v)]))) + (map :n :gS + gitsigns.stage_buffer) + (map :n :gu + gitsigns.undo_stage_hunk) + (map :n :gR + gitsigns.reset_buffer) + (map :n :gp + gitsigns.preview_hunk) + (map :n :gb + (fn [] + (gitsigns.blame_line {:full true}))) + (map :n :gb + gitsigns.toggle_current_line_blame) + (map :n :gd + gitsigns.diffthis) + (map :n :gD + (fn [] + (gitsigns.diffthis "~"))) + (map :n :gtd + gitsigns.toggle_deleted) + (map [:o :x] :ih + ":Gitsigns select_hunk"))})) + :event :BufEnter} diff --git a/lua/plugins/gitsigns.lua b/lua/plugins/gitsigns.lua index c7ed690..13e7b07 100644 --- a/lua/plugins/gitsigns.lua +++ b/lua/plugins/gitsigns.lua @@ -1,60 +1,55 @@ -return { - "gitsigns.nvim", - event = "BufEnter", - after = function() - require("gitsigns").setup({ - on_attach = function(bufnr) - local gitsigns = require("gitsigns") - - local function map(mode, l, r, opts) - opts = opts or {} - opts.buffer = bufnr - vim.keymap.set(mode, l, r, opts) - end - - -- Navigation - map("n", "]c", function() - if vim.wo.diff then - vim.cmd.normal({ "]c", bang = true }) - else - gitsigns.nav_hunk("next") - end - end) - - map("n", "[c", function() - if vim.wo.diff then - vim.cmd.normal({ "[c", bang = true }) - else - gitsigns.nav_hunk("prev") - end - end) - - -- Actions - map("n", "gs", gitsigns.stage_hunk) - map("n", "gr", gitsigns.reset_hunk) - map("v", "gs", function() - gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) - end) - map("v", "gr", function() - gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) - end) - map("n", "gS", gitsigns.stage_buffer) - map("n", "gu", gitsigns.undo_stage_hunk) - map("n", "gR", gitsigns.reset_buffer) - map("n", "gp", gitsigns.preview_hunk) - map("n", "gb", function() - gitsigns.blame_line({ full = true }) - end) - map("n", "gb", gitsigns.toggle_current_line_blame) - map("n", "gd", gitsigns.diffthis) - map("n", "gD", function() - gitsigns.diffthis("~") - end) - map("n", "gtd", gitsigns.toggle_deleted) - - -- Text object - map({ "o", "x" }, "ih", ":Gitsigns select_hunk") - end, - }) - end, -} +-- [nfnl] Compiled from ./fnl/plugins/gitsigns.fnl by https://github.com/Olical/nfnl, do not edit. +local function _1_() + local function _2_(bufnr) + local gitsigns = require("gitsigns") + local function map(mode, l, r, opts) + opts = (opts or {}) + opts.buffer = bufnr + return vim.keymap.set(mode, l, r, opts) + end + local function _3_() + if vim.wo.diff then + return vim.cmd.normal({"]c", bang = true}) + else + return gitsigns.nav_hunk("next") + end + end + map("n", "]c", _3_) + local function _5_() + if vim.wo.diff then + return vim.cmd.normal({"[c", bang = true}) + else + return gitsigns.nav_hunk("prev") + end + end + map("n", "[c", _5_) + map("n", "gs", gitsigns.stage_hunk) + map("n", "gr", gitsigns.reset_hunk) + local function _7_() + return gitsigns.stage_hunk({vim.fn.line("."), vim.fn.line("v")}) + end + map("v", "gs", _7_) + local function _8_() + return gitsigns.reset_hunk({vim.fn.line("."), vim.fn.line("v")}) + end + map("v", "gr", _8_) + map("n", "gS", gitsigns.stage_buffer) + map("n", "gu", gitsigns.undo_stage_hunk) + map("n", "gR", gitsigns.reset_buffer) + map("n", "gp", gitsigns.preview_hunk) + local function _9_() + return gitsigns.blame_line({full = true}) + end + map("n", "gb", _9_) + map("n", "gb", gitsigns.toggle_current_line_blame) + map("n", "gd", gitsigns.diffthis) + local function _10_() + return gitsigns.diffthis("~") + end + map("n", "gD", _10_) + map("n", "gtd", gitsigns.toggle_deleted) + return map({"o", "x"}, "ih", ":Gitsigns select_hunk") + end + return require("gitsigns").setup({on_attach = _2_}) +end +return {"gitsigns.nvim", after = _1_, event = "BufEnter"}