Kartik K. Agaram
6daec24aea
This caused a bug in Lua Carousel. Scenario: - Run carousel.love - run the abbreviations screen which creates an abbreviation called `color` - run driver.love Before this commit, carousel.love would silently exit, and driver.love would then hang waiting for it to come back. The cause: - driver.love sends MANIFEST - in processing it, carousel.love calls color() to emit a color escape. - the error silently quits the app After restarting carousel.love, the error shows up in driver.love: Error: live.lua:104: bad argument #3 to 'color' (number expected, got no value) stack traceback: [C]: in function 'color' live.lua:104: in function 'receive_from_driver' ... |
||
---|---|---|
assets | ||
0000-freewheeling-start | ||
0001-on | ||
0002-Debug_animations_in_progress | ||
0003-refresh_debug_animations | ||
0004-on.update | ||
0005-animate | ||
0006-loiter | ||
0007-save_callstack | ||
0008-Debug_animation_period | ||
LICENSE.txt | ||
Manual_tests.md | ||
MemoryReferenceInfo.lua.0 | ||
MemoryReferenceInfo.lua.unused | ||
README.md | ||
app.lua | ||
button.lua | ||
default_map | ||
edit.lua | ||
file.lua | ||
json.lua | ||
keychord.lua | ||
live.lua | ||
main.lua | ||
nativefs.lua | ||
reference.md | ||
search.lua | ||
select.lua | ||
test.lua | ||
text.lua | ||
text_tests | ||
text_tests.lua | ||
undo.lua |
README.md
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 the app being modified by the driver lives in a .love file, your changes will go into the save directory. If it lives in a directory (like this repo), 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.