I started on docs… and then went back to coding. Will try docs again next week.
Many more changes than I was expecting at this point, but I think Bike’s a better app for it… though maybe a little less stable, submit those crash reports!
New filtering: TaskPaper style, but better because gaps are easier to see. Thanks for the prompting @zsbenke! It also works for really large documents and small documents. I’ll use the mini-scaled rows for another feature that I have wanted to build.
Edit: Filtering interaction is nicer now too in that when you close filter, or it goes to empty, it takes you back to starting point view with same folds and scroll position.
New selection interaction: Bike is still a block editor, but it’s a little more text editor like because you can now select newlines. If caret is at end of row and you shift-right arrow, or start of row and you shift-left arrow. Then a new line will be selected. I kept wanting to make edits that required this, feels much better to me.
New animations philosophy. Previously I had been trying to animate everything. I really liked the near animations, but the “far” animations often looked a bit glitchy because of missing “whitespace” content and too much stuff zooming and moving. New idea is if I can do a smooth animation, which generally means target location is visible in current viewport, then I do old style fancy animation. On the other hand if target of out of viewport I don’t do any animation of rows, but I bounce the end view. The direction and amount of bounce encodes how far this move was and where you came from. So you get some spacial knowledge, but you don’t have to see a bunch of text zoom by.
When I started the user guide update I immediately saw a screenshot of old Bike where you could have window with no navigation bar… I wanted that option, but filtering is too important to hide. Now with Auto-Hide Toolbar you can have super clean window, but still use filter. I think this is my favorite new feature!
I also cleaned up some other UI that was bothering me. Toggle sidebar buttons are out of titlebar, and instead there is a single popup for accessing them and full window and other view features. (Extension commands can also be added). With that in place I cleaned up editor toolbar, removing the zoom Full Window button.
Extensions
I think bike.session will be very useful and simplify a lot of extensions. It’s a DOM context API that allows you to read/write Bike state, using the same underlying system that Bike’s CLI uses. Previously to get outline state into your DOM views you needed to post messages from app context to dom context. You can still do that, but now you also have options of just reading/write outline/editor state directly without having to do message posting. This new todos example extension shows how to use. It queries for list of not done tasks, and then lists them. And also allows you to check them off. All in not much code.
Send in those bug reports!