Ink-Py 2019-12-01

By Max Woerner Chase

No real surprises working through Ink Py. I still don't have the test passing, but it's progressing further. I think it might actually almost pass if I can get through this command implementation, but maybe not.

Answer from the future: Nope! The next step is to actually format the output for display, which is something that I tried to factor out of the traversal logic, and into a separate presentation step (good, I think), which I haven't yet tried to implement (less good).

I know every entry on this has been like, here's a new thing that doesn't work, but formerly, absolutely none of this worked, and after each entry I got a bit more working.

Anyway, once I have a test passing, I'm going to look into refactoring stuff because my __init__.py is a giant horrifying grab-bag. Then, I might consider putting the still highly-incomplete code up online to show off. In spite of my insistence on making the immutability enforced at runtime, and some overly-clever concepts, there are some things I'm noticing that I think could make the C# Ink leaner and better-organized. (For one, some of my Path implementation corresponds to parts of the InkObject implementation, because the function in question basically just manipulates Paths. For another, I don't currently see how the _startOfRoot Pointer ever wouldn't have a null container. And also there's some internal functions that never get called.)

In any case, now I know what to try to implement tomorrow: coercing internally generated text to nicely rendering text. Hmm. Oh dear. My push_to_output_stream() function isn't nearly gnarly enough. I guess that's the first thing to address.

Good night.