I have a little advise for the text editor designers. I think i am either the stupidest or the smartest man in the universe if i write it :( A caret is a flashing line, block, or other picture in the client area of a window, it indicates the place (between two characters) at which text will be inserted (or the edge of the text to be selected or deleted). What does it mean? Between? There is no "between" in the bidirectional text, the previous and the next character are not necessary nearby! There is no distinct place for the insertion because the place depends of direction of the inserted characters. Other example, without bidi. You see: pré|sent Where is your caret? After é? after ́ ? between e and ́ ? Press ←left key. Nothing changes. Now you sure you are between e and ́ . Or you keyboard is broken! Red e with green acute is more informative and comprehensible picture! It is very clear mnemonic: a red character before the current position and a green character after them. The direction is always from red to green. If you can't use colors: render all the text to frame0, the "red" character to frame1, the "green" character to frame2, on timer show frame0, frame0 xor frame1, frame0 xor frame2. It is blinking :) And one more thing. "Red" and "green" characters have to became visible ever (e.g. if it is a control character, blank (no visible edges is no good), soft hyphen, virama).

