local M = {} local function config_keymap(mode, lhs, rhs, options) if lhs == nil or lhs == "" then return end vim.api.nvim_set_keymap(mode, lhs, rhs, options) end local function config_keymaps() local cfg = require("git.config").config local options = { noremap = true, silent = true, expr = false, } config_keymap("n", cfg.keymaps.blame, "lua require('git.blame').blame()", options) config_keymap("n", cfg.keymaps.browse, "lua require('git.browse').open(false)", options) config_keymap("x", cfg.keymaps.browse, ": lua require('git.browse').open(true)", options) config_keymap("n", cfg.keymaps.open_pull_request, "lua require('git.browse').pull_request()", options) config_keymap( "n", cfg.keymaps.create_pull_request, "lua require('git.browse').create_pull_request()", options ) config_keymap("n", cfg.keymaps.diff, "lua require('git.diff').open()", options) config_keymap("n", cfg.keymaps.diff_close, "lua require('git.diff').close()", options) config_keymap("n", cfg.keymaps.revert, "lua require('git.revert').open(false)", options) config_keymap("n", cfg.keymaps.revert_file, "lua require('git.revert').open(true)", options) end local function config_commands() vim.api.nvim_create_user_command("GitBlame", 'lua require("git.blame").blame()', { bang = true, nargs = "*", }) vim.api.nvim_create_user_command("GitCreatePullRequest", 'lua require("git.browse").create_pull_request()', { bang = true, nargs = "*", }) vim.api.nvim_create_user_command("GitDiff", 'lua require("git.diff").open()', { bang = true, nargs = "*", }) vim.api.nvim_create_user_command("GitDiffClose", 'lua require("git.diff").close()', { bang = true, }) vim.api.nvim_create_user_command("Git", 'lua require("git.cmd").cmd()', { bang = true, nargs = "*", }) vim.api.nvim_create_user_command("GitRevert", 'lua require("git.revert").open(false)', { bang = true, }) vim.api.nvim_create_user_command("GitRevertFile", 'lua require("git.revert").open(true)', { bang = true, }) end function M.setup(cfg) require("git.config").setup(cfg) config_keymaps() config_commands() end return M