One thing I love about #emacs is that even though the documentation is generally pretty good, in the cases where it's inadequate, it's still really easy to find and step through the relevant source for a feature to find the answer I need.

@me Over the weekend I was messing around with ibuffer, integrating my custom ibuffer groups with @sanityinc's ibuffer-vc (recommended).

I was surprised to discover that documentation for ibuffer (in since 22.1?) is ... sparsely documented. But it was fun to get it working because the code (and Steve's add-on) is

PERFECTLY LIMPID

(the real story here is that I have been waiting a lifetime to drop the phrase "perfectly limpid" for internet points and here is my opportunity)

https://github.com/purcell/ibuffer-vc

#emacs #ibuffer

GitHub - purcell/ibuffer-vc: Let Emacs' ibuffer-mode group files by git project etc., and show file state

Let Emacs' ibuffer-mode group files by git project etc., and show file state - purcell/ibuffer-vc

GitHub

@jameshowell @me @sanityinc I also use Ibuffer but I am slightly annoyed that point changes on auto update (in contrast to Buffer-menu-mode). I would like to fix this sometimes.

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=77210

#77210 - 30.1.50; ibuffer - preserve window position when updating - GNU bug report logs

@minad My annoyance with ibuffer:

The filter groups are defined as a list (of lists), which (per the definition of list) has an order.

That order determines the logic of which buffers get assigned to which groups. That order also determines the order in which those groups get displayed.

Sometimes I want those orderings to be different. Which would require two lists.

Each element already has a name string, so a display-order list could reference elements in the filter-order list. But that gets complicated when some of the elements are generated dynamically, like from ibuffer-vc.

This annoyance is probably not worthy of the effort to rewrite the package with a different abstraction. Especially not the effort to do so without introducing breaking changes.

@me @sanityinc

@jameshowell @minad @me @sanityinc I’ve found buffler (https://github.com/alphapapa/bufler.el) fits my needs well.
GitHub - alphapapa/bufler.el: A butler for your buffers. Group buffers into workspaces with programmable rules, and easily switch to and manipulate them.

A butler for your buffers. Group buffers into workspaces with programmable rules, and easily switch to and manipulate them. - alphapapa/bufler.el

GitHub

@bmp oooooh well lookit this now

@minad @me @sanityinc