Try implementing QText / QL Editor using Monaco
        
          Summary: The 
Monaco Editor is the basis for VSCode, and appears to include everything we need, if I coerce it enough.
 They normally deliver the system using npm, which doesn't work for us, but it looks like we could use that to 
get the editor, and deliver it in our more usual ways.  (I hope.)  See 
the Monaco Repo for more info.
Just to sweeten the pot: diff'ing is built-in!