Skip to content

Releases: dlyongemallo/diffview-plus.nvim

v0.34

29 May 06:45
be8c636

Choose a tag to compare

What's Changed

  • feat(config): wire file_history_panel.log_options to jj by @dlyongemallo in #185
  • feat(config): merge log_option_defaults into p4 user overrides by @dlyongemallo in #186
  • docs(license): add new maintainer copyright by @dlyongemallo in #187
  • feat(merge): add :DiffviewMergeFiles for external merge drivers by @dlyongemallo in #188
  • feat(dir-diff): add :DiffviewDiffDirs for two/three-directory diff by @dlyongemallo in #189
  • fix(panel): exclude floats from close-guard window count by @dlyongemallo in #192
  • refactor(views): extract NullDiffView base for static-file-list views by @dlyongemallo in #190
  • feat(view): add view.single_pane_for_one_sided option by @dlyongemallo in #191
  • feat(jj): implement file_restore and 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_aware subject highlight for merged-to-trunk commits by @dlyongemallo in #193
  • fix(view): serialise _set_file so rapid navigation lands on the latest file by @dlyongemallo in #196
  • fix(file): require fully-loaded content for File:is_valid by @dlyongemallo in #197
  • feat(view)!: replace single_pane_for_one_sided with one_sided_layout by @dlyongemallo in #199
  • feat(jj): wire :DiffviewFileHistory to the JjAdapter by @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_buffer by @dlyongemallo in #203
  • fix(inline): use DiffviewDiffAdd for "skipped" paired rows by @dlyongemallo in #204
  • docs(tips): document diff1_inline char-level highlights and diffchar.vim scope by @dlyongemallo in #206

Full Changelog: v0.33...v0.34

v0.33

19 May 10:58
d52621f

Choose a tag to compare

What's Changed

  • feat(file_history): add --pin-local for working-tree pinning by @dlyongemallo in #158
  • fix(inline): stack tree-sitter captures so @spell doesn'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_path option for panel headers by @jesses-code-adventures in #168
  • fix: disable switching buffer in file panel by @jakubbortlik in #169
  • fix(inline): preserve syntax fg on added text in diff1_inline by @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_impl by @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-safe Diff1/Diff1Inline for 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 DiffviewCommitSelected by @dlyongemallo in #182
  • feat(hl): bold the selected commit instead of overriding its colour by @dlyongemallo in #183
  • refactor(layouts): dedupe *Pinned overrides via shared_symbols by @dlyongemallo in #179

New Contributors

Full Changelog: v0.32...v0.33

v0.32

06 May 06:29
5ef8e36

Choose a tag to compare

What's Changed

  • ci: add LuaLS type-check (advisory) by @dlyongemallo in #143
  • feat(actions): add force opt to refresh_files to 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_highlight option 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_width deletion 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_inline highlights to the diffview window by @dlyongemallo in #157

Full Changelog: v0.31...v0.32

v0.31

24 Apr 10:13
385f26f

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.30...v0.31

v0.30

09 Apr 12:09
3832c23

Choose a tag to compare

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 DiffviewOpen as a merge tool by @dlyongemallo in #51
  • fix(git): correct typo rev_names -> ref_names in 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 nil hash in update_merge_context by @dlyongemallo in #63
  • refactor(utils): unify str_pad functions 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_file variants by @dlyongemallo in #53
  • refactor(job): pull out shared fail_cond and log_opt init 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_diff option, fix selected_row focus by @dlyongemallo in #61
  • feat(view): add :DiffviewDiffFiles command 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 :DiffviewDiffFiles to side-by-side layout by @dlyongemallo in #71
  • fix(file-panel): guard update_components against nil render_data by @dlyongemallo in #75
  • docs(tips): note <space> leader conflict with multi-file selection by @dlyongemallo in #76
  • fix(file-history): guard update_components against nil render_data by @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=acwrite for stage-0 buffers to prevent LSP interference by @dlyongemallo in #81
  • docs(tips): restore diffchar.vim setup 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_layout by @dlyongemallo in #84
  • fix(panel): skip batch_selection notification 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_placement option for selection marks location by @dlyongemallo in #90
  • fix(panel): clear "Fetching changes" when CDiffView pre-populates files by @dlyongemallo in #95
  • feat(api): export Rev/RevType from CDiffView module and auto-register views by @dlyongemallo in #94
  • feat(api): add public selections API for programmatic access by @dlyongemallo in #91
  • test: add CDiffView test 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 DiffviewFilesStaged User 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

22 Mar 07:27
c84ba7a

Choose a tag to compare

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

16 Mar 11:52
c3992d7

Choose a tag to compare

What's Changed

  • fix: file history panel traversal across entry boundaries when wrap_entries is 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 :DiffviewFileHistory by @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

28 Feb 18:39
886640d

Choose a tag to compare

What's Changed

  • feat: add wrap_entries config 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

26 Feb 10:07
5f37197

Choose a tag to compare

What's Changed

Full Changelog: v0.10...v0.20

v0.10

12 Feb 12:28
a8226b7

Choose a tag to compare

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_option with vim.bo (#5)

Features

  • Add :DiffviewToggle command (sindrets#517)
  • Add --merge-base option (sindrets#590)
  • Add --selected-row option 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_browser action (sindrets#476)
  • Add open_in_new_tab action to duplicate diffview (sindrets#432)
  • Add diff_against_head action to compare HEAD with history entry (sindrets#569)
  • Add open_file_external action to open files with system app
  • Add set_layout action for specific layout selection
  • Add status_icons config option (sindrets#607)
  • Add show_branch_name option for file panel (sindrets#542)
  • Add date_format option for file history panel (sindrets#525)
  • Add file_panel.show option to hide panel by default
  • Add file_panel.sort_file custom comparator (#3)
  • Add clean_up_buffers option (#6)
  • Add auto_close_on_empty option
  • Add hide_merge_artifacts option
  • Add always_show_sections option
  • Add commit_subject_max_length option
  • Add cycle_layouts option to customise layout cycling
  • Add "auto" position option for panels (sindrets#536)
  • Add rename_threshold for git rename detection (#9)
  • Add commit_format config for file history entry display (#10)
  • Add stat_style config for file history stat bars (#2)
  • Allow diff1_plain layout 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_entry to 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.vim highlights are loaded before linking
  • Remove redundant FilePanelFileName highlight definition
  • Use DiffviewFolderSign for 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_buffer instead of init (#1)

Performance

  • Set GIT_OPTIONAL_LOCKS=0 to reduce lock contention

Documentation

  • Add :DiffviewToggle docs (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