El dj, ago 20 2009 a les 21:57, Carsten Dominik va escriure:
>>
>> * something
>> aaa =eee
>> * two= *iii
>> ooo* uuu
>>
> Yes, this is kind of hard to fix......  And a minor issue, I guess... ?
>

  Yes, it's a minor issue. I like minor issues :-)

  There are two display problems here:
- a face defined before a heading enters the heading (like the =eee…=)
- a face defined in a heading goes on past the heading (like the *iii…)

  I did some tests with org-emph-re (original value: [1]); the interesting part 
is \\(?:\n.*?\\)\\{0,1\\} because it is the one that allows the face to extend 
up to 1 line below.
  The .*? from there comes from the so-called body in 
org-emphasis-regexp-components, body="."
  I have done some tests and I think that body="\\(?:\\*+[^\n ]\\|[^\n*]\\)." 
fixes the first problem. The expression represents a non-heading line: anything 
not starting by * (except when the initial * precedes a word) and then many 
other characters (a "*?" at the end will be added by org-set-emph-re)
  Final value: [2]

  Is this added complexity worth it? The bug is unpleasant (headings aren't 
coloured as headings) and performance shouldn't be much affected in the common 
case because ^\\* fails early. Only visually it is a complex regexp.

  I don't know how to detect the other problem inside a regular expression. 
Maybe there's some way to ask „don't cross boundaries between headings and 
content“.


-- Daniel

[1]: "\\([      ('`\"{]\\|^\\)\\(\\([*/_=~+]\\)\\([^    
\n,\"']\\|[^    
\n,\"'].*?\\(?:\n.*?\\)\\{0,1\\}[^      
\n,\"']\\)\\3\\)\\([-   .,:!?;'\")}\\]\\|$\\)"

[2]: "\\([      ('`\"{]\\|^\\)\\(\\([*/_=~+]\\)\\([^    
\n,\"']\\|[^    
\n,\"'].*?\\(?:\n\\*+[^\n ].*?\\|\n[^\n*].*?\\)\\{0,1\\}[^      
\n,\"']\\)\\3\\)\\([-   .,:!?;'\")}\\]\\|$\\)"




_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to