feat: change the pull request handling
This commit is contained in:
@@ -1,18 +1,21 @@
|
||||
----------------------------------------------------------------------------
|
||||
-- lua/gitea/telescope.lua
|
||||
--
|
||||
-- Minimal telescope integration for listing issues
|
||||
-- Minimal telescope integration for listing issues (and now PRs)
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
local M = {}
|
||||
local pickers = require("telescope.pickers")
|
||||
local finders = require("telescope.finders")
|
||||
local conf = require("telescope.config").values
|
||||
local actions = require("telescope.actions")
|
||||
local pickers = require("telescope.pickers")
|
||||
local finders = require("telescope.finders")
|
||||
local conf = require("telescope.config").values
|
||||
local actions = require("telescope.actions")
|
||||
local action_state = require("telescope.actions.state")
|
||||
|
||||
local issues_mod = require("gitea.issues")
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
-- Open selected issue
|
||||
----------------------------------------------------------------------------
|
||||
local function open_selected_issue(prompt_bufnr)
|
||||
local selection = action_state.get_selected_entry()
|
||||
actions.close(prompt_bufnr)
|
||||
@@ -23,6 +26,9 @@ local function open_selected_issue(prompt_bufnr)
|
||||
issues_mod.open_issue(nil, nil, number)
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
-- list_issues_in_telescope
|
||||
----------------------------------------------------------------------------
|
||||
function M.list_issues_in_telescope()
|
||||
issues_mod.list_issues(nil, nil, function(data)
|
||||
pickers.new({}, {
|
||||
@@ -47,4 +53,46 @@ function M.list_issues_in_telescope()
|
||||
end)
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
-- Open selected PR
|
||||
----------------------------------------------------------------------------
|
||||
local function open_selected_pr(prompt_bufnr)
|
||||
local selection = action_state.get_selected_entry()
|
||||
actions.close(prompt_bufnr)
|
||||
if not selection then return end
|
||||
|
||||
local pr_obj = selection.value
|
||||
local number = pr_obj.number
|
||||
local pulls_mod = require("gitea.pulls")
|
||||
pulls_mod.open_pull_in_buffer(nil, nil, number)
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
-- list_pulls_in_telescope
|
||||
----------------------------------------------------------------------------
|
||||
function M.list_pulls_in_telescope()
|
||||
local pulls_mod = require("gitea.pulls")
|
||||
pulls_mod.list_pulls(nil, nil, function(data)
|
||||
pickers.new({}, {
|
||||
prompt_title = "Gitea Pull Requests",
|
||||
finder = finders.new_table {
|
||||
results = data,
|
||||
entry_maker = function(pr)
|
||||
return {
|
||||
value = pr,
|
||||
display = ("#%d: %s"):format(pr.number, pr.title or ""),
|
||||
ordinal = ("%d %s"):format(pr.number, (pr.title or ""))
|
||||
}
|
||||
end
|
||||
},
|
||||
sorter = conf.generic_sorter({}),
|
||||
attach_mappings = function(prompt_bufnr, map)
|
||||
map("i", "<CR>", open_selected_pr)
|
||||
map("n", "<CR>", open_selected_pr)
|
||||
return true
|
||||
end
|
||||
}):find()
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user