5TDFTJBI6I633A4W2NWMMP3YRYOTLRSBJU7XBU5H45UETXSPGSBQC GEBTJKVAPRDVGOP2U7RQNQYUG77RKJS4Q5PMMSBIZIFW6KCATLDQC R5QXEHUIZLELJGGCZAE7ATNS3CLRJ7JFRENMGH4XXH24C5WABZDQC FS2ITYYHBLFT66YUC3ENPFYI2HOYHOVEPQIN7NQR6KF5MEK4NKZAC MD3W5IRAC6UQALQE4LJC52VQNDO3I3HXF3XE2XHDABXBYJBUVAXQC D4FEFHQCSILZFQ5VLWNXAIRZNUMCDNGJSM4UJ6T6FDMMIWYRYILQC PNBKVYZ4ANUAZNQN6KEWYNDF7552ROZPNAPRJE7Q6O7ZZJMJ3S3QC CZRMAMSBRVX26IXKHNPG6M3YSWMOZTM73X3XHAMBDSNETTFVRCUQC IDGP4BJZTKAD6ZO4RLAWYVN6IFCMIM76G6HJGPTE27K4D6CDBUHQC A2TQYJ6JZJF2T47C26H2IRSR6O67BP6VHY5PV7GTFG4IZNQQBJVQC SBS2F7GRG4VYLB7DP2W6LPN5UEX6TK5DZFGCM2P4IVDUIUJRKJ7QC # The on-disk representation of freewheeling appsWhen you start up a freewheeling app, you'll see a directory printed out inthe parent terminal (always launch it from a terminal window):```new edits will go to /home/...```When editing such an app using the driver (see [README.md](README.md)), newdefinitions will go into this directory. Let's call it `$SAVE_DIR` in the restof this doc.It is always safe to move such definitions into this repo. (We'll call it `.`in the rest of this doc.) You'll want to do this if you're sharing them withothers, and it's also helpful if the driver crashes on your app. Movingdefinitions will never, ever change app behavior.```sh$ mv -i $SAVE_DIR/[0-9]* . # should never clobber any existing files$ mv $SAVE_DIR/head . # expected to clobber the existing file```Try looking inside the `head` file with a text editor. It'll contain a number,the current version of the _manifest_ for this app. For example:```478```This means the current state of the app is in a file called `0478-manifest`.If you moved the files you should see such a file in `.`. If you open thisfile, you'll see a JSON table from definition names to version ids. Forexample:```{ "a": 273, "b": 478}```This means the current definition of `a` is in `0273-a` and of `b` in`0478-b`.Poking around these files gets repetitive, so there's a tool to streamlinethings:```lua tools/stitch-live.lua 0478-manifest````stitch-live.lua` takes a manifest file as its argument, and prints out allthe definitions that make up the app at that version.To compare two versions of the app, use `stitch-live.lua` to copy thedefinitions in each into a separate file, and use a file comparison tool (e.g.`diff`) to compare the two files.
A template repo for building live apps that juggle text editor widgets. Theeditors support copy/paste, search, infinite undo, etc. You can't quite modifyeditor functionality live (yet?).
Running this repo in isolation won't be very helpful. If you haven't yet,first check out [the driver app](https://codeberg.org/akkartik/driver.love).This repo is a template you can copy to create your own live apps that juggletext editor widgets. The editors support copy/paste, search, infinite undo,etc. You can't modify editor functionality live (yet?).[More information about the on-disk representation of freewheeling apps.](representation.md)
To run from the terminal, [pass this directory to LÖVE](https://love2d.org/wiki/Getting_Started#Running_Games),optionally with a file path to edit.Alternatively, turn it into a .love file you can double-click on:```$ zip -r /tmp/text.love *.lua```
Run this app from the terminal, [passing its directory to LÖVE](https://love2d.org/wiki/Getting_Started#Running_Games)
By default, it reads/writes the file `lines.txt` in your defaultuser/home directory (`https://love2d.org/wiki/love.filesystem.getUserDirectory`).
To modify it live without restarting the app each time, install [the driverapp](https://codeberg.org/akkartik/driver.love). Here's an example sessionusing a fork of this repo: