- Support Windows Active Kbd Switching, Far East IME API.
- BIDI support
- Use text properties to handle nesting levels, overrides
BIDI-specific text properties (as per Unicode BIDI algorithm)
computed at text insertion time.
- Lisp API for reordering a display line at redisplay time,
possibly substitution of different glyphs (esp. mirroring of
glyphs).
- Lisp API called after a display line is laid out, but only when
reordering may be necessary (display engine checks for
non-uniform BIDI text properties; can handle internally a line
that's completely in one direction)
- Default direction is a buffer-local variable
- We concentrate on implementing Unicode BIDI algorithm.
- Display support for mirroring of entire window
- Display code keeps track of mirroring junctures so it can
display double cursor.
- Entire layout of screen (on a per window basis) is exported as a
Lisp API, for visual editing (also very useful for other
purposes e.g. proper handling of word wrapping with proportional
fonts, complex Lisp layout engines e.g. W3)
- Logical, visual, etc. cursor movement handled entirely in Lisp,
using aforementioned API, plus a specifier for controlling how
cursor is shown (e.g. split or not).