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

Re: misc. annoyances



    Date:  3 June 1987 12:15 pdt
    From:  miller at CS.ROCHESTER.EDU
    Subject:  Re: misc. annoyances
    Last-Redistributed:  3 June 1987 13:25 pdt by
                         CMP.SLUG at R20.UTEXAS.EDU

    Entering the editor recursively is only half the problem: the really
    desired state is to support multiple editor processes (e.g. <select>
    c-E gives you a new process rather than just a new window); now you
    have the problem of communication of bindings in the process stack. I
    suspect they haven't done this because they would have to rewrite a
    lot of stuff to associate things more with the buffers? (so nothing
    important is on the stack).

As it turns out, this isn't an issue (and hasn't been since the way
message passing was changed back in release 4.0).  The special variables
on the stack are there because they are bound specially by the top level
of the editor, and are really just instance variables in the editor
instance.

    There is nothing more annoying that creating a new editor and finding
    you can't use it because you are in the middle of an incremental
    search in the other one. I created the new thing so I could *save my
    state* in the first one!

The real reasons why this hasn't been done are that doing it right is
hard, and nobody within Symbolics has been given the time to work
seriously on the editor in several years.

Why is it hard?  To do it right, you want to incorporate locking into
all the interesting Zwei data structures.  This requires rewriting much
of the editor extensions to wrap a (with-appropriate-structure-locked
...)  around the code which actually modifies things (imagine multiple
processes reaching in and updating the Zmacs buffer list simultaneously.
You switch windows, and when you come back, the buffer you thought you
were editing is no longer there!).

Technically, it's not that hard, but getting it right (and efficient)
is.

    Anyway, I can't think of a single more important improvement to the
    user interface...

How about generalized UNDO in the editor?  That's the other such "most
important improvement" everybody wishes were done, and which nobody has
the time to do...