Skip to content

Releases: lewis6991/gitsigns.nvim

v1.0.0

07 Feb 11:42
Compare
Choose a tag to compare

1.0.0 (2025-02-07)

⚠ BREAKING CHANGES

  • deprecate some functions
  • blame: replace dot with dash in blame file type name
  • remove current_line_blame_formatter_opts
  • remove support for yadm
  • config: deprecate highlight groups in config.signs

Features

  • add highlights for the current line (b29cb58)
  • add staging and update locks (e6e3c3a)
  • add submodule support for gitsigns urls (f074844), closes #1095
  • add type annotations for modules (ac5aba6)
  • async: add async.pcall (562dc47)
  • blame_line: add option to show when not focused (2667904)
  • blame: add Gitsigns blame (25b6ee4)
  • blame: add reblame at commit parent (f4928ba)
  • blame: run formatter with pcall (9ca00df)
  • blame: set filetype to gitsigns.blame (0dc8866), closes #1049
  • config: deprecate highlight groups in config.signs (3d7e49c)
  • config: improve deprecation message (fa42613)
  • deprecate some functions (8b74e56)
  • detect repo errors (899e993)
  • nav: add target option (9291836)
  • nicer errors for failed stages (9521fe8)
  • remove current_line_blame_formatter_opts (92a8fbb)
  • remove support for yadm (61f5b64)
  • set bufname for commit buffers (e4efe9b)
  • share Repo objects across buffers (2593efa)
  • signs: able staged signs by default (b8cf5e8)
  • signs: improve sign generation from hunks (2d2156a)
  • tweak how commit buffers are processed (47c8e3e)
  • use luajit buffers to serialize thread data (233bcbf)

Bug Fixes

  • #1182 (632fda7)
  • #1182 (take 2) (3868c17)
  • #1185 (8fb9e75)
  • #1185 (take 2) (fd7457f)
  • #1185 (take 3) (f301005)
  • #1187 (d8918f0)
  • add cli binding for show (d9f997d)
  • add nil check (9d80331)
  • add nil check (7178d1a)
  • attach: do not attach to fugitive directory buffers (cf1ffe6), closes #1198
  • attach: resolve error viewing fugitive trees (#1058) (89a4dce)
  • blame: ensure blame object is valid when all lines are requested (817bd84), closes #1156
  • blame: handle incremental output with a buffered reader (e9c4187), closes #1084
  • blame: include error message in error (d03a1c9)
  • blame: parse blame info correctly (0595724), closes #1065
  • blame: popupmenu error (93c38d9), closes #1061
  • blame: render blame end_col out of range (aa12bb9)
  • blame: replace dot with dash in blame file type name (0ed4669)
  • blame: respect original blame winbar (d0db8ef)
  • blame: restore original options when blame window is closed (564849a)
  • blame: show current buffer line blame immediately (6b1a14e)
  • blame: show same commit twice or more (#1136) (ee7634a)
  • blame: show the winbar if the main window has it enabled (17e8fd6)
  • blame: track buffers changes correctly in the cache (0349546)
  • blame: update current_line_blame when attaching (8df63f2)
  • change assert to eprint (7c27a30)
  • derive Staged*Cul highlight correctly (1d2cb56)
  • diffthis vertical option (dcdcfcb)
  • do not mix staged signs with normal signs (9541f5e), closes #1152
  • do not show staged signs for different bases (0edca9d), closes #1118
  • docs: Add signs_staged to default config in README (d44a794)
  • fileformat autocmd bug (f41b934), closes #1123
  • get the repo version of the username (2e5719c)
  • GitSignsChanged autocmd for staged hunks (ac38d78), closes #1168
  • handle repos with no commits ([0cd4f0a](0...
Read more

v0.9.0

13 Jun 10:56
Compare
Choose a tag to compare

0.9.0 (2024-06-12)

⚠ BREAKING CHANGES

  • setup: make setup() synchronous
  • drop support for nvim v0.8

Features

  • drop support for nvim v0.8 (d9d94e0)
  • setup: make setup() synchronous (720061a)

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

30 Apr 15:35
Compare
Choose a tag to compare

0.8.1 (2024-04-30)

Bug Fixes

  • blame: check win is valid after running blame (7e38f07)
  • reset: handle 'endofline' when resetting hunks (7aa9a56)
  • yadm: correct ls-files check (035da03)

v0.8.0

17 Apr 16:19
Compare
Choose a tag to compare

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

29 Nov 12:43
Compare
Choose a tag to compare

What's Changed

New Contributors

Read more

v0.6

15 Dec 12:41
Compare
Choose a tag to compare

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.
  • 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 with watch_gitdir
    • current_line_blame_delay: replaced with current_line_blame_opts.delay
    • current_line_blame_position: replaced with current_line_blame_opts.virt_text_pos
    • diff_algorithm: replaced with diff_opts.algorithm
    • use_decoration_api
    • use_internal_diff: replaced with diff_opts.internal

New Contributors

Full Changelog: v0.5...v0.6

v0.5

01 Sep 15:07
Compare
Choose a tag to compare

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
  • 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
  • other:
    • :Gitsigns without a subcommand will now call vim.ui.select
    • support for detached working trees
    • convert paths with cygpath for Windows
    • added show action. Like diffthis 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 use on_attach instead.
    • toggle functions will now return the currently set value
    • re-add watch_gitdir.enable

New Contributors

Full Changelog: v0.4...v0.5

Notice

This will be the last release with explicit support for Neovim v0.6.

v0.4

19 Jan 18:03
Compare
Choose a tag to compare

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, and toggle_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() and setloclist() will open Trouble instead of the builtin (and slow) quickfix/location list.
  • 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

27 Sep 12:02
Compare
Choose a tag to compare

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() and setloclist():
    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.
  • 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 to watch_gitdir.
    • current_line_blame_delay: moved to current_line_blame_opts.delay.
    • current_line_blame_position: moved to current_line_blame_opts.virt_text_pos
    • diff_algorithm: moved to diff_opts.algorithm
    • use_internal_diff: moved to diff_opts.internal
    • use_decoration_api: removed

Contributors

@lewis6991
@dialetic
@saecki
@teto
@figsoda
@xanderio
@echasnovski
@laantorchaweb
@mroavi
@snezhniylis
@Iron-E

v0.2

06 Jul 12:44
Compare
Choose a tag to compare

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