I'm trying to write my own source-code editor using `racket/gui` and `framework`. Things are going well! I love what I've been able to accomplish so far, with very little code!
I'm to the point where I'd like to add support for another language besides Racket. I've been using `racket:text%` objects so far. They're a nice off-the-shelf way to get editors that support Racket syntax highlighting and some other nice features. It seems like the idiomatic way to support a new language would be to implement a new editor class in the same style. So I started looking at the code. And I'm lost. It's been hard to figure out the intent of the code in lots of places, and I don't know where to focus my attention. I need to understand the high-level concepts so that the code will make sense. For example, I see that a surrogate is used in a lot of places. It looks like a surrogate is a `text%` object, but I don't know what it is conceptually, or whether its job is to hold the text or to display it. I also don't understand why it would need to be enabled or disabled. What is a `set-mode-mixin`? A `color:text-mode%`? Actually, what is a mode? Is there anywhere the overall architecture built and used in the framework is explained at a high level? A guide to extending and using it would also be awesome, if such a thing existed. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.