Ferrum 0.1.2
This is the first release a 0.1.1 install can fetch and install on its own, from File > Install Update. 0.1.1 had to be installed by hand: the fix for the updater is in the editor that starts the installer rather than in the update it downloads, and the release signing key was replaced in the same build, so both only take effect from the build after it. Anything older than 0.1.1 still has to be installed by hand, because those builds carry the broken launch and they also check what they download against the key that was replaced. Install by hand once, and updates run from there.
Syntax colouring was being drawn onto the wrong file. One worker parses every open file, it had a single slot for the result, and the only thing saying who a result belonged to was the buffer's version: every file is loaded at version zero, so two files nobody had typed in yet agreed on it and each accepted the other's colours. What that drew was one file's highlighting laid over another file's text at offsets that meant nothing there, a comment coming out in four colours with keywords lit up inside the prose. A parse now carries the file it was asked for and is refused anywhere else. The same single slot also lost results outright, which left a file plain and waiting for a parse that had already been thrown away; a file in that state asks again when it is the one on screen. A file held behind a diff was a third way in, coming back uncoloured when the diff was dismissed and staying that way until it was edited.
The editor notices when something else writes a file it has open under the folder it has open. Checking out a branch, running a formatter, regenerating a file: the tab went on showing text that was no longer in the file, and the next save wrote that stale copy back over whatever had replaced it. A tab with no unsaved edits now reloads itself quietly and keeps its place. A tab with unsaved edits is left exactly as it is and the save is what stops instead: it refuses once, says the file changed underneath it, and a second press goes through, which is the same shape as closing a window with unsaved work. Reloading names the column and the tab it was asked about, because a clean copy of a file in one column could otherwise authorise replacing an edited copy of it in another. Separately, a tab that was reloaded could go on drawing the text it had before, after a replace across files or something done in the source control panel, which read as the operation having silently done nothing.
The terminal draws faint text faintly. A suggested completion sitting ahead of the cursor, a hint, a dimmed path all arrive as the code for half intensity, which the emulator did not understand and dropped, so they were drawn exactly like the text somebody had typed. Addresses printed in the panel can also be opened now. Hold ctrl and the address under the pointer underlines, and a click opens it. Only http and https, because a terminal is a place where anything you run can print whatever it likes.
The file tree's scrollbar can be dragged. It was drawn, and it lit under the pointer, and that was the whole of it: the press was never wired, so it looked like a control and behaved like a stripe. Pressing the track jumps there and the thumb stays lit for the length of the drag, as the editor's bar and the search results' bar already did. Clicks are more accurate as well. Under a fold a click landed on the row above the one it was pointing at, because three separate places each worked out for themselves which row the pointer was over and none of them was the walk the frame is drawn from. They all ask that one now, which also makes dragging a selection through a large file lighter, since the old answer copied the file and split it into lines on every mouse movement.
A crash report no longer carries the name of the machine the build was compiled on. The line naming where it happened was already cut short, but the stack under it was not, and on Windows every frame that reached the standard library named the toolchain under that machine's home directory. A report is a file somebody sends to a stranger to get help, and it was carrying a user name in fifty places. The stack goes through the same cut now.
The shortcuts bind to Command on a Mac. Copy, paste, save, open, close tab, find, quick open and go to symbol were all written as Control chords and did nothing there, without saying so. There is still no Mac build to download, so this matters only to anyone building one from source.