Commit Diff


commit - fdbea6e35661543d6a3921bfb6ac32e51efbaca0
commit + cf56187e971b7683b78afed1a10d297f442e8029
blob - a90b89791d10824b8b55c2f4ef6fcfef614f631a
blob + 216ec7c82c3cfc87896236c3d9ca555122ec4997
--- lua/config/keymaps.lua
+++ lua/config/keymaps.lua
@@ -48,8 +48,11 @@ vim.api.nvim_create_autocmd('TextYankPost', {
 vim.keymap.set('n', '<leader>sf', '<cmd>Telescope find_files<CR>', { desc = 'Find files' })
 vim.keymap.set('n', '<leader>sg', '<cmd>Telescope live_grep<CR>', { desc = 'Search text in files' })
 vim.keymap.set('n', '<leader>sb', '<cmd>Telescope buffers<CR>', { desc = 'List open buffers' })
-vim.keymap.set('n', '<leader>sh', '<cmd>Telescope help_tags<CR>', { desc = 'Search help tags' })
+vim.keymap.set('n', '<leader>st', '<cmd>Telescope help_tags<CR>', { desc = 'Search help tags' })
 vim.keymap.set('n', '<leader>sr', '<cmd>Telescope oldfiles<CR>', { desc = 'List recent files' })
+vim.keymap.set('n', '<leader>sh', function()
+    require('custom.telescope').git_bcommits_with_preview()
+end, { desc = 'Search Git History (custom)' })
 vim.keymap.set(
     'n',
     '<leader>s/',
blob - /dev/null
blob + ce2ad6df6e8122f0e84d9f8dbb216254135f056c (mode 644)
--- /dev/null
+++ lua/custom/telescope.lua
@@ -0,0 +1,22 @@
+local M = {}
+
+local builtin = require('telescope.builtin')
+local previewers = require('telescope.previewers')
+
+function M.git_bcommits_with_preview()
+    local opts = {
+        git_log_args = {
+            '--pretty=format:%h %s (%cr) <%an>',
+            '--graph',
+        },
+    }
+
+    opts.previewer = {
+        previewers.git_commit_diff_to_parent.new(opts),
+        previewers.git_commit_message.new(opts),
+    }
+
+    builtin.git_bcommits(opts)
+end
+
+return M