Releases: lewis6991/gitsigns.nvim
Releases Β· lewis6991/gitsigns.nvim
v0.9.0
0.9.0 (2024-06-12)
β BREAKING CHANGES
- setup: make setup() synchronous
- drop support for nvim v0.8
Features
Bug Fixes
- add workaround for Lazy issue (e31d214)
- attach: allow attaching inside .git/ (9cafac3), closes #923
- attach: detach on when the buffer name changes (75dc649), closes #1021
- attach: fix worktree attaching (54b9df4), closes #1020
- blame: avoid right-aligned blame overlapping buftext (20f305d)
- handle untracked files for custom bases (af3fdad), closes #1022
- scheduling in cwd watching (c96e3cf)
- update: always get object contents from object names (a28bb1d), closes #847
- use latest api in 0.10 (bc933d2)
- util: close file after reading (f65d1d8)
- watcher: throttle watcher handler (de18f6b)
- watcher: workaround weird annoying libuv bug (4b53134), closes #1027
- wrong api name in stable (805610a)
v0.8.1
v0.8.0
0.8.0 (2024-04-17)
β BREAKING CHANGES
- docs: Use the new attached_to_untracked setting
- change default of attached_to_untracked to false
Features
- actions: add callback to async actions (4e90cf9)
- blame: add rev option to blame_line() (0994d89), closes #952
- blame: support extra options (3358280), closes #953 #959
- change default of attached_to_untracked to false (590d077)
- configurable auto attach (#918) (3e6e91b)
- enable the new version of inline_preview (d195f0c)
- nav: add nav_hunk() (59bdc18)
- popup: add
q
keymap to quit (b45ff86) - publish releases to luarocks (070875f)
- update issue templates (e93a158)
- yadm: deprecate (1bb277b)
Bug Fixes
- #986 (05226b4)
- #989 (36d961d)
- actions: prev_hunk works with wrap on line 1 (2b96835), closes #806
- attach to fugitive and gitsigns buffers (81369ed), closes #593
- bad deprecation message (a4db718), closes #965
- blame: check buffer still exists after loading (70584ff), closes #946
- blame: put ignore-revs-file in correct position (5f267aa), closes #975
- changedelete symbol with linematch enabled (41dc075)
- check bcache in get_hunks (1a50b94), closes #979 #981
- check for WinResized (c093623)
- cli: do not print result (7e31d81)
- current_line_blame: update on WinResized (f0733b7), closes #966
- diffthis: populate b:gitsigns_head (50577f0), closes #949
- do not error when cwd does not exist (826ad69)
- docs: Use the new attached_to_untracked setting (2c2463d)
- dos: correct check for dos files (aeab36f)
- followup (690f298)
- git: support older versions of git (4e34864)
- hl: highlights for Nvim v0.9 (fb9fd53), closes #939
- manager: manager.update() never resolve when buf_check() fails (6e05045)
- nav: followup for #976 (ee5b6ba)
- release-please branch (031abb0)
- setqflist: CLI (e20c96e), closes #907
- stage: staging of files with no nl at eof (c097cb2)
- trigger GitSignsUpdate autocmd more often (1389134)
- typo in README (4aaacbf)
- update lua-guide link in README (c5ff762)
- use documented highlight groups as fallback (300a306)
- version: handle version checks more gracefully (3cb0f84), closes #948 #960
- watcher: improve buffer check in handler (078041e)
v0.7
What's Changed
- staged signs (take 2) by @lewis6991 in #535
- feat: parse flags by @lewis6991 in #676
- feat: use vim.iconv by @lewis6991 in #694
- feat: staged signs support for preview and nav by @lewis6991 in #695
- Make preview window follow cursor when scrolling by @ooesili in #705
- feat: remove FFI diff implementation by @lewis6991 in #706
- fix: do not focus preview when navigating hunks by @lewis6991 in #709
- fix: don't move preview window while it's focused by @ooesili in #710
- feat: yet another async implementation by @lewis6991 in #712
- feat!: rework highlights and document them by @lewis6991 in #715
- fix: use fugitive functions to parse fugitive:// url by @lewis6991 in #689
- fix(highlight): add missing staged highlights by @rockyzhang24 in #720
- fix: don't run iconv on utf-16 by @lewis6991 in #725
- fix(highlight): apply fallback even if not defined by @lewis6991 in #730
- feat: Enable
attach()
to work with any buffer when given context data. by @sindrets in #683 - fix(ci): update for latest changes on HEAD by @lewis6991 in #742
- docs: lspsaga extend gitsigns action by @glepnir in #740
- fix(windows): remove carriage return when staging by @lewis6991 in #743
- Add space at the end of blame virtual text by @WhyNotHugo in #746
- chore(git): add async annotations by @lewis6991 in #747
- ci: add ci.yml and Makefile as part of the cache key by @dundargoc in #756
- ci: use clang instead of gcc compiler by @dundargoc in #755
- perf: reduce startup time by @lewis6991 in #753
- docs: fix typo by @dundargoc in #757
- fix(cli): print results of functions by @lewis6991 in #764
- fix show_deleted when buffer not in cache by @garcia5 in #777
- docs: require nvim 0.8+ in readme by @Cnly in #782
- feat!: remove unnecessary healthchecks by @dundargoc in #784
- fix(README): correct undefined
line()
tovim.fn.line()
by @mmirus in #785 - feat: improved preview_hunk_inline() by @lewis6991 in #671
- fix(toggle_current_line_blame): check signs_normal is not nil by @gersonsosa in #797
- fix: staged_signs with legacy signs by @lewis6991 in #799
- remove teal by @lewis6991 in #812
- fix(diffthis): re-use buffers by @lewis6991 in #815
- docs: consistent quotes by @polyzen in #816
- feat: enable threaded diff by default by @lewis6991 in #819
- feat!: remove config.keymaps by @lewis6991 in #820
- feat(watcher): move from libuv poll to file event watcher by @lewis6991 in #660
- fix(watcher): debounce per watcher by @lewis6991 in #825
- fix(blame): don't run concurrent blames by @lewis6991 in #834
- docs: make gen_help.lua emmy aware by @lewis6991 in #838
- fix: no commit message by @Aryonal in #840
- fix: missing bottom border by @rockyzhang24 in #842
- feat(config): lazy resolve config default values by @lewis6991 in #846
- fix: git rc release version causes assertion error by @yutkat in #849
- fix: accommodate watcher receiving a nil filename. by @otrho in #851
- fix: check valid buffer when scheduling by @lewis6991 in #854
- fix(diff): better handling of final newline by @lewis6991 in #862
- fix(reset_buffer): do not insert extra newline by @lewis6991 in #863
- fix(watcher): check for detached buffers by @lewis6991 in #864
- fix(blame): If it has been detached, the cache[bufnr] is nil by @JavaHello in #868
- fix(attach): check cache status between async calls by @lewis6991 in #869
- Fixes the signature of setup to not require an argument by @philolo1 in #876
- fix(setqflist): don't strip trailing newline from working tree state by @marcuscaisey in #879
- perf(blame): general improvements by @lewis6991 in #878
- fix(cli): named args not working by @AThePeanut4 in #884
- perf(blame): better cache invalidation by @lewis6991 in #886
- testimp by @lewis6991 in #890
- feat(diffopt): add support for whitespace flags in diffopt by @lewis6991 in #893
- feat(diff): allow to diff against the working version by @lewis6991 in #894
- fix(git): respect env vars by @lewis6991 in #896
- fix(actions): set less lines when reseting hunks by @lewis6991 in #897
- fix(blame): add line threshold for large files by @lewis6991 in #892
- feat: enable extmark signs by default by @lewis6991 in #900
- fix(README): correct default value Lspsaga integration. by @LoneExile in #908
- fix(README): add default config.current_line_blame_opts.virt_text_priority by @rafascar in #910
- fix: error message when
:Gitsigns
select dialog is cancelled by @theofabilous in #915 - fix: gitsigns not automatically attached due to async not returning by @yamgent in #914
- feat: interleave attaches on startup by @lewis6991 in #917
- fix: prevent gitsigns from calling diffthis on fugitive status window by @m-demare in #920
New Contributors
- @odrling made their first contribution in #632
- @JafarAbdi made their first contribution in #640
- @cljoly made their first contribution in #653
- @dundargoc made their first contribution in #656
- @ooesili made their first contribution in #705
- @rockyzhang24 made their first contribution in #720
- @glepnir made their first contribution in #740
- @WhyNotHugo made their first contribution in #746
- @garcia5 made their first contribution in #777
- @Cnly made their first contribution in #782
- @mmirus made their first contribution in #785
- @gersonsosa made their first contribution in #797
- @polyzen made their first contribution in #816
- @Aryonal made their first contribution in #840
- @yutkat made their first contribution in #849
- @otrho made their first contribution in #851
- @setibeings made their first contribution in #858
- @JavaHello made their first contribution in #868
- @philolo1 made their first contribution in #876
- @marcuscaisey made their first contribution in https://github.com/lewis6991/gitsigns.nvim/pul...
v0.6
Highlights
- word diff: general fixes and improvments
- repeat: change implementation to one that doesn't depend on vim-repeat
- Added user autocmd event
GitsignsUpdate
which is triggered whenever Gitsigns
updates the buffer with new hunks. - Support dropped for Neovim v0.6
- Added
preview_hunk_inline()
:- Like
preview_hunk()
but displays the hunks inline in the buffer.
- Like
- Added support for diff linematch (see neovim/neovim#14537)
- Added a different sign type for untracked files
- Added healthcheck
- Added
b:gitsigns_line_blame
- Added command completion for some subcommands. (
:Gitsigns diffthis
,:Gitsigns change_base
,:Gitsigns show
) - Removed deprecated fields:
watch_index
: replaced withwatch_gitdir
current_line_blame_delay
: replaced withcurrent_line_blame_opts.delay
current_line_blame_position
: replaced withcurrent_line_blame_opts.virt_text_pos
diff_algorithm
: replaced withdiff_opts.algorithm
use_decoration_api
use_internal_diff
: replaced withdiff_opts.internal
New Contributors
- @odrling made their first contribution in #632
- @JafarAbdi made their first contribution in #640
- @cljoly made their first contribution in #653
- @dundargoc made their first contribution in #656
Full Changelog: v0.5...v0.6
v0.5
Highlights
- blame:
- autodetect
.git-blame-ignore-revs
- added
current_line_blame_formatter_nc
- control priority of blame
- support format strings
- don't enable in insert mode
- implemented a cache for previously blamed lines
- autodetect
Gitsigns diffthis
:- 3 way diff for buffers with conflicts
- respect
'splitright'
- be more graceful with bad revisions
- encoding related:
- be more graceful with binary files
- use iconv for non-utf-8 encodings
- support filepaths with unicode characters
- experimental:
- added support for extmark signs. Enable with
_extmark_signs = true
- allow xdiff to be run in a separate thread. Enable with
_threaded_diff = true
- added support for extmark signs. Enable with
- other:
:Gitsigns
without a subcommand will now callvim.ui.select
- support for detached working trees
- convert paths with cygpath for Windows
- added
show
action. Likediffthis
but doesn't run a diff. - if preview window is open, navigation commands will keep it open
- the default characters for signs are now slightly thicker
keymaps
is now deprecated. Please useon_attach
instead.- toggle functions will now return the currently set value
- re-add
watch_gitdir.enable
New Contributors
- @lschwahn made their first contribution in #460
- @kkremitzki made their first contribution in #505
- @gegoune made their first contribution in #515
- @David-Kunz made their first contribution in #514
- @rafamadriz made their first contribution in #559
- @joshuarubin made their first contribution in #578
- @seblj made their first contribution in #591
- @andrewferrier made their first contribution in #597
Full Changelog: v0.4...v0.5
Notice
This will be the last release with explicit support for Neovim v0.6.
v0.4
Highlights
- Bug fixes of all shapes and sizes
- True partial hunk operations via visual selection.
- If you have a very large hunk (e.g. you add several functions), you can now use visual mode to select exactly which lines you want to stage for commit.
- Added
config.show_deleted
, andtoggle_deleted()
- Uses virtual lines (via extmarks) to expand hunks inline in the buffer.
- Added
config.trouble
- If enabled (by default) and trouble.nvim is installed, then
setqflist()
andsetloclist()
will open Trouble instead of the builtin (and slow) quickfix/location list.
- If enabled (by default) and trouble.nvim is installed, then
- Added
config.current_line_blame_opts.ignore_whitespace
Notice
This will be the last release with explicit support for Neovim v0.5.
Contributers
@lewis6991
@mjlbach
@cryptomilk
@kuznetsss
@Sh3Rm4n
@jose-elias-alvarez
@jwong101
@mroavi
v0.3
Highlights
- Many bug fixes
- Added Rockspec and Luarock
- Use
vim.diff
(No more FFI on Neovim 0.6!) (see neovim/neovim#14536) - Added
get_hunks()
- Added
toggle_word_diff()
- Added
config.base
- Added
vim.g.gitsigns_head
- Added
setqflist()
andsetloclist()
:
Populate the quickfix/location list with hunks with the option to add hunks from all changed files (not just open buffers).
See:help gitsigns.setqflist()
for more details. - Improvements to
next_hunk()
/prev_hunk()
- Open fold when navigating to hunks, respect
'foldopen'
- Show warning when there are no hunks.
- Open fold when navigating to hunks, respect
- Improvements to
preview_hunk()
- Add title
- Keep preview open when navigating hunks with
]c
,[c
. - Allow
.
to work when preview is open, e.g. when staging hunks. - Allow preview focus with
<C-w>w
- Improvements to
blame_line()
- Show hunk of blame in preview
- Optimizations:
- Don't re-apply signs if hunk heads don't change
- Disable during vimgrep
- Add root dir and git dir to
b:gitsigns_status_dict
- Better support for DOS files
- Deprecated fields:
watch_index
: moved towatch_gitdir
.current_line_blame_delay
: moved tocurrent_line_blame_opts.delay
.current_line_blame_position
: moved tocurrent_line_blame_opts.virt_text_pos
diff_algorithm
: moved todiff_opts.algorithm
use_internal_diff
: moved todiff_opts.internal
use_decoration_api
: removed
Contributors
@lewis6991
@dialetic
@saecki
@teto
@figsoda
@xanderio
@echasnovski
@laantorchaweb
@mroavi
@snezhniylis
@Iron-E
v0.2
Highlights
- Add relative date to current_line_blame
- Show status message when navigating hunks
- Live word diff to buffer and hunk preview
- Follow files when they move in the index
- Stage/reset all hunks in selected range.
- Added configurable timeout for current_line_blame
- Configurable blame virtual text position
- Added config.on_attach()
- Added get_actions()
- Added diffthis()
- Migrate to plenary async2 (thanks @oberblastmeister)
- Rework how derived highlights are applied
Contributors
@lewis6991 39 commits
@zapling 4 commits
@andersevenrud : 3 commits
@sindrets : 1 commit