[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.
Rainer