doomemacs/modules/ui/vc-gutter
Henrik Lissner 778fc9ad3f
fix(vc-gutter): disable diff-hl-update-async in with-editor-mode
`diff-hl-update-async` was enabled in f2696d7, causing a regression
where with-editor buffers wouldn't get cleaned up properly. This would
particularly affect Magit's COMMIT_EDITMSG buffers. To quote jds on
Discord:

  It seems like after committing (with cc in the magit buffer), it
  leaves COMMIT_EDITMSG around. The next time I try & commit, a single c
  keypress immediately jumps to the old COMMIT_EDITMSG buffer, but it's
  inactive - C-c C-c closes that buffer but makes no change to git.

I opt for advice instead of find-file or with-editor-mode hooks to
restore normal behavior should with-editor-mode be later disabled
without the death of its buffer (not relevant to magit, specifically,
but it might be to other consumers of with-editor, now or in the
future).

Ref: dgutov/diff-hl#213
Amend: f2696d7302
2024-07-10 18:27:54 -04:00
..
autoload refactor!(vc-gutter): drop git-gutter for diff-hl 2024-06-22 18:14:04 -04:00
config.el fix(vc-gutter): disable diff-hl-update-async in with-editor-mode 2024-07-10 18:27:54 -04:00
packages.el refactor!(vc-gutter): drop git-gutter for diff-hl 2024-06-22 18:14:04 -04:00
README.org refactor!(vc-gutter): drop git-gutter for diff-hl 2024-06-22 18:14:04 -04:00

:ui vc-gutter

Description   unfold

This module displays a diff of the current file (against HEAD) in the fringe. Supports Git, Svn, Hg, and Bzr.

Module flags

+pretty
Apply some stylistic defaults to the fringe that present the diff in the fringe as thin bars, taking after the modern look of the git-gutter plugin in VSCode and Sublime Text. However, this will look bad with themes that invert the foreground/background of diff-hl's faces (like modus-themes does).

Hacks

  • The VC gutter will be updated when pressing ESC, leaving insert mode (evil users), or refocusing the frame or window where it is active.
  • If doom-module:+pretty is enabled

    • The fringes that diff-hl define will be replaced with a set of thin bars. This achieves a slicker look closer to git-gutter's appearance in VSCode or Sublime Text, but may look weird for themes that swap their faces' :foreground and :background (like modus-themes).
    • The fringes are moved to the outside of the margins (closest to the frame edge), so they have some breathing space away from the buffer's contents.
  • diff-hl-revert-hunk displays a preview popup of the hunk being reverted. It takes up ~50% of the frame, by default, whether you're reverting 2 lines or 20. Since this isn't easily customized, it has been advised to shrink this popup to the side of its contents.
  • diff-hl-revert-hunk will sometimes move the cursor to an unexpected location (the bounds of hunks, is my guess), but this is not intuitive and often unexpected. Cursor movements have been suppressed for it.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module requires any of Git, Svn, Hg, and/or Bazaar to get gutter diffs in projects version controlled by them.

TODO Usage

󱌣 This module has no usage documentation yet. Write some?

TODO Configuration

󱌣 This module has no configuration documentation yet. Write some?

Troubleshooting

There are no known problems with this module. Report one?

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

󱌣 This module has no appendix yet. Write one?