Hi all, while debugging org-superstar-mode I noticed something very strange, and I am not sure if it's a bug in org or a bug in my understanding of org.
First off, an MWE for Org mode version 9.1.9 (release_9.1.9-65-g5e4542): #+BEGIN_SRC C /* * This is a header? + this + is * a list? */ #+END_SRC This works. I can promote, demote, fold, etc. org-superstar also has no issue with accepting these. I should add, this is the default config (emacs -Q on Emacs 26.3). So no spooky stuff I believe on that end. So I began digging. I use org-list-in-valid-context-p as a quick hack to check if what I am looking at is actually a list. Said predicate is a simple wrapper around the function org-in-block-p being called with org-list-forbidden-blocks. It is the the list of environments where lists are not allowed. Value: ("example" "verse" "src" "export") There is also a very similar variable: org-protecting-blocks. This one marks environments as quoted, disallowing org syntax. Value: ("src" "example" "export") Currently these two variables don't know of one another. Maybe the latter should be a strict subset of the former? Anyway, from what I have found org-in-block-p seems to not recognize src blocks reliably. I wrote a small function to test this: (defun nag () (interactive) (when (org-list-in-valid-context-p) (warn "You can make a list here! :("))) And it seems, yes, you can make a list in a src block. That's all very peculiar, what do you guys think?