summary refs log tree commit diff
path: root/.config/nvim/lua/mod/git.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-09-27 17:38:39 +0200
committerRobert Günzler <r@gnzler.io>2026-09-27 17:38:39 +0200
commit0860db73ae6fd9a6f6347219d820bf026a6b8b91 (patch)
tree11318c3670d1c32c5aa0bf404c22fba3bf63fc53 /.config/nvim/lua/mod/git.lua
parent4e34cbf9673aeaba252e01df554a0d204e83c5e2 (diff)
downloaddotfiles-master.tar.gz
Automated-commit-by: dots
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.config/nvim/lua/mod/git.lua')
-rw-r--r--.config/nvim/lua/mod/git.lua23
1 files changed, 23 insertions, 0 deletions
diff --git a/.config/nvim/lua/mod/git.lua b/.config/nvim/lua/mod/git.lua
new file mode 100644
index 0000000..3e36e61
--- /dev/null
+++ b/.config/nvim/lua/mod/git.lua
@@ -0,0 +1,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