Skip to content

undoStudio 0.1.1

Choose a tag to compare

@Salvatore1999 Salvatore1999 released this 01 Oct 09:50
· 15 commits to main since this release

The release where the editor holds more than one file.

The archive is the application and its surroundings, ready to unpack:

tar -xzf undoStudio-0.1.1-linux-x86_64.tar.gz
cd undoStudio-0.1.1
./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 0.4.5 in st2cpp/, which the Compile button invokes
  • a desktop entry, which now also opens .st and .json files

Tabs. The editor could hold exactly one file: opening a second one closed
the first, so a .st and a .cpp could not be open at once and a tab could not
be switched back to. Each open file now has a tab, with a dot while it has
changes that are not on disk and a close button of its own. A click in the tree
keeps the file — it used to open a preview that the next click replaced, so the
file you were reading vanished from the bar the moment you opened another one.
A file that is open but not on screen is held whole, and comes back at the
cursor and the pane division you left it at.

Renames and moves are followed. Four things file an open document under its
path, and a rename that moved three of them was not a stale label but a second
file: Ctrl+S wrote a copy where the original used to be. The tab, the text
kept for it, the path the editor saves to and the entry in the recent list all
move together now, a renamed folder carries the tabs of the files inside it, and
a deleted file takes its tab with it.

The unsaved mark is read, not guessed. It used to be set when you left a
tab, which answered a different question with the same answer: every tab ever
looked at twice carried an asterisk that nothing took off. It now comes from
the editors once a frame, and Ctrl+S reaches .st, .cpp and text files from
any panel. A save that failed leaves the mark alone.

Files are remembered between runs. File > Open Recent Files, or Ctrl+P.
A file is recorded however it was reached, the list is newest first, and it
shares one length with the recent projects. A rename rewrites the entry in
place; a file deleted outside the IDE stays in the list and is shown as missing,
so an entry never disappears on its own. A file or a project given on the
command line, and files dropped onto the window, are opened as well.

The ST Output panel can be filtered. The generated ST was dumped into the
same list as the diagnostics, so the two errors worth reading arrived somewhere
under hundreds of lines of it. The switches and the count persist per workspace.

The terminal has one tab per shell, and every session is pumped rather than
only the one on screen, so a shell in a background tab does not hold its output
in a buffer until you come back to it.

Smaller things: the ST panel lost its File: <name> row, which the tab bar
above already said; "Open as Text" on a .json now gives the file a tab and
records it; closing a project clears the bar; the recent projects list is loaded
when it is first asked for, so a run that opens nothing still shows it; and the
release archive is checked for the state files that must not ship.

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.