- Added Control-T to transpose characters
- Added Control-Delete to decomposing unicode scalars
- Added yank: and yankAndSelect: and kill buffer support
- Added setMark:, deleteToMark:, selectToMark:, swapWithMark:
- Improved text correction system to learn from your actions
- Improved checking panel options and descriptions
- Improved dash replacements to substitute
- Fixed unindent to properly handled collapsed rows
- Fixed crash when clicking in an empty outline
- Added text corrections and replacements
- Added support for strikethrough when copy/paste .rtf
- Added key modifiers for opening links in tabs and windows
The big feature that I’m working on for this release is Text Corrections and Replacements. When enabled Bike should now perform autocorrections, smart quotes and dashes, and user text replacements as you type.
Generally it should be familiar to what you are used to from many macOS text areas. Bike uses the same underlying API. With that said I don’t love the standard macOS interactions around text corrections and so Bike’s behavior is familiar, but different.
Please try out what I’ve done and let me know the problems. Might be lots of problems with typing in other languages, I’m not really sure how autocorrect is supposed to work there. Let me know what goes wrong!
Bike autocorrect runs anytime you finish a word while typing text. Previous edits and selections are not considered when determining if autocorrect should run.
This makes autocorrect more predictable. It also means some patterns you may have used to temporarily disable autocorrect will no longer work. For example if you want to avoid an autocorrect in TextEdit you can Left Arrow, then Right Arrow before you finish a word. In Bike that won’t work, since previous selection doesn’t change autocorrect behavior.
Instead of avoiding autocorrects Bike makes them easy to undo. You can undo an autocorrect with a single Delete keystroke, instead of doing the two key Right Arrow, then Left Arrow dance to avoid like in TextEdit.
In TextEdit when you are part way through typing a word a popup may show offering a completion for the word. Right now Bike doesn’t do this. That autocomplete feature is useful sometimes, but also makes autocorrect just feel heavy and noisy to me. I think better without. If you don’t know how to spell a word just do you best and in most cases autocorrect should fix after you finish typing the word.
Substitutions (just smart quotes and smart dashes) run immediately as they are typed. For example type
-- and it will be replaced by
– as soon as you type the second
-. This is the same behavior as TextEdit.
One difference is that Bike will underline these cases with the blue autocorrect underline. And you can go back and revert these substations the same way you can for autocorrections. You can also Delete to revert the substitution.
Immediately after an autocorrect is performed you can Delete to undo that autocorrect. This undo/delete option is only available immediately after an autocorrect happens. If you keep typing or move the selection then you will need to use Edit > Undo to undo the autocorrect.
A nice feature of Bike is that when undoing autocorrect only the autocorrection is undone. In TextEdit both the autocorrect and the text that you entered to trigger the autocorrect are undone. Bike doesn’t discard your input text on autocorrect undo.
Autocorrections can sometimes be wrong and for that reason I think it’s important to clearly indicate when an autocorrection has happened. From what I can tell TextEdit shows an autocorrect indicator (blue dots underline) only right after the autocorrection happens. Bike on the other hand shows autocorrect indicators always for the current sentence. These indicators remain until you edit the autocorrected words or close the outline… autocorrect state is only stored in memory, not saved to file.
Revert autocorrections and get spelling suggestions by moving cursor to end of spelling or correction range
This is pretty much how TextEdit works, but it seems to have many cases (intentional or bugs I’m not sure) where this doesn’t happen. In Bike anytime the text selection is:
- At the end of a correction or spelling indicator
- And the previous action hasn’t been an edit
Then Bike will show a revert or spelling suggestions popup (assuming there are spelling suggestions to be made)
Text checking settings are all listed in Bike’s text checking panel Edit > Checking > Show Checking panel. When you first start Bike the settings are read from what you have set for your keyboard input in macOS standard Settings.
If you change a setting in Bike’s panel then:
- The new set of settings will be saved as default for new Bike documents
- Existing Bike documents will keep the settings they already have (until you close window)
- There’s a button at the bottom of the settings panel to revert settings to system defaults
For example in TextEdit when you “check next” only spelling and grammar problems are checked. Bike checks all options that you have enabled. So for example if you have smart quotes enabled then check next will also find dumb quotes and suggest you replace them with an educated quote.
I’m not 100% sure on this change. It means you will get more false positives when checking. But it also means that check next/prev will check for everything that you have the text system checking for. I think this approach while maybe more noisy is simpler and more powerful, you can check more things.
In TextEdit under the right circumstances when you finish a sentence grammar errors might get corrected. Bike doesn’t support this because I think those corrections are too hard to spot since they happen somewhere far back in the sentence that you’ve already typed. In Bike autocorrect should only ever happen to the word you just finished typing.
Grammar errors will just be highlighted in green (if yo have grammar checking on) and you can correct them the same (right click, place caret at end, or with checking next/prev commands) as you would spelling errors that aren’t autocorrected.
To get preview releases through Bike’s software update select: Bike > Preferences > General > Include “preview” releases.