HoloTheDrunk / puccinia

TUI Befunge IDE.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Puccinia logo

A TUI Befunge IDE.

Example use

Structure

Config

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.

Examples

The befunge folder contains a couple examples of Befunge programs.

Usage

Befunge

If you're new to Befunge, the Esolang wiki is a great source of information and simple examples.

Puccinia

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:

Rune custom command showcase

Features

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

Roadmap

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

About

TUI Befunge IDE.

License:GNU Affero General Public License v3.0


Languages

Language:Rust 99.7%Language:Befunge 0.3%