Repository navigation
The release where a project is described in JSON and every kind of file opens in
one panel.
The archive is the application and its surroundings, ready to unpack:
tar -xzf undoStudio-0.1.2-linux-x86_64.tar.gz
cd undoStudio-0.1.2
./undoStudio
It has to be started from the directory it was unpacked into. Fonts, icons,
themes and the shipped layout are opened as resources/... and the undoApps
are loaded from plugins/, both relative to the working directory.
System packages are still needed on the machine: the X11 and OpenGL development
libraries GLFW builds against, and glm. They are in the README under "System
packages".
What is in it:
- undoStudio, libundoStudioCore.so, plugins/, resources/, st2cpp/
- docs/ — the feature documentation, a screenshot on every page. Start at
docs/editor.md.
The project configuration is JSON. .undoProject/project.json, plcs.json,
tasks.json, one file per task under undoCore/tasks/, and
undoLogic/<plc>/exports.json. Nothing reads TOML and nothing migrates it, so a
project written against the old format has to be rewritten once. strictness is
a boolean now rather than a string.
One editor panel for every kind of file. A .st, a .json, a .cpp and a
configuration file all open in the same Editor panel above the same tab bar. The
Structured Text editor was a panel of its own, which meant two bars of open files
over one set of files; and every backend drew its own window inside the panel it
was dispatched from, so a .json came to be shown in a floating window titled
with its own filename while the Editor panel behind it drew the same backend
again. The panel owns the window and a backend draws its contents.
A FUNCTION can be parsed. The generated header wrote the name, a colon and
nothing else — FUNCTION Foo : — so the return type was empty and st2cpp
rejected the file before reaching a line of the body. The return type is written
into the header, read back when the file is opened, and editable next to the POU
type, which is what the files already on disk need.
A project's own .json opens as text, and can be looked at as a tree
instead. Which one a .json gets is the file's role and not its extension, so a
.json outside any project is a tree, as it always was.
Smaller things: every route into a file now goes through the tab bar's own answer
to "what is open", so a backend can no longer put a document on screen that
nothing can reach again; "Open as Text" and "Open as Tree" replace the tab rather
than adding a second one; a diagnostic that falls outside every editor's own
lines says so and names the generated line; and the version is announced from one
place, so this release says 0.1.2 rather than the 0.1.0 that v0.1.1 printed at
start-up.
The full list, with the behaviour each fix had before it, is in
CHANGELOG.md.
What is still open is written down there too, starting with the fact that the
GUI has never been seen running: this was developed on a machine with no display,
so anything that is a question of appearance is unverified until somebody looks
at it.