emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Tom Gillespie <tgbugs@gmail.com>
To: Bastien <bzg@gnu.org>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: [POLL] Setting `org-adapt-indentation' to nil by default?
Date: Sun, 2 May 2021 11:11:19 -0700	[thread overview]
Message-ID: <CA+G3_PNQysBX8sSwpr54ZvwOc0Y8gVSK3ixSpa_jwMZT9EZ81w@mail.gmail.com> (raw)
In-Reply-To: <87czu93zr7.fsf@gnu.org>

Hi Bastien,
    Strong +1 here. Users can get the same visual effect without
materializing the whitespace into the file.

Materializing the whitespace causes many potential issues with source
blocks for languages that have significant whitespace, issues with
#+begin_src and #+end_src having different levels of indentation
(still an issue if you want a block in a plain list), weirdness with
noweb, obligatory two pass parsing to get the spacing correct in
paragraphs, etc.

There are many cases where adapting indentation requires the
specification of extremely detailed heuristics that must be followed
exactly in order to get at least a consistent parse of a source block.
The only sane way forward for a language specification would be to
avoid that leading whitespace or avoid trying to specify the
interpretation of source blocks in contexts with leading whitespace
(src blocks in plain lists may come back to haunt us here).

Setting org-adapt-indentation to nil by default would be a major step
toward resolving these issues and frankly I couldn't ask for more.

Best!
Tom

PS I have included some notes on the worg/dev/org-syntax.org
file that I wrote while working on the formal grammar. I would
qualify what I wrote slightly to state that users could in principle
have leading whitespace before source blocks but that the behavior of
org in such cases would be left unspecified in the not quite nasal
demons sense, but that it might be better to have the behavior
described below with a note that no attempt to deal with correctly
preserving leading whitespace is required, user beware. A final
aside: maybe plain lists could have the #+begin_ and #+end_
lines indented to the level of the plain list but maybe not the body?
-----------------------------

Eliminate leading whitespace in the canonical representation.

There are other ways that make it possible to have the indentation
visibility without adding massive complexity to the implementation.

The existing implementation can continue to support it, but any other
implementation SHALL convert indented sections to the canonical form
where there is NO leading whitespace. This eliminates the problem of
significant whitespace for everything except plain lists.

Users will need a migration path and this will require extensive
testing to make sure that the tooling catches as many of the issues as
possible. However, the benefits in the long run are vastly reduced
complexity without all the risks of accidentally botching an indent
somewhere.


  reply	other threads:[~2021-05-02 18:14 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-02  6:09 [POLL] Setting `org-adapt-indentation' to nil by default? Bastien
2021-05-02  7:13 ` Tim Cross
2021-05-02  8:06 ` Jean Louis
2021-05-02  8:47   ` Tim Cross
2021-05-02 20:18     ` Jean Louis
2021-05-02 22:25       ` Tim Cross
2021-05-03  7:41         ` Kévin Le Gouguec
2021-05-03 10:15         ` Jean Louis
2021-05-02  8:56   ` Bastien
2021-05-02  8:59     ` Bastien
2021-05-02 20:24       ` Jean Louis
2021-05-02 20:21     ` Jean Louis
2021-05-02 20:22     ` Jean Louis
2021-05-02 10:07 ` Eric S Fraga
2021-05-02 15:01 ` Detlef Steuer
2021-05-02 15:44   ` Colin Baxter
2021-05-02 15:46 ` Amin Bandali
2021-05-02 18:11   ` Tom Gillespie [this message]
2021-05-02 18:19     ` Nicolas Goaziou
2021-05-02 18:48       ` Tom Gillespie
2021-05-02 19:20         ` Nicolas Goaziou
2021-05-03 10:11   ` Dr. Arne Babenhauserheide
2021-05-02 18:31 ` Jim Porter
2021-05-02 20:44 ` Kévin Le Gouguec
2021-05-03  7:33   ` Kévin Le Gouguec
2021-05-03  8:06     ` Bastien
2021-05-03 12:53       ` Kévin Le Gouguec
2021-05-03 13:40         ` Bastien
2021-05-03 14:57           ` Kévin Le Gouguec
2021-05-06 14:50       ` Maxim Nikulin
2021-05-15 20:51         ` Bastien
2021-05-19 17:02           ` [PATCH] etc/ORG-NEWS: Suggest against disabling `electric-indent-mode' Maxim Nikulin
2021-05-20 12:25             ` Bastien
2021-05-19 17:08           ` [PATCH] org-faq.org: Expand "What is the best setup for indenting?" Maxim Nikulin
2021-05-19 18:06             ` Greg Minshall
2021-05-20 15:57               ` Maxim Nikulin
2021-05-21  2:45                 ` Greg Minshall
2021-05-27 16:11                   ` Maxim Nikulin
2021-05-21  9:38                 ` Bastien
2021-05-20 12:28             ` Bastien
2021-05-19 17:08           ` [POLL] Setting `org-adapt-indentation' to nil by default? Maxim Nikulin
2021-05-02 21:07 ` Jack Kamm
2021-05-05  7:54 ` Bastien
2021-05-06 14:13   ` Bastien
2021-05-09 16:42     ` Kévin Le Gouguec
2021-05-15 12:46       ` Bastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CA+G3_PNQysBX8sSwpr54ZvwOc0Y8gVSK3ixSpa_jwMZT9EZ81w@mail.gmail.com \
    --to=tgbugs@gmail.com \
    --cc=bzg@gnu.org \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).