In my projects, many times I have to go back to working on a feature that has not been active for a long time. It usually takes me a considerable amount of time to remember what was what, what I was trying to accomplish, and generally to get into flow working productively on the code.
There is a way to make the transition faster and easier. If I am able to “record” my coding session as I work and save it somewhere and also be able to “playback” a saved session. Then, whenever I want to resume work on a feature, I can watch myself opening files and adding/editing/deleting code and remember exactly what I was doing and where should I resume and what to do.
I suspect the building blocks of such feature already exist in the Teletype package. When someone opens a Teletype portal and a colleague joins the session, the actions of each party are serialized and sent to other peers and once received are de-serialized and re-animated. So in the Teletype package there exists a way to serialize keystrokes, cursor jumps, highlights, opening files, etc. Instead of sending that data over the wire it can be added to a buffer and saved. The re-animation part is also what we need for the playback. We should of course remove the inactive times and speed up the animation so that watching the playback would take much shorter than the actual coding session.
I am new to Atom and have only briefly glanced at the source of Teletype. From what I have seen, the code is not very accessible to someone with below average JS proficiency as myself. So, I thought I would share this idea with the community hoping someone more skilled might be interested in it. I might also try to understand the relevant parts of the code from Teletype source and attempt writing a package if no one expresses interest in working on such feature. In that case I’d appreciate any and all guidance you guys could offer.