First a disclaimer: I'm not at all sure what consequences the patch
included with this post has on other parts of McCLIM, so it probably
shoulnd't be used without an experienced McCLIM'er taking a look at
it. It is a solution to a problem that has annoyed me, and I haven't
detected any malfunctions in other parts of McCLIM, so perhaps it's
safe...
In existing McCLIM, if you type a single "(" (without the quotes) at
the McCLIM-Listener, you will instantly end up in the debugger with a
reader-error due to unbalanced parantheses. This struck me as
unnecessarily harsh, especially since the input entered at the
Listener will be gone when the debugger is exited.
The patch specializes the `accept' method for objects of type
`expression' for streams of type `input-editing-stream' to ignore
reader errors and let the user continue typing. If the entered input
is still malformed when the user presses RETURN, it will be handled in
a SLIME-style way, that is, a newline will be inserted and the
expression will remain editable (and fixable).
I have used the patch for the last week or so and have experienced no
problems, but I could imagine that such a relatively crude
modification to an important McCLIM-function could have some
unexpected side-effects. Use at own risk. :-)
--
\ Troels "Athas" Henriksen
/\ sigkill.dk/blog (Danish)