2024-06-06 12:24:49 +02:00
|
|
|
return {
|
|
|
|
|
|
|
|
-- depends on the git extra for highlighting and auto-completion of github issues/prs
|
|
|
|
{ import = "lazyvim.plugins.extras.lang.git" },
|
|
|
|
|
|
|
|
-- Octo
|
|
|
|
{
|
|
|
|
"pwntester/octo.nvim",
|
|
|
|
cmd = "Octo",
|
2024-06-06 14:53:17 +02:00
|
|
|
event = { { event = "BufReadCmd", pattern = "octo://*" } },
|
2024-06-06 12:24:49 +02:00
|
|
|
opts = {
|
|
|
|
enable_builtin = true,
|
|
|
|
default_to_projects_v2 = true,
|
|
|
|
default_merge_method = "squash",
|
|
|
|
picker = "telescope",
|
|
|
|
},
|
|
|
|
keys = {
|
2024-06-07 17:20:25 +05:45
|
|
|
{ "<leader>gi", "<cmd>Octo issue list<CR>", desc = "List Issues (Octo)" },
|
|
|
|
{ "<leader>gI", "<cmd>Octo issue search<CR>", desc = "Search Issues (Octo)" },
|
2024-06-06 12:24:49 +02:00
|
|
|
{ "<leader>gp", "<cmd>Octo pr list<CR>", desc = "List PRs (Octo)" },
|
|
|
|
{ "<leader>gP", "<cmd>Octo pr search<CR>", desc = "Search PRs (Octo)" },
|
|
|
|
{ "<leader>gr", "<cmd>Octo repo list<CR>", desc = "List Repos (Octo)" },
|
|
|
|
{ "<leader>gS", "<cmd>Octo search<CR>", desc = "Search (Octo)" },
|
2024-06-06 14:53:17 +02:00
|
|
|
|
2024-11-25 15:57:02 +02:00
|
|
|
{ "<localleader>a", "", desc = "+assignee (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>c", "", desc = "+comment/code (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>l", "", desc = "+label (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>i", "", desc = "+issue (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>r", "", desc = "+react (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>p", "", desc = "+pr (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>pr", "", desc = "+rebase (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>ps", "", desc = "+squash (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>v", "", desc = "+review (Octo)", ft = "octo" },
|
|
|
|
{ "<localleader>g", "", desc = "+goto_issue (Octo)", ft = "octo" },
|
2024-06-06 12:24:49 +02:00
|
|
|
{ "@", "@<C-x><C-o>", mode = "i", ft = "octo", silent = true },
|
|
|
|
{ "#", "#<C-x><C-o>", mode = "i", ft = "octo", silent = true },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
-- Octo Picker
|
|
|
|
{
|
|
|
|
"pwntester/octo.nvim",
|
|
|
|
opts = function(_, opts)
|
2024-06-25 00:24:38 +02:00
|
|
|
vim.treesitter.language.register("markdown", "octo")
|
2025-02-16 13:20:06 +02:00
|
|
|
if LazyVim.has_extra("editor.telescope") then
|
2024-06-06 12:24:49 +02:00
|
|
|
opts.picker = "telescope"
|
2025-02-16 13:20:06 +02:00
|
|
|
elseif LazyVim.has_extra("editor.fzf") then
|
2024-06-06 12:24:49 +02:00
|
|
|
opts.picker = "fzf-lua"
|
2025-02-16 13:20:06 +02:00
|
|
|
elseif LazyVim.has_extra("editor.snacks_picker") then
|
|
|
|
opts.picker = "snacks"
|
2024-06-06 12:24:49 +02:00
|
|
|
else
|
2025-02-16 13:20:06 +02:00
|
|
|
LazyVim.error("`octo.nvim` requires `telescope.nvim` or `fzf-lua` or `snacks.nvim`")
|
2024-06-06 12:24:49 +02:00
|
|
|
end
|
2024-06-06 16:05:55 +02:00
|
|
|
|
2024-06-09 11:42:58 +02:00
|
|
|
-- Keep some empty windows in sessions
|
|
|
|
vim.api.nvim_create_autocmd("ExitPre", {
|
|
|
|
group = vim.api.nvim_create_augroup("octo_exit_pre", { clear = true }),
|
|
|
|
callback = function(ev)
|
|
|
|
local keep = { "octo" }
|
|
|
|
for _, win in ipairs(vim.api.nvim_list_wins()) do
|
|
|
|
local buf = vim.api.nvim_win_get_buf(win)
|
|
|
|
if vim.tbl_contains(keep, vim.bo[buf].filetype) then
|
|
|
|
vim.bo[buf].buftype = "" -- set buftype to empty to keep the window
|
2024-06-06 16:05:55 +02:00
|
|
|
end
|
|
|
|
end
|
2024-06-09 11:42:58 +02:00
|
|
|
end,
|
|
|
|
})
|
2024-06-06 12:24:49 +02:00
|
|
|
end,
|
|
|
|
},
|
|
|
|
}
|