Atom 1.23
December 12, 2017 iolsen
Atom 1.23 is now available on the stable channel and includes a new feature for packages to register URI handlers, the ability to register hidden commands, as well as editor performance improvements.
URI Handling
Atom packages can now register a URI handler function that will be invoked any time the user visits a URI that starts with atom://package-name/
. This feature is documented in our flight manual, so if you’re a package author, give it a try and let us know what you think.
CommandRegistry improvements
When registering commands via atom.commands.add
, you now have the option to hide specific commands in the command palette. Here’s an example:
atom.commands.add('atom-workspace', {
'my-package:weird-command': {
didDispatch: () => { /* ... */ },
hideInCommandPalette: true
}
})
This example also demonstrates the fairly new ability to pass an object instead of a function as the command listener. Using this expanded system allows you to also specify a custom displayName
and description
for commands. Check out the API docs for CommandRegistry.add
for details.
Improved compatibility with external Git tools
The GitHub package no longer locks the index, making it easier to use the CLI or other Git tools with Atom open in the background. You should no longer see errors about index.lock
when running a rebase or other operations in other tools.
Editor performance improvements
Atom has always provided a rich set of APIs that allow packages to respond to any type of change in the application. For example, Atom packages can track every text change that occurs in a particular text buffer using the TextBuffer.onDidChange
method. Unfortunately, APIs like this one have made it easy for third-party Atom packages to accidentally introduce slowness in cases where many changes happen rapidly, such as when typing with multiple cursors.
In Atom 1.23 Beta, we’ve addressed this performance problem by changing the behavior of several of these APIs so that callbacks are never called more than once in a text buffer transaction. The transaction is a construct that Atom uses to group changes so that they can be undone and redone as a single operation. As always, in making this change, we have taken steps to ensure that existing packages will not be negatively affected. Code using the existing event APIs should continue to work. We have also notified the maintainers of every package using these APIs that their behavior will subtly change in this release.
You can check out all the other improvements shipping with this version in the release notes.
Also Now Available: Teletype 0.3.0
Continuing our quest to make it just as easy to code together as it is to code alone, Teletype 0.3.0 lets developers simultaneously collaborate on multiple files. Hosts can add new files to their workspace to share those files with guests. Guests can edit shared files independently of the file that the host is currently editing. We’re excited to get these enhancements in your hands, and we’re already working on the next round of improvements.
Teletype 0.3.0 also includes several bug fixes and connectivity improvements. 🐛🔨
Visit teletype.atom.io to start coding together in Atom today.
Atom 1.24 Beta
Atom 1.24 hits beta today with a raft of improvements to keep you warm this holiday season.
Performance and Responsiveness
- ContextMenus are now asynchronous, keeping the editor responsive while they’re visible.
- Atom now automatically scrolls to keep your cursor visible after folding or unfolding a large block of code.
- Several fixes to add caching and render less often yield a perceptibly faster command palette.
Editor Enhancements
- Someone on the wrong side of the tabs vs. spaces debate wrote the initial Toggle Line Comment implementation, as it always inserted spaces. It will now honor your settings.
- New “Select to Next / Previous Bookmark” commands are now available.
- You can now display recent notifications in a dock. Search for
notifications
in the command palette or map a keybinding tonotifications:toggle-log
to check it out.
Developer and API Updates
TextEditor
elements now support areadonly
attribute. We expect this to be useful for IDE package developers who want to display code that isn’t present on the local drive.- HTML handling within the PHP grammar has been cleanly separated such that it’s now possible to reuse strictly the PHP grammar in packages.
- A number of fixes to package deactivation land in this release. Join us and resolve to improve your package hygiene in 2018!
There are many more details in the release notes.
Get all these improvements today by joining the Atom Beta Channel.