summary refs log tree commit diff
path: root/.vim/lua/internal/commit-preview.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/lua/internal/commit-preview.lua')
-rw-r--r--.vim/lua/internal/commit-preview.lua67
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