summary refs log tree commit diff
path: root/.vim/after/ftplugin/gitrebase.lua
blob: 6b9e5dcaed9ee73118256102402a8198aef93ddc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
local function commit_preview()
  local beforewin = vim.api.nvim_get_current_win()
  local commit = vim.api.nvim_get_current_line():match([[ ([0-9a-f]+) ]])
  if not commit then
    return
  end
  require('internal.commit-preview').commit_preview(commit, function(bufnr, winid)
    -- keymaps:
    local close = function()
      pcall(vim.api.nvim_win_close, winid, true)
      pcall(vim.api.nvim_buf_delete, bufnr, { force = true })
    end
    vim.keymap.set('n', 'q', close, { buffer = bufnr })

    local goup = function()
      vim.api.nvim_set_current_win(beforewin)
      vim.cmd('normal k')
      vim.cmd('normal cp')
    end
    vim.keymap.set('n', '<up>', goup, { buffer = bufnr })
    vim.keymap.set('n', '<C-p>', goup, { buffer = bufnr })

    local godown = function()
      vim.api.nvim_set_current_win(beforewin)
      vim.cmd('normal j')
      vim.cmd('normal cp')
    end
    vim.keymap.set('n', '<down>', godown, { buffer = bufnr })
    vim.keymap.set('n', '<C-n>', godown, { buffer = bufnr })
  end)
end

vim.keymap.set('n', 'cp', commit_preview, { buffer = 0, desc = 'commit preview' })
vim.keymap.set('n', '<leader>c', commit_preview, { buffer = 0, desc = 'commit preview' })