[plt-scheme] Changing the behavior of the run and debug button inDrScheme

From: Robby Findler (robby at cs.uchicago.edu)
Date: Mon Feb 18 15:50:08 EST 2008

Others would probably know better than me, but it might make sense to
extend the custodian hierarchy with DDE support (so that when a
custodian is shutdown, the connection is properly closed) and then you
won't need to do anything DrScheme specific at all.

This has been pointed out many times here so I hope it isn't old news
to you, but it would fit in with the way DrScheme is designed as well
as other tools, as described in a research paper here:

http://citeseer.ist.psu.edu/201755.html

Robby

On Feb 18, 2008 12:59 PM, Gregory Cooper <greg at cs.brown.edu> wrote:
> Hi Robert,
>
> Perhaps you could simply override the on-execute method in your module
> language to make it initiate a connection.  I believe such a
> connection would be terminated automatically when you closed the tab
> or clicked Run or Debug again.  Would that work?
>
> For an example of something similar, look at
> collects/frtime/frtime-tool.ss, where the on-execute method is
> overridden to extract some values from the program before it starts
> running.
>
> Cheers,
> Greg
>
>
> On Feb 18, 2008 6:41 AM, Robert Matovinovic <robert.matovinovic at web.de> wrote:
> > Hi Greg,
> > thanks for your hints. They will definitely help me. I looked already at the
> > tools manual before I wrote the first mail but it didn't help me where
> > actually to find the code which is executed, when the run button is clicked
> > and how to extend/override it. So do you or anybody know where to look at?
> > Robert
> >
> > -----Ursprüngliche Nachricht-----
> > Von: plt-scheme-bounces at list.cs.brown.edu
> > [mailto:plt-scheme-bounces at list.cs.brown.edu] Im Auftrag von Gregory Cooper
> > Gesendet: Sonntag, 17. Februar 2008 21:37
> > An: Robert Matovinovic
> > Cc: plt-scheme at list.cs.brown.edu
> > Betreff: Re: [plt-scheme] Changing the behavior of the run and debug button
> > inDrScheme
> >
> >
> >
> > Hi Robert,
> >
> > Yes.  You'll probably need to define a tool with mixins that extend various
> > DrScheme classes.
> >
> > You can use drscheme:get/extend:extend-unit-frame to apply a mixin to the
> > unit frame (the class for the top-level DrScheme window).  The mixin can
> > override the execute-callback method, which gets invoked when the user
> > clicks Run or Debug.
> >
> > To run your startup code: the unit frame provides a current-tab method, to
> > which you can send get-ints to get the associated interactions-text object.
> > Once you have the interactions-text, you can send it
> > run-in-evaluation-thread with a thunk containing the code you want to run.
> >
> > As far as running shutdown code, you can similarly use
> > drscheme:get/extend:extend-tab to override enable-evaluation in the tab.
> > (I'm pretty sure enable-evaluation gets invoked once all the definitions
> > have been run, which should give you a suitable hook. Someone else can
> > correct me if I'm wrong about this.)
> >
> > For examples of these mechanisms in use, you can look in
> > collects/mztake/debug-tool.ss.  There may be simpler examples, but that's
> > where my experience comes from.
> >
> > Cheers,
> > Greg
> >
> > On Feb 17, 2008 2:02 PM, Robert Matovinovic <robert.matovinovic at web.de>
> > wrote:
> > > Hi,
> > > is it possible to change the behavior of the run and debug buttons in
> > > DrScheme via a tool? I implemented a module language to control an
> > > external program via DDE (this ancient Windows dynamic data exchange).
> > > I would like to implement an automated connection setup to the
> > > external program before the program in the definitions window in
> > > executed or debugged and an automated disconnection afterwards, if
> > > that language is chosen. Can anybody point me to the right files to
> > > look at and what might be a good way to go? Thanks a lot. Robert
> > > _________________________________________
> > > Robert Matovinovic
> > > Wintererstr. 61
> > > 79104 Freiburg
> > > Germany
> > >
> > > Tel:    +49 (0)700 6286 0000
> > > Cell:   +49 (0)171 56 32 330
> > > email: robert.matovinovic at web.de
> > >
> > >
> > > ____________
> > > Virus checked by G DATA AntiVirusKit
> > > Version: AVK 18.2756 from 13.02.2008
> > > Virus news: www.antiviruslab.com
> > >
> > > _________________________________________________
> > >   For list-related administrative tasks:
> > >   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> > >
> > _________________________________________________
> >   For list-related administrative tasks:
> >   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> >
> >
> > ____________
> > Virus checked by G DATA AntiVirusKit
> > Version: AVK 18.2756 from 13.02.2008
> > Virus news: www.antiviruslab.com
> >
> >
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>

Posted on the users mailing list.