[racket-dev] [racket-bug] drscheme/7432 "Check Syntax" leaves old error messages in Interactions

From: Stephen Bloch (sbloch at adelphi.edu)
Date: Wed Oct 5 14:17:57 EDT 2011

On Oct 5, 2011, at 11:39 AM, Robby Findler wrote:

>>  It seems to me that the only time anybody [rational] does a Check Syntax is just after changing something in the Definitions pane, so anything that was in the Interactions pane is now invalid, just as though they had clicked "Run".  What if Check Syntax were to CLEAR the interactions pane rather than just hiding it?  Does anybody see a good reason NOT to do this?
> Well, usually when the REPL is reset, there is a program that's been
> run to make a new REPL with.
> To address this kind of issue there is that big yellow warning across
> the bottom of the screen which seems more like what we want here,
> since this kind of interaction can happen just fine without the
> student clicking check syntax. (Ie they can edit something, forget to
> hit Run and then go to the REPL).

That would be fine with me.

In fact, this issue really doesn't have anything to do with "Check Syntax"; the rule would be "as soon as the Definitions pane is modified, put a yellow warning label on the Interactions pane."

(At present it seems to be "If you type something in the Interactions pane, and the Definitions pane has been modified since last 'Run', put a yellow warning label on the Interactions pane.")

The problem is that the "warning" is in scary language, and if it comes up whenever you do ANYTHING to the Definitions pane, people will spend their lives scared.  Furthermore, it tells you to "Click Run"; if taken literally, this would lead people to click Run after every keystroke they type in the Definitions pane.  Perhaps the right answer is to re-word the message to something like

"The definitions pane has changed since the last Run, so what's in the interactions pane may no longer match it.  Once you're done changing the definitions pane, click Run."

(Yes, that's too wordy, but it says what I want to say.)

A much less wordy and intrusive way to put it would be to grey-out the background of the Interactions pane whenever the Definitions pane has changed since the last Run.  This would however be much less "discoverable".

A radical answer would be to automatically hide the Interactions pane whenever the Definitions pane has changed since the last Run, and not show it again until you hit Run.  Eliminate the "show interactions" and "hide interactions" menu commands entirely: the interactions pane is visible iff the definitions pane is unmodified.

Stephen Bloch
sbloch at adelphi.edu

Posted on the dev mailing list.