Releases: dlyongemallo/diffview-plus.nvim
Releases · dlyongemallo/diffview-plus.nvim
v0.34
What's Changed
- feat(config): wire
file_history_panel.log_optionstojjby @dlyongemallo in #185 - feat(config): merge
log_option_defaultsintop4user overrides by @dlyongemallo in #186 - docs(license): add new maintainer copyright by @dlyongemallo in #187
- feat(merge): add
:DiffviewMergeFilesfor external merge drivers by @dlyongemallo in #188 - feat(dir-diff): add
:DiffviewDiffDirsfor two/three-directory diff by @dlyongemallo in #189 - fix(panel): exclude floats from close-guard window count by @dlyongemallo in #192
- refactor(views): extract
NullDiffViewbase for static-file-list views by @dlyongemallo in #190 - feat(view): add
view.single_pane_for_one_sidedoption by @dlyongemallo in #191 - feat(jj): implement
file_restoreand warn on unsupported staging ops by @dlyongemallo in #194 - fix(job): drain stdio pipes before finalising on process exit by @dlyongemallo in #195
- feat(hl): add
merge_awaresubject highlight for merged-to-trunk commits by @dlyongemallo in #193 - fix(view): serialise
_set_fileso rapid navigation lands on the latest file by @dlyongemallo in #196 - fix(file): require fully-loaded content for
File:is_validby @dlyongemallo in #197 - feat(view)!: replace
single_pane_for_one_sidedwithone_sided_layoutby @dlyongemallo in #199 - feat(jj): wire
:DiffviewFileHistoryto theJjAdapterby @dlyongemallo in #200 - docs: highlight notable feature additions and breaking changes by @dlyongemallo in #201
- fix(window): display loaded buffer even if file got deactivated mid-yield by @dlyongemallo in #202
- fix(file): load existing unloaded buffer in
_create_local_bufferby @dlyongemallo in #203 - fix(inline): use
DiffviewDiffAddfor"skipped"paired rows by @dlyongemallo in #204 - docs(tips): document
diff1_inlinechar-level highlights and diffchar.vim scope by @dlyongemallo in #206
Full Changelog: v0.33...v0.34
v0.33
What's Changed
- feat(file_history): add
--pin-localfor working-tree pinning by @dlyongemallo in #158 - fix(inline): stack tree-sitter captures so
@spelldoesn't drop@comment's fg by @dlyongemallo in #159 - fix(inline): coalesce subword splits inside long hex literals by @dlyongemallo in #160
- feat(config)!: split panel visibility for diff and file history views by @dlyongemallo in #165
- fix(panel): position cursor on active file when toggling panel open by @dlyongemallo in #164
- fix(file_history): position cursor on active item when panel starts open by @dlyongemallo in #166
- feat(config): add
show_root_pathoption for panel headers by @jesses-code-adventures in #168 - fix: disable switching buffer in file panel by @jakubbortlik in #169
- fix(inline): preserve syntax
fgon added text indiff1_inlineby @dlyongemallo in #171 - docs(tips): note workaround for plugins acting on file panel by @dlyongemallo in #170
- perf(panel): drop redundant loading-state render in
update_files_implby @dlyongemallo in #173 - fix(inline): render extmarks before the buffer becomes visible by @dlyongemallo in #174
- fix(inline): guard async render against teardown and swap races by @dlyongemallo in #176
- fix(file_history):
pin_local-safeDiff1/Diff1Inlinefor layout cycling by @dlyongemallo in #178 - fix(file_history): colour commits by remote reachability by @dlyongemallo in #177
- fix(file_history): compute pushed set for repo-wide history by @dlyongemallo in #180
- fix(file_history): exclude leading separator from selected layer by @dlyongemallo in #181
- feat(hl): split selected-commit overlay into
DiffviewCommitSelectedby @dlyongemallo in #182 - feat(hl): bold the selected commit instead of overriding its colour by @dlyongemallo in #183
- refactor(layouts): dedupe
*Pinnedoverrides viashared_symbolsby @dlyongemallo in #179
New Contributors
- @jesses-code-adventures made their first contribution in #168
- @jakubbortlik made their first contribution in #169
Full Changelog: v0.32...v0.33
v0.32
What's Changed
- ci: add LuaLS type-check (advisory) by @dlyongemallo in #143
- feat(actions): add
forceopt torefresh_filesto reload stage buffers by @dlyongemallo in #145 - fix(commands): drop unread bang declarations from focus/toggle/log by @dlyongemallo in #147
- feat(commands): wire
:DiffviewRefresh!to force-reload stage buffers by @dlyongemallo in #146 - chore(types): clear LuaLS source diagnostics by @dlyongemallo in #148
- ci(type-check): require the source gate by @dlyongemallo in #149
- chore(types): drop LuaLS blanket disables, fix remaining hidden diagnostics by @dlyongemallo in #150
- feat(inline): add
view.inline.deletion_highlightoption by @dlyongemallo in #144 - fix(close): warn on unsaved stage edits, force via
:DiffviewClose!by @dlyongemallo in #151 - fix(inline): tokenize at subword boundaries to prevent char-level noise by @dlyongemallo in #153
- fix(inline): size
full_widthdeletion padding to the displayed window by @dlyongemallo in #154 - feat(inline): layer tree-sitter highlights over deleted virt_lines by @dlyongemallo in #155
- fix(inline): scope
diff1_inlinehighlights to the diffview window by @dlyongemallo in #157
Full Changelog: v0.31...v0.32
v0.31
What's Changed
- feat(panel): add list_options.path_style option for full path display by @saviocmc in #100
- fix(api): persist selections to disk after
set_revsso they survive restart by @dlyongemallo in #101 - fix: make
diffoptsave/restore state per-view by @dlyongemallo in #102 - fix: check
fs_renamereturn value in selection store by @dlyongemallo in #103 - fix(view): refresh panel immediately on
gitsignshunk stage/unstage by @dlyongemallo in #105 - fix(file): emit
BufReadPostafter async keymap registration by @dlyongemallo in #106 - fix: correctly compare revisions in "reuse existing view" check by @dlyongemallo in #104
- test(panel): cover
file_panel.list_options.path_styleby @dlyongemallo in #110 - feat(config): support
linematchindiffoptoverride by @dlyongemallo in #111 - fix(view): refresh tracked
HEADwhenrightisSTAGEby @dlyongemallo in #112 - chore(issue-template): point bug report links to maintained fork by @dlyongemallo in #115
- fix(file): suppress
FileTypeduring syntheticBufReadPostby @dlyongemallo in #116 - fix(panel): strip external treesitter/syntax from panel buffers by @dlyongemallo in #117
- docs(layout): correct
diff1_plainavailability by @dlyongemallo in #118 - fix(config): always include configured layout in layouts cycle by @dlyongemallo in #119
- feat(config): add
view.foldleveland default to 0 by @dlyongemallo in #121 - feat(layout): add
diff1_inlineunified diff view by @dlyongemallo in #120 - fix(layout): refresh inline diff during insert-mode edits by @dlyongemallo in #122
- feat(layout): support
do(obtain diff hunk) keymap indiff1_inlinelayout by @dlyongemallo in #123 - fix(layout): align
diff1_inlinediff computation with side-by-side layouts by @dlyongemallo in #126 - revert(panel): restore
was multi-file selection toggle by @dlyongemallo in #127 - revert(render): gate folder icons on
use_iconsby @dlyongemallo in #128 - test(render): assert folder icons honour
use_iconsby @dlyongemallo in #129 - feat(actions): allow user to select register for hash by @akozlev in #130
- refactor(actions): improve
copy_hashdefault register message by @dlyongemallo in #132 - style: enforce LuaJIT syntax, switch
collapse_simple_statementto "Never" by @dlyongemallo in #133 - docs: fix typos in comments and docs by @dlyongemallo in #134
- docs: add
CONTRIBUTING.mdby @dlyongemallo in #136 - feat(actions): add
goto_file_edit_closeto navigate and dispose view by @dlyongemallo in #137 - docs: add per-filetype
foldlevelworkaround forvim-markdownby @dlyongemallo in #138 - docs(types): annotate
setupconfig andactionsmodule for LuaLS by @dlyongemallo in #140 - ci: add
DiffviewConfigschema drift check by @dlyongemallo in #141
New Contributors
Full Changelog: v0.30...v0.31
v0.30
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
v0.23
What's Changed
- fix(panel): preserve selections and folder state across tab switches by @dlyongemallo in #45
- feat(panel): improvements to multi-selection by @dlyongemallo in #46
- feat(panel): show status-grouped file counts on collapsed folders by @dlyongemallo in #47
- fix(panel): rebalance diff windows after auto-width resize by @dlyongemallo in #48
- fix(view): skip redundant buffer re-open on update, fix window rebalance by @dlyongemallo in #49
Full Changelog: v0.22...v0.23
v0.22
What's Changed
- fix: file history panel traversal across entry boundaries when
wrap_entriesis false by @dlyongemallo in #27 - revert: unrevert "fix: unsubscribe global emitter listeners on View close to release memory (#24)" by @dlyongemallo in #28
- docs: add configuration recipes section to README by @dlyongemallo in #29
- fix: add missing annotation, update incorrect test comments, prevent potential test cross-contamination by @dlyongemallo in #31
- fix: guard against external autocmd failures on buffer set by @dlyongemallo in #30
- docs: reorganise README, move sections to RECIPES.md and TIPS.md by @dlyongemallo in #32
- fix(async): harden async module and add tests by @dlyongemallo in #33
- perf(diff): add fast path for empty and referentially identical lists by @dlyongemallo in #34
- fix(file): match index buffer fileformat to working tree line endings by @dlyongemallo in #35
- refactor(git): improve parsing, caching, and test coverage by @dlyongemallo in #37
- fix(p4): fix output parsing bugs and add VCS adapter tests by @dlyongemallo in #38
- feat(file-panel): add multi-file selection for batch stage/unstage/restore by @dlyongemallo in #36
- refactor(vcs): deduplicate adapters and harden infrastructure by @dlyongemallo in #39
- fix(scene): cancel buffer creation for deactivated files by @dlyongemallo in #40
- fix(scene): prevent close event from bypassing floating panels by @dlyongemallo in #41
- feat(panel): support auto-fitting panel width to content by @dlyongemallo in #42
- fix(scene): fix range selection freeze in
:DiffviewFileHistoryby @dlyongemallo in #44 - fix(panel): restrict auto-sizing to file tree content only by @dlyongemallo in #43
Full Changelog: v0.21...v0.22
v0.21
What's Changed
- feat: add
wrap_entriesconfig option to disable file navigation cycling by @dlyongemallo in #25 - fix crashes caused by recently merged code by @dlyongemallo in #26
Full Changelog: v0.20...v0.21
v0.20
What's Changed
- docs: update config documentation with actual defaults by @dlyongemallo in #14
- fix: replace non-existent Panel:get_winid() with winid field (sindrets#611) by @dlyongemallo in #16
- fix: three bugs introduced by merged PRs by @dlyongemallo in #17
- ci: add GitHub Actions workflow for tests and linting by @dlyongemallo in #15
- some more bug fixes and a minor refactoring by @dlyongemallo in #18
- fix: guard convert_layout against nil revs (sindrets#612) by @dlyongemallo in #19
- fix: misc. minor big fixes by @dlyongemallo in #20
- fix: more misc. bug fixes by @dlyongemallo in #21
- feat: add VCS support for Jujutsu, Sapling, Perforce by @dlyongemallo in #22
- docs(readme): update intro note and installation instructions by @dlyongemallo in #23
Full Changelog: v0.10...v0.20
v0.10
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