From: Richard Lawrence <richard.lawrence@berkeley.edu>
To: emacs-orgmode@gnu.org
Cc: Thorsten Jolitz <tjolitz@gmail.com>
Subject: Re: [RFC] Org Minor Mode?
Date: Fri, 11 Apr 2014 10:22:19 -0700 [thread overview]
Message-ID: <87lhvbeq7o.fsf@berkeley.edu> (raw)
In-Reply-To: 87k3aw0zmx.fsf@bzg.ath.cx
Hi Thorsten,
Bastien <bzg@gnu.org> writes:
> Nicolas Goaziou <n.goaziou@gmail.com> writes:
>
>> Thorsten Jolitz <tjolitz@gmail.com> writes:
>>
>>> What do you think - is there any chance that Org-mode switches from
>>> static hardcoded regexp strings (all over the place) to dynamic
>>> regexps calculated at runtime (using libraries like drx.el or rx.el)?
>>
>> I hope not. The syntax should stabilize, not drift away.
>
> Agreed. Maybe there are some hardcoded regexps that we can factor
> out, but dynamically building those fundamental regexp is a deadend.
I agree with what Nicolas and Bastien have said, but I wanted to say
that I think there is an interesting idea in Thorsten's post that
shouldn't be dismissed out of hand.
Org provides a set of UI concepts (tree-like structure, visibility
cycling, tree filtering, task state tracking, building an agenda from
multiple sources, ...) that map nicely onto a lot of other situations,
and would be really handy to have access to even when the syntax of the
underlying file is incompatible with Org's syntax.
There are two ways to think about Org syntax, which I think should be
distinguished here. One is as the grammar of a .org file: basically, a
set of rules that allow a sequence of characters to be parsed into an
AST. The other way to think about Org syntax is the way Lisp
programmers sometimes talk about syntax: as the AST itself, the
collection of Lisp data types and their interrelationships that define a
valid Org document.
If Org were to evolve to the point where the UI concepts were
implemented purely as transformations on an AST -- on Org syntax in the
second sense -- then the way would be clear for making those concepts
available in editing modes where the grammar of the underlying file is
incompatible with Org syntax in the first sense. A programming mode
could, say, parse comments into an Org AST, then expose that AST to the
functions implementing Org's UI concepts. Et voila: you get visibility
cycling, task state tracking, agendas...in your source code comments.
One sort of use case where I think this idea could really shine is in
dealing with email. Obviously, the grammar of the underlying mail files
(say, in a Maildir) will never be compatible with Org syntax in the
first sense. But Org handles so many of the concepts that apply to
email (threading messages into hierarchies, visibility cycling, tagging,
sorting by date or priority, thinking of messages as tasks to be dealt
with, dealing with attachments) in such a nice way that I find myself
sorely missing Org whenever I read mail in a client that doesn't
implement them as nicely -- which is all of them. If it were possible
to build a parser for message files that transformed them into an Org
AST, the mail client of my dreams would be in reach.
I have no idea if evolving Org in this direction is feasible or even
really desireable. It may be that the two notions of Org syntax are
tightly coupled in principle, so that the idea of producing an Org AST
from an alternative underlying file format will never make sense. But I
think that would be surprising.
This evolution would clearly require more work than just abstracting out
the regular expressions that implement much of Org's syntax in the first
sense, and I think Bastien and Nicolas are right that we don't want
either notion of Org syntax to become less stable. Still, I think
there's a lot of interesting possibilities we could explore if Org's
implementations of the two notions of syntax were to become less tightly
coupled.
Best,
Richard
next prev parent reply other threads:[~2014-04-11 17:24 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-10 17:55 [RFC] Org Minor Mode? Thorsten Jolitz
2014-04-10 19:19 ` Nicolas Goaziou
2014-04-11 10:07 ` Bastien
2014-04-11 17:22 ` Richard Lawrence [this message]
2014-04-13 16:28 ` Thorsten Jolitz
2014-04-19 5:37 ` Samuel Wales
2014-04-19 10:25 ` Thorsten Jolitz
2014-04-13 16:07 ` Thorsten Jolitz
2014-04-18 13:27 ` Bastien
2014-04-13 16:00 ` Thorsten Jolitz
2014-04-18 13:29 ` Bastien
2014-04-18 15:54 ` Thorsten Jolitz
2014-04-19 5:23 ` Bastien
2014-04-19 10:11 ` Thorsten Jolitz
2014-04-19 12:57 ` Bastien
2014-04-24 21:06 ` Ilya Shlyakhter
2014-04-25 8:00 ` Thorsten Jolitz
2014-04-29 12:24 ` Bastien
2014-04-29 18:44 ` Ilya Shlyakhter
2014-05-06 9:06 ` Bastien
2014-04-24 21:16 ` Ilya Shlyakhter
2014-04-25 7:49 ` Thorsten Jolitz
2014-05-06 9:20 ` Bastien
2014-05-27 9:20 ` Thorsten Jolitz
2014-05-28 21:47 ` Bastien
2014-05-28 22:19 ` Thorsten Jolitz
2014-05-29 0:01 ` Bastien
2014-05-29 17:47 ` Thorsten Jolitz
2014-05-29 18:57 ` Bastien
2014-05-30 8:52 ` Thorsten Jolitz
2014-05-30 12:13 ` Bastien
2014-05-30 13:41 ` Thorsten Jolitz
2014-05-30 13:54 ` Bastien
2014-05-30 14:15 ` Thorsten Jolitz
2014-05-30 14:22 ` Bastien
2014-05-30 14:38 ` Thorsten Jolitz
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=87lhvbeq7o.fsf@berkeley.edu \
--to=richard.lawrence@berkeley.edu \
--cc=emacs-orgmode@gnu.org \
--cc=tjolitz@gmail.com \
/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).