Atom 1.31
September 26, 2018 smashwilson
Atom 1.31 is out, improving usage metrics, Tree-sitter, Tree view and providing more pull request details.
Tree-sitter
Tree-sitter grammars can now more reliably detect file languages based on the first line of content, enabling common detection scenarios like vim modelines or shebang lines without producing spurious identifications as easily.
All Tree-sitter grammars use their original TextMate scope names. This reduces the number of changes in user packages needed to transition to supporting Tree Sitter and eases the path to enabling Tree Sitter in Atom as the default grammar provider.
The JavaScript Tree-sitter grammar highlights regular expressions in your code. Also, Tree-sitter grammars for JavaScript and Ruby have been improved to more accurately highlight special variables and tokens.
Tree View improvements
Tree View has received many improvements such as the ability to add project folders using drag and drop from your file explorer, support for dragging multiple items to move them, and adding custom styles for ignored files and directories. Git status for project folders is now reflected in the color of the project name. Keyboard navigation with arrow keys in the Tree View behaves more predictably with nested folders. Also, hideIgnoredNames
and hideVcsIgnoredFiles
play nicely together.
All these improvements were made by Atom community members. Big thanks to @denis-sokolov, @synthetiv, @captin411, @50Wliu, @ungb, @anderoonies, @uzitech, and @viddo!
Usage Metrics improvements
We have completely replaced Google Analytics. If you have opted in to usage metrics (thank you!) all data is now flowing through GitHub’s internal analytics pipeline instead. For more details on these metrics changes, check out this blog post.
- atom/metrics#100 RIP Google Analytics
More Pull Request details in the GitHub Package
The GitHub package displays the username, branch, and repository of each pull request in the pull request detail pane.
Furthermore, as a follow-up to the recent redesign of the GitHub tab, we have removed the “preview” suffix from its title.
- atom/github#1607 Pull Request Details
- atom/github#1602 Remove “(preview)” from the GitHub tab title
Don’t forget to check out all the other improvements shipping with Atom 1.31 in the release notes!
Atom 1.32 Beta
Tree-sitter is enabled by default
Our improved parsing system, Tree-sitter, is on by default on our beta channel. Tree-sitter will bring more powerful syntax highlighting and improved fold behavior based on a full, asynchronous incremental parse of the source file, replacing the TextMate-based parsers that Atom has relied upon since launch for a select few languages. Initially, we’re supporting Bash, C, C++, .erb
, .ejs
, Go, HTML, JavaScript, Python, Ruby, and TypeScript.
Tree-sitter has been available behind a configuration option for some time now, but we are now confident enough in its stability to use it as the primary grammar provider.
Special thanks to everyone who enabled it early and reported crashes and bugs. If you’d like to help us bring the power of Tree-sitter to more languages, check out the Tree-sitter documentation.
Significant RAM usage improvement
Thanks to some sleuthing by @maxbrunsfeld, Atom’s main and renderer processes now consume 45MB less RAM each!
To generate the V8 snapshot that substantially accelerates Atom’s startup time, we pre-process all source code with a tool called electron-link
. electron-link
automatically eliminates certain code constructs that wouldn’t work properly within the snapshot, but it also concatenates all of the source into a single string. V8 keeps the raw source around, along with some companion data structures to calculate line ending offsets, but we don’t use it anywhere. By minifying the source blob, we can greatly reduce its fingerprint in memory without losing any functionality.
There are many more details in the release notes.
Get all these improvements today by joining the Atom Beta Channel!