Mar 2021: 0.5.4 Release
What's new in 0.5.4
Snippets
Snippet support is a feature that has been a long time coming - it's one of the features that originally motivated Onivim.
For my personal workflow, it was difficult to set up seamless snippet support across all platforms. Having an it-just-works experience for snippets across Windows, Linux, and Mac is an exciting milestone for Onivim 2!
In version 0.5.4, snippets are enabled by default, and Onivim comes with built-in snippets for several languages:
When a snippet is active, Tab and Shift+Tab cycle through the available placeholders.
In addition, many extensions provide additional snippets. I enjoy this set of snippets for Markdown:
From the command palette, there are now options to configure user snippets:
Snippet insertion can be bound to a key, as well:
There's more information about using and configuring snippets in our documentation
Emmet Integration
With snippets enabled - and a few other blocking bugs fixed - Onivim can now leverage the bundled Emmet extension to support basic Emmet expansions:
This is enabled by default for html
, css
, less
, and sass
- but we recommend some configuration settings to get the best experience with Emmet.
Visual-block insertion and append fixes
A long-standing issue with Onivim was the lack of visual-block edits - using I
and A
to edit multiple lines at once.
Coincidentally, a pre-requisite to snippet functionality was having the ability to work with multiple-selection and multiple-insert cursors - basically, a baby step towards full multiple cursor support.
We've leveraged this same functionality to support visual-block edits:
Functionally, this should behave the same as using I
and A
in Vim in visual-block mode - with the added benefit of visual feedback as you type.
Extension host bug fixes
We've upgraded the extension host to 1.53.0 - keeping Onivim within a month of the VSCode update cadence.
Along with the upgrade, there were several fixes to extensions in this release:
- #3007 - Show 'missing dependency' activation error to user
- #3016 - Fix memory leak in extension host language features
- #3019 - Fix activation error in F# extension
- #3030 - Implement workspace storage
- #3123 - Fix failure to install extensions over 10MB
- #3054 - Implement 'isIncomplete' handler for completion
Vim bug fixes
Aside from the fixes around visual-block insert/append, there were a few other Vim-side fixes that made it into 0.5.4:
- #3027 - Fix command line completion for
set no
- #3066 - Fix ':map' condition (fixes #3049)
- #3102 - Implement mapping timeout (fixes #2850)
The full changelog can be found here: 0.5.4 Changelog
The latest stable and nightly builds are available here: Early Access Portal
Special Thanks
I wanted to thank the following people for help during the 0.5.4 milestone:
- @joseeMDS - Implemented the search.exclude configuration option (#3044)
- @marcinokoziej - Discovered a critical input loop bug on nightly builds (#3084)
- @riedel - Reported a blocking bug with the menubar items (#3108)
- @lukamanitta - Logged a critical bug relating to input timeout (#3125)
Thank you!
What's Next
The 0.5.5 build for April will be bit more boring - less shiny features to show, as the the work has been concentrated around bug fixes and refactoring to prepare for the next round of features. More details to come next month.
Thanks for reading, and thanks for all the help in bringing this vision of "Modal Editing from the Future" closer to a reality.
Stay safe and healthy!