mirror of
https://github.com/harivansh-afk/nvim.git
synced 2026-04-15 21:03:25 +00:00
clean config
This commit is contained in:
parent
1db6db7f92
commit
25aded9685
19 changed files with 468 additions and 852 deletions
|
|
@ -1,114 +1,88 @@
|
|||
local function current_file_location()
|
||||
local root = vim.trim(vim.fn.system("git rev-parse --show-toplevel"))
|
||||
if vim.v.shell_error ~= 0 or root == "" then
|
||||
return nil
|
||||
end
|
||||
|
||||
local path = vim.api.nvim_buf_get_name(0)
|
||||
if path == "" then
|
||||
return nil
|
||||
end
|
||||
|
||||
local prefix = root .. "/"
|
||||
if path:sub(1, #prefix) ~= prefix then
|
||||
return nil
|
||||
end
|
||||
|
||||
local rel = path:sub(#prefix + 1)
|
||||
return ("%s:%d"):format(rel, vim.fn.line("."))
|
||||
local function file_loc()
|
||||
local root = vim.trim(vim.fn.system('git rev-parse --show-toplevel'))
|
||||
if vim.v.shell_error ~= 0 or root == '' then
|
||||
return nil
|
||||
end
|
||||
local path = vim.api.nvim_buf_get_name(0)
|
||||
if path == '' or path:sub(1, #root + 1) ~= root .. '/' then
|
||||
return nil
|
||||
end
|
||||
return ('%s:%d'):format(path:sub(#root + 2), vim.fn.line('.'))
|
||||
end
|
||||
|
||||
local function gh_browse()
|
||||
if vim.fn.executable("gh") ~= 1 then
|
||||
vim.notify("gh CLI not found", vim.log.levels.WARN)
|
||||
return
|
||||
end
|
||||
|
||||
local loc = current_file_location()
|
||||
if loc then
|
||||
vim.system({ "gh", "browse", loc })
|
||||
return
|
||||
end
|
||||
vim.system({ "gh", "browse" })
|
||||
if vim.fn.executable('gh') ~= 1 then
|
||||
vim.notify('gh CLI not found', vim.log.levels.WARN)
|
||||
return
|
||||
end
|
||||
local loc = file_loc()
|
||||
if loc then
|
||||
vim.system({ 'gh', 'browse', loc })
|
||||
else
|
||||
vim.system({ 'gh', 'browse' })
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
-- Fugitive: The gold standard for Git in Vim
|
||||
{
|
||||
"tpope/vim-fugitive",
|
||||
cmd = { "Git", "G", "Gread", "Gwrite", "Gdiffsplit", "Gvdiffsplit", "Gblame" },
|
||||
keys = {
|
||||
{ "<leader>gg", "<cmd>Git<cr><cmd>only<cr>", desc = "Git status (fullscreen)" },
|
||||
{ "<leader>gc", "<cmd>Git commit<cr>", desc = "Git commit" },
|
||||
{ "<leader>gp", "<cmd>Git push<cr>", desc = "Git push" },
|
||||
{ "<leader>gl", "<cmd>Git pull<cr>", desc = "Git pull" },
|
||||
{ "<leader>gb", "<cmd>Git blame<cr>", desc = "Git blame" },
|
||||
{ "<leader>gd", "<cmd>Gvdiffsplit<cr>", desc = "Git diff vertical" },
|
||||
{ "<leader>gr", "<cmd>Gread<cr>", desc = "Git checkout file" },
|
||||
{ "<leader>gw", "<cmd>Gwrite<cr>", desc = "Git add file" },
|
||||
{ "<leader>go", gh_browse, desc = "Open in GitHub" },
|
||||
{
|
||||
'tpope/vim-fugitive',
|
||||
config = function()
|
||||
map('n', '<leader>gg', '<cmd>Git<cr><cmd>only<cr>')
|
||||
map('n', '<leader>gc', '<cmd>Git commit<cr>')
|
||||
map('n', '<leader>gp', '<cmd>Git push<cr>')
|
||||
map('n', '<leader>gl', '<cmd>Git pull<cr>')
|
||||
map('n', '<leader>gb', '<cmd>Git blame<cr>')
|
||||
map('n', '<leader>gd', '<cmd>Gvdiffsplit<cr>')
|
||||
map('n', '<leader>gr', '<cmd>Gread<cr>')
|
||||
map('n', '<leader>gw', '<cmd>Gwrite<cr>')
|
||||
map({ 'n', 'v' }, '<leader>go', gh_browse)
|
||||
end,
|
||||
},
|
||||
},
|
||||
|
||||
-- Gitsigns: Git info in the gutter
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
opts = {
|
||||
signs = {
|
||||
add = { text = "██" },
|
||||
change = { text = "██" },
|
||||
delete = { text = "▄▄" },
|
||||
topdelete = { text = "▀▀" },
|
||||
changedelete = { text = "██" },
|
||||
},
|
||||
signs_staged = {
|
||||
add = { text = "▓▓" },
|
||||
change = { text = "▓▓" },
|
||||
delete = { text = "▄▄" },
|
||||
topdelete = { text = "▀▀" },
|
||||
changedelete = { text = "▓▓" },
|
||||
},
|
||||
signs_staged_enable = true,
|
||||
signcolumn = true,
|
||||
numhl = false,
|
||||
linehl = false, -- disabled - let colorscheme handle
|
||||
word_diff = false,
|
||||
current_line_blame = false,
|
||||
current_line_blame_opts = {
|
||||
delay = 500,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "]g", "<cmd>Gitsigns next_hunk<cr>", desc = "Next hunk" },
|
||||
{ "[g", "<cmd>Gitsigns prev_hunk<cr>", desc = "Prev hunk" },
|
||||
{ "<leader>ghs", "<cmd>Gitsigns stage_hunk<cr>", desc = "Stage hunk" },
|
||||
{ "<leader>ghr", "<cmd>Gitsigns reset_hunk<cr>", desc = "Reset hunk" },
|
||||
{ "<leader>ghp", "<cmd>Gitsigns preview_hunk<cr>", desc = "Preview hunk" },
|
||||
{ "<leader>gB", "<cmd>Gitsigns toggle_current_line_blame<cr>", desc = "Toggle line blame" },
|
||||
},
|
||||
},
|
||||
|
||||
-- Diffs.nvim: Better diff highlighting
|
||||
{
|
||||
"barrettruth/diffs.nvim",
|
||||
lazy = false,
|
||||
init = function()
|
||||
vim.g.diffs = {
|
||||
fugitive = {
|
||||
enabled = true,
|
||||
horizontal = false,
|
||||
vertical = false,
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
opts = {
|
||||
signs = {
|
||||
add = { text = '██' },
|
||||
change = { text = '██' },
|
||||
delete = { text = '▄▄' },
|
||||
topdelete = { text = '▀▀' },
|
||||
changedelete = { text = '██' },
|
||||
},
|
||||
signs_staged = {
|
||||
add = { text = '▓▓' },
|
||||
change = { text = '▓▓' },
|
||||
delete = { text = '▄▄' },
|
||||
topdelete = { text = '▀▀' },
|
||||
changedelete = { text = '▓▓' },
|
||||
},
|
||||
signs_staged_enable = true,
|
||||
},
|
||||
hide_prefix = true,
|
||||
highlights = {
|
||||
gutter = true,
|
||||
blend_alpha = 0.4,
|
||||
intra = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
config = function(_, opts)
|
||||
require('gitsigns').setup(opts)
|
||||
map('n', ']g', '<cmd>Gitsigns next_hunk<cr>')
|
||||
map('n', '[g', '<cmd>Gitsigns prev_hunk<cr>')
|
||||
map('n', '<leader>ghs', '<cmd>Gitsigns stage_hunk<cr>')
|
||||
map('n', '<leader>ghr', '<cmd>Gitsigns reset_hunk<cr>')
|
||||
map('n', '<leader>ghp', '<cmd>Gitsigns preview_hunk<cr>')
|
||||
map('n', '<leader>gB', '<cmd>Gitsigns toggle_current_line_blame<cr>')
|
||||
end,
|
||||
},
|
||||
{
|
||||
'barrettruth/diffs.nvim',
|
||||
init = function()
|
||||
vim.g.diffs = {
|
||||
fugitive = {
|
||||
enabled = true,
|
||||
horizontal = false,
|
||||
vertical = false,
|
||||
},
|
||||
hide_prefix = true,
|
||||
highlights = {
|
||||
gutter = true,
|
||||
blend_alpha = 0.4,
|
||||
intra = { enabled = true },
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue