> Resent-Sender: help-debbugs@gnu.org
> From: Itai Berli <itai.berli@gmail.com>
> Date: Thu, 20 Jul 2017 10:01:33 +0300
>
> I see no reason to continue this discussion any further.
Thank you.
> One thing I'm curious about, though. What bidi features exist in Emacs, half of which the other editors don't
> have? Which features were you referring to when you wrote that, thanks to them, "10 years later, Emacs still
> shines among all the bidi-aware editors out there"?
. For starters, all the UBA features are fully supported, including
the directional isolates and bracket-matching (a.k.a. "BPA").
. Support for bidirectional display on both GUI and text-mode terminals.
. Both logical-order and visual-order cursor motion.
. Full support for Arabic shaping and other complex-script shaping
features in bidirectional text (e.g., Hebrew "nikkud").
. Bidi formatting controls are visible on screen, so users don't need
to guess why display looks like it does.
. Variables to control where paragraphs begin and end, for the
purposes of determining base paragraph direction.
. Variables to disable mirroring of parentheses due to bidi context,
and even disable bidi reordering entirely, if needed.
. Lisp functions that are necessary when writing bidi-aware
customizations and features:
. a function that returns base paragraph direction at point
. a function that returns resolved bidi levels for a line
. a function that takes a string and wraps it so that it could be
concatenated with other strings without fear of producing jumbled
display due to reordering (important for tabular display)
. a function to find characters whose directionality was overridden
by bidi controls (which could be used to maliciously dupe the
user to think a string is not what it really is)
. a function to return a substring of buffer text surrounded by
bidi controls that make sure its visual appearance will not
change when copied to a different portion of text
And that is even before we consider Emacs-only features, which those
other editors can only dream about, like mouse-highlight, display and
overlay strings, invisible text, text alignment on display, etc. --
all of which are bidi-aware in Emacs.