What's Changed
- fix(test): disable swap in jj bufload test to avoid E303 on neovim nightly by @dlyongemallo in #50
- fix(test): fix flaky tests on neovim nightly by @dlyongemallo in #60
- docs(tips): add git alias tip for using
DiffviewOpenas a merge tool by @dlyongemallo in #51 - fix(git): correct typo
rev_names->ref_namesin merge context by @dlyongemallo in #62 - docs(tips): add workarounds for scrollbind misalignment due to other plugins by @dlyongemallo in #64
- fix(view): guard against
nilhash inupdate_merge_contextby @dlyongemallo in #63 - refactor(utils): unify
str_padfunctions by @dlyongemallo in #52 - refactor(panel): pull out some repeated code into their own functions by @dlyongemallo in #59
- refactor(layout): pull out some repeated code into their own functions by @dlyongemallo in #58
- refactor(actions): dedup
goto_filevariants by @dlyongemallo in #53 - refactor(job): pull out shared
fail_condandlog_optinit by @dlyongemallo in #57 - refactor(view): panel cursor save/restore helpers by @dlyongemallo in #56
- refactor(vcs): shared bootstrap preamble by @dlyongemallo in #54
- refactor(config): pull out shared default keymaps by @dlyongemallo in #55
- feat(view): add
focus_diffoption, fixselected_rowfocus by @dlyongemallo in #61 - feat(view): add
:DiffviewDiffFilescommand by @dlyongemallo in #65 - fix(view): defensively use
tabclose!to prevent E445 on close by @dlyongemallo in #67 - docs: document how to remap the multi-file selection key by @dlyongemallo in #69
- docs(tips): note that treesitter-context augroup name is internal detail by @dlyongemallo in #68
- feat(file-diff): default
:DiffviewDiffFilesto side-by-side layout by @dlyongemallo in #71 - fix(file-panel): guard
update_componentsagainst nilrender_databy @dlyongemallo in #75 - docs(tips): note
<space>leader conflict with multi-file selection by @dlyongemallo in #76 - fix(file-history): guard
update_componentsagainst nilrender_databy @dlyongemallo in #77 - test: add functional tests for config, git adapter, views, keymaps, and bug fixes by @dlyongemallo in #78
- fix(file): detach LSP clients and disable auto-format on
diffview://buffers by @dlyongemallo in #79 - fix(file): use
buftype=acwritefor stage-0 buffers to prevent LSP interference by @dlyongemallo in #81 - docs(tips): restore
diffchar.vimsetup details lost during README reorganisation by @dlyongemallo in #83 - docs: restore more content accidentally lost during README reorganisation by @dlyongemallo in #85
- fix(actions): handle empty diff in
cycle_layoutby @dlyongemallo in #84 - fix(panel): skip
batch_selectionnotification when nothing changed by @dlyongemallo in #87 - docs(recipes): add PR review progress tracking recipe by @dlyongemallo in #86
- feat(config): add options visual appearance options by @dlyongemallo in #80
- refactor(test): replace replicated render logic with real function calls by @dlyongemallo in #89
- feat(panel): add
mark_placementoption for selection marks location by @dlyongemallo in #90 - fix(panel): clear "Fetching changes" when
CDiffViewpre-populates files by @dlyongemallo in #95 - feat(api): export
Rev/RevTypefromCDiffViewmodule and auto-register views by @dlyongemallo in #94 - feat(api): add public
selectionsAPI for programmatic access by @dlyongemallo in #91 - test: add
CDiffViewtest coverage by @dlyongemallo in #96 - feat(api): add in-place revision replacement via public API by @dlyongemallo in #92
- feat(api): add global emitter for
DiffviewFilesStagedUser autocmd by @dlyongemallo in #98 - perf: add option to disable treesitter on large non-LOCAL diff buffers by @dlyongemallo in #99
Full Changelog: v0.23...v0.30