<div dir="ltr">There is (bare-bones) support for adding keybindings based on the #lang line that you can use to connect your indenter to DrRacket. See the first paragraph of section 6.2 here:<div><br></div><div><a href="http://plt.eecs.northwestern.edu/snapshots/current/doc/tools/Editor_Modes.html">http://plt.eecs.northwestern.edu/snapshots/current/doc/tools/Editor_Modes.html</a><br>
</div><div><br></div><div>A mode:surrogate-text<%> implementation can add and remove a chained keymap that contains your indenter mapped to tab.</div><div><br></div><div>The Racket-mode implements the indenter by using the color-text% code -- there is a lexer for Racket in there that supports a smart notion of "re-lexing" (ie it doesn't have to process the entire buffer on each change) and then the indenter queries that to find out near by tokens to figure out what the indentation level is supposed to be. Not counting that information, you're really working at the level of a text% object, tho. If you need a different colorer/lexer you can also add one via the mode, but you'd be implementing it.</div>
<div><br></div><div>Let me know if you run into any other questions!</div><div><br></div><div>Robby</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Oct 13, 2013 at 12:48 AM, Joe Gibbs Politz <span dir="ltr"><<a href="mailto:joe@cs.brown.edu" target="_blank">joe@cs.brown.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi!<br>
<br>
I want to try and get auto-indentation for Pyret working in DrRacket.<br>
What APIs should I be looking at for doing this?  It seems like a<br>
color-lexer is about the limit of what I can do via the get-info of a<br>
#lang, right?  Do I need to implement a drracket:language:language<%>?<br>
 A mode?<br>
<br>
I'm a little confused about what my options are for getting a handle<br>
on the stream of definitions text, and what interface I'll have when I<br>
do.<br>
<br>
I think just some pointers to existing approaches (didn't ProfessorJ<br>
have an indenter at some point?) would be helpful.<br>
<br>
Thanks!<br>
Joe<br>
____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div><br></div>