<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Oh sorry, I realize I was talking about two different things. I set
    up a test case that creates a color:text% and explicitly calls
    `start-colorer' with the pairs, style, and get-token things I
    defined, but for implementing a language I only have access to
    #:info.<br>
    <br>
    I think some new keys can be passed to the #:info function that can
    get a new pair list and style function. I'll work on a patch for
    that.<br>
    <br>
    On 08/02/2011 12:25 PM, Robby Findler wrote:
    <blockquote
cite="mid:[email protected]m"
      type="cite">I don't think that's currently possible. Patches
      welcome, of course, or if you have a concrete missing thing (I'm
      inferring that everything is ok at the moment from the below but
      I'm not positive about that) I can add something. <br>
      <br>
      Robby<br>
      <br>
      On Tuesday, August 2, 2011, Jon Rafkind &lt;<a
        moz-do-not-send="true" href="mailto:rafkind@cs.utah.edu">rafkind@cs.utah.edu</a>&gt;
      wrote:<br>
      &gt; Ok the last mystery is how can I control the pair matching
      and colors that lexemes should have? If I call `start-colorer' on
      the color:text% I can pass in the style function and the list of
      matching lexemes but with the module-reader I only have control
      over the lexer via #:info.<br>
      &gt;<br>
      &gt; Currently I have<br>
      &gt;<br>
      &gt; (define (style what)<br>
      &gt;   (case what<br>
      &gt;     [(number) "framework:syntax-color:scheme:constant"]<br>
      &gt;     [(string) "framework:syntax-color:scheme:string"]<br>
      &gt;     [(identifier) "framework:syntax-color:scheme:symbol"]<br>
      &gt;     [(parens) "framework:syntax-color:scheme:parenthesis"]<br>
      &gt;     [else "Standard"]))<br>
      &gt;<br>
      &gt; (define pairs '([ |(| |)| ]<br>
      &gt;                        [ |[| |]| ]<br>
      &gt;                        [ |{| |}| ]<br>
      &gt;                       ))<br>
      &gt;<br>
      &gt; And although my current `pairs' list matches what the
      text-mode-mixin has I may add things to the list in the future.<br>
      &gt;<br>
      &gt; On 08/02/2011 10:56 AM, Robby Findler wrote:<br>
      &gt;<br>
      &gt; No. It should back up to the previous lexeme and start there.<br>
      &gt;<br>
      &gt; Robby<br>
      &gt;<br>
      &gt; On Tuesday, August 2, 2011, Jon Rafkind &lt;<a
        moz-do-not-send="true" href="mailto:rafkind@cs.utah.edu">rafkind@cs.utah.edu</a>&gt;
      wrote:<br>
      &gt;&gt; On 08/01/2011 06:40 PM, Matthew Flatt wrote:<br>
      &gt;&gt;&gt; At Mon, 01 Aug 2011 18:13:11 -0600, Jon Rafkind
      wrote:<br>
      &gt;&gt;&gt;&gt; How do I deal with partial lexemes when using the
      color:text colorer? It<br>
      &gt;&gt;&gt;&gt; seems that if my lexer cannot produce a valid
      token then it will throw<br>
      &gt;&gt;&gt;&gt; an error and the color thread will keep calling
      `get-token' in a busy loop.<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Is there some magic thing I can return from
      `get-token' to tell the<br>
      &gt;&gt;&gt;&gt; colorer that it should not progress to the next
      position?<br>
      &gt;&gt;&gt; A coloring lexer's job is to never fail. It should
      instead categorize<br>
      &gt;&gt;&gt; bad input as 'error and be ready to continue.<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; Continuing can mean categorizing all further input as
      'error, but it's<br>
      &gt;&gt;&gt; usually better to continue in some other way.<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;<br>
      &gt;&gt; It seems the colorer re-tokenizes the entire input stream
      each time I<br>
      &gt;&gt; enter a character. Is that the expected behavior?<br>
      &gt;&gt; _________________________________________________<br>
      &gt;&gt;  For list-related administrative tasks:<br>
      &gt;&gt;  <a moz-do-not-send="true"
        href="http://lists.racket-lang.org/listinfo/users">http://lists.racket-lang.org/listinfo/users</a><br>
      &gt;&gt;<br>
      &gt;
    </blockquote>
    <br>
  </body>
</html>