mirror of
https://github.com/kristoferssolo/SoloVim.git
synced 2026-02-04 06:42:05 +00:00
feat: add neogit
This commit is contained in:
@@ -1,36 +0,0 @@
|
||||
return {
|
||||
"tpope/vim-fugitive",
|
||||
lazy = false,
|
||||
keys = {
|
||||
{ "<leader>gg", vim.cmd.G, desc = "[G]it" },
|
||||
{ "<leader>gd", vim.cmd.Gdiffsplit, desc = "[G]it [D]iff" },
|
||||
{
|
||||
"<leader>gh",
|
||||
function()
|
||||
vim.cmd.diffget("//2")
|
||||
end,
|
||||
desc = "[G]it Select Left",
|
||||
},
|
||||
{
|
||||
"<leader>gl",
|
||||
function()
|
||||
vim.cmd.diffget("//3")
|
||||
end,
|
||||
desc = "[G]it Select Right",
|
||||
},
|
||||
{
|
||||
"<leader>gp",
|
||||
function()
|
||||
vim.cmd.Git("pull --rebase")
|
||||
end,
|
||||
desc = "[G]it [P]ull",
|
||||
},
|
||||
{
|
||||
"<leader>gP",
|
||||
function()
|
||||
vim.cmd.Git("push -u origin")
|
||||
end,
|
||||
desc = "[G]it [P]ush",
|
||||
},
|
||||
},
|
||||
}
|
||||
271
lua/plugins/neogit.lua
Normal file
271
lua/plugins/neogit.lua
Normal file
@@ -0,0 +1,271 @@
|
||||
return {
|
||||
"NeogitOrg/neogit",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim", -- required
|
||||
"sindrets/diffview.nvim", -- optional - Diff integration
|
||||
|
||||
-- Only one of these is needed, not both.
|
||||
"nvim-telescope/telescope.nvim", -- optional
|
||||
},
|
||||
cmd = { "Neogit" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>gg",
|
||||
function()
|
||||
require("neogit").open({ kind = "split" })
|
||||
end,
|
||||
desc = "[G]it",
|
||||
},
|
||||
{ "<leader>gd", vim.cmd.DiffviewOpen, desc = "[G]it [D]iff" },
|
||||
},
|
||||
opts = {
|
||||
-- Hides the hints at the top of the status buffer
|
||||
disable_hint = false,
|
||||
-- Disables changing the buffer highlights based on where the cursor is.
|
||||
disable_context_highlighting = false,
|
||||
-- Disables signs for sections/items/hunks
|
||||
disable_signs = false,
|
||||
-- Changes what mode the Commit Editor starts in. `true` will leave nvim in normal mode, `false` will change nvim to
|
||||
-- insert mode, and `"auto"` will change nvim to insert mode IF the commit message is empty, otherwise leaving it in
|
||||
-- normal mode.
|
||||
disable_insert_on_commit = "auto",
|
||||
-- When enabled, will watch the `.git/` directory for changes and refresh the status buffer in response to filesystem
|
||||
-- events.
|
||||
filewatcher = {
|
||||
interval = 1000,
|
||||
enabled = true,
|
||||
},
|
||||
-- "ascii" is the graph the git CLI generates
|
||||
-- "unicode" is the graph like https://github.com/rbong/vim-flog
|
||||
graph_style = "ascii",
|
||||
-- Used to generate URL's for branch popup action "pull request".
|
||||
git_services = {
|
||||
["github.com"] = "https://github.com/${owner}/${repository}/compare/${branch_name}?expand=1",
|
||||
["bitbucket.org"] = "https://bitbucket.org/${owner}/${repository}/pull-requests/new?source=${branch_name}&t=1",
|
||||
["gitlab.com"] = "https://gitlab.com/${owner}/${repository}/merge_requests/new?merge_request[source_branch]=${branch_name}",
|
||||
},
|
||||
-- Allows a different telescope sorter. Defaults to 'fuzzy_with_index_bias'. The example below will use the native fzf
|
||||
-- sorter instead. By default, this function returns `nil`.
|
||||
telescope_sorter = function()
|
||||
return require("telescope").extensions.fzf.native_fzf_sorter()
|
||||
end,
|
||||
-- Persist the values of switches/options within and across sessions
|
||||
remember_settings = true,
|
||||
-- Scope persisted settings on a per-project basis
|
||||
use_per_project_settings = true,
|
||||
-- Table of settings to never persist. Uses format "Filetype--cli-value"
|
||||
ignored_settings = {
|
||||
"NeogitPushPopup--force-with-lease",
|
||||
"NeogitPushPopup--force",
|
||||
"NeogitPullPopup--rebase",
|
||||
"NeogitCommitPopup--allow-empty",
|
||||
"NeogitRevertPopup--no-edit",
|
||||
},
|
||||
-- Configure highlight group features
|
||||
highlight = {
|
||||
italic = true,
|
||||
bold = true,
|
||||
underline = true,
|
||||
},
|
||||
-- Set to false if you want to be responsible for creating _ALL_ keymappings
|
||||
use_default_keymaps = true,
|
||||
-- Neogit refreshes its internal state after specific events, which can be expensive depending on the repository size.
|
||||
-- Disabling `auto_refresh` will make it so you have to manually refresh the status after you open it.
|
||||
auto_refresh = true,
|
||||
-- Value used for `--sort` option for `git branch` command
|
||||
-- By default, branches will be sorted by commit date descending
|
||||
-- Flag description: https://git-scm.com/docs/git-branch#Documentation/git-branch.txt---sortltkeygt
|
||||
-- Sorting keys: https://git-scm.com/docs/git-for-each-ref#_options
|
||||
sort_branches = "-committerdate",
|
||||
-- Change the default way of opening neogit
|
||||
kind = "tab",
|
||||
-- Disable line numbers and relative line numbers
|
||||
disable_line_numbers = true,
|
||||
-- The time after which an output console is shown for slow running commands
|
||||
console_timeout = 2000,
|
||||
-- Automatically show console if a command takes more than console_timeout milliseconds
|
||||
auto_show_console = true,
|
||||
status = {
|
||||
recent_commit_count = 10,
|
||||
},
|
||||
commit_editor = {
|
||||
kind = "auto",
|
||||
},
|
||||
commit_select_view = {
|
||||
kind = "tab",
|
||||
},
|
||||
commit_view = {
|
||||
kind = "vsplit",
|
||||
verify_commit = os.execute("which gpg") == 0, -- Can be set to true or false, otherwise we try to find the binary
|
||||
},
|
||||
log_view = {
|
||||
kind = "tab",
|
||||
},
|
||||
rebase_editor = {
|
||||
kind = "auto",
|
||||
},
|
||||
reflog_view = {
|
||||
kind = "tab",
|
||||
},
|
||||
merge_editor = {
|
||||
kind = "auto",
|
||||
},
|
||||
tag_editor = {
|
||||
kind = "auto",
|
||||
},
|
||||
preview_buffer = {
|
||||
kind = "split",
|
||||
},
|
||||
popup = {
|
||||
kind = "split",
|
||||
},
|
||||
signs = {
|
||||
-- { CLOSED, OPENED }
|
||||
hunk = { "", "" },
|
||||
item = { ">", "v" },
|
||||
section = { ">", "v" },
|
||||
},
|
||||
-- Each Integration is auto-detected through plugin presence, however, it can be disabled by setting to `false`
|
||||
integrations = {
|
||||
-- If enabled, use telescope for menu selection rather than vim.ui.select.
|
||||
-- Allows multi-select and some things that vim.ui.select doesn't.
|
||||
telescope = nil,
|
||||
-- Neogit only provides inline diffs. If you want a more traditional way to look at diffs, you can use `diffview`.
|
||||
-- The diffview integration enables the diff popup.
|
||||
--
|
||||
-- Requires you to have `sindrets/diffview.nvim` installed.
|
||||
diffview = nil,
|
||||
|
||||
-- If enabled, uses fzf-lua for menu selection. If the telescope integration
|
||||
-- is also selected then telescope is used instead
|
||||
-- Requires you to have `ibhagwan/fzf-lua` installed.
|
||||
fzf_lua = nil,
|
||||
},
|
||||
sections = {
|
||||
-- Reverting/Cherry Picking
|
||||
sequencer = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
untracked = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
unstaged = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
staged = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
stashes = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
unpulled_upstream = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
unmerged_upstream = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
unpulled_pushRemote = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
unmerged_pushRemote = {
|
||||
folded = false,
|
||||
hidden = false,
|
||||
},
|
||||
recent = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
rebase = {
|
||||
folded = true,
|
||||
hidden = false,
|
||||
},
|
||||
},
|
||||
mappings = {
|
||||
commit_editor = {
|
||||
["q"] = "Close",
|
||||
["<c-c><c-c>"] = "Submit",
|
||||
["<c-c><c-k>"] = "Abort",
|
||||
},
|
||||
rebase_editor = {
|
||||
["p"] = "Pick",
|
||||
["r"] = "Reword",
|
||||
["e"] = "Edit",
|
||||
["s"] = "Squash",
|
||||
["f"] = "Fixup",
|
||||
["x"] = "Execute",
|
||||
["d"] = "Drop",
|
||||
["b"] = "Break",
|
||||
["q"] = "Close",
|
||||
["<cr>"] = "OpenCommit",
|
||||
["gk"] = "MoveUp",
|
||||
["gj"] = "MoveDown",
|
||||
["<c-c><c-c>"] = "Submit",
|
||||
["<c-c><c-k>"] = "Abort",
|
||||
},
|
||||
finder = {
|
||||
["<cr>"] = "Select",
|
||||
["<c-c>"] = "Close",
|
||||
["<esc>"] = "Close",
|
||||
["<c-n>"] = "Next",
|
||||
["<c-p>"] = "Previous",
|
||||
["<down>"] = "Next",
|
||||
["<up>"] = "Previous",
|
||||
["<tab>"] = "MultiselectToggleNext",
|
||||
["<s-tab>"] = "MultiselectTogglePrevious",
|
||||
["<c-j>"] = "NOP",
|
||||
},
|
||||
-- Setting any of these to `false` will disable the mapping.
|
||||
popup = {
|
||||
["?"] = "HelpPopup",
|
||||
["A"] = "CherryPickPopup",
|
||||
["D"] = "DiffPopup",
|
||||
["M"] = "RemotePopup",
|
||||
["P"] = "PushPopup",
|
||||
["X"] = "ResetPopup",
|
||||
["Z"] = "StashPopup",
|
||||
["b"] = "BranchPopup",
|
||||
["c"] = "CommitPopup",
|
||||
["f"] = "FetchPopup",
|
||||
["l"] = "LogPopup",
|
||||
["m"] = "MergePopup",
|
||||
["p"] = "PullPopup",
|
||||
["r"] = "RebasePopup",
|
||||
["v"] = "RevertPopup",
|
||||
["w"] = "WorktreePopup",
|
||||
},
|
||||
status = {
|
||||
["q"] = "Close",
|
||||
["I"] = "InitRepo",
|
||||
["1"] = "Depth1",
|
||||
["2"] = "Depth2",
|
||||
["3"] = "Depth3",
|
||||
["4"] = "Depth4",
|
||||
["<tab>"] = "Toggle",
|
||||
["x"] = "Discard",
|
||||
["s"] = "Stage",
|
||||
["S"] = "StageUnstaged",
|
||||
["<c-s>"] = "StageAll",
|
||||
["u"] = "Unstage",
|
||||
["U"] = "UnstageStaged",
|
||||
["$"] = "CommandHistory",
|
||||
["#"] = "Console",
|
||||
["Y"] = "YankSelected",
|
||||
["<c-r>"] = "RefreshBuffer",
|
||||
["<enter>"] = "GoToFile",
|
||||
["<c-v>"] = "VSplitOpen",
|
||||
["<c-x>"] = "SplitOpen",
|
||||
["<c-t>"] = "TabOpen",
|
||||
["{"] = "GoToPreviousHunkHeader",
|
||||
["}"] = "GoToNextHunkHeader",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -118,11 +118,11 @@ return {
|
||||
desc = "[G]it Create [N]ew Worktree",
|
||||
},
|
||||
{
|
||||
"<leader>gD",
|
||||
"<leader>pD",
|
||||
function()
|
||||
require("telescope").extensions.git_diffs.diff_commits()
|
||||
end,
|
||||
desc = "[G]it [D]iff",
|
||||
desc = "[G]it [D]iff Telescope",
|
||||
},
|
||||
{
|
||||
"<leader>tB",
|
||||
|
||||
Reference in New Issue
Block a user