From afae331767197c6b8b7ac4c84edc122dd19a42e4 Mon Sep 17 00:00:00 2001 From: Carlos Gomes Date: Tue, 13 Feb 2024 20:00:23 +0100 Subject: [PATCH] Add keymaps for start, resume, submit and discard Reviews --- README.md | 6 ++++++ lua/octo/commands.lua | 14 ++------------ lua/octo/config.lua | 6 ++++++ lua/octo/mappings.lua | 25 +++++++++++++++++++------ lua/octo/reviews/init.lua | 18 ++++++++++++++++++ 5 files changed, 51 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 5a0e58bc..37097782 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,8 @@ require"octo".setup({ react_rocket = { lhs = "rr", desc = "add/remove 🚀 reaction" }, react_laugh = { lhs = "rl", desc = "add/remove 😄 reaction" }, react_confused = { lhs = "rc", desc = "add/remove 😕 reaction" }, + review_start = { lhs = "vs", desc = "start a review for the current PR" }, + review_resume = { lhs = "vr", desc = "resume a pending review for the current PR" }, }, review_thread = { goto_issue = { lhs = "gi", desc = "navigate to a local repo issue" }, @@ -251,6 +253,8 @@ require"octo".setup({ close_review_tab = { lhs = "", desc = "close review tab" }, }, review_diff = { + submit_review = { lhs = "vs", desc = "submit review" }, + discard_review = { lhs = "vd", desc = "discard review" }, add_review_comment = { lhs = "ca", desc = "add a new review comment" }, add_review_suggestion = { lhs = "sa", desc = "add a new review suggestion" }, focus_files = { lhs = "e", desc = "move focus to changed file panel" }, @@ -266,6 +270,8 @@ require"octo".setup({ goto_file = { lhs = "gf", desc = "go to file" }, }, file_panel = { + submit_review = { lhs = "vs", desc = "submit review" }, + discard_review = { lhs = "vd", desc = "discard review" }, next_entry = { lhs = "j", desc = "move to next changed file" }, prev_entry = { lhs = "k", desc = "move to previous changed file" }, select_entry = { lhs = "", desc = "show selected changed file diffs" }, diff --git a/lua/octo/commands.lua b/lua/octo/commands.lua index f7b0d1fd..31501059 100644 --- a/lua/octo/commands.lua +++ b/lua/octo/commands.lua @@ -204,20 +204,10 @@ function M.setup() end end, submit = function() - local current_review = reviews.get_current_review() - if current_review then - current_review:collect_submit_info() - else - utils.error "Please start or resume a review first" - end + reviews.submit_review() end, discard = function() - local current_review = reviews.get_current_review() - if current_review then - current_review:discard() - else - utils.error "Please start or resume a review first" - end + reviews.discard_review() end, close = function() if reviews.get_current_review() then diff --git a/lua/octo/config.lua b/lua/octo/config.lua index e163299b..75aeb2e0 100644 --- a/lua/octo/config.lua +++ b/lua/octo/config.lua @@ -205,6 +205,8 @@ function M.get_default_values() react_rocket = { lhs = "rr", desc = "add/remove 🚀 reaction" }, react_laugh = { lhs = "rl", desc = "add/remove 😄 reaction" }, react_confused = { lhs = "rc", desc = "add/remove 😕 reaction" }, + review_start = { lhs = "vs", desc = "start a review for the current PR" }, + review_resume = { lhs = "vr", desc = "resume a pending review for the current PR" }, }, review_thread = { goto_issue = { lhs = "gi", desc = "navigate to a local repo issue" }, @@ -234,6 +236,8 @@ function M.get_default_values() close_review_tab = { lhs = "", desc = "close review tab" }, }, review_diff = { + submit_review = { lhs = "vs", desc = "submit review" }, + discard_review = { lhs = "vd", desc = "discard review" }, add_review_comment = { lhs = "ca", desc = "add a new review comment" }, add_review_suggestion = { lhs = "sa", desc = "add a new review suggestion" }, focus_files = { lhs = "e", desc = "move focus to changed file panel" }, @@ -249,6 +253,8 @@ function M.get_default_values() goto_file = { lhs = "gf", desc = "go to file" }, }, file_panel = { + submit_review = { lhs = "vs", desc = "submit review" }, + discard_review = { lhs = "vd", desc = "discard review" }, next_entry = { lhs = "j", desc = "move to next changed file" }, prev_entry = { lhs = "k", desc = "move to previous changed file" }, select_entry = { lhs = "", desc = "show selected changed file diffs" }, diff --git a/lua/octo/mappings.lua b/lua/octo/mappings.lua index 39d981af..68b57ee8 100644 --- a/lua/octo/mappings.lua +++ b/lua/octo/mappings.lua @@ -111,14 +111,27 @@ return { react_confused = function() require("octo.commands").reaction_action "confused" end, + review_start = function() + reviews.start_review() + end, + review_resume = function() + reviews.resume_review() + end, + discard_review = function() + reviews.discard_review() + end, + submit_review = function() + reviews.submit_review() + end, add_review_comment = function() - require("octo.reviews").add_review_comment(false) + reviews.add_review_comment(false) end, add_review_suggestion = function() - require("octo.reviews").add_review_comment(true) + reviews.add_review_comment(true) end, close_review_tab = function() - require("octo.reviews").close() + local tabpage = vim.api.nvim_get_current_tabpage() + reviews.close(tabpage) end, next_thread = function() require("octo.reviews.file-panel").next_thread() @@ -207,15 +220,15 @@ return { vim.api.nvim_win_close(vim.api.nvim_get_current_win()) end, approve_review = function() - local current_review = require("octo.reviews").get_current_review() + local current_review = reviews.get_current_review() current_review:submit "APPROVE" end, comment_review = function() - local current_review = require("octo.reviews").get_current_review() + local current_review = reviews.get_current_review() current_review:submit "COMMENT" end, request_changes = function() - local current_review = require("octo.reviews").get_current_review() + local current_review = reviews.get_current_review() current_review:submit "REQUEST_CHANGES" end, toggle_viewed = function() diff --git a/lua/octo/reviews/init.lua b/lua/octo/reviews/init.lua index e7950787..7fd758da 100644 --- a/lua/octo/reviews/init.lua +++ b/lua/octo/reviews/init.lua @@ -527,4 +527,22 @@ function M.resume_review() end end +function M.discard_review() + local current_review = M.get_current_review() + if current_review then + current_review:discard() + else + utils.error "Please start or resume a review first" + end +end + +function M.submit_review() + local current_review = M.get_current_review() + if current_review then + current_review:collect_submit_info() + else + utils.error "Please start or resume a review first" + end +end + return M