You can spend all day flailing at a keyboard and accomplish nothing. A few moments of thought make everything clear!
I've broken the text into lines and let then loop through them, collecting width, height, text length, and line data. I'm hoping this will work for longer lines of text, but we will see. I need to remake the text movement, insert, and delete code but now I'm feeling hopeful about the thing. Text looks like it's in the bag.
Next will be building the REPL. I'm looking at PREPL, and it's a great guide for this sort of thing. But it's not exactly what I need. I'm trying to make something simple for the duration, so I can get to the graphics again. I'm bad about getting sidetracked so I need to remember why I am building this in the first place.
Basically, I want a REPL with some simple restart capability. The biggest problem at this point is determining how to display the debug info! I'll start by just dumping it, without backtrace data (I'll print that back to slime) and let the user choose a restart. I'll need a little more work with the I/O but I think this is the easy way.
I still have a long way to go, but soon I hope to have Pango and FreeImage binding released and some simple graphics to play with!