What I am looking forward to is 1) not modifying the true "bullet" in the raw text, it will always be "-" I just want the appearance to look "nicer" 2) having a bullet appearance level depth specific, e.g. ▪ this is first level of a list ▪ still first level ➤ this is the second level ➤ this is again the second level • a third level ➤ yet another second level
which means that de facto a specific bullet appearance would be associated to a specifc list level depth, e.g. • is 3, ▪ is 1 (I assume index begins at 1 ?) Built like this, putting this list into the first level of another one would shift all levels depth by +1 and consequently change the appearance. Currently, appearance is changed by : (font-lock-add-keywords 'org-mode '(("^ *\\([-]\\) " (0 (prog1 () (setq bullet "•") (compose-region (match-beginning 1) (match-end 1) bullet)))))) The key point is the regexp. I do not know if it is possible to capture the depth level with a regexp. That is why I tried to use org-list--depth in : (font-lock-add-keywords 'org-mode '(("^ *\\([-]\\) " (0 (let* ((depth (org-list--depth (org-element-at-point))) (bullet (cond ((= depth 1) "•") ((= depth 2) "▸") (t "-")))) (prog1 () (compose-region (match-beginning 1) (match-end 1) bullet))))))) but it seems that "org-element-at-point" messes things. Samuel Wales <samolog...@gmail.com> writes: > sure. > > iiuc i think op wants 2 things: > > 1] graphical bullets. i.e. not the - + etc. that are in the org > plain text as saved to disk. > 2] each level of a list to have the same bullet style > > examples of 2]: > > a conforming list: > > - this is level 1. for this list, we always want level 1 to > use the - bullet style in the org plain text. > + this is level 2. for this list, we always want level 2 > to use the + bullet style in the org plain text. > + another level 2 > - another level 1 > + another level 2 > + the + is CONSISTENT with the + in the level 2 of the > previous list item > > a non-conforming list: > > - this is level 1. for this list, we always want level 1 to > use the - bullet style in the org plain text. > + this is level 2. for this list, we always want level 2 > to use the + bullet style in the org plain text. > + another level 2 > - another level 1 > * another level 2 > * these * markers are INCONSISTENT with the + markers in > the level 2 previous list item. > > the idea is for org [as opposed to fontification] to enforce this > level correspondence. whenever we do a bullet style change at any > level, org could change ALL BULLETS AT THE SAME LEVEL. this keeps the > list conforming. > > currently, org does not do this. instead, it allows you to > say that /demotion/ makes a + when you have a -. but > without enforcement, the list can quickly become > non-conforming after the user edits it. > > this idea is independent (orthogonal) to fontification / > displayed graphical glyph. i think op's 2] idea can make > sense. and then fontification / displayed graphical glyph > can be done perhaps with a fontification package. > > in any case, fontification can merely say that + looks > like 😺 or so. orthogonal to levels. > > On 6/17/22, Ihor Radchenko <yanta...@gmail.com> wrote: >> Samuel Wales <samolog...@gmail.com> writes: >> >>> i wonder if org could do the semantics in the text, while >>> fontification could do the appearance only. >>> >>> org allows you to change the bullet style [real text bullets rather >>> than fontification] upon demotion. >>> >>> thus, you can have it consistent that demoting + from top level will >>> create - on level 2 for 1 item. until you change it. >>> >>> but org does not enforce by level. so you can't keep the results of >>> your demotion strategy in the rest of the list. an enforced scheme >>> would have it so that a change to new bullet style at a level, or >>> level 1 otherwise, would style that level. >> >> Could you please provide an example. I do not understand what you are >> trying to suggest. >> >> Best, >> Ihor >>