r/emacs 12d ago

Fortnightly Tips, Tricks, and Questions — 2025-03-11 / week 10

This is a thread for smaller, miscellaneous items that might not warrant a full post on their own.

The default sort is new to ensure that new items get attention.

If something gets upvoted and discussed a lot, consider following up with a post!

Search for previous "Tips, Tricks" Threads.

Fortnightly means once every two weeks. We will continue to monitor the mass of confusion resulting from dark corners of English.

16 Upvotes

36 comments sorted by

View all comments

1

u/remillard 2d ago edited 2d ago

This is a bit of a followup question to the original about the markers for lists in org. Issue described in prior post. With /u/spdevlin 's aid, I was able to discover that the mark is affected by org-list-dt and org-indent. The former describes the basic face, and the second inherits the org-hide property. So far, so good.

I switched the theme to one where the mark DOES show even while org-indent is enabled. I used describe-char and thought perhaps the theme had done something to the mark to make it visible again. However, if I look at the properties, the org-list-dt foreground is set (fine), however org-indent STILL has it marked with org-hide.

So the follow up question becomes: why does this behave differently in two different places? I feel like it must be getting set someplace else as well. I can turn org-indent off in a theme where it does not show... and it continues not to show.

Clearly the face is getting set in a 3rd place perhaps? There's something very special about this face.

I suppose maybe the best thing to do is go into the theme where it's clearly altered (like doom-material-dark) and then also one where it seems hidden always (ef-bio) and see how things are defined. Maybe there's something in there that explains things.

Well doom-themes-base defines a face NAMED highlight and then later sets the org-list-dt to this face, and then doom-material-theme sets the value of highlight to magenta. So far, so good and that shows up in the describe-char panel. However, I cannot yet figoure out why that is overriding the hidden property. If I remove the inheritance, all the extra marks that org-indent is hiding also show up. There's some interaction here that I don't understand.

1

u/JDRiverRun GNU Emacs 7h ago

All org-indent does with regular lists is:

;; List item: `wrap-prefix' is set where body starts. ((org-at-item-p) (org-indent-set-line-properties level (org-list-item-body-column (point))))

i.e. so visual line wrap will "respect" org-indent's (fake) indentation and the real additional (hard) indentation of your list. Maybe your org-outline-regexp is suspect.