Kartik K. Agaram 047b26d15a | ||
---|---|---|
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 | ||
0010-Line_height | ||
0011-on.initialize | ||
0012-on.draw | ||
0013-on.keychord_press | ||
0014-on.text_input | ||
0015-on.key_release | ||
0016-on.mouse_press | ||
0017-on.mouse_release | ||
0019-Line_number_padding | ||
0020-draw_editor_border | ||
0021-draw_menu | ||
0023-Menu_top | ||
0024-Menu_left | ||
0025-Menu_height | ||
0026-Menu_bottom | ||
0027-Menu_background | ||
0028-draw_output_border | ||
0029-Safe_width | ||
0030-Safe_height | ||
0031-on.resize | ||
0032-update_font_settings | ||
0033-Normal_color | ||
0034-draw_scrollbar | ||
0035-compute_scrollbar | ||
0036-adjust_scrollbar | ||
0038-on_editor_scrollbar | ||
0040-on_editor_scrollbar_area | ||
0042-draw_canvas | ||
0043-map | ||
0045-Current_pane | ||
0046-Global_state | ||
0047-Current_pane_index | ||
0048-Panes | ||
0049-new_pane | ||
0050-print_to_output | ||
0051-run_button | ||
0052-enable_loiter | ||
0054-Animations_in_progress | ||
0056-end_frame | ||
0058-draw_next_frames_of_animations | ||
0059-previous_pane_button | ||
0060-next_pane_button | ||
0061-new_pane_button | ||
0063-Show_code | ||
0064-show_code_button | ||
0065-hide_code_button | ||
0066-copy_button | ||
0067-paste_button | ||
0068-copy_editor | ||
0069-output_editor_state | ||
0070-code_editor_state | ||
0071-duplicate_pane_button | ||
0072-settings_button | ||
0074-clear_pane_button | ||
0075-clear_pane | ||
0076-delete_pane_button | ||
0077-example_pane | ||
0078-Example_panes | ||
0079-White | ||
0080-Show_settings | ||
0081-draw_settings_menu | ||
0082-draw_slider | ||
0083-Settings_font_slider | ||
0084-update_any_sliders | ||
0085-slider_value | ||
0086-mouse_on_any_slider | ||
0087-on_slider | ||
0088-Settings_foreground_sliders | ||
0089-Settings_background_sliders | ||
0090-Background_color | ||
0091-Foreground_color | ||
0092-Settings_menu_area | ||
0093-on_area | ||
0095-Selected_slider | ||
0097-Font_height | ||
0098-on.save_settings | ||
0099-on.load_settings | ||
0100-car | ||
0101-on.mouse_wheel_move | ||
0102-send_errors_to_output | ||
0104-call_protected | ||
0105-clear_handlers | ||
0106-stop_button | ||
0107-Show_overflow | ||
0108-Overflow_button | ||
0109-overflow_button | ||
0110-maybe_draw_overflow_button | ||
0111-populate_missing_handlers | ||
0112-load_example_panes | ||
0113-Deleted_example_panes | ||
LICENSE.txt | ||
Manual_tests.md | ||
MemoryReferenceInfo.lua.0 | ||
MemoryReferenceInfo.lua.unused | ||
README.md | ||
app.lua | ||
button.lua | ||
colorize.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
Lua Carousel
A lightweight environment for writing small, throwaway Lua and LÖVE programs. Tested on Windows, Mac, Linux, iOS and Android. The environment itself can be modified as it runs. In early release; please report issues, particularly with usability or accessibility.
Beware: programs don't yet persist across restart.
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:
(Only on non-mobile platforms for now.)
Some reference documentation on how to create your own apps.
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
Within the editor widget:
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
-
Beware: programs don't yet persist across restart.
-
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.
-
Some colors can't be customized yet.
Contributors
Many thanks to Mike Stein for code, feedback and suggestions.
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 the template repo for freewheeling apps. Updates to it can be downloaded from the following mirrors:
- https://git.sr.ht/~akkartik/carousel.love
- https://nest.pijul.com/akkartik/carousel.love (using the Pijul version control system)
Further forks are encouraged. If you show me your fork, I'll link to it here.