- 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
45 lines
1.2 KiB
Lua
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
|