[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: undo (was: Scrollbar morphems?

Jecel wrote:

> You would have to add automatic "transactions" to the user interface, ...

I agree with what has been said about accept/cancel and find them to be an
edge that needs rounding, at least graphically.  Just label them `OK' and
`Cancel' for a start.  They do represent elements of a transaction, which
we want.  But their current use is batch-oriented and therefore nonconcrete
("counterfactual") and too coarse-grained.

For concreteness ("factuality"), the user might choose between direct
editing (inline, but the object will discontinue accepting messages) and
batch editing (in a separate editor, so the object stays functional).  I
like the idea of layering the editor on top of the method slot, with an
additional visual clue to that.

For finer grain, Jecel said in another message:

> Well, the "smart editor" described in the Self docs ( file
> ast.ps or something like that ) would enable you to always
> have a syntax-error-free source. But it could not always
> be logically correct. ...

Multiple levels/grains of transactions are needed, one for each level of
correctness, as there are the syntactic/grammatical level and an arbitrary
number of semantic/logical levels.  The finest grain should be grammatical
categories.  For atomic changes on the syntactic level like replacing a
selector or changing a number, inline editing might be the default.  For
bigger changes involving multiple language elements, batch editing is more
sensible (first logical level).  Editing groups of objects (methods) adds
further grain sizes/logical transaction levels.