<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<br><div><div>On Apr 10, 2009, at 8:52 PM, John Clements wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">A few weeks ago Jay McCarthy suggested a feature for the stepper that was so obvious that I had to implement it (also, I have a sneaking suspicion that others must have suggested it): starting to step at a specified expression, rather than from the beginning.</div></blockquote><div><br></div>I presume you mean that the Definitions pane would execute from the beginning, but the Stepper would only go into effect at the specified expression.<br><div><br></div><div>I had initial some ideas about a UI for this, but then started thinking about my long-standing request to have the Stepper work in the Interactions pane as well as the Definitions pane, and how to do both of these things in a consistent way (from the user's perspective)... and I came up with something much more powerful.  How does this sound?</div><div><br></div><div>1) Provide a "step" form that opens a Stepper window to evaluate its argument.  This form would be invokable from either Definitions or Interactions.  If invoked when there is no MrEd window open at all, it would simply evaluate its argument.  If invoked from within an expression that's already being Stepped, it would be ignored.</div><div><br></div><div>2) Provide a miniature "foot" icon that's an abbreviation for the "step" form, just as an apostrophe is an abbreviation for the "quote" form, or the lambda symbol is an abbreviation for "lambda".</div><div><br></div><div>3) Anywhere in the Definitions pane (whether at the top level or inside a function definition), or anywhere in a yet-unevaluated line in the Interactions pane, you can right-click and insert (or remove) a "foot" icon, i.e. a "step" form around the immediately-following expression.</div><div><br></div><div>This gives you effectively the multiple-breakpoint capability of BlueJ's debugger, plus the ability to invoke a Stepper  on any portion(s) of interactively-typed code without removing your hands from the keyboard.</div><div><br></div></div><br><div> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div>Stephen Bloch</div><div><a href="mailto:sbloch@adelphi.edu">sbloch@adelphi.edu</a></div></span></div></body></html>