Files
nix/dots/.config/nvim/lua/mr.lua
Hektor Misplon 41c2552cb1 feat(09-01): add work-cli home-manager module
- enable option, jira/vault sub-enables
- all config options matching config.py schema
- generates ~/.config/work/config.toml via home.file
- wires bash completion via programs.bash.initExtra
- package installed from inputs.work-cli.packages
2026-04-02 14:33:15 +02:00

45 lines
1.2 KiB
Lua

local M = {}
local function merge_base()
return vim.fn.system("git merge-base origin/main HEAD"):gsub("%s+", "")
end
function M.files()
local base = merge_base()
require("fzf-lua").fzf_exec("git diff --name-only " .. base .. "...HEAD", {
prompt = "MR files> ",
actions = {
["default"] = function(selected)
vim.cmd("edit " .. selected[1])
require("gitsigns").diffthis(base)
end,
},
})
end
function M.commits()
local base = merge_base()
require("fzf-lua").fzf_exec("git log --oneline " .. base .. "..HEAD", {
prompt = "MR commits> ",
actions = {
["default"] = function(selected)
local sha = selected[1]:match("^(%S+)")
require("fzf-lua").fzf_exec("git diff --name-only " .. sha .. "~1.." .. sha, {
prompt = sha:sub(1, 7) .. " files> ",
actions = {
["default"] = function(files)
vim.cmd("edit " .. files[1])
require("gitsigns").diffthis(sha .. "~1")
end,
},
})
end,
},
})
end
vim.api.nvim_create_user_command("MRFiles", M.files, {})
vim.api.nvim_create_user_command("MRCommits", M.commits, {})
return M