My initial post in this thread showed how Leo could support Imps (Immutable Positions) without changing Leo's Position or VNode classes. I concluded that Imps were not a good idea :-)
Vitalije not-so-subtly implies that Positions are a blunder. This post refutes that notion. *Positions are the foundation of Leo's generators.* The great Bernhard Mulder proposed using generators such as *c.all_positions* and *p.self_and_subtree*. Much of Leo's scripting prowess is the direct result of generators. *Positions have a natural meaning.* Positions correspond to outline order in a fully-expanded outline. This *easily-understood* meaning carries over to the corresponding generators. *The algorithms of the Position class are solid.* Generators work because Leo's position class makes them work. The algorithms underlying generators are non-trivial, as you can discover for yourself. Leo's representation of positions makes the algorithms as straightforward as possible. *Summary* Positions give Leo much of its scripting power. Their meaning, representation, and algorithms are easily understood and as simple as possible. It is insulting to imply that positions are defective. Those who think they have a better way can create a Leo plugin or even a fork of Leo. They can then discover for themselves whether replacing positions would work. They do not need my permission for their experiments, and they need not convince me beforehand that their ideas have merit. Waiting a year won't change my opinion. Only a complete demonstration of fully functional code could do that. 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 view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/cdf726d0-fbe7-492c-8980-b6ad328b174an%40googlegroups.com.
