v0.10
This release integrates unmerged PRs and fixes from the original repo along with new features developed in this fork. See sindrets/diffview.nvim#605 for context.
Breaking Changes
- Bump minimum required Neovim version to 0.10 (#11)
- Replace deprecated
nvim_buf_get/set_optionwithvim.bo(#5)
Features
- Add
:DiffviewTogglecommand (sindrets#517) - Add
--merge-baseoption (sindrets#590) - Add
--selected-rowoption for cursor positioning (#7) - Add mini.icons support as file icons provider (sindrets#571)
- Add close keymaps (q, <esc>) to commit log panel (sindrets#482)
- Add
open_commit_in_browseraction (sindrets#476) - Add
open_in_new_tabaction to duplicate diffview (sindrets#432) - Add
diff_against_headaction to compare HEAD with history entry (sindrets#569) - Add
open_file_externalaction to open files with system app - Add
set_layoutaction for specific layout selection - Add
status_iconsconfig option (sindrets#607) - Add
show_branch_nameoption for file panel (sindrets#542) - Add
date_formatoption for file history panel (sindrets#525) - Add
file_panel.showoption to hide panel by default - Add
file_panel.sort_filecustom comparator (#3) - Add
clean_up_buffersoption (#6) - Add
auto_close_on_emptyoption - Add
hide_merge_artifactsoption - Add
always_show_sectionsoption - Add
commit_subject_max_lengthoption - Add
cycle_layoutsoption to customise layout cycling - Add
"auto"position option for panels (sindrets#536) - Add
rename_thresholdfor git rename detection (#9) - Add
commit_formatconfig for file history entry display (#10) - Add
stat_styleconfig for file history stat bars (#2) - Allow
diff1_plainlayout in standard diff views (#8) - Add loading indicator in file panel (sindrets#570)
- Show file count on collapsed folders (sindrets#597)
- Add trailing slash to folder names in file tree
- Show "Working tree clean" message when no changes
- Use high foldlevel and jump to first diff
- Extend
restore_entryto work on directories (sindrets#186) - Cycle within commit on prev/next in file history (sindrets#566)
Bug Fixes
- Prevent crash due to nil target in
sync_scroll(sindrets#550) - Copy hash to unnamed register instead of clipboard (sindrets#606)
- Disable GPG signatures for log/show commands (sindrets#540)
- Only replace
$with env var if value defined (sindrets#557) - Show untracked files when comparing working tree (sindrets#587)
- Handle merge-base failure during
rebase --root(sindrets#577) - Prevent nil index error on first line in help panel
- Ensure bootstrap runs before accessing
DiffviewGlobal - Ensure
diff.vimhighlights are loaded before linking - Remove redundant
FilePanelFileNamehighlight definition - Use
DiffviewFolderSignfor FileHistory fold indicators - Preserve tree collapsed state on tab switch (sindrets#582)
- Prevent scrollbind/cursorbind from persisting after close (sindrets#330)
- Prevent coroutine failure when view closes during update (sindrets#528)
- Disable context plugins in diff buffers for scrollbind alignment
- Preserve panel cursor position when switching tabs (sindrets#457)
- Handle global-only options in winopts save
- Disable context plugins on local buffers in diff view
- Wrap timer callbacks in
vim.schedule - Limit custom fold creation to prevent UI freeze (sindrets#552)
- Prevent buffer flash when opening diffview (sindrets#509)
- Nil guards in view update (sindrets#395)
- Use prepend for
winhl(sindrets#515) - Always show folder icons (sindrets#579)
- Disable inlay hints in non-LOCAL buffers
- Only show untracked files when comparing index vs working tree
- Save and restore buffer-local keymaps on attach/detach (#4)
- Register commit_log_panel keymaps in
init_bufferinstead ofinit(#1)
Performance
- Set
GIT_OPTIONAL_LOCKS=0to reduce lock contention
Documentation
- Add
:DiffviewToggledocs (sindrets#517) - Add diffchar.vim recommendation and setup guide (#12, #13)
- Add diffopt tip for better diff display (sindrets#526)
- Clarify revision argument behaviour (sindrets#514)
- Add Telescope integration examples
- Add recommended keymaps and workflow tips
- Add FAQ for customising keymaps to avoid conflicts (sindrets#518)
- Clarify LSP diagnostics behaviour in diff buffers (sindrets#580)
- Clarify treesitter-context setup
Full Changelog: 4516612...v0.10