I encourage you to read about the original Bike 2.0 Demo for context:
The biggest question raised there concerned Bike 2’s selection model.
The change is (like in 1.0) you can select individual text characters within a row, but (unlike 2.0) when you extend the selection beyond a single row you start selecting at the row level.
How to try the change
The previous 2 demo was mostly concerned with getting something out the door and demonstrating stylesheets. The actual implementation of selection was hard to understand and buggy.
This demo includes a more complete implementation of Bike 2’s selection model. Note that this is still very much a demo, with many missing application parts/features, but selection is now working much more like I expect it to work in final 2.0.
To try it:
- Download Bike 2.0 Selection Demo
- Launch App
- Open existing document
- Choose Window > Themes > Basic (or Demo)
- If you played with previous Bike demo you should remove/rename any existing theme files so that the new ones get copied into place. They include rules for drawing the selection, so it’s important to get the new ones.
- Make some selections
Here’s what I see when I select the w in Two.
And this is what I see when I extend that selection (Hold shift and press right arrow two times) into row three.
And now if you continue to hold shift and press left arrow two times, you should go back to seeing the original image with only w selected.
Notes
Bike 2’s selection model should be familiar. It’s how most outliners and structured block editors work. With that said I think Bike’s implementation is more refined than what I’ve seen in other editors in two ways:
-
First text caret movement should still work like in a plain text editor when moving from row to row. Most structured editors don’t do this well.
-
More important the transition from selecting characters to selecting rows is always reversible.
So for example if you click in the middle of a row and drag you will start selecting characters. Drag outside the row and you will be selecting rows. Within that same interaction if you drag back into the original row you will go back to selecting characters. This also works when you are extending the selection by holding down Shift. For example start selecting characters by holding shift and tapping right arrow. Eventually the selection will extend beyond the current row and you will be selecting rows… then if you start hitting the left arrow key (instead of right) the selection will eventually go back and start selecting characters again.
That’s a lot of text to say that Bike tries to make it easy to extend and contract the selection in expected ways. This isn’t what most outline/block editors do.