neogit
neogit copied to clipboard
[Neovim Nightly] 0.10
Todo: Set up CI action to auto merge master into Nightly, presuming no conflicts.
Changes that will land in Master when Neovim 0.10 is released.
- Rewritten folding to use native folds instead of internal state.
- Added RefsView buffer.
- Use new extmarks api for line highlighting/signs
- Use new options api
- Rewritten status buffer using UI framework
- Improved Rebase section for status buffer
- Added rebase_editor and commit_editor insert mode specific mappigns
- Added ability to remap
OpenOrScrollUp
andOpenOrScrollDown
- Removed remaining
ftpugin/*.vim
files - Removed
require("neogit").refresh_viml_compat()
- ? Removed
require("neogit").refresh_manually()
- Completely rewritten status buffer
- Remove old bootstrap.lua file
- Added a header to the commit-select view, with instructions
- Added status column override
- Improved how "is the buffer open" is checked internally
- Better support for showing the correct SHA hash length in UI
- Fix height of fuzzy finder always being
0.3
instead of a computed value - Use mapped key to close git command history
- Use native folds in git command history
- Added
NEOGIT_DEBUG
env var, which will show, among other things, git CLI calls that are otherwise hidden from the user. - Use native folds for log view
- Added
OpenOrScrollDown
andOpenOrScrollUp
to status buffer, reflog buffer, and refs buffer - Extend the "Close" mapping to close the topmost "layer", even if unfocused.
- Adds a diff view to the commit editor, so you can see the changes you're about to commit.
TODO:
Refs View:
- [ ] Finalize Keybindings
Docs:
- [ ] Bisect Popup Documentation
Status:
- [ ] Status buffer loses context highlighting when telescope picker is activated (
b l
). Commit view doesn't. - [ ] Status buffer might not render a diff with highlights when a notification (popup window) is present. Probably related to above.
Closes #1250, #1240, #1160, #1192, #1170, #1171, #1156, #1155, #1140, #1130, #1109, #1096, #955, #951, #909, #515, #714, #509, #122, #334, #58, #335, #1248
Is this expected to break on older versions of neovim when merged?
Yeah, there are some API's that dont exist on 0.9 that I'm using. The only one so far is for fold-text to use the extmarks api for nice highlighting, but there are (loose) plans to use the new vim.system
api to replace the async jobs. I'm not going to go out of my way to break stuff, but... i expect it to happen.
What I can do is tag the commit before I merge this for 0.9 compatibility, so people can pin to that if they need.
The diffview integration is broken, I bisected it is caused by f3eaff35e02149da5842ab1b84a4081d4422811b.
After that, this function which opens diffview gets a table as the parameter section_name
, but it should be a string indeed. All conditions in this function assume section_name
is a string, so all of theme are invalid.
Thanks @ofseed - fixed
Thank you for your fix. I found that after the fix, diffview works well but the diff buffers have a 'statuscolumn'
set by neogit. Maybe it is not needed?
Heh, I worked on a few things last night. Status column is entirely unrelated, i'll see if theres a nicer way to handle that
Is this expected to break on older versions of neovim when merged?
You can pin to: https://github.com/NeogitOrg/neogit/releases/tag/v0.0.1