emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Use Emacs' default value of "bidi-paragraph-direction" in orgmode
@ 2018-06-15 10:32 ST
  2018-06-15 14:05 ` Nicolas Goaziou
  0 siblings, 1 reply; 7+ messages in thread
From: ST @ 2018-06-15 10:32 UTC (permalink / raw)
  To: Emacs-orgmode

Hello,

Please leave the Emacs' default value of "bidi-paragraph-direction"
which is "nil" in orgmode as well. Right now orgmode seems to force
"left-to-right", thus blocking "right-to-left". With "nil" it is
dynamic, which means both directions work well out-of-the box.

Right now I'm forced to add this to my config:

(add-hook 'org-mode-hook 
          (lambda ()
            (setq bidi-paragraph-direction nil)))

It took me a lot of time to figure out, which makes the first Org steps
for RTL-newbies quite frustrating...

Please, let me know if you decide to fix this in the upcoming versions.

Thank you!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Use Emacs' default value of "bidi-paragraph-direction" in orgmode
  2018-06-15 10:32 Use Emacs' default value of "bidi-paragraph-direction" in orgmode ST
@ 2018-06-15 14:05 ` Nicolas Goaziou
  2018-06-17  6:12   ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas Goaziou @ 2018-06-15 14:05 UTC (permalink / raw)
  To: ST; +Cc: Emacs-orgmode

Hello,

ST <smntov@gmail.com> writes:

> Please leave the Emacs' default value of "bidi-paragraph-direction"
> which is "nil" in orgmode as well. Right now orgmode seems to force
> "left-to-right", thus blocking "right-to-left". With "nil" it is
> dynamic, which means both directions work well out-of-the box.
>
> Right now I'm forced to add this to my config:
>
> (add-hook 'org-mode-hook 
>           (lambda ()
>             (setq bidi-paragraph-direction nil)))
>
> It took me a lot of time to figure out, which makes the first Org steps
> for RTL-newbies quite frustrating...

It may not be as obvious as you think. See
<https://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00349.html>
for details.

Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Use Emacs' default value of "bidi-paragraph-direction" in orgmode
  2018-06-15 14:05 ` Nicolas Goaziou
@ 2018-06-17  6:12   ` Eli Zaretskii
  2018-06-17 12:29     ` ST
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-06-17  6:12 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: Emacs-orgmode, smntov

> From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
> Cc: Emacs-orgmode@gnu.org
> Date: Fri, 15 Jun 2018 16:05:37 +0200
> 
> ST <smntov@gmail.com> writes:
> 
> > Please leave the Emacs' default value of "bidi-paragraph-direction"
> > which is "nil" in orgmode as well. Right now orgmode seems to force
> > "left-to-right", thus blocking "right-to-left". With "nil" it is
> > dynamic, which means both directions work well out-of-the box.
> >
> > Right now I'm forced to add this to my config:
> >
> > (add-hook 'org-mode-hook 
> >           (lambda ()
> >             (setq bidi-paragraph-direction nil)))
> >
> > It took me a lot of time to figure out, which makes the first Org steps
> > for RTL-newbies quite frustrating...
> 
> It may not be as obvious as you think. See
> <https://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00349.html>
> for details.

For the record: The change to the current default was my suggestion,
and I still stand by that advice.  I think the current default is
correct out of the box for more people than the previous nil value.
And I see no catastrophe in a mode hook that overrides the default for
those who don't like this default.  The defaults cannot possibly DTRT
for everyone, only for the majority.

Thanks.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Use Emacs' default value of "bidi-paragraph-direction" in orgmode
  2018-06-17  6:12   ` Eli Zaretskii
@ 2018-06-17 12:29     ` ST
  2018-06-17 13:10       ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: ST @ 2018-06-17 12:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Emacs-orgmode, Nicolas Goaziou

On Sun, 2018-06-17 at 09:12 +0300, Eli Zaretskii wrote:
> > From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
> > Cc: Emacs-orgmode@gnu.org
> > Date: Fri, 15 Jun 2018 16:05:37 +0200
> > 
> > ST <smntov@gmail.com> writes:
> > 
> > > Please leave the Emacs' default value of "bidi-paragraph-direction"
> > > which is "nil" in orgmode as well. Right now orgmode seems to force
> > > "left-to-right", thus blocking "right-to-left". With "nil" it is
> > > dynamic, which means both directions work well out-of-the box.
> > >
> > > Right now I'm forced to add this to my config:
> > >
> > > (add-hook 'org-mode-hook 
> > >           (lambda ()
> > >             (setq bidi-paragraph-direction nil)))
> > >
> > > It took me a lot of time to figure out, which makes the first Org steps
> > > for RTL-newbies quite frustrating...
> > 
> > It may not be as obvious as you think. See
> > <https://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00349.html>
> > for details.
> 
> For the record: The change to the current default was my suggestion,
> and I still stand by that advice.  I think the current default is
> correct out of the box for more people than the previous nil value.
> And I see no catastrophe in a mode hook that overrides the default for
> those who don't like this default.  The defaults cannot possibly DTRT
> for everyone, only for the majority.

That's exactly what I want to achieve - reasonable defaults for the
majority. Let's clarify:

1. Do you agree that the vast majority of all the documents in human
history were/are EITHER ltr OR rtl? Meaning that mixed ltr/rtl texts are
minority that we should not take care of...
2. Do you agree that for pure ltr texts org headings should appear to
the left and for pure rtl texts org headings should appear to the right?

If you agree with both (1) and (2) - we should put nil as default value,
as this will enable (2).

I'm so eager to change the defaults because we start a project where we
have many non_technically_savvy Windows-people who need to edit rtl org
files in Emacs (which is a challenge on its own). So we want the
experience to be as smooth as possible, but right now rtl users are
disadvantaged for no reason (as with nil - BOTH ltr AND rtl views can be
achieved).

Thank you!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Use Emacs' default value of "bidi-paragraph-direction" in orgmode
  2018-06-17 12:29     ` ST
@ 2018-06-17 13:10       ` Eli Zaretskii
  2018-06-17 16:47         ` ST
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-06-17 13:10 UTC (permalink / raw)
  To: ST; +Cc: Emacs-orgmode, mail

> From: ST <smntov@gmail.com>
> Cc: Nicolas Goaziou <mail@nicolasgoaziou.fr>, Emacs-orgmode@gnu.org
> Date: Sun, 17 Jun 2018 15:29:58 +0300
> 
> 1. Do you agree that the vast majority of all the documents in human
> history were/are EITHER ltr OR rtl? Meaning that mixed ltr/rtl texts are
> minority that we should not take care of...
> 2. Do you agree that for pure ltr texts org headings should appear to
> the left and for pure rtl texts org headings should appear to the right?
> 
> If you agree with both (1) and (2) - we should put nil as default value,
> as this will enable (2).

I agree with (1) and (2), but your conclusion doesn't follow from
that.  The value nil means that the base directionality of
_each_paragraph_ is determined dynamically.  It does NOT mean that the
whole buffer will have the same directionality for all of its
paragraphs.  With nil, some paragraphs could have RTL direction, and
others LTR.  Worse, headings could have one direction and their bodies
another.  A single character at the beginning of a paragraph might
change that paragraph's base direction.  You don't want that with your
users.

> I'm so eager to change the defaults because we start a project where we
> have many non_technically_savvy Windows-people who need to edit rtl org
> files in Emacs (which is a challenge on its own). So we want the
> experience to be as smooth as possible, but right now rtl users are
> disadvantaged for no reason (as with nil - BOTH ltr AND rtl views can be
> achieved).

Users of RTL languages should have bidi-paragraph-direction in Org
buffers set to right-to-left, not to nil.  The value of nil will
sometimes cause the heading to appear at the left while the body
appears on the right, or vice versa, which is the worst of all worlds.

I see no reason why non-technically-savvy people couldn't learn that
they need to set a variable when they start editing text of a known
directionality.  That's what MS-Word users do all the time, right?
And if you want to make it even easier for them, make a site-wide init
file they will all use.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Use Emacs' default value of "bidi-paragraph-direction" in orgmode
  2018-06-17 13:10       ` Eli Zaretskii
@ 2018-06-17 16:47         ` ST
  2018-06-17 17:02           ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: ST @ 2018-06-17 16:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Emacs-orgmode, mail

On Sun, 2018-06-17 at 16:10 +0300, Eli Zaretskii wrote:
> > From: ST <smntov@gmail.com>
> > Cc: Nicolas Goaziou <mail@nicolasgoaziou.fr>, Emacs-orgmode@gnu.org
> > Date: Sun, 17 Jun 2018 15:29:58 +0300
> > 
> > 1. Do you agree that the vast majority of all the documents in human
> > history were/are EITHER ltr OR rtl? Meaning that mixed ltr/rtl texts are
> > minority that we should not take care of...
> > 2. Do you agree that for pure ltr texts org headings should appear to
> > the left and for pure rtl texts org headings should appear to the right?
> > 
> > If you agree with both (1) and (2) - we should put nil as default value,
> > as this will enable (2).
> 
> I agree with (1) and (2), but your conclusion doesn't follow from
> that.  The value nil means that the base directionality of
> _each_paragraph_ is determined dynamically.  It does NOT mean that the
> whole buffer will have the same directionality for all of its
> paragraphs.  With nil, some paragraphs could have RTL direction, and
> others LTR.  Worse, headings could have one direction and their bodies
> another.  A single character at the beginning of a paragraph might
> change that paragraph's base direction.  You don't want that with your
> users.

All troubles that you describe here are relevant only for mixed ltr/rtl
texts ("a single character" is an ltr character inside an rtl text,
isn't it?), but we have agreed to exclude those as per (1). Can you give
an example of pure rtl text with the issues mentioned above?

> 
> > I'm so eager to change the defaults because we start a project where we
> > have many non_technically_savvy Windows-people who need to edit rtl org
> > files in Emacs (which is a challenge on its own). So we want the
> > experience to be as smooth as possible, but right now rtl users are
> > disadvantaged for no reason (as with nil - BOTH ltr AND rtl views can be
> > achieved).
> 
> Users of RTL languages should have bidi-paragraph-direction in Org
> buffers set to right-to-left, not to nil.  The value of nil will
> sometimes cause the heading to appear at the left while the body
> appears on the right, or vice versa, which is the worst of all worlds.

Again, only for mixed ltr/rtl texts, until you prove (by example)
otherwise.

> I see no reason why non-technically-savvy people couldn't learn that
> they need to set a variable when they start editing text of a known
> directionality.

If you don't have a counter-example, nil is better since that way you
have one default setting for ALL buffers and you can work with BOTH ltr
and rtl texts with the same config without the need to change anything.
Contrary to mixed ltr/rtl texts - working with pure ltr texts is common
also for rtl people.

>   That's what MS-Word users do all the time, right?

Yes, but they are used to buttons_check-boxes stuff, not lisp config
files.

Thanks!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Use Emacs' default value of "bidi-paragraph-direction" in orgmode
  2018-06-17 16:47         ` ST
@ 2018-06-17 17:02           ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2018-06-17 17:02 UTC (permalink / raw)
  To: ST; +Cc: Emacs-orgmode, mail

> From: ST <smntov@gmail.com>
> Cc: mail@nicolasgoaziou.fr, Emacs-orgmode@gnu.org
> Date: Sun, 17 Jun 2018 19:47:31 +0300
> 
> > I agree with (1) and (2), but your conclusion doesn't follow from
> > that.  The value nil means that the base directionality of
> > _each_paragraph_ is determined dynamically.  It does NOT mean that the
> > whole buffer will have the same directionality for all of its
> > paragraphs.  With nil, some paragraphs could have RTL direction, and
> > others LTR.  Worse, headings could have one direction and their bodies
> > another.  A single character at the beginning of a paragraph might
> > change that paragraph's base direction.  You don't want that with your
> > users.
> 
> All troubles that you describe here are relevant only for mixed ltr/rtl
> texts ("a single character" is an ltr character inside an rtl text,
> isn't it?), but we have agreed to exclude those as per (1). Can you give
> an example of pure rtl text with the issues mentioned above?

See the original problem description, the URL that was cited
up-thread.  It describes slow scrolling that happened in a pure LTR
Org buffer, and was solved by the setting I proposed.

> > Users of RTL languages should have bidi-paragraph-direction in Org
> > buffers set to right-to-left, not to nil.  The value of nil will
> > sometimes cause the heading to appear at the left while the body
> > appears on the right, or vice versa, which is the worst of all worlds.
> 
> Again, only for mixed ltr/rtl texts, until you prove (by example)
> otherwise.

The current default is better because it covers also those mixed
examples.

> If you don't have a counter-example, nil is better since that way you
> have one default setting for ALL buffers and you can work with BOTH ltr
> and rtl texts with the same config without the need to change anything.
> Contrary to mixed ltr/rtl texts - working with pure ltr texts is common
> also for rtl people.

We are going in rounds, and you don't convince me.  IME, such disputes
about defaults are rarely useful or constructive, because it is easy
to change the default, like I already said.

> >   That's what MS-Word users do all the time, right?
> 
> Yes, but they are used to buttons_check-boxes stuff, not lisp config
> files.

I suggested earlier to set up a site-wide init file, so that your
users won't have to be bothered by the problem.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-06-17 17:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-15 10:32 Use Emacs' default value of "bidi-paragraph-direction" in orgmode ST
2018-06-15 14:05 ` Nicolas Goaziou
2018-06-17  6:12   ` Eli Zaretskii
2018-06-17 12:29     ` ST
2018-06-17 13:10       ` Eli Zaretskii
2018-06-17 16:47         ` ST
2018-06-17 17:02           ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).