Trying to properly learn codemirror 6. I upgraded my AI with code search and optimised its prompt with GEPA so it could help me program codemirror better. Given Observable is going plain Javascript, that simplifies things a bit language-wise and its just a matter of getting the off-the-shelf JS language syntax highlight working + injecting runtime state for code completion based on the current state of the runtime. My new prototype runtime editor lets you change the runtime graph using the plain JS SDK instead of the higher level cell model. Anyway, nice to start understanding about 3% of codemirror's programming model. I think getting rid of cells will make things more straight forward.