This plugin previously only supported the Delta reviewer. Thanks to work from @mrparalon it now supports Diffview also. This MR adjusts the requirements to account for this, and the README. It also addresses a small bug in the original implementation regarding an async file opening action, and applies formatting to the diffview file consistent with the rest of the project
47 lines
2.7 KiB
Lua
47 lines
2.7 KiB
Lua
local u = require("gitlab.utils")
|
|
local async = require("gitlab.async")
|
|
local server = require("gitlab.server")
|
|
local state = require("gitlab.state")
|
|
local reviewer = require("gitlab.reviewer")
|
|
local discussions = require("gitlab.actions.discussions")
|
|
local summary = require("gitlab.actions.summary")
|
|
local assignees_and_reviewers = require("gitlab.actions.assignees_and_reviewers")
|
|
local comment = require("gitlab.actions.comment")
|
|
local pipeline = require("gitlab.actions.pipeline")
|
|
local approvals = require("gitlab.actions.approvals")
|
|
|
|
local info = state.dependencies.info
|
|
local project_members = state.dependencies.project_members
|
|
local revisions = state.dependencies.revisions
|
|
|
|
return {
|
|
setup = function(args)
|
|
server.build() -- Builds the Go binary if it doesn't exist
|
|
state.setPluginConfiguration() -- Sets configuration from `.gitlab.nvim` file
|
|
state.merge_settings(args) -- Sets keymaps and other settings from setup function
|
|
reviewer.init() -- Picks and initializes reviewer (default is Delta)
|
|
u.has_reviewer(args.reviewer or "delta")
|
|
end,
|
|
-- Global Actions 🌎
|
|
summary = async.sequence({ info }, summary.summary),
|
|
approve = async.sequence({ info }, approvals.approve),
|
|
revoke = async.sequence({ info }, approvals.revoke),
|
|
add_reviewer = async.sequence({ info, project_members }, assignees_and_reviewers.add_reviewer),
|
|
delete_reviewer = async.sequence({ info, project_members }, assignees_and_reviewers.delete_reviewer),
|
|
add_assignee = async.sequence({ info, project_members }, assignees_and_reviewers.add_assignee),
|
|
delete_assignee = async.sequence({ info, project_members }, assignees_and_reviewers.delete_assignee),
|
|
create_comment = async.sequence({ info, revisions }, comment.create_comment),
|
|
create_note = async.sequence({ info }, comment.create_note),
|
|
review = async.sequence({ u.merge(info, { refresh = true }) }, function() reviewer.open() end),
|
|
pipeline = async.sequence({ info }, pipeline.open),
|
|
-- Discussion Tree Actions 🌴
|
|
toggle_discussions = async.sequence({ info }, discussions.toggle),
|
|
edit_comment = async.sequence({ info }, discussions.edit_comment),
|
|
delete_comment = async.sequence({ info }, discussions.delete_comment),
|
|
toggle_resolved = async.sequence({ info }, discussions.toggle_resolved),
|
|
reply = async.sequence({ info }, discussions.reply),
|
|
-- Other functions 🤷
|
|
state = state,
|
|
print_settings = state.print_settings,
|
|
}
|