I should be back on a normal schedule next week, so Witness Wednesday Proper will resume next Wednesday. I’d like to do a Q&A about the Lister Panel, if people are up for it, just so that beginners can take a look at the actual code as it is used in the editor and ask questions about why things are the way they are. Sometimes the answer will be, "because I was in a hurry" :) But hopefully I can answer most questions in a way that gives additional insight on why it was a good idea to do things roughly the way they were done in the code.
Here is the complete ~2000 line source file that implements everything in the Lister Panel, along with its header file. Both have been lightly redacted to remove any filters that might give away aspects of The Witness’s gameplay for people who want to remain spoiler-free, so there should be absolutely no spoiler risk in reading the code:
Keep in mind that this code is a mixture of styles (Jon’s and mine), because even though I wrote all the code, I adopted Jon’s conventions in many places, just to make it easier for him to maintain. This is also editor-only code, which means it is not meant to be used in a released product, and thus the emphasis is entirely on keeping implementation costs low, and not on ancillary things like robustness that might be more of a priority in code meant for end users.
So, if you are in the mood, please spend some time looking over the files and send questions to email@example.com. I will collect them all and answer them next week!