> > Definitely the non-magic solution: If you enter a space it gets the > direction (RTL or LTR) of the current font, and is drawn on screen > according to that direction (place and underlining), and cursor navigation > follows that direction. > It should not be possible to enter two consecutive spaces (one in RTL and > the other in LTR) at a direction boundary. > > This is IMO the best approach: Users see on screen exactly whether a space > is RTL or LTR. Therefore they know how the cursor will behave when > navigating. Removing the direction property from spaces might look more > user friendly at first glance, but the problem then is that you have to > perform some magic in the code that quickly gets so complicated that no > developer understands it anymore and/or it produces strange results in > some > corner cases. >
The users (at least me) don't know whether the space is RTL or LTR because they don't "mark RTL code" since it is annoying to look at when writing a document in RTL. I don't know how difficult it is to code this, but I think the space should be "neutral", and that the direction should be decided according to whether the curser is currently to the right or to the left of this border space. Lets say we have LTR RTL and the space between them. If the cursor is to the left - continue English (you will be able to type another space there and continue writing), and if you are to the right of the border space, continue writing Hebrew (again, you will be able to enter another RTL space there as well). Extra spaces should then be removed, like lyx does today. The same for RTL LTR. I think this will be the most intuitive and user friendly. Miki