doomemacs/modules/ui
Henrik Lissner ded3f5ec83
fix(vc-gutter): runaway diff-hl threads & immortal buffers
This was an elusive bug caused by two upstream behaviors:

1. `kill-buffer` will silently refuse to kill a buffer if there is a
   thread associated with it.
2. `global-diff-hl-mode` activates `diff-hl-mode` in *most* buffers,
   even invisible ones. This calls `diff-hl-update` each time
   it does. This isn't a problem *unless* you have `diff-hl-update-async`
   enabled, because it creates a thread every time `diff-hl-update` is
   called. That means for every buffer -- real or transient -- you have
   a new thread queued.

And this caused two main issues:

1. Temporary buffers are often opened and closed very rapidly (often
   faster than the thread can complete), so they weren't getting cleaned
   up. I hope you weren't too attached to your memory, because you'll
   have a lot of buried buffers to feed before long!
2. In cases where `diff-hl-update` simply takes a long time, multiple
   calls to it would queue more threads. When Emacs eventually yields
   the CPU to them, you'll get random,
   impossible-to-predict-or-track-down freezes. Joy!

This may very well be enough reason to disable `diff-hl-update-async` by
default, but I didn't want to give up on it *just* yet, despite how
inelegant this solution is...

Fix: #7954
Fix: #7991
2024-08-21 05:03:30 -04:00
..
deft bump: :ui 2024-06-21 19:11:30 -04:00
doom bump: :ui doom 2024-07-16 22:33:16 -04:00
doom-dashboard docs(*): replace all-the-icons with nerd-icons 2023-09-16 20:19:11 +02:00
doom-quit refactor: minor refactors 2024-07-18 22:38:59 -04:00
emoji docs(*): replace all-the-icons with nerd-icons 2023-09-16 20:19:11 +02:00
hl-todo bump: :ui 2024-08-08 17:26:58 -04:00
indent-guides feat(indent-guides): add +indent-guides-inhibit-functions 2024-07-29 02:03:25 -04:00
ligatures refactor(ligatures): use (featurep 'harfbuzz) 2024-08-20 00:09:55 -04:00
minimap bump: :ui 2024-08-08 17:26:58 -04:00
modeline bump: :ui 2024-08-08 17:26:58 -04:00
nav-flash docs(*): replace all-the-icons with nerd-icons 2023-09-16 20:19:11 +02:00
neotree fix(neotree): don't use all-the-icons 2024-04-01 13:16:36 -04:00
ophints refactor!(ophints): replace volatile-highlights w/ goggles 2024-06-23 15:56:18 -04:00
popup nit: comment revision & reformatting 2024-08-15 23:18:47 -04:00
tabs bump: :ui 2024-08-08 17:26:58 -04:00
treemacs bump: :ui 2024-08-08 17:26:58 -04:00
unicode bump: :ui 2024-02-04 18:58:53 -05:00
vc-gutter fix(vc-gutter): runaway diff-hl threads & immortal buffers 2024-08-21 05:03:30 -04:00
vi-tilde-fringe docs(*): replace all-the-icons with nerd-icons 2023-09-16 20:19:11 +02:00
window-select docs(*): replace all-the-icons with nerd-icons 2023-09-16 20:19:11 +02:00
workspaces fix(workspaces): "none" workspace 2024-08-09 15:42:54 -04:00
zen bump: :ui 2024-02-04 18:58:53 -05:00
README.org revert: fix(docs): set mode in file-local vars 2022-08-07 19:08:07 +02:00

:ui

Description

For modules concerned with changing Emacs' appearance or providing interfaces for its features, like sidebars, tabs, or fonts.

Frequently asked questions

This category has no FAQs yet. Ask one?