Tuesday, 23 October, 2018 UTC


Summary

Atom 1.32 is out! In this release, we’ve cut Atom’s memory consumption and enabled the new Tree-sitter parsing system by default.

Tree-sitter

Our new parsing system, Tree-sitter, is finally turned on by default. Tree-sitter parses your code incrementally while you type, creating syntax trees that Atom uses to provide improved syntax highlighting and code folding.
These syntax trees also serve as the basis for two new editing commands: Select Larger Syntax Node and Select Smaller Syntax Node, bound to Alt+Up and Alt+Down by default on macOS. These commands can make many editing tasks more efficient and fun, especially when used in combination with multiple cursors.
Currently, we use Tree-sitter for eleven languages: Bash, C, C++, ERB, EJS, Go, HTML, JavaScript, Python, Ruby, and TypeScript. 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.
  • atom/atom#17879

Reduced Memory Usage

Through one weird trick, we reduced the memory consumption of Atom’s main and renderer processes by 45MB each.
When you start Atom, most of the code is loaded through a V8 startup snapshot which we generate on our build servers using a tool called electron-link. electron-link combines all of our source code together into a single large startup script. JavaScript runtimes retain the source code of loaded scripts in order to provide stack traces and other features, so minifying this startup script substantially reduces Atom’s baseline memory footprint.
  • atom/atom#17926
Don’t forget to check out all the other improvements shipping with Atom 1.32 in the release notes! :memo:
Atom 1.33 Beta

Built-in Rust Support

Atom now features built-in support for the Rust programming language, using the new Tree-sitter parsing system. Thanks to a Tree-sitter Rust parser initially created by @MaximSokolov, Rust programmers on our beta channel should see more consistent highlighting of things like types and struct fields, as well as more reliable code folding.
  • atom/atom#18257

GitHub Package

If you like commits, you’re in luck – the pull request detail view now shows a list of commit details. The Undo Discard button now lives behind a context menu, which should help prevent pesky accidental clicks. We’ve increased metrics instrumentation to better understand user interactions. Also, the status bar has new Git and GitHub icons, to (hopefully!) improve discoverability.
Shout out to our first time community contributors @mimidumpling and @colinschindler for their contributions, which make the GitHub package more polished.

Soft Wrapping Improvements

Previously, Atom only wrapped lines at whitespace boundaries. This meant that long character sequences like URLs would often be wrapped abruptly. Now, thanks to @ariasuni, we also soft-wrap after - and / characters, which makes URLs more readable, and matches the behavior of most other programs.
  • atom/atom#17949

Ability to Disable Snippets

A lot of language packages provide handy snippets, which is great. But sometimes you might want to disable them. Thanks to @savetheclocktower and @Ben3eeE, you can now do so:
  1. Open a language package’s settings.
  2. Scroll down until you see the “Snippets” section
  3. Click on the “Enable” checkbox
Now that the default snippets are disabled, you’re free to create your own snippets.
  • atom/snippets#277
  • atom/settings-view#1084
There are many more details in the release notes.
Get all these improvements today by joining the Atom Beta Channel!