Skip to content

OpenEPL 0.10.0 — settings, and a dark theme

Choose a tag to compare

@AxDSan AxDSan released this 05 Sep 00:40
· 211 commits to main since this release

Studio had no settings at all. It does now — and the first one people ask for is a dark theme.

Settings

Tools ▸ Settings…, or Ctrl+,.

Every control applies the moment you use it and the file is written straight away; there is no OK or Cancel to forget. A row you have changed shows a dot and a Reset beside its name, and a row that cannot take effect until Studio restarts says so on the row rather than pretending.

Category What it holds
Appearance Theme (light or dark), whether the window size is remembered, how long the splash is shown
Editor Font size, indent width, lines per wheel notch, which tab a project opens on
Designer Show the grid, snap to it, its size
Build Where built binaries go, and whether to build optimised and stripped
Files and startup Whether exiting saves or discards, reopening the last project, how many recent projects are kept
Toolchain The openepl binary to use

The dark theme repaints the whole IDE as you pick it — chrome, canvas, the code editor's syntax colours, the dot grid and the dialog itself. It was verified by rendering frames and looking at them, not by a passing assertion.

Two rows are gaps rather than preferences:

  • Where built binaries go. Left empty, Run and Build compile to a fixed name in your temporary directory — fine for running, no use for keeping. Set a directory and the binary is named after the module and stays there.
  • On exit. Studio saved your file on exit, always. Set this to discard and it does not. It says which it did, either way.

Settings live in ~/.local/share/openepl/settings (%APPDATA%\openepl\settings on Windows) as the same key: value lines as project.oeproj. Only what you changed is written, so deleting a line restores the default, and a key from a newer Studio is preserved rather than dropped.

Nothing here is a control that stores a value nothing reads. Four settings an early design proposed were dropped after reading the code: an interface-font picker over a list that is really six file paths yielding four families, three of them monospace; a native-dialog toggle for a File ▸ Open entry that does not exist; and explicit window width and height rows that would fight the remember-size box beside them.

The docs and examples caught up with the language

0.8.0 and 0.9.0 changed how OpenEPL is written and the prose around it did not all follow. Six surfaces were swept: concat chains became interpolation, x = x + 1 became +=, if/else-if ladders became match, flags added together became bor, and decimal constants that predate hex literals got them.

Claims that had stopped being true were corrected — the win kit guide said none of the Windows examples contains a const line (seven do) and quoted two excerpts from files that have since changed; two kit headers still said the language has no bitwise or and no hex literal, both of which shipped in 0.7.0. limitations.md gained one nobody had written down: interpolation takes no format specifier, so "{x:03}" is a parse error rather than a padded number.

Code that shows the old form on purpose — examples/operators.oir, the sugar guide, the while loop the reference is teaching — was left alone.

Also

  • openepl project <path> set <key>=<value>... — the only writer of a project file, as openepl project is already its only reader. Edits are applied line by line, so comments, field order and hand-added keys survive.
  • The VS Code grammar learned the 0.8/0.9 syntax, including &=.
  • The editor's Tab, Enter and completion behaviour from 0.9.1, now with a configurable indent width.

tar xzf openepl-0.10.0-linux-x86_64.tar.gz
cd openepl-0.10.0-linux-x86_64
bin/openepl-studio

Windows: unzip and run bin\openepl-studio.exe; read SETUP-WINDOWS.md first if you want to build rather than only draw.