emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [emacs-bidi] Treatment of LRE,RLE,LRO,RLO,PDF,LRM,RLM


From: Kenichi Handa
Subject: Re: [emacs-bidi] Treatment of LRE,RLE,LRO,RLO,PDF,LRM,RLM
Date: Thu, 19 Aug 2010 11:49:14 +0900

In article <address@hidden>, Yair F <address@hidden> writes:

> On Wed, Aug 18, 2010 at 5:06 AM, Kenichi Handa <address@hidden> wrote:
> > I think it's about the time to decide how to display these
> > formatting characters: LRE, RLE, LRO, RLO, PDF, LRM, RLM.

> This is not a bidi-specific issue.

Yes.  I included address@hidden in CC:.

> It is possible that these characters
> and other Unicode control characters needs to be trated as non-visiblle
> characters. The assitional characters are CGJ, IAA, IAS, ZWNBSP (BOM),
> IAT LSEP, PSEP, WJ, Invisible Operators, ans all Zero width characters:
> ZWSP, ZWNJ, ZWJ.

> All of these characters modify the environment aboud them but do not
> display glyphs. In some way they are like the TAB character.

> I am thinking of extending whitespace.el to make them visible if the
> user wishes, but IMO, they should bot be visible by default. See the
> impact on the HELLO fle.

Extending whitespace.el will be good.  But, anyway we must
hide those characters by default, so we need some char-table
to specify that.  Currently standard-display-table is not
made by default.  I think the first step is to made it by
default, and specify [] for all of those characters.

> > (1) invisible-mode (perhaps the default)
> >
> > Hide them, for instance, by
> >  (aset standard-display-table #x202e [])
> >
> > Then, you have to type C-f or C-b twice to pass over those
> > characters.  That means users can still put cursor anywhere
> > if he moves cursor carefully.
> Yes, but currently the cursore is "gone" if it is on invisible character.

"Gone"?  The cursor is displayed on the next visible
character.  It may be good to show a bar cursor of 1-pixel
width when it's on a zero-width character.

> > (2) light-visible-mode
> >
> > Show them by a space of 1-pixel width.
> >
> > (3) heavy-visible-mode
> >
> > Show them, for instance, by
> >  (aset standard-display-table #x202e [?[ ?R ?L ?O ?]])
> > perhaps with some color attribute (forground? underline?).
> >

> These modes seems less usable.

I may use (2) for my default setting.  And (3) may be usable
on terminal where we can't show a fancy glyph.

> > (4) fancy-visible-mode
> >
> > Show them by a glyph something like what you can see by this code:
> >
> Yes, SI 1452 indeed specify characters look U21B2 and U21B3 for
> keyboard marking for LRM and RLM.

What is "SI 1452"?  Anyway, for that we must implement a
fundamental mechanism in display engine.  I think it's not a
hard work.

I'd like to extend the elements of a display table.
Currently only a glyph vector or nil is allowed.  It seems
good to extend it so that it can completely control the
displaying of a character (like by face and display text
properties).

At least, for (2), I want to specify a space width (relative
or absolute), and for (4) I want to specify a special form
(list?) containing a mnemonic label.

---
Kenichi Handa
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]