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.

Reply via email to