An example default config is available in the assets/config
folder.
The PUCCINIA_CONFIG_PATH
environment variable must be defined and point to your config folder.
The befunge
folder contains a couple examples of Befunge programs.
If you're new to Befunge, the Esolang wiki is a great source of information and simple examples.
Run puccinia myfile.befunge
(will create a new file if it does not exist).
Much like in Vim, you can use commands by inputting a colon (:
). Try using :help
for a list of built-in commands.
Settings and keybinds can be edited in your config.pucci
.
Custom Rune commands can be defined by adding them to the config/commands
folder and "linking" them in the config.pucci
(see example at the end of the provided default config).
Custom Rune commands must always take a State
as first parameter and a vector of all the arguments passed by the user as a second parameter. Type-checking is done on function call based on the function documentation in the config.pucci
so you don't have to worry about it.
Here's a short gif demonstrating these steps:
- 2D grid-based editor
- Syntax highlighting
- Vim-inspired modal control scheme
- Edit history
- Live run mode with breakpoints
- Commands and configurable settings
- Config file
- Custom keybindings
- Default config example
- Autosave
- Custom commands (scripting language + API)
In order of how willing I am to do them right now:
- Documentation and examples
- Funge-98 extensions (excluding fingerprints)
- Stack stack
- Concurrency
- Simple new instructions
- Annoying new instructions
- Trefunge
- Funge-98 fingerprints