summaryrefslogtreecommitdiff
path: root/README.md
AgeCommit message (Collapse)AuthorFilesLines
2021-07-23Fix README Zig version oopsieYorhel1-1/+1
2021-07-22Tagging this as a 2.0-beta1 releasev2.0-beta1Yorhel1-65/+11
2021-07-18Implement help windowYorhel1-9/+1
The rewrite is now on feature-parity with ncdu 1.x. What remains is bugfixing and polishing.
2021-07-18Add REUSE-compliant copyright headersYorhel1-0/+5
2021-07-16Implement file deletion + a bunch of bug fixesYorhel1-4/+1
2021-07-14Implement shell spawningYorhel1-1/+0
2021-07-13Implement directory refreshYorhel1-1/+3
This complicated the scan code more than I had anticipated and has a few inherent bugs with respect to calculating shared hardlink sizes. Still, the merge approach avoids creating a full copy of the subtree, so that's another memory usage related win compared to the C version. On the other hand, it does leak memory if nodes can't be reused. Not quite as well tested as I should have, so I'm sure there's bugs.
2021-07-06Add link path listing to information windowYorhel1-1/+1
Two differences compared to the C version: - You can now select individual paths in the listing, pressing enter will open the selected path in the browser window. - Creating this listing is much slower and requires, in the worst case, a full traversal through the in-memory tree. I've tested this without the same-dev and shared-parent optimizations (i.e. worst case) on an import with 30M files and performance was still quite acceptable - the listing completed in a second - so I didn't bother adding a loading indicator. On slower systems and even larger trees this may be a little annoying, though. (also, calling nonl() apparently breaks detection of the return key, neither \n nor KEY_ENTER are emitted for some reason)
2021-06-11Add item info windowYorhel1-1/+14
Doesn't display the item's path anymore (seems rather redundant) but adds a few more other fields.
2021-05-30UI: Display shared/unique sizes + hide some columns when no spaceYorhel1-1/+0
2021-05-29Handle allocation failuresYorhel1-1/+0
In a similar way to the C version of ncdu: by wrapping malloc(). It's simpler to handle allocation failures at the source to allow for easy retries, pushing the retries up the stack will complicate code somewhat more. Likewise, this is a best-effort approach to handling OOM, allocation failures in ncurses aren't handled and display glitches may occur when we get an OOM inside a drawing function. This is a somewhat un-Zig-like way of handling errors and adds scary-looking 'catch unreachable's all over the code, but that's okay.
2021-05-29Implement JSON file importYorhel1-1/+0
Performance is looking great, but the code is rather ugly and potentially buggy. Also doesn't handle hard links without an "nlink" field yet. Error handling of the import code is different from what I've been doing until now. That's intentional, I'll change error handling of other pieces to call ui.die() directly rather than propagating error enums. The approach is less testable but conceptually simpler, it's perfectly fine for a tiny application like ncdu.
2021-05-23Implement all existing browsing display options + some fixesYorhel1-1/+0
I plan to add more display options, but ran out of keys to bind. Probably going for a quick-select menu thingy so that we can keep the old key bindings for people accustomed to it. The graph width algorithm is slightly different, but I think this one's a minor improvement.
2021-05-12Implement export to fileYorhel1-1/+2
The exported file format is fully compatible with ncdu 1.x, but has a few minor differences. I've backported these changes in ca51d4ed1a0f61042fc43d2a7ae8732351431654
2021-05-11Implement confirm quitYorhel1-0/+5
(+ 2 minor crash fixes due to out-of-bounds cursor_idx)
2021-05-09Implement scanning UI (-0,-1,-2)Yorhel1-1/+2
2021-05-08README updatesYorhel1-0/+78