User:Uri/Bidi editing: Difference between revisions

m
(Note on implementation)
Line 122: Line 122:
This will make visual mode work very much like the current system works - for each visual function performed, the current logical position and hint will be considered as a visual position; the visual function will be performed based on that visual position; and the resulting visual position will be converted back to a logical position and a hint.
This will make visual mode work very much like the current system works - for each visual function performed, the current logical position and hint will be considered as a visual position; the visual function will be performed based on that visual position; and the resulting visual position will be converted back to a logical position and a hint.


The difference between the current system and the proposed one will only be when switching from visual to logical mode. Instead of ignoring the hint, and performing the logical function based on the current logical position as the current system does, the proposed system will use the hint to determine the current visual position, and will then, if that visual position is logically ambiguous, use the information obut the logical operation itself in order to chose which of these logical positions to apply the function to.
The difference between the current system and the proposed one will only be when switching from visual to logical mode. Instead of ignoring the hint, and performing the logical function based on the current logical position (as the current system does), the proposed system will use the hint to determine the current visual position, and will then, if that visual position is logically ambiguous, use the information about the logical function itself in order to choose at which of the possible logical positions the function will be applied.


Implementing the proposed system this way should be relatively easy given the current system. No nmew data structures or tracking mechanisms are necessary, but only added logic for converting a logical position, a hint, and a logical function to a new logical position.
Implementing the proposed system this way should be relatively easy given the current system. No new data structures or tracking mechanisms are required, but only new logic for converting a logical position, a hint, and a logical function to a new logical position.
67

edits