4.0 KiB
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. 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.
This repo is an example of a Freewheeling App, designed above all to be easy to run, easy to modify and easy to share.
Getting started
Install LÖVE. 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
Hacking
To modify it live without restarting the app each time, download the driver app. Here's an example session using a fork of this repo:
If you run a .love file, your changes will go into the save directory. 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 filectrl+c
to copy,ctrl+x
to cut,ctrl+v
to pastectrl+z
to undo,ctrl+y
to redoctrl+=
to zoom in,ctrl+-
to zoom out,ctrl+0
to reset zoomalt+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 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.
-
No scrollbars yet. That stuff is hard.
Mirrors and Forks
This repo is a fork of lines.love, an editor for plain text where you can also seamlessly insert line drawings. Its immediate upstream is 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 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.