On 08/02/2011 03:36 PM, Robby Findler wrote: > On Tue, Aug 2, 2011 at 4:18 PM, Jon Rafkind <rafk...@cs.utah.edu> wrote: >> On 08/02/2011 12:57 PM, Jon Rafkind wrote: >> >> 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. >> >> 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. >> >> >> After searching a handful of paths it seems the only way to make this work >> is to hook into the 'run' button. I imagine that start-colorer can be called >> each time 'run' is invoked and at which time the #:info function can be >> probed for the `pairs', `token-sym->symbol' and possibly the lexer as well. >> >> A cursory glance at module-lexer looks like its going through the whole >> process of getting the lexer by 1. calling `read-language' and 2. calling >> (get-info 'color-lexer). This seems like redundant work if the #lang hasn't >> changed. Hooking into the run button could do most of this work once. >> > No, it doesn't do that. It detects when you edit the region around the > #lang (this is why the docs say not to read too far into the port; > that's how it knows). > > I don't think we want to tie this to the run button. DrRacket already > sets up the right stuff to know when to check to change the colorer; > we should just continue to use that. > > Can you be more precise about what is not working for you?
I need a way to override the `token-sym->symbol' function that returns a style given a symbol representing the current lexeme and a way to override the `pairs' list that contains matching paren-like symbols. The module-reader currently has a #:info argument that lets you return a new lexer when passed 'color-lexer but there is no way to override the other two things (token-sym->symbol and pairs). _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users