neogit icon indicating copy to clipboard operation
neogit copied to clipboard

Option to open status with the current file selected

Open mangelozzi opened this issue 2 years ago • 0 comments

Is your feature request related to a problem? Please describe. About 100 times a day, I open NeoGit status, then search for the current file I was on, so I can see it's unstaged changes. I have tried other diff tools (like Diffview.nvim), but Neogit is by far my favourite. E.g below you can see wc-cal-month/shadow.css is open. Say I was on that file and then ran neogit.open({ file = true}) then this new feature would open the status with that file open: image

Describe the solution you'd like Add an option to neogit.open to handle opening the current file. neogit.open({ file = true}) to jump to the current file if it is in the status. Optionally one could also test if file is a string and if so search for it, e.g. { file = '/foo/bar/baz.py'} to open some other file .

Describe alternatives you've considered

Not nearly as awesome as NeoGit:

local function viewGitDiffCurrentFile()
    local filePath = vim.fn.expand('%')
    vim.cmd('vsplit | terminal git diff ' .. filePath)
end

vim.keymap.set('n', '<leader>I', viewGitDiffCurrentFile, { noremap = true, silent = true })

Additional context I tried going through the source code, but could not find the entry point to where the open function is defined. If you like the idea.... and can give me a starting point or some advice, I could try tackle the issue, unless it's a super fast feature to implement for you, then by all means go for it.

mangelozzi avatar Feb 12 '24 11:02 mangelozzi