Skip to content
forked from nagydani/loveputer

A console-based Lua-programmable computer for children based on löve2d framework.

License

Notifications You must be signed in to change notification settings

aldum/compy-dev

 
 

Repository files navigation

Compy

A console-based Lua-programmable computer for children based on LÖVE2D framework.

Principles

  • Command-line based UI
  • Full control over each pixel of the display
  • Ability to easily reset to initial state
  • Impossible to damage with non-violent interaction
  • Syntactic mistakes caught early, not accepted on input
  • Possibility to test/try parts of program separately
  • Share software in source package form
  • Minimize frustration

Usage

Rather than the default LÖVE storage locations (save directory, cache, etc), the application uses a folder under Documents to store projects. Ideally, this is located on removable storage to enable sharing programs the user writes.

For simplicity and security reasons, the user is only allowed to access files inside a project. To interact with the filesystem, a project must be selected first.

Keys

Command Keymap
Clear terminal Ctrl+L
Quit project Ctrl+Shift+Q
Reset application to initial state Ctrl+Shift+R
Exit application Ctrl+Esc
Pause application Ctrl+Pause
Input
Move cursor horizontally
Move cursor vertically
Go back in command history PageUp
Go forward in command history PageDown
Move in history (if in first/last line)
Jump to start Home
Jump to end End
Jump to line start Alt+Home
Jump to line end Alt+End
Insert newline Shift+Enter ⏎
Evaluate input Enter ⏎
Editor
       same as Input, except for:
Scroll up PageUp
Scroll down PageDown
Move selection (if in first/last line)
Replace selection with input Enter ⏎
       additionally
Delete selected (line) Ctrl+Delete
Ctrl+Y
Load selected content to input (discards previous content) Esc
Insert selected content into input Shift+Esc
Scroll to start Ctrl+PageUp
Scroll to end Ctrl+PageDown
Scroll up by one line Ctrl+PageUp
Scroll down by one line Ctrl+PageDown
Move selection to start Ctrl+Home
Move selecion to end Ctrl+End
Quit editor (save work) Ctrl+Shift+Q

Projects

A project is a folder in the application's storage which contains at least a main.lua file. Projects can be loaded and ran. At any time, pressing Ctrl-Shift-Q quits and returns to the console

  • list_projects()

    List available projects.

  • project(proj)

    Open project proj or create a new one if it doesn't exist. New projects are supplied with example code to demonstrate the structure.

  • current_project()

    Print the currently open project's name (if any).

  • run_project(proj?) / run(proj?)

    Run either proj or the currently open project if no arguments are passed.

  • example_projects()

    Copy the included example projects to the projects folder.

  • close_project()

    Close currently opened project.

  • edit(file)

    Open file in editor. If it does not exist yet, a new file will be created. See Editor mode

Files

Once a project is open, file operations are available on it's contents.

  • list_contents()

    List files in the project.

  • readfile(file)

    Open file and display it's contents.

  • writefile(file, content)

    Write to file the text supplied as the content parameter. This can be either a string, or an array of strings.

  • runfile(file)

    Run file if it's a lua script.

Editor

If a project is open, the files inside can be edited or new ones created. Run the edit() command to do so.

edit

When a file is opened, the editor is scrolled to the end by default, and entered input will be appended to the end.

hello

To modify an existing line, navigate there with /. Then load the text by pressing Esc, make the desired changes, then send it back with Enter ⏎

capitalized

Happy with the modifications now, we can quit by pressing Ctrl-Shift-Q

quit

About

A console-based Lua-programmable computer for children based on löve2d framework.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Lua 97.1%
  • HTML 1.4%
  • Other 1.5%