On Tue, Jul 8, 2014 at 2:53 PM, Kent Tenney <[email protected]> wrote:
> Organizer nodes are additional structure which can be added,
> are leo-centric, and require @file (== sentinels)
>
> Correct?
Thanks for your question. It's important and deserves a complete answer.
Yes and no. True, they could be considered Leonine, and they do
require sentinels. Otoh, they can also be created in Emacs org-mode
or vim-outline mode.
For me, and presumably most who use org-mode or vim-outline mode,
nodes could be considered a "unit of meaning". For example, here are
two common patterns, not involving organizer nodes, that are naturally
expressed in a single node:
Pattern 1: defining an ivar used only in one method::
aCount = None
def spam(self):
self.aCount += 1
...
Pattern 2: defining an alias to a method::
def spam(self):
...
Spam = spam
Leo contains nodes of both forms. Without some kind of AI (ad-hoc,
not very reliable rules) there is no way for the @auto read logic to
know whether code that appears *between* methods should be associated
with the preceding or following node.
That's why sentinels are so useful: they unambiguously assign code to
one node and not the other. Furthermore, sentinels allow organizer
nodes and section references to be created where no text (in the
original file) exists at all.
Yes, @auto can do without this knowledge, but it's a compromise. I'm
not impressed with arguments saying that we don't need this knowledge.
Otoh, the recent work with @view nodes shows that it is surprisingly
difficult to insert organizer nodes (and otherwise alter outline
structure) in the @auto read logic. Since you don't seem to care
about such things, I was (and still am) willing to abandon that part
of the project.
Happily, this entire discussion is moot for @org-mode and @vim-outline
files because both kinds of files use sentinels. As a result, there
is never any question about what code belongs in which node.
Organizer nodes are also no problem for such files.
Obviously, neither emacs files nor vim files sentinels contain gnx's.
The challenge is to associate, as reliably as possible, gnx's (or
equivalently, uA's) with such sentinels as Leo reads them. All of our
recent work with bookmarks indicates that such associations *can*
often be made, and as a consequence both uA's and clone links can
often be restored in @auto, @org-mode or @vim-outline files.
In short, I'm looking to recreate uA's and gnx's in @auto files, and
also in the future @org-mode and @vim-outline files. Recreating
organizer nodes and other alterations of outline structure is on
indefinite hold for @auto nodes. I think this gives you (Kent)
everything you want, while avoiding complications in the abandoned
@auto read logic. Such complications do not exist when reading
@org-mode and @vim-outline files because those files contain
sentinels.
Edward
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.