Read-write support for ZIP

July 2017 · 2 minute read

The previous version of Marta was out quite a while ago, and today I’m happy to release the 0.4 update!

Write support for ZIP file system

Write support means you can do any mutating file operation like copying or deleting files just like you do it for the ordinary files. A single movie is worth a thousand words:

File API redesigned

Most of the changes in 0.4 are hardly visible to the end-user, but they were essential in order to provide the robust plugin API in the future. Of course, any significant API changes are better to be done as early as possible, when there are not a lot of plugins already written.

The File API was pretty simple in Marta 0.3, and it became even simpler in 0.4. There is no FilePointer protocol anymore, and VirtualFileSystem is now responsible for all file operations. All this makes creating new file system providers much easier.

The documentation is updated to reflect the changes in the API. You can find the updated VFS API documentation here.

Overlay scroll bars

macOS always shows the scroll bars when a mouse is attached. The problem is that they are always white, and obviously not styleable unless you do some dirty hacks. And they looked really bad on dark themes.

So from now the default behavior is to always use overlay (auto-hidden) scrollbars. Just feel the difference:

Overlay scrollbars

You can enable the old behavior by turning the behavior/forceOverlayScrollBars configuration key off.

Other notable changes

  • Local file system implementation now uses C APIs instead of Objective-C Foundation framework where possible. This makes handling files ever faster. 🚀

  • Status bar notifications are now displayed for the “silent” actions like “Copy current directory path” and when the action is unapplicable to the current context.

  • “Add to favorites” item appeared in the breadcrumbs context menu.

You can read the full list of changes in the changelog. If you have any feature you want to be implemented, file the new issue to the issue tracker.