# Example "freewheeling" app that can be modified without being restarted Running this repo in isolation won't be very helpful. If you haven't yet, first check out [the driver app](https://git.sr.ht/~akkartik/driver.love). This repo is a template you can copy to create your own live apps that juggle text editor widgets. The editors support copy/paste, search, infinite undo, etc. You can't modify editor functionality live (yet?). [Some reference documentation on how to create your own apps.](reference.md) This repo is an example of a [Freewheeling App](http://akkartik.name/freewheeling), designed above all to be easy to run, easy to modify and easy to share. ## Getting started Install [LÖVE](https://love2d.org). It's just a 5MB download, open-source and extremely well-behaved. I'll assume below that you can invoke it using the `love` command, but that might vary depending on your OS. Run this app from the terminal, [passing its directory to LÖVE](https://love2d.org/wiki/Getting_Started#Running_Games) ## Hacking To modify it live without restarting the app each time, download [the driver app](https://git.sr.ht/~akkartik/driver.love). Here's an example session using a fork of this repo: ![making changes without restarting the app](assets/2.gif) If you run a .love file, your changes will go into the [save directory](https://love2d.org/wiki/love.filesystem.getSaveDirectory). If you unzip the .love file into a new directory and run the directory instead, your changes will go straight into the same directory. ## Keyboard shortcuts Up to you! But within the included editor widget if you use it: * `ctrl+f` to find patterns within a file * `ctrl+c` to copy, `ctrl+x` to cut, `ctrl+v` to paste * `ctrl+z` to undo, `ctrl+y` to redo * `ctrl+=` to zoom in, `ctrl+-` to zoom out, `ctrl+0` to reset zoom * `alt+right`/`alt+left` to jump to the next/previous word, respectively * mouse drag or `shift` + movement to select text, `ctrl+a` to select all Exclusively tested so far with a US keyboard layout. If you use a different layout, please let me know if things worked, or if you found anything amiss: http://akkartik.name/contact ## Known issues * Both freewheeling apps and the driver for them currently benefit from being launched in terminal windows rather than by being clicked on in a desktop OS. See [the driver app](https://git.sr.ht/~akkartik/driver.love/src/branch/main/README.md) for details. * No support yet for Unicode graphemes spanning multiple codepoints. * No support yet for right-to-left languages. * Undo/redo may be sluggish in editor windows containing large files. Large files may grow sluggish in other ways. * If you kill the process, say by force-quitting because things things get sluggish, you can lose data. * Can't scroll while selecting text with mouse. ## Mirrors and Forks This repo is a fork of [lines.love](http://akkartik.name/lines.html), an editor for plain text where you can also seamlessly insert line drawings. Its immediate upstream is [text.love](https://git.sr.ht/~akkartik/text.love), a version without support for line drawings. Updates to it can be downloaded from the following mirrors: * https://git.sr.ht/~akkartik/template-live-editor * https://codeberg.org/akkartik/template-live-editor * https://nest.pijul.com/akkartik/template-live-editor (using the Pijul version control system) Further forks are encouraged. If you show me your fork, I'll link to it here. * https://git.sr.ht/~akkartik/luaML.love - a "browser" for a Lua-based markup language, loosely analogous to HTML except it's all Lua. * https://git.sr.ht/~akkartik/bf.love - a toy environment for working with [BF](https://en.wikipedia.org/wiki/Brainfuck) programs. * https://git.sr.ht/~akkartik/broadsheet.love - a multi-column paginator that uses all available width while remaining readable. * https://git.sr.ht/~akkartik/crosstable.love - for all-play-all tournaments. ## Feedback [Most appreciated.](http://akkartik.name/contact)