Lately I find it hard to want to work on zf. I really love the core of it (the fuzzy algorithm), but much of the supporting code is a maintenance burden
the TUI code is not portable, and is hard to modify. It was fine for a basic UI, but if I want to add a UI preview (I do), this just gets in the way
the event loop didn't work well on the first go and prevented me from releasing a UI preview
When I first started work on zf I figured this was a standard and useful feature. I have never needed it. I checked fzf and fzy and neither fully support unicode either. Both are quite popular, so I think this is fine to remove.
Terminals are awful at handling multi-codepoint graphemes anyway
The benefit here is we would get great TUI support, which makes it easier to add some nice features.
Use libuv for the event loop
My initial research shows that libuv is the only cross-platform event loop that handles the /dev/tty problem.
I'm guilty of trying to build everything myself. I think it would be great to rely on some other projects so I can continue to focus on what makes zf great: filtering filepaths.
Lately I find it hard to want to work on zf. I really love the core of it (the fuzzy algorithm), but much of the supporting code is a maintenance burden
So... Here is the tentative plan
Remove ziglyph and drop support for unicode.
When I first started work on zf I figured this was a standard and useful feature. I have never needed it. I checked fzf and fzy and neither fully support unicode either. Both are quite popular, so I think this is fine to remove.
Terminals are awful at handling multi-codepoint graphemes anyway
Replace the TUI code with a library
Possibly ncurses. I'm considering using https://github.com/rockorager/libvaxis depending on how stable it seems with initial tests. Or maybe https://github.com/dankamongmen/notcurses.
The benefit here is we would get great TUI support, which makes it easier to add some nice features.
Use libuv for the event loop
My initial research shows that libuv is the only cross-platform event loop that handles the /dev/tty problem.
I'm guilty of trying to build everything myself. I think it would be great to rely on some other projects so I can continue to focus on what makes zf great: filtering filepaths.
Resolving this will close
And open the way to finally implement https://github.com/natecraddock/zf/issues/25