diff options
| author | Robert Günzler <r@gnzler.io> | 2024-11-25 13:30:37 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2024-11-25 13:58:25 +0100 |
| commit | 23de12baba9fbfc4ca24581b37c374aa5345cc25 (patch) | |
| tree | e4b3c421bad572eb85a1089eaad44dc3059ab6e6 /.vim/lua/internal/commit-preview.lua | |
| parent | 18e3848110da0a59843058927ea04b496f5db2a5 (diff) | |
update nvim config
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.vim/lua/internal/commit-preview.lua')
| -rw-r--r-- | .vim/lua/internal/commit-preview.lua | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/.vim/lua/internal/commit-preview.lua b/.vim/lua/internal/commit-preview.lua deleted file mode 100644 index 512b3fb..0000000 --- a/.vim/lua/internal/commit-preview.lua +++ /dev/null @@ -1,67 +0,0 @@ -local M = {} - -function M.under_cursor() - require('internal.cursor').word(require('internal.commit-preview').commit_preview) -end - -function M.commit_preview(commit, on_attach) - if not commit then return end - - local result = require('internal.job') - .jobstart({ - command = 'git', - args = { 'show', '--stat', '--patch', commit }, - format_title = function(_, _) - return 'git-show' - end, - populate_quickfix = false, - }) - :wait() - :result() - - -- create buffer - local bufnr = vim.api.nvim_create_buf(false, true) - assert(bufnr, 'Failed to create buffer') - vim.api.nvim_buf_set_name(bufnr, commit) - vim.api.nvim_set_option_value('filetype', 'commitpreview', { buf = bufnr }) - - -- add lines - vim.api.nvim_set_option_value('modifiable', true, { buf = bufnr }) - vim.api.nvim_buf_set_lines(bufnr, 0, -1, true, result) - vim.api.nvim_set_option_value('modifiable', false, { buf = bufnr }) - - -- create window - local winpos = 'belowright' - local winheight = #result <= 25 and #result or 25 - vim.cmd(string.format('%s %dsplit', winpos, winheight)) -- open split - local winid = vim.api.nvim_get_current_win() - vim.api.nvim_win_set_buf(winid, bufnr) - vim.cmd('wincmd p') - - vim.keymap.set('n', 'gd', M.under_cursor, { buffer = bufnr }) - vim.keymap.set('n', 'q', function() vim.api.nvim_win_close(winid, true) end, { buffer = bufnr }) - - if on_attach then on_attach(bufnr, winid) end - -- close on CursorMoved (anywhere but git-show-buf) - -- local old_cursor = vim.api.nvim_win_get_cursor(beforewin) - -- local group = vim.api.nvim_create_augroup('gitcommit_win_' .. winid, {}) - -- vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, { - -- group = group, - -- callback = function() - -- local cursor = vim.api.nvim_win_get_cursor(0) - -- if - -- (old_cursor[1] ~= cursor[1] or old_cursor[2] ~= cursor[2]) - -- and vim.api.nvim_get_current_win() ~= winid - -- then - -- close() - -- return - -- end - -- old_cursor = cursor - -- end, - -- }) - - -- focus - vim.api.nvim_set_current_win(winid) -end - -return M |