Just a quick check in. The daemon had a couple of more little tweaks, but overall has been solid. I bumped the version number to 0.9.0-rc1
because it will break released 0.8.x canto-curses
thanks to removal of some dead code that it used to rely on. I’d keep it around for backwards compatibility, but it had a (small) performance effect and the version number starts with a 0 for a reason.
I also pushed more to the completion branch of canto-curses
and bumped its version to 0.9.0-alpha1
.
Included in this are some readline fixes, in particular the laggy scroll that got reintroduced when I implemented a custom readline_getc
.
Completion information is actually used and displayed now out of line as well as inline. I fixed some bugs in the argument level completion stuff, and a couple of exceptions from stuff like completing an empty line that used to be non-empty.
I also got the reader up and running and rewired into the new command infrastructure. That means most of the Info/ErrorBox stuff works now too, although they need the “destroy” command hooked up.
Next Steps
The next thing on my plate is a weird bug in the completion stuff where double tapping Tab on an already complete command/argument causes what looks like a newline to be printed in the input box, but I believe is actually screen corruption. I’m not clear if readline is doing something wrong (like this would be good behavior outside of curses) or what, but I know that causing a refresh fixes it and displays what you’d expect in the input box so I don’t think it’s canto state that’s wrong.
Another annoyance is that startup is a bit slow, it waits for a five second refresh. I want initial tag population to trigger refreshes themselves. I’ve seen a few threading bugs too when trying to fork a daemon and connect to it too quickly, so there’s work there probably on both ends.
A lot of the other work is stuff I mentioned last time. Hooking up the remaining commands (mostly stuff that’s usually not important, like color
but also a bunch of commands that are implemented via remote
and all of its aliases).
Definitely want to get to the plugin/hook analysis. I’m thinking that I should probably implement something a little heavier, like a new reader type interface for Reddit comments. If I can do that in a couple of plugins, that’d be pretty convincing.
Config snippets look a little bit like feature creep at the moment, so I’m not sure if 0.9.0 will see that or not.