reddit / emacs

mode-minder: list all your major and minor modes

JDRiverRun · 2022-09-15 01:01
[mode-minder](https://github.com/jdtsmith/mode-minder) I kept looking for a list of major-mode hierarchies, so I could decide, for example, which hooks to tie into (`prog-mode`, I'm looking at you). I couldn't find such a list, so decided to write a little tool that builds the hierarchy of major modes, and threw in standalone and minor modes too, along with help links, a docstring, and a flag indicating the origin of the package. More than 700 modes here, with some interesting finds. `special-mode`? Who knew?
whudwl · 2022-09-15 01:17
looks very useful. thanks for sharing.
CairnThePerson · 2022-09-15 05:47
Thanks so much for this!
grimscythe_ · 2022-09-15 08:04
This is very nice. Thank you!
akirakom · 2022-09-15 09:38
Just info: For the UI, you could use `hierarchy.el` which is now built into Emacs. Looks useful anyway, good work.
matzebond · 2022-09-15 10:48
Is there a similar package for showing the hierarchy/inheritance of keymaps?
Vaddi3 · 2022-09-15 11:03
This is very useful to better understand the connection between all the TeX and LaTeX modes that come with Emacs, together with the ones provided by AUCTeX.
arthurno1 · 2022-09-15 12:54
Indeed, quite useful. Thanks!
paretoOptimalDev · 2022-09-15 13:27
Wow, maybe this one should be upstreamed?
JDRiverRun · 2022-09-15 14:25
Thanks. Interestingly, this revealed that some builtins do not register autoloads for their modes; `hierarchy.el` is among them. I haven't found a good way to identify installed libraries on the load-path which provide major/minor modes, but which do *not* include autoloads for them. Searching for *all library files* and loading them is way too heavy, crashing Emacs.
akirakom · 2022-09-15 14:43
Indeed, to discover all installed major modes, you will have to load all installed libraries (or statically analyze code?), which is impractical. Some major modes are too trivial, so use of `mapatoms` would be usually sufficient. If you want to build a comprehensive database of major modes, I would suggest collaborating with [EmacsMirror](https://github.com/emacsmirror/epkgs)!
JDRiverRun · 2022-09-15 15:34
Updated to list *aliases* to modes in parentheses and tweak the styling.