Ihor Radchenko writes: > I think that the most reasonable approach to fontify ANSI sequences will > be the following: > > 1. We will consider ANSI within (a) all greater elements and lesser > elements that have RESULTS affiliated keyword (indicating that they > are result of code block evaluation); (b) otherwise, just lesser > elements, like paragraph, src block, example block, export block, > etc., but _not_ tables (c) otherwise, within verbatim-like objects, > like code, export-snippet, inline-src-block, table-cell, verbatim. > > The three groups above should be declared via variables, so that > users can tweak them as necessary. > > 2. If ANSI sequence is encountered inside a verbatim-like object and we > did not see any ANSI sequences within parent element or greater > element, limit ANSI triggers to the current object. > > Example: > > #+RESULTS: > Lorem upsum =valor=. Some more text. > > (only "valor" will be affected) > > 3. If the first ANSI sequence is encountered inside element and outside > verbatim-like object, the rest of the element is affected, including > all the objects. > > Example: > > #+RESULTS: > Lorem upsum =valor=. Some more text. > > (the first ANSI affects everything, including verbatim; the second > ANSI also affects everything) > > 4. If the first ANSI sequence is encountered inside greater element with > RESULTS affiliated keyword, all the lesser elements inside will be > affected. > > Example: > > #+RESULTS: > :drawer: > Lorem upsum =valor=. Some more text. > > Another paragraph inside drawer. > :end: > > (everything down to :end: is affected) > > or > > #+RESULTS: > - list > - one > - two > - three > Hello Ihor, Attached is the updated version of the patch. I've also attached an updated file that I've been using for testing the feature. What I have is essentially a function, org-fontify-ansi-sequences, that scans the buffer for an ANSI sequence and depending on the element-context processes the region that should be affected according to the rules you stated (see above). The org-fontify-ansi-sequences-1 function scans the buffer element-wise and processes the appropriate regions of the elements, even if no sequences appear in those regions, according to an ansi-context. This is to support the fourth rule you mentioned. Note that modifications to highlighted regions hasn't really been considered so if you have a scenario like #+RESULTS: - Paragraph one - Paragraph two Line 3 where the sequence affects everything down to "Line 3" and you make a modification to line three, the fontification due to the sequence disappears on that line. Also note that lesser elements contained in greater elements that don't have a RESULTS keyword are handled at the lesser element level so if you have something like #+begin_center Paragraph one. Paragraph two. #+end_center It would be the same as if you just had the paragraphs without the greater element. Please review the code and let me know what you think and how you think we can move forward on this feature. Thanks in advance.