* Refactor getNodePathFromSourceRange
getNodePathFromSourceRange wouldn't go as deep as it should have,
stopping at pipe expressions, when it should have followed as deep
into the ast as possible.
The fact that it stopped early then had other part of the code base that
expected this behaviour and it effected a lot, so a rather large refactor
* overhaul of getNodePathFromSourceRange
* quick fix for moreNodePathFromSourceRange
* minor bugs in moreNodePathFromSourceRange
* couple more tests
* add moveValueIntoNewVariable
* add UI for replacing valuse with variable
* update button text
* update execution of callExpressions
* tweak types to store multiple cursor ranges and hook up with artifact highlighting
* multi-cursor from 3d scene
Working but has to be capslock for the time being
* tweak pannel headers
* add issue to todo comment
* initial tokeniser to wasm port
* fix tests
* add wasm to build script
* add rust tools to test action
* tweaks
* maybe tests will be happy
* tweak simple server
* trying to get tests to pass
* it pget vercel to build
* tidy up
* clean up rust files
* change lexer to use recursion so that it's consistent with the rest of the interpreter
* clean up nokeniser further
* rename variables
* readme typos
* run rust tests in CI
* follow clippy's advice
* more clippy clean up
* setup up proper serialzation to js-land
* tidy init promise in tests
* functional sketch working
With old sketch block still there
* get all version of lines working with add line and update line
* remove old ui state types
* some clean up
* rename some things
* add todo for multi cursor
* shorten useStore repitition
* small type improvement
* big overhaul to group sketch function and they ast modifying helpers together
* unneeded tweak
* ruthlessly rip out sketch logic
* clean up path keyword
* getting sketch on face working again with all the new sketch line types
* add a bunch of tests and re-arrage file structure