A lightweight programming environment for desktop and mobile devices
Go to file
Kartik K. Agaram 827a162a1b Merge template-live-editor-mobile 2024-09-10 20:34:05 -07:00
assets
0000-freewheeling-start
0001-on
0002-Debug_animations_in_progress
0003-refresh_debug_animations
0004-on.update explicitly state stance on autosave 2024-03-17 10:49:45 -07:00
0005-animate
0006-loiter
0007-save_callstack
0008-Debug_animation_period
0010-Line_height
0011-on.initialize
0012-on.draw fix a long-standing issue with tooltips 2024-05-20 00:47:43 -07:00
0013-on.keychord_press add keyboard shortcuts for common operations 2024-02-21 06:45:37 -08:00
0014-on.text_input
0015-on.key_release
0016-on.mouse_press
0017-on.mouse_release
0019-Line_number_padding
0020-draw_editor_border indicate unsaved changes 2024-03-17 11:01:25 -07:00
0021-draw_menu swap copy and paste menu buttons 2024-03-17 08:04:13 -07:00
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 extract functions for computing editor dimensions 2024-02-21 12:58:38 -08:00
0032-update_font_settings missed a call 2024-02-21 13:10:26 -08:00
0033-Normal_color
0034-draw_scrollbar
0035-compute_scrollbar Merge template-live-editor-mobile 2024-06-11 13:06:10 -07:00
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 some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0052-enable_loiter
0054-Animations_in_progress
0056-end_frame
0058-draw_next_frames_of_animations
0059-previous_pane_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0060-next_pane_button slightly shrink the clickable area for a button 2024-02-23 15:23:28 -08:00
0061-new_pane_button
0063-Show_code
0064-show_code_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0065-hide_code_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0066-copy_button
0067-paste_button
0069-output_editor_state
0070-code_editor_state extract functions for computing editor dimensions 2024-02-21 12:58:38 -08:00
0072-settings_button
0074-clear_pane_button
0075-clear_pane
0076-delete_pane_button
0077-example_pane
0078-Example_panes
0079-White
0080-Show_menu
0081-draw_settings_menu
0082-draw_slider
0083-slider
0084-update_sliders
0085-slider_value
0086-mouse_press_consumed_by_any_slider
0087-on_slider
0090-Background_color
0091-Foreground_color
0092-Settings_menu_area
0093-on_area
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 some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0108-Overflow_button
0109-overflow_button
0110-maybe_draw_overflow_button
0111-populate_missing_handlers
0112-load_example_panes
0113-Deleted_example_panes
0114-update_output_editor
0115-Title_font
0116-save_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0117-load_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0118-overflowable_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0119-draw_file_dialog
0120-Show_file_dialog
0121-Directory
0122-Directory_contents
0123-refresh_directory_contents
0124-styled_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0125-File_dialog_callback
0126-one_time_save
0127-one_time_load
0128-draw_file_dialog_input
0129-draw_cursor
0131-keychord_press_on_file_dialog
0132-text_input_on_file_dialog
0133-File_dialog_input_text
0134-reset_file_dialog_state
0138-File_dialog_input_start_suffix
0140-refresh_file_dialog_input_start
0141-File_dialog_input_draw_suffix
0142-right_justified_button
0143-File_dialog_input_right_margin
0144-filenames_from_all_panes
0145-Initial_load_filenames
0146-load_panes_from_previous_session
0147-Highlighted_button_color
0148-Active_button
0149-Border_color
0150-Button_pressed
0151-compute_scrollbar_topy
0152-Real_print
0153-Legacy_directory
0154-on.mouse_move
0155-on.touch_press shield script from touch events when showing editor 2024-03-22 17:29:29 -07:00
0156-on.touch_release shield script from touch events when showing editor 2024-03-22 17:29:29 -07:00
0157-on.touch_move shield script from touch events when showing editor 2024-03-22 17:29:29 -07:00
0158-Font_filename
0159-run_screen use an available constant 2024-03-17 11:56:42 -07:00
0161-press_run_button add keyboard shortcuts for common operations 2024-02-21 06:45:37 -08:00
0162-press_stop_button add keyboard shortcuts for common operations 2024-02-21 06:45:37 -08:00
0163-press_show_button add keyboard shortcuts for common operations 2024-02-21 06:45:37 -08:00
0164-press_hide_button add keyboard shortcuts for common operations 2024-02-21 06:45:37 -08:00
0165-press_save_button add keyboard shortcuts for common operations 2024-02-21 06:45:37 -08:00
0166-press_load_button add keyboard shortcuts for common operations 2024-02-21 06:45:37 -08:00
0167-press_next_pane_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0168-press_previous_pane_button some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0169-editor_right_margin extract functions for computing editor dimensions 2024-02-21 12:58:38 -08:00
0171-code_editor_bottom_margin extract functions for computing editor dimensions 2024-02-21 12:58:38 -08:00
0172-Tooltip_background some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0173-Tooltip_foreground some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0174-Is_mobile some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0175-show_tooltip some keyboard shortcuts on non-mobile devices 2024-02-22 18:27:39 -08:00
0176-on.quit explicitly state stance on autosave 2024-03-17 10:49:45 -07:00
0177-Window_in_focus bugfix 2024-05-20 00:40:05 -07:00
0178-on.focus only show tooltips when window in focus 2024-05-19 22:27:19 -07:00
0179-Mouse_on_window fix a long-standing issue with tooltips 2024-05-20 00:47:43 -07:00
0180-on.mouse_focus fix a long-standing issue with tooltips 2024-05-20 00:47:43 -07:00
LICENSE.txt
Manual_tests.md
MemoryReferenceInfo.lua.0
MemoryReferenceInfo.lua.unused
README.md Merge text.love 2024-09-08 22:56:52 -07:00
app.lua Merge template-live-editor-mobile 2024-09-10 20:34:05 -07:00
button.lua remove one fiddly bit we no longer need 2024-05-20 00:52:48 -07:00
colorize.lua
conf.lua
default_map
edit.lua Merge template-live-editor-mobile 2024-09-10 20:34:05 -07:00
file.lua hoist next_save to all saves 2024-03-17 10:54:26 -07:00
json.lua
keychord.lua
live.lua Merge template-live-editor-mobile 2024-07-09 22:39:50 -07:00
main.lua Merge template-live-editor-mobile 2024-09-10 20:34:05 -07:00
nativefs.lua
reference.md Merge template-live-editor-mobile 2024-06-16 06:12:08 -07:00
search.lua Merge template-live-editor-mobile 2024-06-11 13:06:10 -07:00
select.lua Merge template-live-editor-mobile 2024-09-01 01:34:43 -07:00
test.lua
text.lua Merge template-live-editor-mobile 2024-09-01 01:34:43 -07:00
text_tests
text_tests.lua Merge template-live-editor 2024-06-11 12:56:22 -07:00
undo.lua Merge lines.love 2024-09-01 01:17:22 -07:00
wav.lua

README.md

Lua Carousel

0 dependencies!

screenshot

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.

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.

Run the app using 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:

making changes without restarting the app

(Only on non-mobile platforms for now.)

Some reference documentation on how to create your own apps.

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

Within the editor widget:

  • 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

  • No support yet for Unicode graphemes spanning multiple codepoints.

  • No support yet for right-to-left languages.

  • 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:

Further forks are encouraged. If you show me your fork, I'll link to it here.

Feedback

Most appreciated. Messages, PRs, patches, forks, it's all good.