[racket] How to communicate from macro to DrRacket tool ?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed Apr 3 20:53:06 EDT 2013

You want to hook into the online expansion, right? You can register a
handler that's called after online expansion completes in the place where
it runs and then its results are passed back to a handler you register on
the other side, back in DrRacket's main place. This is how online check
syntax works.


This goes only one direction, tho, from the code to your view. Making the
view manipulations change the source text would have to be some more
mundane type thing where you just override various GUI callbacks and then
work at the character/string level with the text% object in the definitions


On Wed, Apr 3, 2013 at 7:21 PM, Nick Main <david.nick.main at gmail.com> wrote:

> I am developing a DrRacket plugin that adds a diagrammatic view to the IDE
> (roughly the same place as the Module Browser).
> The diagram is a visualization of certain forms in the current text
> editor. Ultimately I would like to make the connection be bi-directional -
> manipulating the diagram will change values in the text editor.
> The initial use-case is a state-machine visualizer (and later, editor).
> My current approach uses a macro to define the state-machine. I would like
> to drive the generation of the diagram from the uses of the macro (during
> background expansion), rather than writing my own code to detect text
> changes and parse the contents of the editor.
> I am trying to find an easy way to communicate from the macro execution to
> the DrRacket plugin, but nothing has surfaced so far.
> If all else fails I could open up a socket connection in the macro and
> talk to the plugin that way (I assume).
> Are there any cheaper ways to poke a hole through the macro sandbox ?
> --Nick
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130403/4bd71318/attachment.html>

Posted on the users mailing list.