<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Aug 31, 2013 at 4:21 PM, Stephen De Gabrielle <span dir="ltr">&lt;<a href="mailto:stephen.degabrielle@acm.org" target="_blank">stephen.degabrielle@acm.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div dir="ltr"><div>Hi, </div><div><br></div><div>I&#39;m starting to fiddle with DrRacket plugin ideas (again), and I was wondering if any tool developers can share their processes for developing tools, </div>


<div><br></div><div>What I used to do was dump my tool in a collects directory and run &#39;raco -L toolname&#39;, followed by restarting-the-Doctor. If it failed I would remove the tool from /collects/ and restart again.</div>

</div></div></div></blockquote><div><br></div><div>You don&#39;t need to remove it from collects but just recompile it with `raco setup -D my-tool` (-D to avoid building the docs and save a few seconds).<br></div><div>But you still need to restart DrRacket.<br>

</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div dir="ltr">
<div></div><div>This is a bit frustrating as it can be quite time consuming, and I disable as many tools as possible to make restarts quicker.</div></div></div></div></blockquote><div><br></div><div>It probably depends on what the tool does, but on some occasions you may just need a well-placed `dynamic-require&#39; in your tool, then you only need to recompile the `dynamic-require&#39;d modules without restarting DrRacket (but these cases are meant to be covered by the  script-plugin).<br>

<br></div><div>There are also cases where you can test the tool with a gracket frame instead of the full DrRacket (look for `frame:text%&#39; in the framework).<br><br></div><div>You can also try to use `drracket:frame:basics-mixin&#39;, which should give you a full DrRacket frame to play with, but it&#39;s of course longer to load.<br>

</div><div><br></div><div>For the other cases, you probably need to restart DrRacket.<br><br></div><div>HTH,<br></div></div>Laurent<br></div></div>