Browse Source

feat: add keybind to show selection git history

master
Tovi Jaeschke-Rogers 1 month ago
parent
commit
f14182a1ce
3 changed files with 22 additions and 8 deletions
  1. +1
    -0
      .config/aliasrc
  2. +2
    -2
      .config/nvim/lua/settings/theme.lua
  3. +19
    -6
      .config/nvim/lua/tovi/plugins/fugitive.lua

+ 1
- 0
.config/aliasrc View File

@ -26,6 +26,7 @@ alias \
lf="lfcd" \
dcu='docker compose up' \
dce='docker compose exec' \
dcr='docker compose run' \
dps="docker ps" \
ds="docker stop" \
dce-test='docker compose exec fpm ./artisan test' \


+ 2
- 2
.config/nvim/lua/settings/theme.lua View File

@ -1,5 +1,5 @@
-- Themery block
-- This block will be replaced by Themery.
vim.cmd("colorscheme nightfly")
vim.g.theme_id = 3
vim.cmd("colorscheme carbonfox")
vim.g.theme_id = 2
-- end themery block

+ 19
- 6
.config/nvim/lua/tovi/plugins/fugitive.lua View File

@ -7,13 +7,10 @@ return {
vim.opt.diffopt = vim.opt.diffopt + "vertical"
vim.opt.display = vim.opt.display + "lastline"
vim.api.nvim_set_keymap("n", "<leader>gl", ":GBrowse<CR>", { noremap = true })
vim.cmd([[ let g:fugitive_gitlab_domains = {"ssh://code.codium.com.au": "https://code.codium.com.au"} ]])
local function gitBlame(lines)
local current_file = vim.fn.expand('%:p')
local range = lines[1] .. "," .. lines[2]
local cmd = string.format("git -C %s blame -L %s %s | awk '{print $1}'", vim.fn.shellescape(vim.fn.fnamemodify(current_file, ':h')), range, vim.fn.fnamemodify(current_file, ':t'))
local cmd = string.format("git -C %s blame -C -C -C -L %s %s | awk '{print $1}'", vim.fn.shellescape(vim.fn.fnamemodify(current_file, ':h')), range, vim.fn.fnamemodify(current_file, ':t'))
local handle = io.popen(cmd)
local result = handle:read("*a")
@ -22,7 +19,7 @@ return {
return result
end
vim.keymap.set('n', '<leader>gc', function ()
vim.keymap.set('n', '<leader>gC', function ()
vim.cmd(string.format('Git show %s', gitBlame({vim.fn.line('.'), vim.fn.line('.')})))
end)
@ -34,6 +31,22 @@ return {
vim.keymap.set('n', '<leader>ga', '<cmd>Git add .<CR>', options)
vim.keymap.set('n', '<leader>gA', '<cmd>Git add<CR>', options)
vim.keymap.set('n', '<leader>gc', '<cmd>Git commit<CR>', options)
vim.keymap.set('n', '<leader>gC', '<cmd>Git commit -a<CR>', options)
-- vim.keymap.set('n', '<leader>gC', '<cmd>Git commit -a<CR>', options)
vim.keymap.set('v', '<leader>gl', function ()
local startPos = vim.fn.getpos("'<")
local endPos = vim.fn.getpos("'>")
local startLine = startPos[2]
local endLine = endPos[2]
if (startLine == 0 or endLine == 0)
then
vim.notify('Error getting start or end line', vim.log.levels.ERROR)
return
end
vim.cmd(string.format('Git log -L %d,%d:%s', startLine, endLine, vim.fn.expand("%:.")))
end, options);
end,
}

Loading…
Cancel
Save