v0.8.4
Perth v0.8.4
Perth.jl v0.8.4 β Perth and your editor
Nothing breaks: no API change, and a project written by any 0.8 is read exactly as it was. Full changelog: https://github.com/dantebertuzzi/Perth.jl/blob/main/CHANGELOG.md
Added
-
The mirrored
.perth.jlfile now flows back. Mirroring already went one way: every save rewrote the file atfile_path. Edit that file in your editor and the browser follows on its own β no REPL round trip, and no more losing your edit to the next save from the UI. Keep the file open in VS Code, keep the chart open in the browser, and let the two agree.Perth.run(watch = false)turns it off.The reload is deliberately conservative: our own writes are recognised by content rather than by timestamp, so mirroring cannot loop; a file caught half-written (editors save in stages) fails to parse and is ignored until the next event; the file carries content, never identity, so a pasted file cannot hijack another project's id, creation time or mirror path; and the project object is mutated in place rather than replaced, so a
p = project("obra")you are holding in the REPL stays valid instead of silently detaching. -
Find a task by name in the gantt β the box next to Highlight, or
/, the same key the kanban uses. Non-matching tasks dim, in the table and in the chart. Accents and case do not matter: typingintegracaofinds IntegraΓ§Γ£o por partes, which is the point in a project with a hundred tasks β needing the right accent means needing to already know what you are looking for.Enter walks the matches, one at a time, wrapping at the end; Shift+Enter walks back. The counter reads position over total, like a find box in an editor (
4/13), and each step selects the task and brings its bar into view β a task lives in time, not in the list, so scrolling the rows alone would light up a name whose bar sits months off screen. Search and Highlight compose, so you can filter to one person and search within that. -
using Perthoffers the doors, and you pick one with the arrows. The package exports the data API, butPerth.run()andPerth.kanban()are not exported (runwould clash withBase.run), so nothing on screen pointed at them. Loading the package in an interactive terminal draws them as a list: ββ to move, Enter to open, any other key to dismiss.Perth.menu()brings it back later.The list gives up on its own after six seconds, and it only takes the keyboard when the keyboard is idle. If anything is already feeding the session β VS Code's Execute File in REPL,
julia -ibehind a pipe, a batchincludeβ those bytes are the caller's code, not keystrokes, and reading the first one corrupts it. Non-interactive sessions print nothing and wait for nothing;PERTH_SPLASH=0silences it entirely.
Fixed
- The test suite fails on a file with mixed line endings. The repository is CRLF, and any tool that reads and rewrites a file in text mode converts it silently β the diff becomes the whole file, or half of it turns LF and nobody notices.
fileis no guard: it reports "CRLF line terminators" with dozens of LF lines in the middle. Counting bytes is.