summary refs log tree commit diff
path: root/.config/nvim/lua/mod/git.lua
blob: 3e36e616f67fa3fcf9c52e753501ed09d0b8a18c (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
local M = {}

function M.commit()
  local commit = vim.fn.expand('<cword>') -- XXX: can we do better?
  vim.cmd.DiffviewOpen(commit .. '^!')
end

function M.log()
  local bufnr = vim.api.nvim_create_buf(true, true)
  assert(bufnr ~= 0, 'Failed to create buffer')

  vim.bo[bufnr].bufhidden = 'wipe'
  vim.bo[bufnr].modifiable = true
  vim.api.nvim_buf_set_lines(bufnr, 0, -1, true, content)
  vim.bo[bufnr].modifiable = false

  vim.keymap.set('n', 'q', '<cmd>quit!<cr>', { silent = true, buffer = bufnr })
  vim.keymap.set('n', 'K', M.commit, { silent = true, buffer = bufnr })

  vim.api.nvim_win_set_buf(0, bufnr)
end

return M